Skip to content

Computer Science

University of Calgary

Computing and Software: blue ink subject illustration
Image source

AI-generated ink illustration

Conceptual study artwork, not a photograph of teaching facilities.

Unidex · generated with ImageGen

Checked 2026-11-05

Symbolic subject artwork; no university facility depicted

Deadlines

March 2027

MonTueWedThuFriSatSun
234567
891011121314
15161718192021
22232425262728
293031

Next deadline

  • Fall application

    Fall 2027 · Postsecondary transfer applicants with Ontario educational background

Other deadline details
March 1Application: Fall undergraduate admissionRecurring annual · Every year
  • March 1
  • Verbatim: "Deadline to submit your application, including paying your non-refundable application fee
  • Deadline to make changes to your program choices."
  • The Student Access Process application deadline and the Bachelor of Health Sciences supplemental documentation deadline are the same day
SourceChecked
No central deadline published by ApplyAlbertaApplyAlberta, deadlines are set per institutionRecurring annual · Every year
  • No central deadline published by ApplyAlberta
  • ApplyAlberta handles applications, but each institution publishes its own deadlines and fees
Full source wording

ApplyAlberta publishes NO deadline dates at all on its public pages. Its How to Apply page describes the process only: verbatim, "Now you will 'Start a New Application' at the institution of your choice. You will be directed to the institution's application portal where you will apply and pay any application fees", and "All application fees are paid directly to the institution you are applying to. Each institution has its own unique application fees". Deadlines must be read from each of Alberta's 26 publicly-funded institutions.

SourceChecked
Oct. 1Domestic application opens. Fall undergraduate admissionRecurring annual · Every year
  • Oct. 1
  • Canadian citizens / permanent residents
  • Undergraduate awards application also opens Oct
  • 1
SourceChecked
Aug. 15International application opens. Fall undergraduate admissionRecurring annual · Every year
  • Aug. 15
  • For students requiring a study permit
SourceChecked
March 15Admission documentsStanding annual entry · Every year
  • Fall first-year/transfer applicants: unofficial transcripts and required supporting documents
  • March 15
SourceChecked
March 15Document deadline. Fall undergraduate admissionRecurring annual · Every year
  • March 15
  • Unofficial transcripts and supporting documents
  • Indigenous citizenship/membership documents and the Student Access Process personal statement share this date
SourceChecked
August 1High-school final official transcriptsStanding annual entry · Every year
  • Fall high-school applicants only
  • August 1
SourceChecked
June 30High-school prerequisite completionStanding annual entry · Every year
  • Fall high-school applicants only
  • June 30
SourceChecked
June 1Transfer final official transcriptsStanding annual entry · Every year
  • Fall postsecondary transfer applicants only
  • June 1
SourceChecked
April 30Transfer prerequisite completionStanding annual entry · Every year
  • Fall postsecondary transfer applicants only
  • April 30
SourceChecked
May 1Accept admission offerStanding annual entry · Every year
  • Fall offers dated April 1 or earlier
  • later offers have30 days from their offer date
  • May 1
SourceChecked
May 1Acceptance deadline. Fall undergraduate admissionRecurring annual · Every year
  • May 1
SourceChecked

Requirements

Admission requirements

High-school prerequisites

Check the university’s requirements for your province and applicant category.

UCalgary exact rendered programme Ontario high-school applicants admission panel
Application steps
  1. Step 1Check the admission requirements
  2. Step 2Apply through ApplyAlberta
    • Create your application and select this program.
    ApplyAlbertaApplyAlberta
  3. Step 3Academic transcripts and requested supporting records
    • Applicants authorize retrieval from Alberta Education and participating Alberta institutions where applicable. Other applicants upload unofficial copies for review. Final official records must come from the education authority, institution or secure transcript delivery system to finalize an offer.
    Calgary calendar: undergraduate supporting documentsCalgary calendar: undergraduate supporting documents
  4. Step 4Certified English translations, if applicable
    • Any supporting record in another language must be accompanied by an English translation prepared by a certified translator.
    Calgary undergraduate document language rulesCalgary undergraduate document language rules
  5. Step 5Apply through the University of Calgary application.
  6. Step 6Submit the academic transcripts and English-language evidence requested for your applicant category.
Applicant pathways
Ontario high-school applicants: required courses

Ontario high-school applicants

  • Required courses for admission English ENG4U Advanced Functions MHF4U Two of: Biology SBI4U, Chemistry SCH4U or Physics SPH4U, Calculus and Vectors MCV4U, Computer Science ICS4U One approved course or option
UCalgary exact rendered programme Ontario high-school applicants admission panel
Ontario high-school applicants: Additional admission details

Ontario high-school applicants

  • Additional admission details All applicants must meet the English language requirement to be considered for admission. Students are encouraged to take high school courses related to their intended major, some courses not required for admission may be prerequisites for first-year courses. Only one of Art, Dance, Drama or Music can be used in calculating the admission average Equivalent International Baccalaureate (IB), Advanced Placement (AP) courses or previously completed SAT2 subject tests are accepted.
UCalgary exact rendered programme Ontario high-school applicants admission panel
Ontario high-school applicants: Assessment route

Ontario high-school applicants

  • Description Students presenting less than 12 units of academic post-secondary coursework will be considered high school applicants. Admitting average will be calculated using program specific approved courses; 4 courses will be used for early admissions and 5 courses will be used for standard admissions. See details below.
UCalgary exact rendered programme Ontario high-school applicants admission panel
Ontario high-school applicants: Approved options and courses

Ontario high-school applicants

  • Approved options and courses Approved courses Any 4U level second language course [1,2] Advanced Functions MHF4U, Mathematics of Data Management MDM4U, and Calculus and Vectors MCV4U [1,3,5] Biology SBI4U Social Studies Equivalent - One of: Canada: History, Identity and Culture CHI4U, World History CHY4U, or World Issues: A Geographic Analysis CGW4U Chemistry SCH4U Computer Science ICS4U Fine Arts 4U Courses (Dance, Drama, Music, Media Arts, Visual Arts) Physics SPH4U Computer Engineering Technology TEJ4M Any 4U Course Approved options Business Studies 4M Equity Studies 4M First Nations, Métis, and Inuit Studies 4M Geography 4M Technological Education 4M Science 4M Approved courses and options notes Two courses in the same subject area may not be presented to satisfy entrance requirements unless the courses are Advanced Functions MHF4U, Data Management MDM4U or Calculus MCV4U Only one grade 12 level course in a language stream may be used to satisfy admission requirements.
UCalgary exact rendered programme Ontario high-school applicants admission panel
Ontario high-school applicants: published intake timing

Ontario high-school applicants

  • Intake and application dates Application dates for Fall 2027 intake October 1, 2026 to March 1, 2027
UCalgary exact rendered programme Ontario high-school applicants admission panel
Alberta high-school applicants: required courses

