Academic Calendar

Computer Science - Bachelor of Science

Overview

Whether you’re interested in programming, networking or harnessing the power of big data, computer science is about connecting people and technology to solve real-world problems. You’ll learn from faculty with diverse interests – from artificial intelligence and virtual reality to cyber security and machine learning – in small classes and labs.

During your studies you’ll have opportunities to apply your knowledge in projects that have you working with community partners, not-for-profit organizations and other university faculties in ways that build your professional network and leave you engaged, confident and job-ready.

Choose to pursue a general computer science major that is flexible and allows you to create a focus that reflects your interests, or focus on one of three streams: database and interactive visualization, system and information security, or video gaming.

Contact Information

Department of Computer Science
Room 5-173, City Centre Campus
10700 - 104 Avenue
Edmonton, AB T5J 4S2
T: 780-497-4484

Arts and Science Academic Advising
Room 6-211, City Centre Campus
T: 780-497-4505
E: artsandscience@macewan.ca

Bachelor of Science

Faculty of Arts and Science
MacEwan.ca/Science

The Bachelor of Science (BSc) is a foundational general degree that provides broad and widely applicable knowledge and abilities rather than a niche specialization. This broad base equips graduates with generalist knowledge and skills that give the flexibility and agility so highly valued in a dynamic world economy. It also offers students a solid foundation to specialize in future employment or further schooling.

The degree provides a breadth of study across various Arts and Science disciplines and sets the foundation for later years. The major and minor areas of study allow students to focus and gain in-depth expertise in complementary or entirely disparate disciplines; there is a wide array of possible combinations. Finally, options enable students to explore courses outside their disciplines or even within their program, enhancing their diversity of learning. The small classes, close interaction between instructors and students, opportunities for individual study, and faculty with a strong focus on teaching are signature strengths of this program.

General Program Information

The BSc requires students to complete 120 credits of non-duplicative coursework. The BSc emphasizes breadth and depth and has been designed for exceptional flexibility and customization. Students can complete a major and a minor, a double major, or a major and two minors. Students can choose a secondary major in an Arts or Science discipline, but the primary major must be in a Science discipline.

All newly admitted students enter the BSc program as “Undeclared.”  Undeclared means a student has not yet chosen their major(s) and minor(s). Students may declare at any time after being accepted to the BSc, and typically, they declare after completing a minimum of 45 credits. The declaration period for noncompetitive majors and minors is between September 1 and February 15 and between September 1 and January 15 for competitive majors and minors. The Arts and Science Academic Advising Office will send information about majors and minors via email and newsletters; please contact the Advising Office if you require further assistance with this decision.

Science Disciplines

Discipline Major Minor Honours
Applied Statistics ⦿ - ⦿
Biological Sciences ⦿ ⦿ ⦿
Chemistry ⦿ ⦿ -
Computer Science ⦿ ⦿ -
Earth and Planetary Sciences - ⦿ -
Environmental Sciences - ⦿ -
Mathematics ⦿ ⦿ ⦿
Mathematical Sciences ⦿ - -
Planetary Physics - ⦿ -
Physical Sciences ⦿ - -
Physics - ⦿ -
Psychology ⦿ ⦿ ⦿
Statistics - ⦿ -

Arts Disciplines

Discipline Major Minor
Anthropology ⦿ ⦿
Classics ⦿
Creative Writing ⦿
Economics ⦿ ⦿
English ⦿ ⦿
Film Minor for Arts and Science ⦿
French ⦿
Gender Studies ⦿
History ⦿ ⦿
Philosophy ⦿ ⦿
Political Science ⦿ ⦿
Sociology ⦿ ⦿
Spanish ⦿

Out of Faculty Minors

Discipline Minor
Accounting Minor for Arts and Science ⦿
Arts and Cultural Management ⦿
Business Law ⦿
Business Studies ⦿
Digital Experience Design ⦿
Finance Minor for Arts and Science ⦿
Human Resources Minor for Arts and Science ⦿
Marketing Minor for Arts and Science ⦿

Laddering a Diploma into the Bachelor of Science

Students with an accredited diploma can ladder into the Bachelor of Science (BSc) and use some of their diploma coursework towards their degree requirements. If you have questions about the diploma laddering process, please visit www.macewan.ca/bscstudent or contact artsandscience@macewan.ca.

Preparing for Professional Studies

Students intending to enter professional programs at other universities can take their pre-professional programs in the Faculty of Arts and Science at MacEwan University. The university offers the first and second years of several pre-professional programs, including chiropractic medicine, dental hygiene, dentistry, medical laboratory science, medicine, optometry, pharmacy, and veterinary medicine. All courses in these pre-professional programs are credit courses, and, as such, they may apply to the degrees offered by MacEwan University.

Students are advised to consult the admissions requirements for the universities and programs of their choice and to select their MacEwan University courses accordingly. Completing pre-professional courses at MacEwan University does not guarantee admission to the subsequent professional program. Each professional program requires a separate application, and entry is competitive, not automatic.

Degree Requirements

Breadth Requirements 

All Bachelor of Science degrees require Breadth Requirements. Courses can satisfy both the breadth requirements and requirements for the major(s), minor(s), Honours, or options. BIOL, CHEM, EASC, or PHYS courses must include a laboratory component.

Breadth Element Description Credits
Biological or Earth and Planetary Sciences BIOL or EASC (not including BIOL 101, BIOL 102, or BIOL 103) 6
Chemistry or Physics CHEM or PHYS 6
English ENGL 102 and 3 credits in university English (not including ENGL 111, ENGL 108, or ENGL 211) 6
Humanities CLAS, COMP, HIST, HUMN, PHIL or a language other than English 6
Mathematical Sciences One of MATH 114, MATH 120, or MATH 125, and 3 credits in MATH, STAT, or CMPT (not including MATH 160, MATH 170, or CMPT 104) 6
Social Sciences ANTH, ECON, GEND, LING, POLS, PSYC, or SOCI 6

Bachelor of Science Degree

Program Element Description Credits
Primary Major The Science major will range from 42 to 60 credits with a minimum 36 credits taken at the senior-level.1 42-60
Secondary Major or Minor(s) Students have the option of completing a second Science or Arts major, or one or two minors. Minor courses must be completed at the senior-level.1 18-60
Options Students can complete up to 18 credits in out-of-faculty options, with no more than 3 credits in physical activity (PACT) courses Up to 60
Total Degree Credits Including Breadth 120
1

Multi-disciplinary majors consist of 60-72 junior- and senior-level credits. Students majoring in mathematical or physical sciences may pursue a minor but are not required to do so.

Bachelor of Science Honours 

Program Element Description Credits
Minimum Honours Requirements Honours requirements are determined by each discipline. 63
Option Courses, Non-Compulsory Honours Courses, and/or a Minor Students have the option of completing a minor from outside of the Honours discipline. Some disciplines may require a minor. 57
Total Degree Credits Including Breadth 120

The minimum passing grade for a course at MacEwan University is a D unless otherwise noted next to the appropriate course in the program of study. In the Faculty of Arts and Science, students typically require a minimum grade of C- to use a course as a prerequisite. Please check course descriptions for more information.

Cross-Faculty Course Recognitions 

Cross-Faculty course recognition represents an agreement between programs within MacEwan University and consists of a number of approved courses that have the potential to be recognized within another degree. These courses are not considered transfers or equivalents as the original course will show within a student's transcript and their Academic Planning and Progress Report (APPR). How the courses listed below might be used within a student’s degree are determined by the student’s program of study. They are dependent on a number of factors including year of declaration, year of completion, and individual program requirements.

