We often get questions on what are the differences between CS 163 and CS 164, and which one is better suited for your background. This quick page attempts to answer that question, but as always, we highly encourage you to work with your academic advisor to determine the correct course.
First off, there is no content difference between CS 163 and CS 164 - That is right, they are the same course! Any differences would be pedagogical ideals or tools we are testing. The reason for the split purely has to do with prior research indicating that it is extremely intimidating for students who haven’t programmed before to be in class with someone who has programmed, even in another language. Even if they have the highest grade in the class, they feel behind. Modern research supports separating students based on programming background, but then bringing them back together after their first semester.
A common question from this approach, that since Coding is a practice based discipline, do students who have never coded before coming to college ever “catch up”. Research conducted here at CSU by Chris Wilcox and Albert Lionelle showed that by the end of the second course (CS165) students from both backgrounds were performing within 1 percentage point of each other: (REF).
Is the content different between the two? No it isn’t. What we find is the types of questions change (less comparing it to other languages), but the content is very well the same.
How to pick?
The answer is pretty straight forward - if you know the terms: if, then, else, for, while as they relate to programming, you should sign up for CS 164. If we’re just speaking a foreign language, sign up for CS 163.
One other consideration: if you just want to get your feet wet in programming, and this is not required for a degree, you may want to consider CS 150 or CS 152. These courses are designed for non-majors. Additionally, CS 150 falls under the AUCCs, so you can earn credit for arts and humanities taking it.