Alberta high-school applicants

  • Required courses for admission English Language Arts 30-1 Mathematics 30-1 Two of: Biology 30, Chemistry 30, Physics 30, Mathematics 31 or CTS Computing Science 30 level (5 Credits) (or post-secondary equivalents) One approved course or option
UCalgary exact rendered programme Alberta high-school applicants admission panel
Alberta high-school applicants: Additional admission details

Alberta high-school applicants

  • Additional admission details All applicants must meet the English language requirement to be considered for admission. Students are encouraged to take high school courses related to their intended major, some courses not required for admission may be prerequisites for first-year courses. Only one of Art, Dance, Drama or Music can be used in calculating the admission average Equivalent International Baccalaureate (IB), Advanced Placement (AP) courses or previously completed SAT2 subject tests are accepted.
UCalgary exact rendered programme Alberta high-school applicants admission panel
Alberta high-school applicants: Assessment route

Alberta high-school applicants

  • Description Students presenting less than 12 units of academic post-secondary coursework will be considered high school applicants. Admitting average will be calculated using program specific approved courses; 4 courses will be used for early admissions and 5 courses will be used for standard admissions. See details below.
UCalgary exact rendered programme Alberta high-school applicants admission panel
Alberta high-school applicants: Approved options and courses

Alberta high-school applicants

  • Approved options and courses Approved courses Social Studies 30-1 Aboriginal Studies 30 Fine Arts (Art 30, Art 31, Choral Music 30, General Music 30, Instrumental Music 30, Drama 30, Dance 35, Fine Arts group locally developed courses (5 credit)) Any 5-credit second language or language and culture course at the 30-level [1,2] Physical Education 30 (5 credit) Any approved grade 12 IB diploma or AP academic subject Science 30 Biology 30 Chemistry 30 CTS Computing Science 30 (5-credits) Mathematics 30-1, 30-2, and 31 [1,3] Physics 30 Approved options Social Studies 30-2 Courses under the Social Science grouping (see link below*) Select Career and Technology (CTS) courses (see link below*) Dual credit courses (see link below*) Select locally developed courses (see link below*) *Please see note 1 below for the list of Alberta approved options and locally developed courses Approved courses and options notes The list of Alberta approved options and locally developed courses can be found here Two courses in the same subject area may not be presented to satisfy entrance requirements unless the courses are Mathematics 30-1, Mathematics 30-2 or Mathematics 31 Only one grade 12 level course in a language stream may be used to satisfy admission requirements. One-credit courses: five advanced credits in Career and Technology Studies (CTS) can be used to fulfil ONE option requirement. Intermediate and Advanced Credits cannot be combined to satisfy a course requirement.
UCalgary exact rendered programme Alberta high-school applicants admission panel
Alberta high-school applicants: published intake timing

Alberta high-school applicants

  • Intake and application dates Application dates for Fall 2027 intake October 1, 2026 to March 1, 2027
UCalgary exact rendered programme Alberta high-school applicants admission panel
Postsecondary transfer applicants with Ontario educational background: required courses

Postsecondary transfer applicants with Ontario educational background

  • Required courses for admission No post-secondary required courses; successful completion of the following high school courses is required: English ENG4U Advanced Functions MHF4U Two of: Biology SBI4U, Chemistry SCH4U, Physics SPH4U, Calculus and Vectors MCV4U or Computer Science ICS4U Any of the preceding requirements may also be fulfilled by equivalent post-secondary courses
UCalgary exact rendered programme Postsecondary transfer applicants with Ontario educational background admission panel
Postsecondary transfer applicants with Ontario educational background: Additional admission details

Postsecondary transfer applicants with Ontario educational background

  • Additional admission details All applicants must meet the English language requirement to be considered for admission. Equivalent International Baccalaureate (IB), Advanced Placement (AP) courses or previously completed SAT2 subject tests are accepted.
UCalgary exact rendered programme Postsecondary transfer applicants with Ontario educational background admission panel
Postsecondary transfer applicants with Ontario educational background: Assessment route

Postsecondary transfer applicants with Ontario educational background

  • Description Students presenting 12 or more units of academic post-secondary coursework will be considered transfer applicants and competitive GPA will be calculated on most-recent coursework to a maximum of 30 units. See details below.
UCalgary exact rendered programme Postsecondary transfer applicants with Ontario educational background admission panel
Postsecondary transfer applicants with Ontario educational background: published intake timing

Postsecondary transfer applicants with Ontario educational background

  • Intake and application dates Application dates for Fall 2027 intake October 1, 2026 to March 1, 2027
UCalgary exact rendered programme Postsecondary transfer applicants with Ontario educational background admission panel

Degree requirements

Credits and degree requirements
  • Courses Constituting the Field of Computer Science: 60 units.
  • Courses Constituting the Field of Computer Science: Students must successfully complete a minimum of 60 units, to a maximum of 66 units, in Courses Constituting the Field of Computer Science while fulfilling the Program Requirements.
  • Required Options - Major Program: 42 units.
  • Required Options - Major Program: 72 units.
  • Concentrations: Students may focus their program on one of nine areas of interest by including a specified set of courses in their Major or Honours degree. Successful completion will mean that the area of concentration will appear on the transcript. The concentrations and course requirements are:
ReferencesUCalgary 2026/27 displayed degree requirementsUniversity · exact programme work-study requirementsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current course title and published unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsCalgary: current explicit degree duration scopeUniversity · exact programme work-study requirementsCalgary: current named cs academic-unit location
Required courses and electives
  • Required Courses - Major Program: 6 units.
ReferencesUCalgary 2026/27 displayed degree requirementsUniversity · exact programme work-study requirementsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current course title and published unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsCalgary: current explicit degree duration scopeUniversity · exact programme work-study requirementsCalgary: current named cs academic-unit location

Program facts

Entering average~Low 80s estimated competitive average

Ontario high-school curriculum applicants to Computer Science.

UCalgary Computer Science · Ontario curriculum, Fall 2027
Co-opCo-op details

Majors & specializations

The named current calendar degree variants only. Other honours, concurrent, combined and after-degree routes require separate calendars.

Computer Game Development

BSc

Focus on computer game design and development within the Computer Science degree.

Courses

Named courses in current degree requirements, option banks and displayed recommended degree maps, including alternatives. Each specified degree variant has separate requirements; these maps are not a weekly class timetable.

BSc Computer Science; Year 1; Fall4 listed