Out-of-Faculty Course Course Recognition Course Used For
ACUP 117 ARTOP 1XX Options; fulfills Humanities Breadth
ACUP 209 SCIOP 2XX Options
ACUP 220, ACUP 303, and ACUP 304 (must complete all three courses) COSL 200 (6 credits) Options
ACUP 320 SCIOP 3XX Options
AGAD 300 COSL 300 Options
AGAD 435 WINL 300 Options
ARTE 104 ARTOP 1XX Options; fulfills Humanities Breadth
ARTE 214 ARTOP 2XX Options; fulfills Humanities Breadth
ARTE 224 ARTOP 2XX Options; fulfills Humanities Breadth
ARTE 234 ARTOP 2XX Options; fulfills Humanities Breadth
ARTE 304 ARTOP 3XX Options; fulfills Humanities Breadth
ARTE 314 ARTOP 3XX Options; fulfills Humanities Breadth
ARTE 324 ARTOP 3XX Options; fulfills Humanities Breadth
CORR 102 SOCI 1XX Options or Sociology program requirements; fulfills Social Science Breadth
CORR 104 SOCI 1XX Options or Sociology program requirements; fulfills Social Science Breadth
CORR 110 SOCI 225 Options or Sociology program requirements; fulfills Social Science Breadth
CORR 120 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CORR 202 ARTOP 2XX Options
CORR 208 ARTOP 2XX Options
CORR 214 COSL 200 Options
CORR 218 SOCI 321 Options or Sociology program requirements; fulfills Social Science Breadth
CORR 224 COSL 200 Options
CYCW 100 PSYC 2XX Options or Psychology program requirements; fulfills Social Science Breadth
CYCW 108 and CYCW 112 SOCI 1XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 115 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 114 ARTOP 1XX Options
CYCW 201 PSYC 2XX Options or Psychology program requirements; fulfills Social Science Breadth
CYCW 204 COSL 200 Options
CYCW 205 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 206 ARTOP 2XX Options
CYCW 208 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 211 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 302 ARTOP 3XX Options; fulfills Social Science Breadth
CYCW 303 ARTOP 3XX Options; fulfills Social Science Breadth
CYCW 339 ARTOP 3XX Options; fulfills Social Science Breadth
CYCW 340 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 350 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 360 SOCI 3XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 361 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
CYCW 466 ARTOP 4XX Options
DESN 270 ARTOP 2XX Options; fulfills Humanities Breadth
DESN 271 ARTOP 2XX Options; fulfills Humanities Breadth
ECCS 110 PSYC 1XX Options or Psychology program requirements; fulfills Social Science Breadth
ECCS 115 ARTOP 1XX Options
ECCS 160 PSYC 2XX Options or Psychology program requirements; fulfills Social Science Breadth
ECCS 180 SOCI 2XX Options or Sociology program requirements; fulfills Social Science breadth
ECCS 220 COSL 200 Options
ECCS 255 ARTOP 2XX Options
ECCS 260 SOCI 2XX Options or Psychology program requirements; fulfills Social Science Breadth
ECCS 270 COSL 200 Options
ECCS 310 SOCI 3XX Options or Sociology program requirements; fulfills Social Science Breadth
ECCS 355 SOCI 3XX Options or Sociology program requirements; fulfills Social Science Breadth
ECCS 360 SOCI 3XX Options or Sociology program requirements; fulfills Social Science Breadth
ECCS 425 SOCI 4XX Options or Sociology program requirements; fulfills Social Science Breadth
ECDV 160 ARTOP 1XX Options
ECDV 220 COSL 200 Options
ECDV 255 ARTOP 2XX Options
ECDV 260 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
ECDV 270 COSL 270 Options
ECDV 280 PSYC 2XX Options or Psychology program requirements; fulfills Social Science Breadth
FNCE 301 ECON 3XX Options or Economics program requirements; fulfills Social Science Breath
HAPR 101 SCIOP 1XX Options
HAPR 104 ARTOP 1XX Options
HAPR 114 WINL 200 Options
HAPR 201 ARTOP 2XX Options
HAPR 212 WINL 200 Options
HEED 110 ARTOP 1XX Options
HEED 120 SCIOP 1XX Options
HLSC 104 SCIOP 1XX Options
HLSC 105 SCIOP 1XX Options
HLSC 120 BIOL 1XX Options or Biological Sciences program requirements
HLSC 124 BIOL 1XX Options or Biological Sciences program requirements
HLSC 126 BIOL 1XX Options or Biological Sciences program requirements
HLSC 128 BIOL 2XX Options or Biological Sciences program requirements
HLST 150 SCIOP 1XX Options
HLST 210 ARTOP 2XX Options
HLST 290 SCIOP 1XX Options
INFM 101 ARTOP 1XX Options
INFM 202 ARTOP 2XX Options
INFM 208 ARTOP 2XX Options
INFM 209 ARTOP 2XX Options
INFM 210 ARTOP 2XX Options
INFM 260 COSL 200 Options
INTA 210 ARTOP 2XX Options; fulfills Humanities Breadth
INTA 362 ARTOP 3XX Options
MTST 120 BIOL 1XX Options or Biological Sciences program requirements
MTST 122 BIOL 1XX Options or Biological Sciences program requirements
MTST 125 BIOL 1XX Options or Biological Sciences program requirements
MTST 126 BIOL 1XX Options or Biological Sciences program requirements
MTST 161, MTST 162, MTST 260, MTST 261, MTST 262 COSL 200 Options
MUSC 104 ARTOP 1XX Options
MUSC 123 ARTOP 1XX Options; fulfills Social Science Breadth
MUSC 124 ARTOP 1XX Options; fulfills Social Science Breadth
PEDS 100 BIOL 1XX Options or Biological Sciences program requirements
PEDS 101 BIOL 1XX Options or Biological Sciences program requirements
PEDS 103 BIOL 2XX Options or Biological Sciences program requirements
PEDS 109 SCIOP 1XX Options
PEDS 200 BIOL 2XX Options or Biological Sciences program requirements
PEDS 203 SCIOP 2XX Options
PEDS 206 BIOL 2XX Options or Biological Sciences program requirements
PEDS 207 BIOL 2XX Options or Biological Sciences program requirements
PEDS 209 ARTOP 2XX Options
PEDS 240 SCIOP 1XX Options
PERL 104 ARTOP 1XX Options
PERL 204 ARTOP 2XX Options
PERL 207 ARTOP 2XX Options
PSSC 102 ARTOP 1XX Options
PSSC 112 ARTOP 1XX Options
PSSC 121 SOCI 1XX Options or Sociology program requirements; fulfills Social Science Breadth
PSSC 203 ARTOP 2XX Options
PSSC 204 ARTOP 2XX Options
PSSC 212 ARTOP 2XX Options
PSSC 252 ARTOP 2XX Options
PSSC 253 ARTOP 2XX Options
PSSC 272 COSL 200 Options
PSSC 273 COSL 200 Options
SOWK 101 ARTOP 1XX Options; fulfills Humanities Breadth
SOWK 111 ARTOP 1XX Options
SOWK 112 ARTOP 1XX Options
SOWK 203 ARTOP 2XX Options
SOWK 204 SOCI 2XX Options or Sociology program requirements; fulfills Social Science Breadth
TAST 101 ARTOP 1XX Options
TAST 129 and TAST 130 COSL 200 Options
THAR 240 ARTOP 2XX Options
THAS 101 ARTOP 1XX Options
THAS 102 SCIOP 1XX Options
THAS 115 ARTOP 1XX Options
THAS 203 COSL 200 Options
THAS 210 COSL 200 Options
THAS 211 COSL 200 Options
THAS 214 COSL 200 Options
THAS 222 ARTOP 2XX Options
THPR 205 ARTOP 2XX Options; fulfills Humanities Breadth
THPR 206 ARTOP 2XX Options; fulfills Humanities Breadth
THPR 214 COSL 200 Options
THPR 224 COSL 200 Options

