CS Questions

Answers to questions I have been asked about computer science.

Do I need lots of math?

You can be successful in computer science without being good at math, but it is more challenging.

You should take all of the math classes you can.

Develop an understanding why you are doing things in math class. That understanding of why math works translates directly into thinking about why a computer is doing the things it is doing.

There is a lot more problem solving in a computer science class than in a many math classes. Solving the same problem over and over to build a skill happens a lot in math classes. While you are learning computer science, you have to learn how to solve new problems in every assignment. The expectation is that you will be able to use the ideas you learn in new ways.

Practice planning what you are going to do before you do it. You can do this in math class by thinking about what is going to happen in a problem before you do it. When people fail to solve programming problems, it is frequently because they are trying to write a program without a plan.

Computer science takes some different skills than math class. You can be successful in computer science without being successful in math class. However, many people find that the same skills help in both classes. Bad arithmetic or algebra skills? You’ll be fine. Find it hard to learn new concepts, or apply ideas in new ways? CS could be challenging.

Comparison: CS A vs CS Principles

What is the difference between the Advanced Placement Computer Science A (CSA) and Computer Science Principles (CSP)?

CS Principles is a general introduction to computing. In general, you should take this class if you are not very comfortable with programming. Harvard’s CS50 course (similar to CS Principles) reports that 50% of their students described themselves as “less comfortable” (with computing). You should not take CS Principles if you already know how to program.

If you have no experience but really want to learn programming, you should take Intermediate Computer Science (our equivalent of Northwestern’s EECS 111). This class is described as a “required core course in the CS curriculum”.

Colleges consider these two courses differently:

  • Harvard counts their equivalent of CS Principles as a distribution requirement.

  • Northwestern University gives elective credit for CS Principles, but may allow CS A to fulfill a required course for a major.

Preparation for College CS

What is the best preparation for college computer science?

In my opinion, Intermedate CS offers the best preparation for college. Compare it to Northwestern’s EECS 111, a “required core course in the CS curriculum”.

Intermediate CS will give you time to develop your project management skills.

  • Planning: break a large project into smaller pieces.
  • Debugging: check that each piece works before assembling the whole.
  • Creativity: make interesting projects with flexibility for what you find interesting.

AP Computer Science A will teach you the technical details of a programming language (Java), but the AP curriculum focuses more on technical details than the translation from concept to reality that many people need to develop. AP computer science could be an appropriate first course for someone who is interested in learning more about algorithms, data structures, and CS competitions.

  • Object oriented programming.
  • Searching and sorting large lists of data.

If you have been programming on your own and have a well-crafted larger project, feel free to ask about placement.

Last modified August 19, 2023: Resources renamed to docs. (29a8319)