Published recommended degree map. Course alternatives remain choices. Options: Non-Major Field Option , Non-Science Option.

  • CPSC 231Introduction to Computer Science for Computer Science Majors I3 credits

    Introduction to problem solving, the analysis and design of small-scale computational systems, and implementation using a procedural programming language. For computer science majors.

    UCalgary current official course definition and native units
  • MATH 249Introductory Calculus3 credits

    An introduction to single variable calculus. Limits, derivatives and integrals of algebraic, exponential, logarithmic and trigonometric functions play a central role. Additional topics include applications of differentiation; the fundamental theorem of calculus, improper integrals and applications of integration.

    UCalgary current official course definition and native units
  • MATH 265University Calculus I3 credits

    An introduction to single variable calculus intended for students with credit in high school calculus. Limits, derivatives, and integrals of algebraic, exponential, logarithmic and trigonometric functions play a central role. Additional topics include applications of differentiation; the fundamental theorem of calculus, improper integrals and applications of integration. Differential calculus in several variables will also be introduced.

    UCalgary current official course definition and native units
  • MATH 211Linear Methods I3 credits

    An introduction to systems of linear equations, vectors in Euclidean space and matrix algebra. Additional topics include linear transformations, determinants, complex numbers, eigenvalues, and applications.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirements
BSc Computer Science; Year 1; Winter3 listed

Published recommended degree map. Course alternatives remain choices. Options: Non-Major Field Option , Non-Science Option.

  • CPSC 233Introduction to Computer Science for Computer Science Majors II3 credits

    Continuation of Introduction to Computer Science for Computer Science Majors I. Emphasis on object-oriented analysis and design of small-scale computational systems and implementation using an object oriented language. Issues of design, modularization, and programming style will be emphasized.

    UCalgary current official course definition and native units
  • CPSC 251Theoretical Foundations of Computer Science I3 credits

    Recursion and iteration. Specification of algorithmic problems. Fundamental proof techniques in computer science. Discrete structures such as sets, graphs, trees, strings, sequences, and their computer representations. Counting, permutations. Random events. Conditional events. Applications in computer science.

    UCalgary current official course definition and native units
  • PHIL 279Logic I3 credits

    Sentential and first-order logic from both deductive and semantic points of view. Some elementary metatheorems.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirements
BSc Computer Science; Year 2; Fall3 listed

Published recommended degree map. Course alternatives remain choices. Options: Non-Science Option, Non-Major Field Option.

  • CPSC 331Data Structures, Algorithms, and Their Analysis3 credits

    Fundamental data structures, including arrays, lists, stacks, queues, trees, hash tables, and graphs. Algorithms for searching and sorting. Introduction to the correctness and analysis of algorithms. For computer science majors and those interested in algorithm design and analysis, information security, and other mathematically-intensive areas.

    UCalgary current official course definition and native units
  • CPSC 351Theoretical Foundations of Computer Science II3 credits

    Discrete probability spaces and distributions. Random variables, expectation, tail bounds. Independence and conditional probability. Repeated trials and algorithmic applications of probability theory. Languages, regular languages and regular expressions. Deterministic and nondeterministic finite automata. Turing machines. Reductions and methods for classifying computational problems as regular, decidable or undecidable.

    UCalgary current official course definition and native units
  • SENG 300Introduction to Software Engineering3 credits

    Introduction to the development and evolution of software. Covers key conceptual foundations as well as key methods and techniques used in the different phases of the software lifecycle. Emphasis on both technical and soft skills needed for high quality software and software-based products developed in teams.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirements
BSc Computer Science; Year 2; Winter2 listed

Published recommended degree map. Course alternatives remain choices. Options: Course in the field of Computer Science (300-level or higher), Non-Major Field Option, Non-Major Field Option.

  • CPSC 355Computing Machinery I3 credits

    An introduction to computing machinery establishing the connection between programs expressed in a compiled language, an assembly language, and machine code, and how such code is executed. Includes the detailed study of a modern CPU architecture, its assembly language and internal data representation, and the relationship between high-level program constructs and machine operations.

    UCalgary current official course definition and native units
  • PHIL 314Information Technology Ethics3 credits

    A critical and analytical examination of ethical and legal problems arising in and about information technology. May include hacking, online privacy, intellectual property rights, artificial intelligence, globalization and regulation issues, cheating in online games, and others.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirements
BSc Computer Science; Year 3; Fall1 listed

Published recommended degree map. Course alternatives remain choices. Options: Course in the field of Computer Science (300-level or higher), Course in the field of Computer Science (300-level or higher), Non-Science Option, Non-Major Field Option.

  • CPSC 413Design and Analysis of Algorithms I3 credits

    Techniques for the analysis of algorithms, including counting, summation, recurrences, and asymptotic relations; techniques for the design of efficient algorithms, including greedy methods, divide and conquer, and dynamic programming; examples of their application; an introduction to tractable and intractable problems.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirements
BSc Computer Science; Year 3; Winter2 listed

Published recommended degree map. Course alternatives remain choices. Options: Course in the field of Computer Science (400-level or higher), Non-Major Field Option, Non-Major Field Option.

  • CPSC 449Programming Paradigms3 credits

    Examination of the basic principles of the major programming language paradigms. Focus on declarative paradigms such as functional and logic programming. Data types, control expressions, loops, types of references, lazy evaluation, different interpretation principles, information hiding.

    UCalgary current official course definition and native units
  • CPSC 457Principles of Operating Systems3 credits

    An introduction to operating systems principles. Performance measurement; concurrent programs; the management of information, memory and processor resources.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirements
Mapped terms

Named compulsory rows in the displayed BSc Computer Science Years 1–3 Fall/Winter map only. Mathematics alternatives, option slots and generic Year 4 selections remain unallocated. Choice slot coverage is partial.

Published BSc Computer Science Year 1
Fall

Published recommended degree map. Course alternatives remain choices. Options: Non-Major Field Option , Non-Science Option. Choose MATH 249 or MATH 265, subject to prerequisites; these are not simultaneous core courses. Unassigned source slots: MATH 249 or MATH 265; Non-Major Field Option ; Non-Science Option. Course sets and options remain partial; no complete term-load or choice denominator is inferred.

  • CPSC 231Introduction to Computer Science for Computer Science Majors I3 credits

    Introduction to problem solving, the analysis and design of small-scale computational systems, and implementation using a procedural programming language. For computer science majors.

    UCalgary current official course definition and native units
  • MATH 211Linear Methods I3 credits

    An introduction to systems of linear equations, vectors in Euclidean space and matrix algebra. Additional topics include linear transformations, determinants, complex numbers, eigenvalues, and applications.

    UCalgary current official course definition and native units
Winter