Computer Science Requirements

Computer Science Major

Computer Science Minor

Computer Science Major

The Bachelor of Science (BSc) in Computer Science program requires students to complete 120 credits of non-duplicative coursework. In addition to the Computer Sciences Major, students will complete one of the following:

  • one minor,
  • two minors, or
  • a secondary Science major

Students are required to complete option courses as well as the major(s) and minor(s). All BSc degrees require Breadth Requirements. Courses can satisfy both the breadth requirements and requirements for the major(s), minor(s), or options.

The Computer Science major is 42 to 60 credits with a minimum of 36 senior-level credits. Students majoring in Computer Science have the option of completing the General Computer Science Major, the Database and Interactive Visualization Stream, the System and Information Security Stream, or the Video Gaming Stream.

To declare the Computer Science Major, students need to have successfully completed MATH 114 and have completed or be currently enrolled in CMPT 200. The deadline to declare is January 15 and students will be notified by February 1.

Notes:

Bachelor of Science - Computer Science Major
Specific Major Requirements
CMPT 103Introduction to Computing II3
CMPT 200Data Structures and Algorithms3
CMPT 201Practical Programming Methodology3
CMPT 395Introduction to Software Engineering3
CMPT 496Final Project3
or CMPT 497 Computer Science Internship
Choose 6 credits from the following:6
Algorithms I
Computer Organization and Architecture
Introduction to Human Computer Interaction
Introduction to Computer Security
Introduction to File and Database Management
Choose 6 credits from the following:6
Introduction to Object-Oriented Programming
Non-Procedural Programming Languages
Web Application Development
Introduction to Real Time Gaming
Introduction to Artificial Intelligence
Introduction to Operating Systems
Introduction to Networks
Introduction to Computer Graphics
Computer Systems Security
Database Management Systems
General Major Requirements
Choose 15 to 33 credits from junior- or senior-level CMPT.15-33
Secondary Major or Minor(s)
Students have the option of completing a second Science major, or one or two minors. Minor courses must be completed at the senior-level.18-60
Options
Students can complete up to 18 credits in out-of-faculty options, with no more than 3 credits in physical activity (PACT) courses.0-60
Total Credits120
Bachelor of Science - Computer Science Major, Databases and Interactive Visualization Stream
CMPT 103Introduction to Computing II3
CMPT 200Data Structures and Algorithms3
CMPT 201Practical Programming Methodology3
CMPT 250Introduction to Human Computer Interaction3
CMPT 272Formal Systems and Logic in Computing Science3
CMPT 291Introduction to File and Database Management3
CMPT 395Introduction to Software Engineering3
CMPT 496Final Project3
or CMPT 497 Computer Science Internship
Choose 12 credits from the following:12
Web Application Development
Introduction to Data Visualization
Database Management Systems
Information Visualization
Datamining and Advanced Database Topics
Choose 6 to 24 credits from junior- and senior-level CMPT.6-24
Secondary Major or Minor(s)
Students have the option of completing a second Science major, or one or two minors. Minor courses must be completed at the senior-level.18-60
Options
Students can complete up to 18 credits in out-of-faculty options, with no more than 3 credits in physical activity (PACT) courses.0-60
Total Credits120
Bachelor of Science - Computer Science Major, System and Information Security Stream
CMPT 103Introduction to Computing II3
CMPT 200Data Structures and Algorithms3
CMPT 201Practical Programming Methodology3
CMPT 229Computer Organization and Architecture3
CMPT 280Introduction to Computer Security3
CMPT 360Introduction to Operating Systems3
CMPT 361Introduction to Networks3
CMPT 380Computer Systems Security3
CMPT 395Introduction to Software Engineering3
CMPT 464Wireless Networks and Embedded Systems3
CMPT 480Computer Network Security3
CMPT 496Final Project3
or CMPT 497 Computer Science Internship
Choose 6 to 24 credits from junior- and senior-level CMPT6-24
Secondary Major or Minor(s)
Students have the option of completing a second Science major, or one or two minors. Minor courses must be completed at the senior-level.18-60
Options
Students can complete up to 18 credits in out-of-faculty options, with no more than 3 credits in physical activity (PACT) courses.0-60
Total Credits120
Bachelor of Science - Computer Science Major, Gaming Stream
CMPT 103Introduction to Computing II3
CMPT 200Data Structures and Algorithms3
CMPT 201Practical Programming Methodology3
CMPT 230Introduction to Computer Games3
CMPT 291Introduction to File and Database Management3
CMPT 330Introduction to Real Time Gaming3
CMPT 370Introduction to Computer Graphics3
CMPT 395Introduction to Software Engineering3
CMPT 496Final Project3
or CMPT 497 Computer Science Internship
CRWR 195Introduction to Creative Writing3
or CRWR 295 The Craft of Writing
Choose 3 credits from the following: 3
Introduction to Human Computer Interaction
Introduction to Computer Security
Introduction to Artificial Intelligence
Choose 9 to 27 credits from junior- and senior-level CMPT9-27
Secondary Major or Minor(s)
Students have the option of completing a second Science major, or one or two minors. Minor courses must be completed at the senior-level.18-60
Options
Students can complete up to 18 credits in out-of-faculty options, with no more than 3 credits in physical activity (PACT) courses.0-60
Total Credits120
 

Computer Science Minor

The Computer Science Minor requires 18 senior-level CMPT credits with a minimum of six credits at the 300- or 400-level, excluding CMPT 310 and CMPT 311.
Notes:

Specific Minor Requirements
CMPT 200Data Structures and Algorithms3
Choose 3 credits from the following:3
Practical Programming Methodology
Algorithms I
Computer Organization and Architecture
Introduction to File and Database Management
General Minor Requirements
Choose 12 credits from senior-level CMPT12
Total Credits18

Degree Regulations

Students are strongly encouraged to seek advice from the faculty advisors about program planning.

Academic Residency - Credit Requirements 

In addition to the academic residency requirements of the University, upon admission to the Bachelor of Science (BSc), students must complete at MacEwan University:

  • A minimum of 24 credits at the senior-level in the major discipline, with 12 of those senior credits completed at the 300- or 400-level. All 400-level requirements are to be completed at MacEwan University.
  • If applicable, a minimum of nine credits in a minor at the senior-level, with at least three of those credits completed at the 300- or 400-level.

Students with a previous MacEwan University credential are required to complete a minimum of 45 credits upon admission to the BSc. 

Students who hold a baccalaureate degree from another post-secondary institution must complete a minimum of 60 additional MacEwan University credits applicable to the BSc. Forty-five of these credits must be completed while the students is enrolled in the BSc. This credit requirement applies to students who began their studies at MacEwan University and completed a credential at another institution. 

Students who interrupt their program and who must apply for readmission to the program will be required to comply with any new regulations upon resumption of their studies.

Breadth Requirements 

Courses taken to fulfil the major, minor, or option requirements can also be used to satisfy breadth requirements.

Declaration of a Major and Minor 

