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.
You can 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ÌýÌý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
: Workplace Communications for Computer Science
: Social, Ethical and Professional issues in Computer Science
2 - 3000+ CS Electives
: Data Structures & Algorithms
: Algorithm Analysis I
3 - 4000+ CS Electives
CSCI 2115: Theory of Computer Science
: Operating Systems
5 - 2000+ Free Electives
CSCI 2122: Systems Programming
: Software Engineering
CSCI 2134: Software Development
CSCI 3137: Programming Languages
: Introduction to Database Systems
: Network Computing
: 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.