Published recommended degree map. Course alternatives remain choices. Options: Non-Major Field Option , Non-Science Option. Unassigned source slots: Non-Major Field Option ; Non-Science Option. Course sets and options remain partial; no complete term-load or choice denominator is inferred.

  • CPSC 233Introduction to Computer Science for Computer Science Majors II3 credits

    Continuation of Introduction to Computer Science for Computer Science Majors I. Emphasis on object-oriented analysis and design of small-scale computational systems and implementation using an object oriented language. Issues of design, modularization, and programming style will be emphasized.

    UCalgary current official course definition and native units
  • CPSC 251Theoretical Foundations of Computer Science I3 credits

    Recursion and iteration. Specification of algorithmic problems. Fundamental proof techniques in computer science. Discrete structures such as sets, graphs, trees, strings, sequences, and their computer representations. Counting, permutations. Random events. Conditional events. Applications in computer science.

    UCalgary current official course definition and native units
  • PHIL 279Logic I3 credits

    Sentential and first-order logic from both deductive and semantic points of view. Some elementary metatheorems.

    UCalgary current official course definition and native units
Published BSc Computer Science Year 2
Fall

Published recommended degree map. Course alternatives remain choices. Options: Non-Science Option, Non-Major Field Option. Unassigned source slots: Non-Science Option; Non-Major Field Option. Course sets and options remain partial; no complete term-load or choice denominator is inferred.

  • CPSC 331Data Structures, Algorithms, and Their Analysis3 credits

    Fundamental data structures, including arrays, lists, stacks, queues, trees, hash tables, and graphs. Algorithms for searching and sorting. Introduction to the correctness and analysis of algorithms. For computer science majors and those interested in algorithm design and analysis, information security, and other mathematically-intensive areas.

    UCalgary current official course definition and native units
  • CPSC 351Theoretical Foundations of Computer Science II3 credits

    Discrete probability spaces and distributions. Random variables, expectation, tail bounds. Independence and conditional probability. Repeated trials and algorithmic applications of probability theory. Languages, regular languages and regular expressions. Deterministic and nondeterministic finite automata. Turing machines. Reductions and methods for classifying computational problems as regular, decidable or undecidable.

    UCalgary current official course definition and native units
  • SENG 300Introduction to Software Engineering3 credits

    Introduction to the development and evolution of software. Covers key conceptual foundations as well as key methods and techniques used in the different phases of the software lifecycle. Emphasis on both technical and soft skills needed for high quality software and software-based products developed in teams.

    UCalgary current official course definition and native units
Winter

Published recommended degree map. Course alternatives remain choices. Options: Course in the field of Computer Science (300-level or higher), Non-Major Field Option, Non-Major Field Option. Unassigned source slots: Course in the field of Computer Science (300-level or higher); Non-Major Field Option; Non-Major Field Option. Course sets and options remain partial; no complete term-load or choice denominator is inferred.

  • CPSC 355Computing Machinery I3 credits

    An introduction to computing machinery establishing the connection between programs expressed in a compiled language, an assembly language, and machine code, and how such code is executed. Includes the detailed study of a modern CPU architecture, its assembly language and internal data representation, and the relationship between high-level program constructs and machine operations.

    UCalgary current official course definition and native units
  • PHIL 314Information Technology Ethics3 credits

    A critical and analytical examination of ethical and legal problems arising in and about information technology. May include hacking, online privacy, intellectual property rights, artificial intelligence, globalization and regulation issues, cheating in online games, and others.

    UCalgary current official course definition and native units
Published BSc Computer Science Year 3
Fall

Published recommended degree map. Course alternatives remain choices. Options: Course in the field of Computer Science (300-level or higher), Course in the field of Computer Science (300-level or higher), Non-Science Option, Non-Major Field Option. Unassigned source slots: Course in the field of Computer Science (300-level or higher); Course in the field of Computer Science (300-level or higher); Non-Science Option; Non-Major Field Option. Course sets and options remain partial; no complete term-load or choice denominator is inferred.

  • CPSC 413Design and Analysis of Algorithms I3 credits

    Techniques for the analysis of algorithms, including counting, summation, recurrences, and asymptotic relations; techniques for the design of efficient algorithms, including greedy methods, divide and conquer, and dynamic programming; examples of their application; an introduction to tractable and intractable problems.

    UCalgary current official course definition and native units
Winter

Published recommended degree map. Course alternatives remain choices. Options: Course in the field of Computer Science (400-level or higher), Non-Major Field Option, Non-Major Field Option. Unassigned source slots: Course in the field of Computer Science (400-level or higher); Non-Major Field Option; Non-Major Field Option. Course sets and options remain partial; no complete term-load or choice denominator is inferred.

  • CPSC 449Programming Paradigms3 credits

    Examination of the basic principles of the major programming language paradigms. Focus on declarative paradigms such as functional and logic programming. Data types, control expressions, loops, types of references, lazy evaluation, different interpretation principles, information hiding.

    UCalgary current official course definition and native units
  • CPSC 457Principles of Operating Systems3 credits

    An introduction to operating systems principles. Performance measurement; concurrent programs; the management of information, memory and processor resources.

    UCalgary current official course definition and native units