Students are advised to declare a primary major and minor, or primary major and a secondary major, or a major and two minors by the time they have completed 45 credits. Primary majors are selected from Science disciplines and consist of 42 to 60 junior- and senior-level credits; secondary majors can be from an Science or Arts discipline. Multi-disciplinary majors consist of 60-72 junior- and senior-level credits. Except for students in an Honours program, a maximum of 60 credits may be completed from any one discipline for credit towards the degree. A major and minor cannot be in the same discipline and students may not declare more than one out-of-faculty minor. Students can re-declare their major(s) and/or minor(s) if required.

For students completing multiple majors or minors, the Faculty cannot guarantee a schedule of classes that will permit students to complete their degree in eight consecutive fall and winter semesters. Furthermore, depending on the configuration of the student's degree, meeting the requirements for the degree may require the completion of more than 120 credits for graduation. Students are strongly encouraged to consult with an academic advisor in the Faculty of Arts and Science Advising Office and a discipline advisor in their major and minor prior to this declaration. Students majoring in mathematical or physical sciences may pursue a minor but are not required to do so.

Restricted Enrolment Courses

The Faculty of Arts and Science strives to accommodate all students wishing to enrol in a given course when it is appropriate to their program: however, classes in some courses must, for academic reasons, be restricted in size. If such a course is found to be oversubscribed, priority in registration will be given to those students whose programs may require it (e.g., majors, Honours, and/or minors) and then to other students as space permits.

Graduation Grade Point Average 

As part of the Graduation Grade Point Average regulation above, Bachelor of Science students must obtain an overall GGPA of 2.0 or higher, with a minimum GPA of 2.0 on all courses credited toward the major(s) and a minimum GPA of 2.0 on all courses credited toward the minor(s).

Graduation Requirements 

Graduation requirements are governed by the date on which a student declares their major(s) and minor(s). Students who declare their major(s) and minor(s) on or before the published deadline are bound by the requirements of the current academic year. Those students who declare after this date are bound by the programs of study and degree requirements of the upcoming academic year as published in the MacEwan Academic Calendar.

Junior - and Senior-Level Courses 

Courses numbered from 100 to 199 are considered junior-level and courses numbered from 200 to 499 are considered senior-level.

Major or Minor 300- and 400- Level Requirements 

The 300- and 400-level requirements in the major or minor cannot consist solely of project, field placement, and/or individual study courses.

Maximum Independent Courses 

The maximum number of credits for independent work (project, field placement, and/or individual study courses) excluding the Honours Thesis, is 15 credits. Specific disciplines may have further restrictions.

Maximum Junior-Level Courses 

A maximum of 48 credits at the 100-level are permitted in completion of the B.Sc. degree. Additional courses at the 100-level are extra to the 120 credits required to complete the B.Sc. degree and will not be counted toward fulfilment of graduation requirements.

Minimum Science Courses 

Students are required to complete successfully a minimum of 72 total credits from Science courses.

Minimum Passing Grade 

A minimum grade of D or credit CR is required for all Science degree courses unless otherwise noted next to the appropriate course in the program of study. 

Minimum Transfer Grade for Credit 

A minimum grade of D is required on any transfer credit granted for the program. Unless otherwise stated, Arts and Science courses require a minimum grade of C- when the course is used as a prerequisite. Transfer credit decisions made by the university are final and cannot be appealed.

Out-of-Faculty Options Requirements 

Students may take a maximum of 18 credits from courses offered by a MacEwan University Faculty or School other than Arts and Science. Students completing an out-of-faculty minor or laddering students who have met the minor requirements with a MacEwan University diploma must complete their degree requirements from courses offered within the Faculty of Arts and Science or from the list of Cross-Faculty Course Recognitions in the Academic Calendar. Courses deemed as Cross-Faculty Course Recognitions are used to fulfill in-Faculty courses within the BSc and do not count as out-of-Faculty options. 

Progression of Studies 

Students are responsible for ensuring they meet the prerequisite and/or co-requisite requirements as noted on all courses that may fulfill Bachelor of Science program requirements.

Honours Regulations

Overall Requirements 

The Honours program of study consists of 63 to 84 credits as determined by the discipline. Students in the Honours program may choose to complete a minor outside of the Honours discipline. Some disciplines may require a minor.

Acceptance to Honours

For consideration of admittance/acceptance into Honours, students must present a minimum of 45 university-level credits applicable to the program of study, with a GPA of 3.0 or higher. They must complete 24 of the 45 credits in the last 12 months; however, exceptions to this rule may occur with the approval of the Honours discipline advisor. Individual departments may have additional requirements noted in their program of study.

Course Load 

Students accepted into an Honours program must complete 24-credits in each twelve consecutive months they are in the program. Exceptions to this rule may occur with the approval of the Honours discipline advisor.

Grade Point Average 

Students accepted and enrolled in the Science Honours program must maintain a minimum overall GPA of 3.0 across all courses in the degree. As well, students must maintain a minimum GPA of 3.3 across a set of courses designated by each discipline for each twelve consecutive months following acceptance into the Honours program. Failure to do so will result in the student’s program status reverting to BSc with a major in the previous Honours discipline.

Graduation Grade Point Average 

In order to graduate, students must obtain an overall GGPA of 3.0 or higher, with a minimum GPA of 3.3 on all courses credited toward the Honours program of study.

Program Learning Outcomes

Faculty of Arts and Science Degree-Level Learning Outcomes

Thinking about knowledge is at the core of University education and learning within the Faculty of Arts and Science. Students develop capacities to “think-through” - to practice wonder, reflection, and engage in thoughtful inquiry and dialogue. Thinking-through involves questioning beyond the confines of one's immediate personal, social, and disciplinary surroundings. First, knowledge is acquired and understood. Learning moves beyond acquiring information and data to a formally disciplined manner of thinking about knowledge. Next, knowledge is interrogated by asking and answering questions, distinguishing between opinion and knowledge, and developing tools to assess reasons and evidence. Finally, knowledge is synthesized as students develop coherent arguments, and link ideas together beyond what is immediately apparent. Learning is a lifelong creative process of discovery and action that happens beyond the classroom and the degree. Our graduates interact with and contribute to their community by integrating and applying the research and communication skills and ways of knowing developed through their education. Learning outcomes capture the observable knowledge, skills, and abilities graduates acquire that are the foundation of learning.

Graduates will demonstrate their ability to “think-through” by:

  1. Analysing puzzles, problems, concepts, and theories.
  2. Conceptualizing questions based on disciplinary knowledge.
  3. Evaluating knowledge within and across disciplines in ways that acknowledge historical, cultural, and social contexts.

Graduates will demonstrate research and scholarship skills by:

  1. Applying appropriate research skills and ethical principles.
  2. Interpreting results appreciating the value and limits of conclusions.
  3. Recognizing how research involves an ongoing process of reflection, dialogue, and reassessment.

Graduates will demonstrate diverse skills for communication by:

  1. Conveying complex ideas coherently in a variety of formats.
  2. Appraising information in ways that consider context and audience.
  3. Interpreting the ideas and arguments of others in ways that reflect their knowledge, judgement, and comprehension.

Graduates will demonstrate durable skills necessary for learning beyond their degree by:

  1. Collaborating with diverse groups.
  2. Examining different perspectives and challenging biases and preconceptions.
  3. Exploring the continuous impact and limitations of disciplinary knowledge and expertise.

Computer Science Major Learning Outcomes

Graduates of MacEwan University’s Computer Science program will be able to:

