The course selection of a first year student in the Bachelor of Computer Science typically contains a mix of specific courses, courses for broader degree requirements like writing or science requirements and general electives.

We provide two common schedules: one for students with no prior programming experience and the second for students with some prior programming experience.

Fall Start

No prior programming experience

Fall

Winter

CSCI 1105: Introduction to Programming

CSCI 1110: Introduction to Computer Science

ASSC 1800: Society and Technology before the Age of Automation

ASSC 1801: Society and Technology in the Age of Automation

CSCI 1120: Introduction to Computer Systems

CSCI 1170: Introduction to Web Design and Development

CSCI 1300 Calculus in Computer Science **

CSCI 1315: Discrete Math for CS

One of the following can be used to fulfill a science with a lab requirement:

If you hope to take MATH 1010, please take MATH 1000 in lieu of CSCI 1300

The mandatory tutorial for CSCI 1107 overlaps with the lecture for CSCI 1120 in the Fall 2020 term. If you'd like to take 1107, please take it in the following term.

Prior programming experience

Fall

Winter

CSCI 1110: Introduction to Computer Science

CSCI 1120: Introduction to Computer Systems

ASSC 1800: Society and Technology before the Age of Automation

ASSC 1801: Society and Technology in the Age of Automation

CSCI 1170: Introduction to Web Design and Development

Free elective

CSCI 1300 Calculus in Computer Science **

CSCI 1315: Discrete Math for CS

One of the following can be used to fulfill a science with a lab requirement:

If you hope to take MATH 1010, please take MATH 1000 in lieu of CSCI 1300

The mandatory tutorial for CSCI 1107 overlaps with the lecture for CSCI 1120 in the Fall 2020 term. If you'd like to take 1107, please take it in the following term.

Prior programming experience

Winter

Fall

CSCI 1110: Introduction to Computer Science

CSCI 1120: Introduction to Computer Systems

ASSC 1801: Society and Technology in the Age of Automation

ASSC 1800: Society and Technology before the Age of Automation

CSCI 1170: Introduction to Web Design and Development

Free elective

CSCI 1300 Calculus in Computer Science **

CSCI 1315: Discrete Math for CS

One of the following can be used to fulfill a science with a lab requirement:

**Note: If you hope to take MATH 1010, please take MATH 1000 in lieu of CSCI 1300

How do you know if you have enough prior programming experience?

If any of the following apply to you, we recommend that you take CSCI 1110 (prior programming experience):

You received a mark of 80% or greater in CP-12 (Nova Scotia)

You received a mark of 80% or greater in a senior high-school computing course that taught a programming language such as ActionScript, C, C++, C# , Java, JavaScript, Perl, PHP, Python, Visual Basic, etc.

You have written programs on your own in a programming language such as: ActionScript, C, C++, C#, Java, JavaScript, Perl, PHP, Python, Visual Basic, etc.

Students applying to enter the first year are encouraged to email undergrad@cs.dal.ca if they have questions.

Bachelor of Computer Science degree requirements

Should you wish to design your own first year, you'll find the requirements listed in the course calendar without a suggested structure. A course means a one-semester (four-month) course, typically with three lecture hours per week. The normal load is five courses per semester. Also, a notation such as 3000+ indicates that the class chosen must be numbered 3000 or higher.

Second-, Third- and Fourth-year students

The following schedule of courses is only a recommendation. Students can select courses in whichever year they choose provided that they have satisfied the prerequisites for their course selections. We strongly recommend that all core computer science and mathematics courses be completed before the start of the student's fourth year. We also recommend that students consult an academic advisor if they have any questions about selecting courses for their programme.

Suggested Schedule

Year 2

Year 3

Year 4

CSCI 2100: Communications Skills: oral and written

CSCI 3101: Social, Ethical and Professional issues in Computer Science

STAT 2060: Introduction to Probability and Statistics I

1 - 1000+ Business, Science, or Engineering

MATH course from an approved list

1 - 2000+ Business, Science, or Engineering

1 - 1000+ Business, Science, or Engineering

2 - 2000+ Free Electives

1 - 1000+ Humanities or Social Science

Science with Lab Requirement

The science with a lab requirement is usually completed with 1 full credit selected from the following courses (a .03 suffix designates a half-credit course):

CSCI 1107.03 (reserved for students with less than 30 credit hours)

CSCI 1108.03 (reserved for students with less than 30 credit hours)

CSCI 1109.03 (reserved for students with less than 30 credit hours)

BIOL 1010.03

BIOL 1011.03

CHEM 1011.03

CHEM 1012.03

ENGI 1103.03

ERTH 1080.03

PHYC 1190.03

PHYC 1290.03

PHYC 1310.03

PHYC 1320.03

PSYO 1011

PSYO 1012

PSYO 1031.03

PSYO 1032.03

Consult with an academic advisor before selecting any other course for the science with a lab degree requirement.

Approved Math Courses

CSCI 2114: Mathematical Applications in Computing

MATH 1010: Differential and Integral Calculus II (or equivalent)

MATH 2040: Matrix Theory and Linear Algebra II

MATH 2051: Problems in Geometry

MATH 2080: Statistical Methods for Data Analysis and Inference

MATH 2113: Discrete Structures II

MATH 2135: Linear Algebra

MATH 2300: Mathematical Modeling

MATH 3300: Optimization

MAYH 3330: Applied Graph Theory

MATH 3400: Classical Game Theory

MATH course selected with permission of the Faculty

Academic advisors are available to discuss choices of electives. The choice of an elective depends on the interests of the student. Consequently, the Faculty does not maintain a list of recommended electives.