UCalgary 2026/27 displayed degree requirementsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUniversity · exact programme work-study requirementsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current course title and published unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsCalgary: current explicit degree duration scopeUniversity · exact programme work-study requirementsCalgary: current named cs academic-unit location
Additional published courses
  • SENG 521Software Reliability and Software Quality3 credits

    The principles, processes, and applications of software reliability and software quality assurance.

    UCalgary current official course definition and native units
  • CPSC 592Topics in Computer Science3 credits

    Exploration of various areas in Computer Science. Topics will vary from year-to-year. Offered as required to provide opportunities for students to engage in additional areas in Computer Science.

    UCalgary current official course definition and native units
  • CPSC 526Network Systems Security3 credits

    Attacks on networked systems and Internet protocols. Tools and techniques for detection and protection against attacks including firewalls, authentication, and cryptographic protocols. Web security attacks and defenses including same-origin policy, cross site scripting, and UI redressing. Legal and ethical issues will be introduced.

    UCalgary current official course definition and native units
  • CPSC 585Games Programming3 credits

    Standard techniques for the implementation of computer games. Standard multimedia programming environments and high performance multimedia. Special purpose rendering engines. Interactive control and feedback; modelling. Prequisites: Computer Science 453 and consent of the Department.

    UCalgary current official course definition and native units
  • MATH 275Calculus for Engineers and Scientists3 credits

    An extensive treatment of differential and integral calculus in a single variable, with an emphasis on applications. Differentiation: derivative laws, the mean value theorem, optimization, curve sketching and other applications. Integral calculus: the fundamental theorem of calculus, techniques of integration, improper integrals, and areas of planar regions. Infinite series: power series, Taylor's theorem and Taylor series.

    UCalgary current official course definition and native units
  • CPSC 531Systems Modelling and Simulation3 credits

    An introduction to the modelling and simulation of stochastic systems; programming language issues; model and tool design; input data modelling; simulation experiments; and the interpretation of simulation results.

    UCalgary current official course definition and native units
  • CPSC 530Information Theory and Security3 credits

    Information theoretic concepts such as entropy and mutual information and their applications to defining and evaluating information security systems including encryption, authentication, secret sharing and secure message transmission.

    UCalgary current official course definition and native units
  • CPSC 499Topics in Computer Science3 credits

    Exploration of various areas in Computer Science. Topics will vary from year-to-year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science.

    UCalgary current official course definition and native units
  • CPSC 572Fundamentals of Network Analysis and Data Mining3 credits

    Introduction to data mining with emphasis on frequent pattern mining, clustering and classification, data collection, network construction, basic graph theory concepts and network analysis metrics, and case studies.

    UCalgary current official course definition and native units
  • CPSC 525Principles of Computer Security3 credits

    Security policies and protection mechanisms for a computing system, including such topics as design principles of protection systems, authentication and authorization, reference monitors, security architecture of popular platforms, formal modelling of protection systems, discretionary access control, safety analysis, information flow control, integrity, role-based access control. Legal and ethical considerations will be introduced.

    UCalgary current official course definition and native units
  • CPSC 399Topics in Computer Science3 credits

    Exploration of various areas in Computer Science. Topics will vary from year-to-year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science.

    UCalgary current official course definition and native units
  • CPSC 565Emergent Computing3 credits

    An insight into a new mindset for programming as an emergent and evolutionary process. Programs can evolve and learn as a result of training and emergency from augmented intelligence systems properties rather than being manually coded. Topics will include: agent-based programming, emergent augmented intelligence, evolutionary algorithms, swarm intelligence, neural networks and other bio-inspired methodologies for constructing intelligent systems.

    UCalgary current official course definition and native units
  • CPSC 304A Survey of Computer Science for Non-Majors3 credits

    An exploration of the breadth of computer science including both classical subjects and topics of current and ongoing interest. The focus of the course is on examining and appreciating how computers accomplish tasks we commonly perform. It is not expected that students use mathematics or programming.

    UCalgary current official course definition and native units
  • CPSC 561Intro to Distributed Algorithms3 credits

    Basic problems in distributed systems such as symmetry breaking, consensus, resource allocation, and synchronization. The impact of system characteristics, such as models of communication, timing and failure, and of solution requirements, such as correctness and complexity criteria and algorithmic constraints, on the computability and complexity of these problems. Techniques for solving problems under different models will be emphasized.

    UCalgary current official course definition and native units
  • CPSC 501Advanced Programming Techniques3 credits

    Theory and application of advanced programming methods and tools. Recent issues as well as those of an enduring nature will be discussed. Topics may include the Fourier transform; wavelets; functional programming; genetic algorithms, simulated annealing and neural networks; parallel and distributed programming; images and graphics user interface programming.

    UCalgary current official course definition and native units
  • CPSC 584Human-Robot Interaction3 credits

    Introduction to the design, implementation and evaluation of human-robot interfaces. Topics include the evaluation of human-robot interaction (HRI), theoretical, philosophical and ethical issues, exploration of applications and tasks, prototyping HRI tools, and practical implementation and evaluation methods.

    UCalgary current official course definition and native units
  • CPSC 586Game Artificial Intelligence3 credits

    AI techniques commonly used in video games, such as behaviour trees, search-based methods, and machine learning. Implementation of AI techniques in a commercial game engine.

    UCalgary current official course definition and native units
  • SENG 533Software Performance Evaluation3 credits

    Analyzing quality requirements of large-scale software. Performance analysis, testing, and tuning techniques. Evaluating software scalability. Capacity planning methodologies. Issues related to safety, security, and availability of software.

    UCalgary current official course definition and native units
  • CPSC 511Introduction To Complexity Theory3 credits

    Time and space complexity; the classes P, LOGSPACE, PSPACE and their nondeterministic counterparts; containments and separations between complexity classes; intractability and the theory of NP-completeness; complexity theories for probabilistic algorithms and for parallel algorithms.

    UCalgary current official course definition and native units
  • CPSC 521Foundations of Functional Programming3 credits

    Theoretical foundations of functional programming: the lambda-calculus, beta-reduction, confluence, and reduction strategies. Programming syntax: solving recursive equations with the Y-combinator, let and letrec, types, datatypes, and patterns. Programming in a functional language: recursion patterns, useful combinators, maps, and folds, for datatypes. Example applications: recursive descent parsing, unification, combinatorial algorithms, theorem proving.

    UCalgary current official course definition and native units
  • CPSC 502.02Research Project in Theoretical Computer Science6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 441Computer Networks3 credits

    Principles and practice in modern telecommunications, computer communications and networks. Layered communication protocols and current physical, data link, network and Internet protocol layers. Circuit switching, packet switching, and an introduction to broadband multimedia networking.

    UCalgary current official course definition and native units
  • MATH 318Introduction to Cryptography3 credits

    The basics of cryptography, with emphasis on attaining well-defined and practical notions of security. Symmetric and public-key cryptosystems; one-way and trapdoor functions; mechanisms for data integrity; digital signatures; key management; applications to the design of cryptographic systems. Assessment will primarily focus on mathematical theory and proof-oriented homework problems; additional application programming exercises will be available for extra credit.

    UCalgary current official course definition and native units
  • SENG 401Software Architecture3 credits

    Software architectures and design for non-functional software properties. Introduction to program comprehension skills including analysis of existing architectures.

    UCalgary current official course definition and native units
  • CPSC 599Topics in Computer Science3 credits

    Exploration of various areas in Computer Science. Topics will vary from year to year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science.

    UCalgary current official course definition and native units
  • CPSC 503.04Project in InformationSecurity3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • SENG 437Software Testing3 credits

    Concepts, methods, techniques, processes, and tools for software testing.

    UCalgary current official course definition and native units
  • CPSC 502.08Research Project in Networks and Distributed Computing6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 235Advanced Introduction to Computer Science3 credits

    An accelerated introduction to problem solving, the analysis and design of small-scale computational systems and implementation using both procedural and object-oriented programming languages. Issues of design, modularization, and programming style will be emphasized.

    UCalgary current official course definition and native units
  • CPSC 571Design and Implementation of Database Systems3 credits

    Design and implementation of modern database systems, including storage and indexing, query modification/optimization, recovery, concurrency, integrity, and distribution. Emphasis on data analysis, blockchain databases, and NoSQL databases.

    UCalgary current official course definition and native units
  • CPSC 502.01Research Project in Computer Science6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 498Topics in Computer Science3 credits

    Exploration of various areas in Computer Science. Topics will vary from year-to-year. Offered as required to provide opportunities for students to engage in additional areas in Computer Science

    UCalgary current official course definition and native units
  • SENG 438Software Testing, Reliability, and Quality3 credits

    Concepts, methods, techniques, processes, and tools for software testing. The principles, processes, and applications of software reliability and software quality assurance.

    UCalgary current official course definition and native units
  • CPSC 527Computer Viruses and Malware3 credits

    Study of computer viruses, worms, Trojan horses, and other forms of malicious software. Countermeasures to malicious software. Legal and ethical issues, and some general computer and network security issues.

    UCalgary current official course definition and native units
  • CPSC 505Foundations of Access Control3 credits

    Application of formal methods and mathematical logic to the modelling of access control systems and the design of policy languages. Topics include safety and resiliency analysis, proof of policy compliance, expressiveness of policy languages, policy analysis, as well as a survey of modern paradigms of access control.

    UCalgary current official course definition and native units
  • CPSC 393Metacognition in Self-directed Learning Methodologies3 credits

    Remain current in Computer Science as this field evolves by developing a reflective life-long learning practice. Independent student work will include using a wide variety of sources and developing the ability to self-assess progress in learning and knowledge in topics related to Computer Science.

    UCalgary current official course definition and native units
  • CPSC 503.02Project in Theoretical Computer Science3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • SENG 499Introductory Topics in Software Engineering3 credits

    Special topics at an introductory level on software development methods, technologies, or tools.

    UCalgary current official course definition and native units
  • CPSC 589Modelling for Computer Graphics3 credits

    Parametric Modelling. B-splines and NURBS. Subdivision schemes. Surface subdivision. Multiresolution. Wavelets. Implicit modelling. Blends. Polygonization. Blobtree. Precise contact modelling. Solid modelling. CSG. Procedural modelling. Special topics, e.g. Differential geometry. Graph-based modelling. Topology.

    UCalgary current official course definition and native units
  • CPSC 299Junior Computer Science3 credits
  • CPSC 587Fundamentals of Computer Animation3 credits

    Principles of traditional animation, key framing, parametric and track animation, free form deformation, inverse kinematics, dynamics, spring mass systems, particle systems, numerical integration, Lagrangian constraints, space time constraints, collisions, human animation, behavioural animation, metamorphosis, implicit animation techniques, animating liquids, gases and cloth, motion capture.

    UCalgary current official course definition and native units
  • CPSC 503.05Project in Scientific Computation3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • MATH 391Numerical Analysis I3 credits

    Interpolation and approximation, numerical integration and differentiation, numerical methods for the solution of non-linear equations, systems of linear equations and the eigenvalue problem, introduction to a scientific computing software.

    UCalgary current official course definition and native units
  • CPSC 594Software Engineering Project6 credits

    A software engineering project conducted under the guidance of a faculty member.

    UCalgary current official course definition and native units
  • SENG 471Software Requirements Engineering3 credits

    Introduction to elicitation, modelling, expression and validation of the requirements. Techniques and methodologies for requirements engineering. Applications of requirements engineering to the management of the software development lifecycle.

    UCalgary current official course definition and native units
  • CPSC 581Human-Computer Interaction II3 credits

    Intermediate and advanced topics and applications in human-computer interaction, to further one's skills for designing highly interactive human-computer interfaces.

    UCalgary current official course definition and native units
  • CPSC 383Explorations in Artificial Intelligence and Machine Learning3 credits

    A survey of artificial intelligence and machine learning tools to cultivate an understanding of their capability, utility, and societal/ethical/legal considerations. Popular APIs will be used to develop simple applied examples.

    UCalgary current official course definition and native units
  • CPSC 217Introduction to Computer Science for Multidisciplinary Studies I3 credits

    Introduction to problem solving, analysis and design of small-scale computational systems and implementation using a procedural programming language. For students wishing to combine studies in computer science with studies in other disciplines.

    UCalgary current official course definition and native units
  • CPSC 598Topics in Computer Science6 credits

    New areas in Computer Science. This full course will be offered only as required. Before registration consult the Head of the Department of Computer Science for topics offered.

    UCalgary current official course definition and native units
  • CPSC 582Data Visualization Design and Development3 credits

    Creative design strategies, technical implementation approaches, interaction techniques, evaluation methods, and reflective practices for visualizing novel datasets. Exploration of specialized approaches including geospatial, network, text, and uncertainty visualization.

    UCalgary current official course definition and native units
  • CPSC 502.07Research Project in Human Computer Interaction6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 544Machine Learning3 credits

    Presenting various techniques for learning various kinds of knowledge, including rules, parameters, trees and graphs, partitions of sets, sequences and behaviors, and cases. Pointing out the components that can be improved using knowledge about the application area of a system. Looking at various pre-processing and post-processing improvement techniques.

    UCalgary current official course definition and native units
  • CPSC 568Agent Communications3 credits

    An examination of communication paradigms in multi-agent systems. A number of paradigms will be covered including simple protocols, BDI (Believe, Desire, Intention), and social commitments.

    UCalgary current official course definition and native units
  • CPSC 502.05Research Project in Scientific Computation6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 588Tangible and Physical Human-Computer Interaction3 credits

    Theory and practice of designing tangible user interfaces and physical computing systems.

    UCalgary current official course definition and native units
  • CPSC 461Information Structures3 credits

    File architecture and manipulation techniques for various file types. Physical characteristics of current mass storage devices. Advanced data structures and algorithms for implementing various sequential and hierarchical file structures. File organization and design for various applications, file systems and other storage management techniques including website design.

    UCalgary current official course definition and native units
  • CPSC 517Design and Analysis of Algorithms II3 credits

    Advanced techniques for the design and analysis of deterministic and probabilistic algorithms; techniques for deriving lower bounds on the complexity of problems.

    UCalgary current official course definition and native units
  • CPSC 313Introduction to Computability3 credits

    An introduction to abstract models of sequential computation, including finite automata, regular expressions, context-free grammars, and Turing machines. Formal languages, including regular, context-free, and recursive languages, methods for classifying languages according to these types, and relationships among these classes.

    UCalgary current official course definition and native units
  • CPSC 491Techniques for Numerical Computation3 credits

    Elementary techniques for the numerical solution of mathematical problems on a computer, including methods for solving linear and non-linear equations, numerical integration, and interpolation.

    UCalgary current official course definition and native units
  • DATA 211Programming with Data3 credits

    A hands-on introduction to basic coding skills, including core programming concepts and the fundamentals of reading, writing, and executing code -- with a focus on data manipulation. Emphasizes important tools and practices for programming with data, including development environments, source control, and debugging.

    UCalgary current official course definition and native units
  • SENG 541Fundamentals of Software Evolution and Reuse3 credits

    Phenomena and approaches involved in the evolution and reuse of large-scale software, including design for modifiability and tool support. Strengths and weaknesses of industrially-current techniques as well as recent research results.

    UCalgary current official course definition and native units
  • CPSC 219Introduction to Computer Science for Multidisciplinary Studies II3 credits

    Continuation of Introduction to Computer Science for Multidisciplinary Studies I. Emphasis on object-oriented analysis and design of small-scale computational systems and implementation using an object-oriented language. Issues of design, modularization and programming style will be emphasized.

    UCalgary current official course definition and native units
  • CPSC 537Competitive Programming3 credits

    Application of advanced algorithms and data structures to solve mathematical, logical, and computational puzzles; design principles, optimization, implementation, and strategies for collaborative problem solving.

    UCalgary current official course definition and native units
  • CPSC 398Topics in Computer Science3 credits

    Exploration of various areas in Computer Science. Topics will vary from year-to-year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science.

    UCalgary current official course definition and native units
  • CPSC 518Introduction to Computer Algebra3 credits

    Fundamental problems, classical and modern algorithms, and algorithm design and analysis techniques of use in computer algebra. Integer and polynomial arithmetic. Additional problems in computer algebra, possibly including problems in computational linear algebra, factorization, and concerning systems of polynomial equations will be considered as time permits.

    UCalgary current official course definition and native units
  • CPSC 502.06Research Project in Software Engineering6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 418Introduction to Cryptography3 credits

    The basics of cryptography, with emphasis on attaining well-defined and practical notations of security. Symmetric and public key cryptosystems; one-way and trapdoor functions; mechanisms for data integrity; digital signatures; key management; applications to the design of cryptographic systems. In addition to written homework, assessment will involve application programming; additional mathematical theory and proof-oriented exercises will be available for extra credit.

    UCalgary current official course definition and native units
  • CPSC 519Introduction to Quantum Computation3 credits

    Introduction to quantum computing. Quantum algorithms, quantum search, quantum fourier transforms, quantum error correcting codes, quantum cryptography, nonlocality and quantum communication complexity, and quantum computational complexity.

    UCalgary current official course definition and native units
  • CPSC 559Introduction to Distributed Systems3 credits

    Designing and implementing distributed systems that overcome challenges due to concurrent computation, failure of components in the system and heterogeneity of processors and communication channels.

    UCalgary current official course definition and native units
  • CPSC 482Data Visualization Fundamentals3 credits

    Introduction to the theory and practice of data visualization with a focus on perception-based encoding choices and data mapping, chart authoring paradigms, visualization ethics and interpretation, and visual communication.

    UCalgary current official course definition and native units
  • SENG 523Formal Methods3 credits

    Software specification, verification, and validation using a mathematically rigorous technique.

    UCalgary current official course definition and native units
  • DATA 311Data Processing and Storage3 credits

    An introduction to fundamental data structures, including lists, stacks, trees, hash tables, and graphs, and their application for data processing, analysis, and storage. Covers the fundamental state of the art data modelling and manipulation techniques, with emphasis on emerging characteristics of big data, including volume, velocity, variety and veracity.

    UCalgary current official course definition and native units
  • CPSC 503.07Project in Human Computer Interaction3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 556Machine Learning in Biometric Security3 credits

    Principles of machine learning in biometric system design. Examine methods of expert decision making in multi-modal systems using rank, score, decision and fuzzy level fusion. Biometric classification using traditional machine learning methods and modern deep learning architectures. Application topics may include image processing, pattern recognition, data mining, medicine, defense and cybersecurity.

    UCalgary current official course definition and native units
  • MATH 493Numerical Analysis II3 credits

    Numerical solution of ordinary differential equations, single and multi-step methods, numerical solution of boundary value problems, numerical solution of partial differential equations, stability analysis.

    UCalgary current official course definition and native units
  • CPSC 522Introduction to Randomized Algorithms3 credits

    Techniques for the design and analysis of randomized algorithms; discrete probability theory; randomized data structures; lower bound techniques; randomized complexity classes; advanced algorithmic applications from various areas.

    UCalgary current official course definition and native units
  • CPSC 513Computability3 credits

    Computable functions; decidable and undecidable problems; Church's thesis and recursive functions.

    UCalgary current official course definition and native units
  • CPSC 502.03Research Project in Computer Graphics6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 550Systems Administration6 credits

    Topics and practices in systems administration and management. Required and optional administration duties and responsibilities. Moral and ethical conundrums, and legal responsibilities, in systems operation. Configuration and installation of operating systems and network and systems services.

    UCalgary current official course definition and native units
  • CPSC 567Foundations of Multi-Agent Systems3 credits

    Modelling of agents and properties of multi-agent systems. Communication issues, including interaction and co-ordination concepts, forming and maintaining organizations, and competitive agent environments. Example systems; the implementation of a multi-agent system will be performed as the assignment.

    UCalgary current official course definition and native units
  • CPSC 535Introduction to Image Analysis and Computer Vision3 credits

    Standard methods used in the analysis of digital images. Image acquisition and display: visual perception; digital representation. Sampling and enhancement. Feature extraction and classification methods. Object recognition.

    UCalgary current official course definition and native units
  • SENG 511Software Project Management3 credits

    Analysis of methods, tools, and techniques for software project management as an effort to achieve quality software products.

    UCalgary current official course definition and native units
  • CPSC 405Software Entrepreneurship3 credits

    Development of business models, building software prototypes and creation of pitch presentations to create a software-based business.

    UCalgary current official course definition and native units
  • CPSC 335Intermediate Information Structures3 credits

    A continuation of Computer Science 331. Collision resolution in hash tables, search algorithms, advanced tree structures, strings. Advanced algorithmic tools for storing and manipulation of information.

    UCalgary current official course definition and native units
  • CPSC 471Data Base Management Systems3 credits

    Concepts and implementation of database models with emphasis on the relational paradigm: relational model, relational algebra and calculus, SQL query language, normalization theory, integrity and consistency. Overview of NoSQL databases and big data.

    UCalgary current official course definition and native units
  • CPSC 596Team Capstone Project6 credits

    A substantial research, development, or entrepreneurial project for teams of computer science students. Research and development teams will work for internal or external clients. Entrepreneurial teams will work towards the creation of a computer science startup.

    UCalgary current official course definition and native units
  • CPSC 481Human-Computer Interaction I3 credits

    Fundamental theory and practice of the design, implementation, and evaluation of human-computer interfaces. Topics include: principles of design; methods for evaluating interfaces with or without user involvement; techniques for prototyping and implementing graphical user interfaces.

    UCalgary current official course definition and native units
  • CPSC 433Artificial Intelligence3 credits

    An examination of the objectives, key techniques and achievements of work on artificial intelligence in Computer Science.

    UCalgary current official course definition and native units
  • CPSC 359Computing Machinery II3 credits

    An introduction to hardware and microprocessor design, including the connection between gate-level digital logic circuits and sequential machines that can execute an algorithm and perform input and output.

    UCalgary current official course definition and native units
  • CPSC 503.01Project in Computer Science3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 329Explorations in Information Security and Privacy3 credits

    A broad survey of topics in information security and privacy, with the purpose of cultivating an appropriate mindset for approaching security and privacy issues. Topics will be motivated by recreational puzzles. Legal and ethical considerations will be introduced as necessary.

    UCalgary current official course definition and native units
  • CPSC 528Spam and Spyware3 credits

    Spam and other unsolicited bulk electronic communication, and spyware. Legal and ethical issues. Countermeasures and related security problems.

    UCalgary current official course definition and native units
  • CPSC 591Rendering3 credits

    Physical foundations of illuminations techniques. Colour. Radiometry and photometry. Reflection models. The rendering equation. Ray tracing. Monte Carlo techniques. Sampling and antialiasing. Texturing. Radiosity. Photon tracing. Volume rendering. Image-based rendering. Real-time shading.

    UCalgary current official course definition and native units
  • CPSC 503.08Project in Networks and Distributed Computing3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • SENG 550Scalable Data Analytics3 credits

    Sources and characteristics of large scale data, i.e., "big data", large scale data analysis, benefits of large-scale data analysis to various industry domains, programming paradigms and middleware technologies for scalable data analysis, algorithms that enable large-scale data processing, application of large scale data algorithms in selected application domains, e.g., Web user behaviour analysis and text processing, analytics frameworks.

    UCalgary current official course definition and native units
  • CPSC 319Data Structures, Algorithms, and Their Applications3 credits

    Fundamental data structures, including arrays, lists, stacks, queues, trees, hash tables, and graphs. Algorithms for searching and sorting. Introduction to analysis of algorithms. Applications of these data structures and algorithms. For students wishing to combine studies in computer science with studies in other disciplines.

    UCalgary current official course definition and native units
  • CPSC 503.03Project in Computer Graphics3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • PHIL 377Elementary Formal Logic3 credits

    Sentential and first-order logic, with identity and descriptions, from both deductive and semantic points of view. Completeness, compactness, decidability for sentential logic. Notes: Not open to students with credit in Philosophy 279.

    UCalgary current official course definition and native units
  • CPSC 365C++ Programming3 credits

    Introduction to the C++ language, with an emphasis on its advanced language constructs and features. Techniques for writing time and space efficient code will be considered.

    UCalgary current official course definition and native units
  • SENG 501Advanced Topics in Software Engineering3 credits

    Special topics at an advanced level on software development methods, technologies, or tools.

    UCalgary current official course definition and native units
  • CPSC 502.04Research Project in Information Security6 credits

    A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 411Compiler Construction3 credits

    Introduction to compilers, interpreters, and the tools for parsing and translation. Lexical analysis, context free grammars and software tools for their recognition. Attribute grammars and their applications in translation and compiling.

    UCalgary current official course definition and native units
  • CPSC 409History Of Computation3 credits

    The history of computation from the earliest times to the modern era.

    UCalgary current official course definition and native units
  • CPSC 575iProgramming for Creative Minds3 credits

    Design, develop and market apps. This course has a focus on developing, implementing and evaluating ideas in teams and gaining entrepreneurial skills for software development and marketing.

    UCalgary current official course definition and native units
  • CPSC 577Biometric Technologies3 credits

    Principles of biometric system design, technology and performance evaluation. Verification, identification and synthesis in biometrics. Traditional and emerging techniques for fingerprint matching, face recognition, iris modelling, signature authentication, and biometric pattern recognition. Multi-modal biometrics and information fusion. Privacy and ethics considerations in deployment of biometric systems.

    UCalgary current official course definition and native units
  • CPSC 503.06Project in Software Engineering3 credits

    A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.

    UCalgary current official course definition and native units
  • CPSC 573Visualization and Analytics3 credits

    The full data analysis lifecycle from collection to presentation. Practical application of exploratory statistical, analytical, and visualization techniques to real-world data with a focus on critical thinking, accuracy, and ethics.

    UCalgary current official course definition and native units
  • SENG 513Web-Based Systems3 credits

    An overview of software engineering methods and technologies for developing web-based software systems.

    UCalgary current official course definition and native units
  • CPSC 453Introduction to Computer Graphics3 credits

    Introduction to computer graphics. Principles of raster image generation. Example of a graphics API. Graphics primitives. Co-ordinate systems, affine transformations and viewing of graphical objects. Introduction to rendering including shading models and ray tracing. Introduction to modelling including polygon meshes, subdivision, and parametric curves and surfaces.

    UCalgary current official course definition and native units
  • SENG 515Agile Software Engineering3 credits

    Investigation and application of agile software development practices.

    UCalgary current official course definition and native units