1) Utilize programming skills with different technologies

  1. Modularize a solution into implementable components
  2. Write programs in three or more industry-relevant languages
  3. Write a program that implements a specified algorithm
  4. Find and resolve problems/errors in code (debugging)
  5. Write tests to verify that a solution meets specification (testing)
  6. Apply language-specific standards when programming

2) Judge the quality of a technical solution

  1. Evaluate that solutions meet current and future requirements
  2. Evaluate and select technologies that best fit the solutions
  3. Appraise functional and non-functional (business, legal, ethical, performance, security) requirements
  4. Examine the quality of technical solutions from Human-Computer Interaction (design and usability) and Software Engineering (maintainability and sustainability) perspectives.

3) Justify their choice of data structure(s), programming paradigm(s), and algorithm(s) when solving problems

  1. Adopt existing data structures to solve problems
  2. Evaluate algorithms and data structure in terms of memory, efficiency, and speed
  3. Compare and contrast various implementation approaches (languages, OS, platforms, etc.)

4) Create a computational method or algorithm that achieves specified outcomes

  1. Identify the algorithm category of a problem
  2. Identify subtasks within an algorithm
  3. Design tests that verify the algorithm meets specified outcomes
  4. Evaluate the complexity of an algorithm

5) Communicate technical information using a variety of media to a standard of excellence consistent with established best practices

  1. Write accurate and thorough documentation for a technical solution according to standards
  2. Convey the appropriate representation (written, graph, diagram, table, video, animation, etc.) to convey information
  3. Read and summarize technical information
  4. Express concepts at different levels of knowledge for a variety of audiences (business, technical, public)

Student Plan

  • The student plan provides a suggest course sequence with the minimum number of credits required for the major
  • The suggested course sequence depends on course availability, the student's schedule, and the student's choice of minor(s) or secondary major
  • It is highly recommended that students complete their Breadth Requirements by the end of year 2
  • The student plans list CMPT 101 as a requirement of the Computer Science program. Students who have CMPT 101 or its equivalent can take an additional 3 credits (1 course) of senior-level CMPT in year 3 or 4
  • Students can complete a maximum of 9 credits (3 courses) of independent work from CMPT 398, CMPT 496, and CMPT 498 to fulfill senior-level requirements of the Computer Science major

Computer Science Major

Year 1Credits
CMPT 1013
CMPT 1033
MATH 1143
MATH 1203
ENGL 1023
Breadth Requirements15
 30
Year 2Credits
CMPT 2003
CMPT 2013
Choose 6 credits (2 courses) from the following:6
STAT 1513
Breadth, Option, Minor(s), or Primary or Secondary Major Requirements15
 30
Year 3Credits
CMPT 3953
Choose 6 credits (2 courses) from the following:6
Choose 3 credits (1 course) from senior-level CMPT3
Options, Minor(s), or Primary or Secondary Major Requirements18
 30
Year 4Credits
Choose 3 credits (1 course) from the following:3
Choose 9 credits (3 courses) from senior-level CMPT9
Options, Minor(s), or Primary or Secondary Major Requirements18
 30
Total Credits 120

Computer Science Major, Databases and Interactive Visualization Stream

Year 1Credits
CMPT 1013
CMPT 1033
MATH 1143
MATH 1203
ENGL 1023
Breadth Requirements15
 30
Year 2Credits
CMPT 2003
CMPT 2013
CMPT 2503
CMPT 2723
CMPT 2913
STAT 1513
Options, Minor(s), or Primary or Secondary Major Requirements12
 30
Year 3Credits
CMPT 3153
CMPT 3513
CMPT 3913
CMPT 3953
Options, Minor(s), or Primary or Secondary Major Requirements18
 30
Year 4Credits
Choose 3 credits (1 course) from the following:3
Choose 3 credits (1 course) from the following:3
Choose 3 credits (1 course) from senior-level CMPT3
Options, Minor(s), or Primary or Secondary Major Requirements21
 30
Total Credits 120

Computer Science Major, System and Information Security Stream

Year 1Credits
CMPT 1013
CMPT 1033
MATH 1143
MATH 1203
ENGL 1023
Breadth Requirements15
 30
Year 2Credits
CMPT 2003
CMPT 2013
CMPT 2293
CMPT 2803
STAT 1513
Options, Minor(s), or Primary or Secondary Major Requirements15
 30
Year 3Credits
CMPT 3603
CMPT 3613
CMPT 3803
CMPT 3953
Options, Minor(s), or Primary or Secondary Major Requirements18
 30
Year 4Credits
CMPT 4643
CMPT 4803
Choose 3 credits (1 course) from the following:3
Choose 3 credits (1 course) from senior-level CMPT3
Options, Minor(s), or Primary or Secondary Major Requirements18
 30
Total Credits 120

Computer Science Gaming Stream

Year 1Credits
CMPT 1013
CMPT 1033
MATH 1143
MATH 1203
ENGL 1023
Breadth Requirements15
 30
Year 2Credits
CMPT 2003
CMPT 2013
CMPT 2303
CMPT 2913
Choose 3 credits (1 course) from the following:3
STAT 1513
Options, Minor(s), or Primary or Secondary Major Requirements12
 30
Year 3Credits
CMPT 3303
CMPT 3703
CMPT 3953
Choose 3 credits (1 course) from the following:3
Options, Minor(s), or Primary or Secondary Major Requirements18
 30
Year 4Credits
Choose 3 credits (1 course) from the following:3
Choose 6 credits (2 courses) from senior-level CMPT6
Options, Minor(s), or Primary or Secondary Major Requirements21
 30
Total Credits 120

Expected Course Offerings

Following is a list of expected course offerings for fall 2024 and winter 2025. We will update the list with expected courses scheduled for fall 2025 and winter 2026 in February 2024. While some might change, students can be assured that required courses will be available.

Fall 2024
Introduction to Computing I
Introduction to Computing II
Data Structures and Algorithms
Practical Programming Methodology
Unix, Scripting, and Other Tools
Introduction to Computer Games
Introduction to Human Computer Interaction
Formal Systems and Logic in Computing Science
Introduction to File and Database Management
Introduction to Object-Oriented Programming
Computers and Society
Introduction to Numerical Methods
Introduction to Operating Systems
Introduction to Networks
Introduction to Computer Graphics
Cryptology from Classical to Post-Quantum
Introduction to Software Engineering
Topics in Computer Science
3D Game Development and Artificial Intelligence
Computer Network Security
Datamining and Advanced Database Topics
Winter 2025
Introduction to Computing I
Introduction to Computing II
Data Structures and Algorithms
Practical Programming Methodology
Algorithms I
Computer Organization and Architecture
Introduction to Human Computer Interaction
Formal Systems and Logic in Computing Science
Introduction to Computer Security
Introduction to Robotics: Programming and Control
Web Application Development
Introduction to Real Time Gaming
Introduction to Data Visualization
Introduction to Artificial Intelligence
Introduction to Operating Systems
Introduction to Networks
Computer Systems Security
Database Management Systems
Introduction to Software Engineering
Topics in Computer Science
Introduction to Machine Learning
Wireless Networks and Embedded Systems
 

Admission Requirements

Applicants may be admitted to one of the following:

Regular Admission

To be evaluated through the Office of the University Registrar

Applicants must have a minimum overall average of 65 percent, with no course grade lower than 50 percent, in the following high school courses:

  1. ELA 30-1
  2. Mathematics 30-1
  3. Two of Biology 30, Chemistry 30, Mathematics 31, Physics 30, or Computing Science-Advanced Career and Technology Studies (5 credits)
  4. One subject from Group A, B, C or D

