Main Navigation (Top Menu) Secondary Navigation (Side Menu) Page Content

What Courses to Take in the First Year of Computing Programs

What CISC course should I start with, CISC-101/3.0, CISC-110/3.0 or CISC-121/3.0?

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 course, job experience or some kind of independent study. 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, ifs, 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/3.0 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-121/3.0 and CISC-124/3.0 have any 1st-year Mathematics course as a corequisite; most Computing students take MATH-111/6.0, unless they have already done MATH-121/6.0 or MATH-122/6.0. If you are in Arts and didn't take 4U Math (or equivalent) in high-school, you can take MATH-126/6.0.

Many Computing programs have a 1st-year 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 in programs that require MATH-110/6.0. MATH-112/3.0 is an accelerated version of MATH-111/6.0 and should only be taken by students who are strong in Math.

Students in Computing programs that require Calculus should take either MATH-121/6.0 or MATH 122/6.0; the latter is recommended for Biomedical Computing. MATH-120/6.0 should only 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.

  • CISC-121/3.0 is not just a course about programming. It provides an introduction to the science of computing. Take a close look at the course outline and textbook, before deciding whether you already know all this material.

  • If you have already taken a computing course at another university, at a community college, or at CÉGEP, you may apply for transfer credit. Work experience and high-school experience are very difficult to evaluate, and cannot be converted to transfer credits.

  • What if you already know some of the material that is covered in CISC-121/3.0? This is a good thing: having review material in some of your first-year courses can help reduce the stress and time pressure that students encounter in first year. You can use CISC-121/3.0 as an opportunity to refine and deepen your understanding, and to earn a good mark which attests to your high level of mastery of the material. This provides you with a strong foundation for subsequent CISC courses.

  • If you are already an experienced programmer and knowledgeable in Computing Science, then the CISC-121/3.0 assignments will be quick and easy for you to do. Thus, you will be able to complete CISC-121/3.0 without wasting a lot of your time. You should complete all of the course assignments, no matter what you think your level of expertise is. Completing the assignments gives you confidence that you will indeed be able to perform well on the final exam. In the past, quite a few students have overestimated their mastery of the CISC-121/3.0 material, and ended up performing very poorly on the final exam. By doing all of the assignments, you will avoid this problem.

  • In some cases, it may be appropriate for you to take CISC-121/3.0 and CISC-124/3.0 concurrently; speak to the CISC-124/3.0 instructor about this.

  • If you are certain that there is no need for you to take CISC-121/3.0, you may be able to avoid taking it. The following steps are involved. We do not recommend this approach other than in exceptional circumstances.

    • If you do not take CISC-121/3.0, you are missing a prerequisite for courses such as CISC-124/3.0, CISC-203/3.0 and CISC-271/3.0. You will have to ask the instructor of each such course that you want to take for permission to take it without the CISC-121/3.0 prerequisite. It is up to the instructor to decide whether or not to permit this. And you do this at your own risk -- you might end up performing poorly in the subsequent course because you are missing material taught in CISC-121/3.0.

    • If you do not take CISC-121/3.0 and are therefore missing a half course in your Computing concentration, you will have to replace CISC-121/3.0 by a CISC half-course numbered above 200 that is not otherwise used in the concentration.

Courses to Take in First Year: Summary for Each Degree Program

  • COMP-G-BA/COMP-Y (Arts General/Minor)
    Students with programming experience should take CISC-121/3.0, 124/3.0 and MATH-111/6.0, plus electives.

    Students without programming experience should take CISC-101/3.0 or 110/3.0, 121/3.0 and MATH-111/6.0, plus electives.

  • COMP-G-BCP/COMP-Z (Science General/Minor)
    Students with programming experience should take CISC-121/3.0, 124/3.0 and MATH-111/6.0, plus electives.

    Students without programming experience should take CISC-101/3.0 or 110/3.0, 121/3.0 and MATH-111/6.0, plus electives.

  • COMP-M-BCH/CSCI-P-BCH (Computing Major/Computer Science Specialization)
    Students with programming experience should take CISC-121/3.0, 124/3.0, MATH-111/6.0, MATH-121/6.0, plus electives.

    Students without programming experience should take CISC-101/3.0 or 110/3.0, 121/3.0, MATH-111/6.0, MATH-121/6.0, plus electives.

  • BMCO-P-BCP (Biomedical Computing)
    Students with programming experience should take CISC-121/3.0, 124/3.0, MATH-111/6.0 (or MATH-110/6.0), MATH-122/6.0 (or 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-101/3.0 or 110/3.0, 121/3.0, MATH-111/6.0 (or MATH-110), MATH-122/6.0 (or MATH-121/6.0 or MATH-120/6.0), BIOL-102/3.0, biol-103/3.0, CHEM-112/6.0.

  • COCA-P-BAH (Computing and the Creative Arts)
    Students with programming experience should take CISC-121/3.0, 124/3.0, MATH-111/6.0 (or MATH-126/6.0 or MATH-112/3.0), plus 100-level required courses in at least one of the Arts subjects, plus electives.

    Students without programming experience should take CISC-101/3.0 or 110/3.0, CISC-121/3.0, MATH-111/6.0 (or MATH-126/6.0 or MATH-112/3.0), plus 100-level required courses in at least one of the Arts subjects, plus electives.

  • COGS-P-BCH (Cognitive Science)
    Students with programming experience should take CISC-121/3.0, 124/3.0, MATH-111/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-101/3.0 or 110/3.0, 121/3.0, MATH-111/6.0, PSYC-100/6.0 and/or PHIL-115/6.0 and/or LING-100/6.0, COGS-100/3.0, plus electives.

  • SODE-P-BCH (Software Design)
    Students with programming experience should take CISC-121/3.0, 124/3.0, MATH-111/6.0, MATH-121/6.0, plus electives.

    Students without programming experience should take CISC-101/3.0 or 110/3.0, 121/3.0, MATH-111/6.0, MATH-121/6.0, plus electives.

Students should consult the calendar and/or an academic adviser for more information.