Suggested Courses Bachelor of Computer Science

First-year students

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:

Visit our suggested courses page for more Science with a Lab options.

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

Visit our suggested courses page for more Science with a Lab options.

**Note:

  • 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:

Visit our suggested courses page for more Science with a Lab options.

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

Visit our suggested courses page for more Science with a Lab options.

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


Winter Start

No prior programming experience

Winter Fall
CSCI 1105: Introduction to Programming CSCI 1110: Introduction to Computer Science
ASSC 1801: Society and Technology in the Age of Automation  ASSC 1800: Society and Technology before 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:

Visit our suggested courses page for more Science with a Lab options.

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

Visit our suggested courses page for more Science with a Lab options.

**Note:

  • 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:

Visit our suggested courses page for more Science with a Lab options.

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

Visit our suggested courses page for more Science with a Lab options.

**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.
  • You can complete this assignment in any programming language of your choice

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: Workplace Communications for Computer Science  CSCI 3101: Social, Ethical and Professional issues in Computer Science 2 - 3000+ CS Electives
CSCI 2110: Data Structures & Algorithms CSCI 3110: Algorithm Analysis I 3 - 4000+ CS Electives
CSCI 2115: Theory of Computer Science CSCI 3120: Operating Systems 5 - 2000+ Free Electives
CSCI 2122: Systems Programming CSCI 3130: Software Engineering  
CSCI 2134: Software Development CSCI 3137: Programming Languages   
CSCI 2141: Introduction to Database Systems CSCI 3171: Network Computing  
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 (for students admitted in 2018 and 2019)

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