Deciding Which First Year Computer Science Courses To Take

professor teaching students

The Department of CMS offers five introductory-level courses in Computer Science and programming. It can sometimes be difficult for new students to decide which courses you should, or should not, take. This guide will help you to understand your options and choose the courses that will benefit you the most.

The Courses

CSCA08 - Introduction to Computer Science I
This course is designed for students who are considering pursuing a degree (specialist, major or minor) in Computer Science, or one of the related disciplines. It focuses on helping students learn how to build and analyze simple algorithms. This course assumes no prior knowledge of or exposure to programming.

CSCA20 - Introduction to Programming
This course is intended as an introduction to computer programming for students studying subjects other than Computer Science. It focuses on learning basic programming techniques and tools that students can then apply to their respective fields. This course assumes no prior knowledge of or exposure to programming. Although this course is not designed for prospective Computer Science students, students who achieve a very high mark in this course may request entry to CSCA48, enabling them to pursue a Computer Science program.

CSCA48 - Introduction to Computer Science II
This course is designed as a follow-on to CSCA08, and continues the general introduction to creating and analyzing algorithms, with an emphasis on software design, data structures and basics of complexity analysis. This course assumes that students have comfortably completed CSCA08 or an equivalent introductory Computer Science course. Students who have completed an introductory programming course such as CSCA20 may be admitted with the instructor’s consent, but may be required to participate in a ‘ramp-up’ session to cover material which they may have missed.

CSCA67 - Discrete Mathematics
This course provides an introduction to discrete mathematics that computer and mathematical science students will need, both to introduce fundamental topics that are used extensively in upper year courses, and to build foundations in rigorous mathematical thinking.

CSCB20 - Introduction to Databases and Web Applications
This is a second course in applied Computer Science for students who do not plan to complete a degree in Computer Science. Students will have exposure to fundamental tools and technologies that they can use to take their programming skills to the next level and build stand-alone applications. The course is intended for non computer-science students who would like a high-level overview of practical and applied programming skills and tools. This course assumes that students have comfortably completed an introductory programming or Computer Science course such as CSCA08 or CSCA20.

Frequently Asked Questions

1. If I am considering a degree in Computer Science, which courses should I take?

You should take CSCA08, CSCA67 and CSCA48. These three courses are required in order to obtain a subject post in Computer Science. CSCA67 and CSCA48 are prerequisites for all of Computer Science second/third year courses (with the exception of CSCB20, which is designed for non-CS students).

2. If I just want to get some programming experience and skills, which courses should I take?

CSCA20 and CSCB20 are geared for exactly this type of student. They will offer you a well-rounded practical introduction to Computer Science that will be helpful to almost any other degree.

3. What if I take CSCA20 but then change my mind. Can I take CSCA48?

Yes you can, but you should contact the course instructor as they may have a ‘ramp up’ session to help get you caught up on material you may not have covered. This is normally only recommended for students who received at least a B in CSCA20.

4. Can I take CSCB20 if I’m planning on doing a degree in Computer Science?

No. This course is meant for non-Computer Science students. The material covered in this course will be covered in greater detail in other CSC courses.

5. My degree requires CSCA08, can I substitute CSCA20 instead?

Usually no, but you can contact your program supervisor and ask about this.

6. I’ve done some programming before, can I skip straight into CSCB20?

Yes you may, but we recommend that you contact the course instructor first to ensure that your level of experience matches what will be expected of you.

7. I’ve done some programming before, can I skip straight into CSCA48?

Unless you have completed an introductory Computer Science course at a recognized university and received a transfer credit for it, you must complete CSCA08 in order to take CSCA48.

8. I’ve never done any programming before, will I be okay in CSCA08/CSCA20?

Neither of these courses presumes any knowledge of or exposure to programming. The courses are designed to be accessible by anyone regardless of past experience.

Note on Pre-requisites & Exclusions

Please pay special attention to pre-requisites, co-requisites, and exclusions when you enroll in courses:

  • To enroll in a course you must have successfully completed all pre-requisites. If you have not satisfied pre-requisite, even if the computer system allows you to enroll, you will be removed from the course before the course begins.
  • Co-requisites are courses that must be taken in the same session.
  • When one course is an exclusion of another, then you will not get credit for both courses. If you take both then one of the two will not count toward the 20 credits needed to graduate. In some cases exclusions are not both ways. That is, it is ok to take course A before course B, but not course B before course A. Pay attention to this so you are not surprised by having too few credits when you apply to graduate.