If you have no prior programming experience, you should take either CISC-101/3.0 or CISC-110/3.0 in the first year. If this course is taken in the fall term, you can take CISC-121/3.0 in the winter of first year, and CISC-124/3.0 in the fall of second year. CISC-124/3.0 can be taken concurrently with fall-term 200-level CISC courses.
If you have prior programming experience, you should take CISC-121/3.0 in the fall of first year and CISC-124/3.0 in the winter of first year. This prior programming experience could be a high-school or summer-school course, job experience, or some kind of independent study, including on-line courses at Udacity, Coursera, or Amplify.
You do not have to be familiar with any particular programming language. What's important is that you understand the basic concepts of programming: variables, conditionals, loops and methods (also known as procedures, functions or subprograms). If you are comfortable writing short programs in any language, including methods with parameters and return results, you have enough experience to take CISC 121/3.0.
If you are unsure about whether you belong in CISC 121 or 101/110, take a look at the self-assessment quiz. The purpose of this quiz is to help you decide whether you belong in CISC 121/3.0 or in either CISC 101/3.0 or CISC-110/3.0. If you are still unsure, you may consult an academic adviser, or an instructor for 101/3.0, 110/3.0 or 121/3.0. In all of these courses, there will be some discussion during the first week of classes about the criteria for taking CISC 121/3.0. If you believe you've signed up for the wrong course, it is easy to switch at that point.
In the long run, you're better off taking 101/3.0 or 110/3.0 before 121/3.0 and doing well in both than going directly to 121/3.0 and doing badly. If you are poorly prepared for 121/3.0, you will find the course very difficult and not grasp all of the concepts being taught. Since most other CISC courses build on material from 121/3.0, a weak beginning will cause difficulties all through your Computing studies.
CISC-101/3.0 and CISC-110/3.0 count as electives (if taken prior to CISC-121/3.0); they are not required courses in any Computing concentration.
Which Math courses should I take?
CISC-102/3.0, a course in Discrete Mathematics, is now required in all Computing programs (unless MATH-110/6.0 is taken). CISC-121/3.0 has CISC-102 (or any 1st-year Mathematics course) as a corequisite.
Many Computing programs have a 1st-year Linear Algebra course as a requirement. This can be satisfied with MATH-110/6.0, MATH-111/6.0, or MATH-112/3.0. We recommend MATH-111/6.0 except for students who intend to take subsequent Math courses that require or recommend MATH-110/6.0, such as students intending to take the Computing and Math plan (COMA). MATH-112/3.0 is an accelerated version of MATH-111/6.0 and can be taken by students who are strong in Math (or by students aiming for Biomedical Computing, because there isn't room in their schedule for MATH-111/6.0).
Students in Computing programs that require Calculus would normally take MATH-121/6.0. MATH-120/6.0 can be taken by students who intend to take subsequent Math courses that require or recommend it. MATH-126/6.0 is available for students in Arts programs, such as Computing and the Creative Arts. Here is more information about math courses.
What if I already know how to program? Do I really have to take CISC-121/3.0?
We recommend that every student in a Computing program take CISC-121/3.0. Here are some points to consider.
What courses can I take as electives?
Any Arts and Science course for which you have the prerequisites and can fit into your schedule can be chosen as electives. This list may help you.
How many courses should I register in?
The normal course load is five courses.
Summary: Courses to Take in First Year for Each Degree Program
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, CISC-121/3.0, plus electives.
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, 121/3.0 and MATH-111/6.0, plus electives.
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, 121/3.0, MATH-111/6.0 (or MATH-112/3.0 or MATH-110/6.0), MATH-121/6.0 (or MATH-120/6.0), plus electives.
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, CISC-121/3.0, MATH-112/3.0, MATH-121/6.0 (or MATH-120/6.0), BIOL-102/3.0, BIOL-103/3.0, CHEM-112/6.0.
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, CISC-121/3.0, 100-level required courses in at least one of the Arts subjects, plus electives.
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, CISC-121/3.0, MATH-111/6.0 (or MATH-112/3.0 or MATH-110/6.0), PSYC-100/6.0 and/or PHIL-115/6.0 and/or LING-100/6.0, COGS-100/3.0, plus electives.
Students without programming experience should take CISC-102/3.0, CISC-101/3.0 or 110/3.0, CISC-121/3.0, MATH-111/6.0 (or MATH-112/3.0 or MATH-110/6.0), MATH-121/6.0 (or MATH-120/6.0), plus electives.
Students without programming experience should take CISC-101/3.0 or 110/3.0, CISC-121/3.0, MATH-110/6.0 (or CISC-102/3.0 and either MATH-112/3.0 or MATH-111/6.0), MATH-120/6.0 (or MATH-121/6.0), plus electives.
Students should consult the calendar and/or an academic adviser for more information.