Notes:

  • A maximum of one Group D subject may be presented. Group D subjects used for admission must be 5-credit or any credit combination of at least 5 credits (e.g., two 3-credit subjects).

Applicants with nine to 23 university-level credits must also present a minimum Admission Grade Point Average (AGPA) of 2.0 on a 4.0 scale. Applicants with 24 or more university-level credits will be considered under Previous Post-Secondary Work.

Mature Admission

To be evaluated through the Office of the University Registrar

Applicants must be Canadian Applicants, 20 years of age or older, and have been out of full-time high school at least one year by the beginning of the intake term. Applicants must have a minimum overall average of 60 percent, with no course grade lower than 50 percent, in the following high school courses:

  1. ELA 30-1
  2. Mathematics 30-1
  3. Two of Biology 30, Chemistry 30, Mathematics 31, Physics 30, or Computing Science-Advanced Level Career and Technology Studies (5 credits)

Applicants with nine to 23 university-level credits must also present a minimum Admission Grade Point Average (AGPA) of 2.0 on a 4.0 scale. Applicants with 24 or more university-level credits will be considered under Previous Post-Secondary Work.

Previous Post-Secondary Work 

To be evaluated through the Office of the University Registrar

Admission in this category does not imply or guarantee the transfer of any coursework and/or credential unless a block transfer agreement (internal or external) is in effect and published in the calendar by the Office of the University Registrar. In addition, transfer of coursework does not imply or guarantee that an applicant will be admitted.

Applicants must have successfully completed the following:

  • A minimum of 24 university-level credits, from a recognized institution, with a minimum Admission Grade Point Average (AGPA) of 2.0 on a 4.0 scale.
  • The required mathematics and science courses listed under the Regular or Mature Admission category.

Additional Admission Criteria

All applicants must meet the following:

1. English Language Proficiency

To be evaluated through the Office of the University Registrar

Applicable to All Admission Categories

All applicants must meet an acceptable level of English language proficiency. We will require official documents such as high school or post-secondary transcripts or proof of successful completion of standardized language evaluation. Full details are available in MacEwan University’s academic calendar or online at MacEwan.ca/ELP.

2. Other Admission Criteria

To be evaluated through the Office of the University Registrar

Applicable to All Admission Categories

Applicants who have been assigned two unsatisfactory academic records within the past five years will not be considered for admission or re-admission to the program until a minimum three years from the date of the assignment of the last unsatisfactory academic record. For the purpose of admission or re-admission, an unsatisfactory record is defined as a transcript with the notation ‘required to withdraw’ or equivalent.

Computer Science Courses

CMPT 101
Introduction to Computing I
3 Credits          Weekly (3-3-0)

This course provides a breadth-first introductory treatment of concepts in computing science for students with little or no programming background. Topics include data representation and machine architecture; algorithms and their properties; the control constructs of sequence, selection, and repetition; functions; and the notions of data type and operations on data types in low-level and high-level programming languages. Students do introductory programming for a portion of the course. Note: Students with no previous computing experience should enrol in CMPT 101 instead of CMPT 103. Credit cannot be obtained for CMPT 101 if credit has already been granted for CMPT 103.

CMPT 103
Introduction to Computing II
3 Credits          Weekly (3-3-0)

This course continues the overview of computing science concepts that was started in CMPT 101. Topics include representation of compound data using abstraction, programming languages, and modularity; algorithms that use these data structures; and networks with the TCP/IP model and client/server architecture. Students continue with the syntax of a high-level programming language: functions, arrays, and user-defined data types.

Prerequisites: A minimum grade of C- in CMPT 101 or ENCP 100 or three credits of intermediate CSE including CSE 2120.

CMPT 104
Fluency with Information Technology
3 Credits          Weekly (3-0-0)

This course introduces fundamental computational concepts.  While some specific productivity software is covered, this is not a computer literacy course.  The emphasis is on the concepts that underlie today's information infrastructure.  Topics include abstraction, data representation and analysis, algorithms and algorithmic thinking, the Internet, and security.

CMPT 200
Data Structures and Algorithms
3 Credits          Weekly (3-3-0)

This course continues the study of dynamic data structures (e.g., lists, stacks, queues, trees, and dictionaries) and associated algorithms (e.g., traversal, sorting, searching, element addition and removal). Recursion is covered, and some of the basic ideas of object-oriented programming, such as classes and objects, are introduced.

Prerequisites: Minimum grade of C- in CMPT 103.

CMPT 201
Practical Programming Methodology
3 Credits          Weekly (3-3-0)

This course provides an introduction to the principles, methods, tools, and practices of the professional programmer. The lectures focus on best practices in software development and the fundamental principles of software engineering. The laboratories offer an intensive apprenticeship to the aspiring software developer. Students use C and the software development tools of the UNIX environment.

Prerequisites: Minimum grade of C- in CMPT 200.

CMPT 204
Algorithms I
3 Credits          Weekly (3-0-1)

This is a first course on algorithm design and analysis with an emphasis on fundamentals of searching, sorting and graph algorithms. Examples of methodologies considered include divide and conquer, dynamic programming, and greedy methods, together with analysis techniques to estimate program efficiency.

Prerequisites: Minimum grade of C- in CMPT 200 and CMPT 272 or MATH 200 and MATH 113 or MATH 114 (Note: CMPT 272 is preferred to MATH 200).

CMPT 220
Unix, Scripting, and Other Tools
3 Credits          Weekly (3-2-0)

The student is introduced to a Unix-like operating system along with some of its important design features, such as processes, pipes, and the I/O model. Some of the basic tools and methodologies are discussed, including shell scripts, editors, and standard utilities. Various open source tools are surveyed.

Prerequisites: Minimum grade of C- in CMPT 200.

CMPT 229
Computer Organization and Architecture
3 Credits          Weekly (3-3-0)

This course provides a general introduction to number representation, the architecture and organization concepts of von Neumann machines, assembly level programming, exception handling, peripheral programming, floating point computations, and memory management.

Prerequisites: Minimum grade of C- in CMPT 200.

CMPT 230
Introduction to Computer Games
3 Credits          Weekly (3-0-0)

This course is an introduction to various aspects of computer game design and marketing. It focuses on the history of computer games, computer game markets, evaluation of computer games, creation and testing of interactive narratives, and game interface design. The course includes a final capstone design for an interactive (narrative) game. Note: This course has a significant writing component; students are advised to take ENGL 102 (or equivalent) prior to taking this course.

Prerequisites: Minimum grade of C- in any CMPT or ENGL course or in either PSYC 104 or PSYC 105.

CMPT 250
Introduction to Human Computer Interaction
3 Credits          Weekly (3-2-0)

This course introduces students to the basic components of the interaction design process. Effective user interaction design emphasizes the importance of good interfaces and the relationship of user interface design to human-computer interaction (HCI). The concept of interaction is introduced with a focus on the centrality of the user in HCI. Other topics include interface and interaction types, data gathering and analysis to understand and solve the design problem; design requirements, prototyping and usability testing. The lab allows the students to apply the concepts, tools and methods, discussed in lecture, towards the major course project. Note: In addition to the prerequisite, it is recommended that students taking this course have completed an additional computing science course or an introductory course in psychology, sociology, or anthropology. Note: Students who have received credit in DESN 240 or DESN 242 will not receive credit for CMPT 250.

Prerequisites: A minimum grade of C- in CMPT 101 or CMPT 103.