Elective choices
  • BSc Computer Science; Year 1; Fall: Non-Major Field Option , Non-Science Option.
  • BSc Computer Science; Year 1; Winter: Non-Major Field Option , Non-Science Option.
  • BSc Computer Science; Year 2; Fall: Non-Science Option, Non-Major Field Option.
  • BSc Computer Science; Year 2; Winter: Course in the field of Computer Science (300-level or higher), Non-Major Field Option, Non-Major Field Option.
  • BSc Computer Science; Year 3; Fall: Course in the field of Computer Science (300-level or higher), Course in the field of Computer Science (300-level or higher), Non-Science Option, Non-Major Field Option.
  • BSc Computer Science; Year 3; Winter: Course in the field of Computer Science (400-level or higher), Non-Major Field Option, Non-Major Field Option.
  • BSc Computer Science; Year 4; Fall: Course in the field of Computer Science (500-level or higher), Course in the field of Computer Science (400-level or higher), Course in the field of Computer Science (400-level or higher), Open Option, Open Option.
  • BSc Computer Science; Year 4; Winter: Course in the field of Computer Science (500-level or higher), Course in the field of Computer Science (500-level or higher), Course in the field of Computer Science (400-level or higher), Open Option, Open Option.
Study routes

The named current calendar degree variants only. Other honours, concurrent, combined and after-degree routes require separate calendars.

  • UCalgary
Study locations
Published academic-unit location
The Department of Computer Science lists its main office in ICT 602. This is a department contact office; individual course rooms are separate.Calgary: current named cs academic-unit location
ReferencesUCalgary 2026/27 displayed degree requirementsUniversity · exact programme work-study requirementsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current course title and published unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsUCalgary current official course definition and native unitsCalgary: current explicit degree duration scopeUniversity · exact programme work-study requirementsCalgary: current named cs academic-unit location

Careers

Career sectors

8
  • Technology companies
  • Civil sector
  • Non-profit sector
  • Consulting
  • Freelancing
  • Entrepreneurship
  • Technology companies (large and small)
  • Consulting / freelance
Scope and qualifications

University-published career examples. Some routes require further study or professional registration; these are not ranked employment outcomes.

Costs

Most Faculties*

Published cost estimate

2026–27 · One 3-unit course · CAD

Canadian students example · Choose your category

Tuition$738.66
Books and suppliesNot researched
Residence
Not estimated
Meal plan
Not estimated
Estimated subtotalNot available

Course home-faculty rates · General and programme fees extra

Housing and meals are outside this estimate.

Last updated

Suggest to a student