Which first year Computer Science courses are right for me?

Deciding which first year Computer Science course(s) to take?

The department of Computer and Mathematical Sciences offers five introductory-level courses in computer science and programming. It can sometimes be difficult for new students to decide which courses they should, or should not, take. This guide will help you to understand your options, and choose the course(s) that will benefit you the most.

The Courses

CSCA08 - Introduction to Computer Science I
This course is designed for students interested in 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 significant prior knowledge of or exposure to programming.

CSCA20 - Introduction to Programming
This course is intended as an introduction to the applied side of computer science, for students studying subjects other than computer science who wish to develop a proficiency in programming that they can then apply to their respective field. This course assumes no prior knowledge of or exposure to programming.  It focuses on learning basic programming techniques and tools that will be helpful to students in a variety of subject areas, but it does not cover the theoretical underpinnings that would be expected in further computer science courses. Nevertheless, 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 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.  The course requires little or no programming.

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’m intending to take 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, and in order to take 2nd year CSC courses.

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 CSCA08 but then change my mind. Can I take CSCB20?

Yes you can.

4. 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.

5. 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.

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

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

7. 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 idea of ‘sufficient experience’ matches what will be expected of you.

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

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

9. 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.