CMPT 272
Formal Systems and Logic in Computing Science
3 Credits          Weekly (3-2-1)

This course provides an introduction to the tools of set theory, logic, and induction, and their use in the practice of reasoning about algorithms and programs. Topics include basic set theory, the notion of a function, counting, propositional and predicate logic and their proof systems, and inductive definitions and proofs by induction.

Prerequisites: A minimum grade of C- in CMPT 101 or CMPT 103 or CMPT 200 and a minimum grade of C- in MATH 114 and C- in MATH 120 or MATH 125.

CMPT 280
Introduction to Computer Security
3 Credits          Weekly (3-1-0)

Students are introduced to computer and network security and the underlying concepts of confidentiality, integrity, and availability.  Topics include common cyberattacks, identifying vulnerabilities and defending against attacks, and approaches to creating secure systems.  Students also work with some of the tools available to security administrators.

Prerequisites: Minimum grade of C- in CMPT 200.

CMPT 291
Introduction to File and Database Management
3 Credits          Weekly (3-3-0)

The course covers basic concepts in computer data organization and information processing, the entity-relationship model, the relational model, SQL, and other relational query languages.  Other topics include storage architecture, physical organization of data, and access methods for relational data.

Prerequisites: A minimum grade of C- in CMPT 200.

CMPT 305
Introduction to Object-Oriented Programming
3 Credits          Weekly (3-3-0)

In this course, students study the object-oriented programming (OOP) paradigm. The components of object-oriented programming are encapsulation, inheritance, and polymorphism. Students use some of the well established design patterns that recur in many non-trivial software systems. The last component of this course is event-driven programming. Note: Credit in CMPT 250 is recommended but not required.

Prerequisites: Minimum grade of C- in CMPT 200.

CMPT 306
Non-Procedural Programming Languages
3 Credits          Weekly (3-3-0)

This course examines various programming languages other than the standard third generation languages such as C++ and Java. This course considers a functional language (Lisp) and a logic language (Prolog). The underlying theories of lambda calculus (Lisp) and predicate logic (Prolog) are also studied. A limited number of applications to Artificial Intelligence are considered for both languages. This course also may examine additional interpreted languages.

Prerequisites: Minimum grade of C- in CMPT 200 and CMPT 272.

CMPT 310
Computers and Society
3 Credits          Weekly (3-0-0)

This course explores the social, legal and ethical issues arising in the wake of computer technology, especially those concerning self, community, environment, education, work and democracy. Topics include ethical frameworks; data collection and use; privacy and security; intellectual property; artificial intelligence and automation; social responsibility. Note: This is a third year course. It is recommended that students taking this course have at least 48 earned credits in their program of study.

Prerequisites: Minimum grade of C- in CMPT 200.

CMPT 311
Phenomenon of Technology
3 Credits          Weekly (3-0-0)

This hybrid course explores the role and significance of technology in our daily lives through a variety of theoretical and research frameworks and methods, including media ecology, phenomenology, STS (science, technology and society) studies, and human-computer interaction research.

Prerequisites: Minimum grade of C- in any 200-level course (Note: this is a third year course, It is recommended that students taking this course have at least 48 credits in their program of study).

CMPT 312
Introduction to Robotics: Programming and Control
3 Credits          Weekly (3-3-0)

This project based course offers an introduction to the basic concepts in robotics and the various algorithms used for perception, locomotion, and pathway planning. Students will get hands on experience with programming micro-controllers and building hardware and will apply concepts learned through interdisciplinary projects.

Prerequisite: A minimum grade of C- in CMPT 200.

CMPT 315
Web Application Development
3 Credits          Weekly (3-3-0)

This course introduces various technologies in web programming. It requires students to work both individually and collaboratively to design and develop interactive web-based applications. Students learn both client- and server-side programming, database programming, and basic security concepts and testing.

Prerequisites: Minimum grade of C- in CMPT 291 and CMPT 305.

CMPT 330
Introduction to Real Time Gaming
3 Credits          Weekly (3-3-0)

This course introduces the basic concepts of 2D and 3D game writing. Students learn to handle sprite animation, collision detection, and simple game artificial intelligence, and gain an understanding of the basics of 2D and 3D display at the level of the game engine. During this course, students design and implement an effective user interface for a game using a game engine as well as create several very small games. The course culminates with a team-based major game project.

Prerequisites: Minimum grade of C- in CMPT 230 and CMPT 305.

CMPT 340
Introduction to Numerical Methods
3 Credits          Weekly (3-2-0)

This course provides an overview of computational methods for solving problems in linear algebra, non-linear equations, interpolation and approximation, and integration. Computer arithmetic and errors are discussed. The aim is to teach students the proper use of mathematical packages currently available.

Prerequisites: Minimum grades of C- in CMPT 201, MATH 114, and one of MATH 120 or MATH 125.

CMPT 351
Introduction to Data Visualization
3 Credits          Weekly (3-2-0)

This course introduces techniques and tools for creating effective visualizations based on principles from visual design, perceptual psychology, and cognitive science. The goal of this course is to expose students to visual representation methods and techniques that increase the understandability of complex and varied data.

Prerequisites: Minimum grades of C- in CMPT 250 and STAT 151.

CMPT 355
Introduction to Artificial Intelligence
3 Credits          Weekly (3-3-0)

This course provides an introduction to Artificial Intelligence (AI). AI is the study of how human intelligence can be imitated by computer programs. The course presents a survey of the concepts and applications of AI - such as: intelligent agents, knowledge representation, state-space search, expert systems and shells, natural language processing, propositional logic, learning and cognitive models. Some of the AI techniques will be implemented using both procedural and non-procedural languages (Prolog and LISP). Note: Students should be able to program in a high level programming language that allows explicit access to the underlying memory model. C and C++ are acceptable languages.

Prerequisites: Minimum grade of C- in CMPT 201 and CMPT 272.

CMPT 360
Introduction to Operating Systems
3 Credits          Weekly (3-3-0)

This course introduces the fundamentals of operating systems. Topics include scheduling, memory management, concurrency, security and protection, device management, and file systems. The laboratory component involves both the investigation of these concepts in current operating systems as well as their design and implementation.

Prerequisites: Minimum grade of C- in CMPT 201.

CMPT 361
Introduction to Networks
3 Credits          Weekly (3-3-0)

This course introduces the basics of networking with a focus on computer networks. Topics include network architectures, protocols, client-server programming, security, and network management. A selection of material from data compression and decompression and multimedia data technologies are also discussed.

Prerequisites: Minimum grade of C- in CMPT 201.

CMPT 370
Introduction to Computer Graphics
3 Credits          Weekly (3-3-0)

This course introduces students to the foundations of computer graphics. Topics covered include 2D and 3D transformations, interactive 3D graphics programming, shading and lighting models, geometric modelling, computer graphics rendering including ray tracing and texture mapping. There will be an emphasis on both the mathematical and geometric aspects of graphics, as well as the ability to write complete 3D graphics programs.

Prerequisites: Minimum grades of C- in CMPT 201, MATH 114, and in either MATH 120 or 125.

CMPT 380
Computer Systems Security
3 Credits          Weekly (3-3-0)

Students are introduced to the principles and practice of computer systems security and get hands on experience with relevant tools used by security professionals. Students also write programs to illustrate vulnerabilities and attacks such as: buffer overflow, SQL injection, cross site scripting and cross site request forgery. Topics include: host and application threats and hardening, storage security, virtualization, secure software development and web and mobile security.

