Are you as excited as we are?
- Download your campus app
- Learn about our student societies
- Follow us on Instagram
- Connect with an advisor
Get Dalhousie-ready with the university's New to Dal programming and resources.
For information related to COVID-19 and the Faculty of Computer Science, visit our resource page.

Laptop requirements
In most cases, the base specifications of laptops will suffice for your time as an undergraduate student. To help you in your decision-making, we've put together some laptop recommendations.

Your first year with us
We've created a first-year experience that provides you with a great foundation in computer science and problem-solving.
Regardless of your program of choice, you will develop programming skills, explore the foundations of computer science and design, and embark on an exploration of the social and philosophical impacts of computing.
Register for your courses
Registering for courses for the first time can feel overwhelming. We're here to help you determine what courses make the most sense for you.
To help with the process, we've created some pre-packaged schedules that capture all of the first year required courses and lead to excellent non-overlapping schedules. This means you register for one block of courses and your schedule will automatically include all the necessary classes, labs, and tutorials without a risk over overlapping!
To make it even easier, we created course teaser videos to give you a snapshot of what some of your classes may look like.
A snapshot of your courses
Get a glimpse of what your classes will look like with our course teaser videos!
Intro to Computer Programming
Intro to Web Design and Development
Practical Data Science
Academic Foundations
Create a schedule that works for you
To help you get started in choosing your courses, there are a few things you should consider. Find your program below and let's get started!
Bachelor of Applied Computer Science (BACS)
Do you have prior programming experience?
How do you know if you have enough "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
If any of the above apply to you, we recommend that you either:
- Create your own schedule following the prior programming experience course selection listed below; or
- Choose a course block that includes CSCI 1110 instead of CSCI 1105
Option 1: Register for a block of classes
We've created some pre-packaged schedules - meaning that you register in a block of courses - that includes all your courses, labs, and tutorials with no risk of overlapping.
To register
1. From the Registration screen on DalOnline, choose Block Registration.
2. Select the Term you wish to register for.
- 2022/2023 Fall
- 2022/2023 Winter
3. Select the radio button for your program then click on Register at the bottom
of the page. You can also select Add to worksheet, which will add the CRN's for the
courses to your Add/Drop page.
Please remember to register for both terms! We've set the blocks up in pairs for the Fall and Winter term. As an example, if you pick option BACS - Year 1A in the Fall, then the best match in the Winter term will also be option BACS - Year 1A.
You'll be able to access all BACS options through DalOnline. Examples are listed below:
Please note:
- Most of the blocks have four courses to allow you to either add an elective of your choice or to take one less course each term during your first year.
- If you want to make a change later, you can drop or change an individual class.
- If one of the courses in your chosen course block is full, the course block will no longer work. If this happens, you can use the block as a guide and individually register for each course. As always, please connect with an advisor at undergrad@cs.dal.ca if you need any help.
Option 2: Design your own schedule using our suggestions (Fall 2022 Start)
Based on our experience, we've created suggestions to help you create a schedule that makes sense for you and your interests. Simply choose the commonly-used schedule that best suits you below.
(See above to determine which might be the right option for you)
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 |
MGMT 1301: Multidisciplinary Management l | MGMT 1302: Multidisciplinary Management ll |
Free elective | Free elective |
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 |
MGMT 1301: Multidisciplinary Management l | MGMT 1302: Multidisciplinary Management ll |
Free elective | Free elective |
Option 2: Design your own schedule using our suggestions (Winter 2023 Start)
Based on our experience, we've created suggestions to help you create a schedule that makes sense for you and your interests. Simply choose the commonly-used schedule that best suits you below.
(See above to determine which might be the right option for you)
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 |
Free elective | MGMT 1301: Multidisciplinary Management l |
Free elective | Free elective |
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 | MGMT 1301: Multidisciplinary Management l |
Free elective | Free elective |
Free elective | Free elective |
Do you have prior programming experience?
How do you know if you have enough "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
If any of the above apply to you, we recommend that you either:
- Create your own schedule following the prior programming experience course selection listed below; or
- Choose a course block that includes CSCI 1110 instead of CSCI 1105
Are you interested in advancing in math or math-related fields?
We recommend that our Bachelor of Computer Science students take CSCI 1300 for their calculus requirement.
If, however, you think you are interested in math foundations, are considering taking a math, stats, actuarial science minor, doing a double major with another science discipline, or even considering a minor in a math-rich discipline such as physics, re recommend you select MATH 1000 in place of CSCI 1300 in your first year schedule.
Option 1: Register for a block of classes
We've created some pre-packaged schedules - meaning that you register in a block of courses - that includes all your courses, labs, and tutorials with no risk of overlapping.
To register
1. From the Registration screen on DalOnline, choose Block Registration.
2. Select the Term you wish to register for.
- 2022/2023 Fall
- 2022/2023 Winter
3. Select the radio button for your program then click on Register at the bottom
of the page. You can also select Add to worksheet, which will add the CRN's for the
courses to your Add/Drop page.
Please remember to register for both terms! We've set the blocks up in pairs for the Fall and Winter term. As an example, if you pick option BCS - Year 1A in the Fall, then the best match in the Winter term will also be option BCS - Year 1A.
You'll be able to access all BCS options together through DalOnline. Examples are listed below:
Please note:
- Most of the blocks have four courses to allow you to either add an elective of your choice or to take one less course each term during your first year.
- If you want to make a change later, you can drop or change an individual class.
- If one of the courses in your chosen course block is full, the course block will no longer work. If this happens, you can use the block as a guide and individually register for each course. As always, please connect with an advisor at undergrad@cs.dal.ca if you need any help.
Option 2: Design your own schedule using our suggestions (Fall 2022 Start)
Based on our experience, we've created suggestions to help you create a schedule that makes sense for you and your interests.
Simply choose the commonly-used schedule that best suits you below.
(See above to determine which might be the right option for you)
No prior programming expereince:
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. |
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
Option 2: Design your own schedule using our suggestions (Winter 2023 Start)
Based on our experience, we've created suggestions to help you create a schedule that makes sense for you and your interests.
Simply choose the commonly-used schedule that best suits you below.
(See above to determine which might be the right option for you)
No prior programming expereince
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
Need help? Connect with an advisor.
We have dedicated academic advisors ready to assist you at undergrad@cs.dal.ca.
You can also book an appointment.
Have a question? We've got you.
We've compiled some of the frequently asked questions that we hear from our first year students.
Frequently Asked Questions from First Year Students
Am I expected to know how to program before I get to Dal?
You do not need previous coding or programming experience to start in CSCI 1105. The basic knowledge and concepts will be taught in the first year and we have many supports in place for students that require extra help.
If you do have prior programming experience, you can start your degree in CSCI 1110.
Do I need to have my own laptop?
A large proportion of laboratories are scheduled in classrooms that are not equipped with desktop computers. There are many work stations available for portable devices, while a limited number have desktops machines available for homework use.
Read about the laptops we recommend.
What operating system / programs should I have on my computer?
We recommend that you choose an operating system in which you are comfortable. We aim to use programming languages and software that is available on most platforms. When a specialized operating system is needed, Computer Science has computers that run both Windows and Mac OSX available to students. Students can also log in to our main Linux server to complete their work.
Where can I find more information about my courses?
The academic calendar provides the official information all computer science courses.
What can I do if the class that I want is full?
The process for registering in full classes at Dal varies by faculty and department. In computer science, all class size enrolments are managed by the Dean’s Office.
When a class that you want is full, add yourself to the class waiting list. As seats become available, seats will be made available to students on the wait list. CS students are given priority to available seats in CS courses.
What elective should I take?
This question is common and has no single answer. Recommending a public speaking course might be a great suggestion to one student and a terrifying suggestion to another. The best approach is to discuss options with an advisor after first having thought through:
- What topics interest you (beyond just computing)
- What topics do you not enjoy
- Are you looking to explore new topics or stay among topics that you already know about
- Are you looking to get more depth in a particular area, possibly going to a minor, or do you want to take whatever looks interesting at the time?
With what other programs at Dal can I combine my studies?
You can combine your BACS or BCS degrees with any of the minors listed.
Students who want to consider a double major or combined honours can do so under the BSc and BA umbrellas with any of the programs in the Faculty of Science or the Faculty of Arts and Social Science. Please connect with an advisor to discuss these options.
When and how do I apply for co-op?
Apply for co-op at the end of your first year.
Applications can be processed as late as the start of September of your second year.
Apply by submitting a study plan in the "myCareer" section of myDal and registering for CSCI 8890 in the fall term of your second year.
Is there an honours program? When should I apply?
You can complete an honours degree in the Bachelor of Computer Science program.
You should begin to plan for the honours program as you enter your third year. It is still possible to enter as late as the start of fourth year.
As always, our advisors are here to help if you didn't find an answer to your question.