Computer Science (Algorithms in C/C++) Track
What to expect - An unique methodology which builds thinkers...
Here is an email from Michelle Bryson, a student who attended our CS track from Gr.8 to 11, and has admitted to the CMU Computer Science program - Class of 2024.I like it the most because:
- It was self paced and there was no pressure to be on the same level as someone else.
- I was never directly given the solution to a problem.
- I liked the opportunity to work on competitive projects with partners or teams.
- There is a wide variety of classes and summer camps to choose from that suit different types of students.
- Working hard to learn is rewarded rather than just knowing the answer.
- The instructors give a lot of 1:1 help and check in with students even if they don't have a question
You will find more detailed description from the syllabus including:
- Characteristics
- Requirement for Level Promotion
- What was deemed to be complete with an assignment with satisfactory level of understanding?
- How to do Well in this Track?
- Aligning with Storming Robots Roadmap
When to start ...
Why it is critical ...
Ever since this program was launched back in 2010, it has produced thriving record. Most students who can reach Level II, or even just level I have demonstrated their resourcefulness, and become proficient self-learners in the subject matter.
Why C over others such as Python?
C programming allows high flexibility and the power to perform closer to the machine than “modern” languages. It is still often used in embedded systems or high-performance computing. It is considered to be lingua franca of programming.
We focus on educating students to “understand” the underlying structure, think efficiency and analysis with algorithms; not to learn a specific language. This will equip students the skill to adapt the mechanics of new modern language and exercise with various algorithms and optimization techniques.
Python is designed for professionals such as Data Scientist to program at ease so that they can focus on a specific subject matter, not learning computational programming. It has plethora amount of built-in abstractions allowing students to program without knowing bare construct, such as data types. While Python is definitely a great tool for increasing productivity, it is not for building software with efficiency in system level, and speed as priority.
Competitions...
When can my child participate in competitions?
Which level should my child starts from?
Forms of Validation ...
- Four professional certification exams (~$300 per seat).
Scholarship will be offered to top ten qualified students to take the exam at no cost. - Participation in the USACO exam. (A free online exam)
- AP Computer Science A : Almost all of our level I students will score 5(max score) at this exam ease. AP CS A covers some fundamental mechanics in programming. This is something being covered in Level B of Algorithms in C/C++ (our Computer Science Track).
- Storming Robots will issue a certificate to reflect student's level achievement. Please see the syllabus regarding " What was deemed to be ‘complete’ with an assignment?
Test or No Test
Doing tests in class is not the best way to utilize their time here at the center (or online class time). If students truly resolve the given problems sets on their own, that would have proven satisfactory level of their understanding. There should not be a necessity of a formal test.
Unfortunately, we have observed the following issue has been increasingly happening - some students cannot explain their own work. While this can be many reasons, the following shows two most typical ones:
- Too much help from the internet - The internet is filled with wealth of learning resources, including articles, instructions, and even solutions. They can be extremely beneficial for self-learning; but can be detrimental as well. It is often all about self-discipline: “Do I understand it? If not, I’ll question, further experiment, etc. Never just copy and claim it is done.”
- Another one is assistance from home. This is a helpful article regarding this typical issue.
Prerequisites, Cost, and Registration ...
Pre-requisite
For level B & I: Solid proficiency in intro to Algebra is a MUST.For level II+: Solid Algebra I and Middle School Geometry IS A MUST. (Proof of this level is required. )
Cost
Please go here to view the Cost.Registration
Before you register, you are advised to review the detailed Syllabus.For New students: Please Click here to submit online registration.
For returning students: Please email to office .
Expectation in class:
- We strictly follow the “Honor Code” - see the syllabus pdf.
- Should read "How to get the BEST out of this program." from the syllabus pdf.
- Should allocate approx. 4 hours of programming homework per week.
- Must stay on task in class.
- Must be perseverant in taking on challenging problems and trying to follow thru direction to conduct cognitive thinking and analysis. (i.e. no spoon feeding method).
- Must be willing to review learning materials from the book at home.
- Satisfactory work is required in order to be deemed as “complete”. This means:
- proper testing is required to ensure correctness
- any error, especially those instructor points out as important, must be corrected.
- we focus in computational thinking, so improvement must be made if code is found poorly written and inefficient.
What you need before you start ...
- Purchase the text book : C Programming: A Modern Approach, 2nd Edition by K.N. King - ISBN-13: 978-0393979503, or 978-0393979503.
Where to buy (just some suggestion):- Amazon
- Online Buy/Sell facebook group.
- Email to our office to check whether we currently have a used book available for sale.
- Download and install the IDE - Options (only one of the following):
- Microsoft Visual Studio Community Version - C/C++ , (NOT be confused with MS Visual Studio Code). During installation, select at least the "Desketop Development" for C++. Take a look of the snapshot here. or
- Alternative: Online C/C++ IDEHowever, the debugger is quite limited. As a begginner, it may be ok. As you go into level II+, the debugger capability from Visual Studio will help you a great deal.
- What if you use Apple OS: Please do note that we shall not be able to offer installation advise if you use Apple OS. If you do have to work on Apple OS, you may choose XCode. However, you will need to make sure you know how to set up the debugger.
Which IDE (on Windows OS) to choose:
- Microsoft Visual Studio Community Version.- Desktop Development with C++. This is very user-friendly, but footprint is huge - over 5G. However, it comes with an excellent debugger which is an extremely important learning tool.
- Online compiler and debugger for c/c++ is online IDE with C++ compiler and many other languages. Quick and easy way to compiler c++ program online.
- Eclipse . This is much less user-friendly. however, footprint takes up about only 4M. Read this first before you choose Eclipse Although Eclipse has far smaller footprint, it is more complicated to set up to use with the debugger. Just like most OpenSource software, you might have to manually modify some system configuration. Besides, I notice that new JDK may break within eclipse IDE; the last known workable version was JdK 1.8.x. If you are not familiar with simple windows operations such as changing environment variables, navigating thru the windows file system, DO NOT install Eclipse. You should use alternatives. Install in the following order if you decide to install Eclipse:
- install 1.8.X JDK. (note: as in June, 2018, 1.9.X caused Eclipse to fail. )
- Install MinGW - Minimalist GNU for Window. Best is to get the installer kit.
- install Eclipse C/C++ IDE. The latest one we used was Oxygen.
- More details about using Eclipse as the IDE for C/C++
A complete list of books thru Level V...
Level I, II, III :
- C Programming: A Modern Approach, 2nd Edition by K.N. King - ISBN-13: 978-0393979503, or 978-0393979503.
- Online notes for Computer Science Track at Storming Robots site.
Level IV:
- Mastering Algorithms with C: ISBN-13: 978-1565924536, or ISBN-10: 1565924533
- Online notes for Computer Science Track at Storming Robots site.
Level V:
- C++ Primer Plus (Developer's Library) 6th Edition, by Stephen Prata. ISBN-13: 9780321776402.
- (after completing the important topics covered in the Primer book) Data Structures and Algorithm Analysis in C++, (International Edition) - 4th Edition by Mark A. Weiss - ISBN-10: 0273769383, ISBN-13 : 978-0273769385.
- Online notes for Computer Science Track at Storming Robots site.
Click here to view detailed syllabus covered in all Levels of Algorithms in C/C++ at Storming Robots.