Prerequisites: A minimum grade of C- in CMPT 280 and CMPT 360.

CMPT 381
Cryptology from Classical to Post-Quantum
3 Credits          Weekly (3-3-0)

Cryptographic algorithms are used to ensure the privacy and integrity of data, secure communications, and protect and even supplant currency altogether. However, their utility and ubiquity were recently threatened by developments in quantum computing, necessitating a near future shift to more sophisticated, quantum-resistant algorithms. In this course, students will study the evolution of cryptology, covering the essentials of classical and contemporary symmetric and asymmetric encryption and decryption algorithms in their many forms and applications. In addition, students will study the implications of quantum attacks and explore at least one newly certified quantum-resistant algorithm. The focus of the course will balance practical implementations of naturally theoretical and mathematical concepts.

Prerequisites: Minimum grades of C- in CMPT 200 and one of MATH 120 or MATH 125.

CMPT 391
Database Management Systems
3 Credits          Weekly (3-2-0)

This is the second course in database management systems. Topics include database design, normalization theory, transaction management, query processing, and query optimization, building and supporting secure applications. Database support for special data types such as XML documents is considered. Support for complex applications, data analysis and information retrieval is also covered.

Prerequisites: A minimum grade of C- in CMPT 291.

CMPT 395
Introduction to Software Engineering
3 Credits          Weekly (3-3-0)

This course is an introduction to the fundamental concepts of software engineering. Topics include software design and analysis, software process, requirements, design patterns and testing. Team management is considered in both the lecture and in the laboratory through the use of team projects.

Prerequisites: Minimum grade of C- in CMPT 201.

CMPT 398
Independent Study
3 Credits          Total (0-0-45)

This course permits an intermediate-level student to work with an instructor to explore a specific topic in depth through research or directed reading in primary and secondary sources. The student plans, executes and reports the results of their independent research or study project under the direction of a faculty supervisor. To be granted enrolment in the course, the student must have made prior arrangements with a faculty member willing to supervise the student’s project.

CMPT 399
Topics in Computer Science
3 Credits          Weekly (3-3-0)

In this course, students examine one or two topics in computer science. Topics will vary from year to year, but will typically build upon material students will have seen in the second year of their studies. Consultation with the department is required prior to registration. Note: This course may be taken multiple times for credit.

Prerequisites: Consent of the department.

CMPT 430
3D Game Development and Artificial Intelligence
3 Credits          Weekly (3-3-0)

Modern game engines provide basic components such as animation and physics but to create a good game, the developer needs to provide functionality beyond the basics. This course will focus non-basic features such as camera control and game search/tracking heuristics. For the major project students will develop a portion of a game level using an existing commercial game engine. Note: CMPT 370 is recommended.

Prerequisites: Minimum grade of C- in both CMPT 330 and CMPT 395.

CMPT 450
Information Visualization
3 Credits          Weekly (3-3-0)

This course continues the examination of human-computer interaction (HCI) that was begun in CMPT 250, but with the emphasis moving to the design and implementation of interactive visualization systems. Topics include design principles in information visualization, abstraction of data and user tasks, visual encoding, interaction techniques, and visualization toolkits.

Prerequisites: Minimum grade of C- in CMPT 250 and CMPT 305.

CMPT 455
Introduction to Machine Learning
3 Credits          Weekly (3-3-0)

Machine learning (ML) is the science of making computers perform tasks without being explicitly programmed. There is a multitude of real-world applications of ML (e.g. speech recognition, advanced web search and information retrieval, self-driven cars). ML is used in almost any computer application without even knowing it. This class teaches the most effective machine learning techniques, along with practical skills to implement and adapt them to new problems.

Prerequisites: Minimum grades of C- in either CMPT 340 and STAT 151, or MATH 335 and CMPT 200.

CMPT 464
Wireless Networks and Embedded Systems
3 Credits          Weekly (3-3-0)

This course introduces selected topics in embedded systems and wireless networks. Topics include an introduction to embedded systems with an emphasis on microcontrollers, techniques for programming embedded systems, design for low-power applications, the basics of radio communication, and protocols for both medium access control and routing within static and mobile environments. The laboratory is oriented toward the design and implementation of lecture topics using wireless sensor network hardware.

Prerequisites: Minimum grade of C- in CMPT 395 and C in CMPT 201.

CMPT 470
Introduction to Computer Vision
3 Credits          Weekly (3-3-0)

Computer vision is a research field aimed to enable computers to process and interpret visual data, as sighted humans can. It is one of the most exciting areas of research in computing science and among the fastest growing technologies in today’s industry. This course provides an introduction to the fundamental principles and applications of computer vision. Topics include feature detection and tracking, image matching and alignment, geometric relationships between 2D images and the 3D world, and some machine learning methods for computer vision.

Prerequisites: Minimum grades of C- in either CMPT 340 and STAT 151, or MATH 335 and CMPT 200.

CMPT 480
Computer Network Security
3 Credits          Weekly (3-3-0)

Students are introduced to the principles and practice of computer networks security and get hands-on experience with relevant tools used by security professionals. Students also write code to illustrate vulnerabilities and attacks such as packet spoofing, ARP poisoning and DNS cache poisoning. Topics include network threats, hardening and monitoring, internet service hardening and network intrusion prevention and detection.

Prerequisites: Minimum grades of C- in CMPT 280 and CMPT 361.

CMPT 491
Datamining and Advanced Database Topics
3 Credits          Weekly (3-3-0)

This course on data mining introduces the concepts, algorithms, techniques, and systems of data warehousing. Topics include what data mining is, data preprocessing, integration, and transformation. The design and implementation of data warehouse and OLAP systems, mining frequent patterns and association (basic concepts and advanced methods), and classification, clustering and outlier analysis are covered.

Prerequisites: Minimum grades of C- in STAT 151, CMPT 291, and in a 300-level CMPT course.

CMPT 496
Final Project
3 Credits          Total (0-0-60)

In this course, students plan, conduct, and communicate the results of an independent project in Computer Science under the direction of a faculty supervisor. The project can be undertaken by an individual student or, if the scope warrants, by a team of students. Registration is contingent on the student(s) having made prior arrangements with a faculty member willing to supervise the project. Note: This course is intended for students in the final year of their degree. This course may be taken twice for credit.

Prerequisites: Minimum grade of C- in CMPT 395 and consent of the department.

CMPT 497
Computer Science Internship
3 Credits          Total (45-0-90)

This course provides students with practical experience in a work environment. Students engage in work integrated learning through employment or internship in industry. Students learn in practice the professional aspects (work and ethics) of a computer scientist. At the end of the placement, students provide a presentation to demonstrate the learning accomplished. The contact hours are a minimum of 90 hours but can involve more depending on the placement. This course may be taken two times for credit. All placements require departmental approval.

Prerequisites: A minimum grade of C- in CMPT 395 and consent of the Department.

CMPT 498
Advanced Independent Study
3 Credits          Total (0-0-45)

This course permits a senior-level student to work with an instructor to explore a specific topic in depth through research or directed reading in primary and secondary sources. The student plans, executes and reports the results of their independent research or study project under the direction of a faculty supervisor. To be granted enrolment in the course, the student must have made prior arrangements with a faculty member willing to supervise the student’s project.

CMPT 499
Topics in Computer Science
3 Credits          Weekly (3-0-0)

In this course, students examine a topic of specialization in computer science. Topics will vary from year to year. Consultation with the department is required prior to registration. Note: This course may be taken multiple times for credit.

Prerequisites: Consent of the department.