- HBA · 4 years
- Work experience details
- ~High 80s to low 90s



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
Work experience
Science Co-op offers 4–16 months of paid supervised work; eight months are required for the designation.
University · exact programme work-study requirementsEntering average
Published approximate guidance: Low 80s estimated competitive average. Fall 2027. Ontario high-school curriculum applicants to Computer Science.
UCalgary Computer Science · Ontario curriculum, Fall 2027| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
| 2 | 3 | 4 | 5 | 6 | 7 | |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Fall 2027 · Postsecondary transfer applicants with Ontario educational background
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.
Check the university’s requirements for your province and applicant category.
UCalgary exact rendered programme Ontario high-school applicants admission panelOntario high-school applicants
Ontario high-school applicants
Ontario high-school applicants
Ontario high-school applicants
Ontario high-school applicants
Alberta high-school applicants
Alberta high-school applicants
Alberta high-school applicants
Alberta high-school applicants
Alberta high-school applicants
Postsecondary transfer applicants with Ontario educational background
Postsecondary transfer applicants with Ontario educational background
Postsecondary transfer applicants with Ontario educational background
Postsecondary transfer applicants with Ontario educational background
Ontario high-school curriculum applicants to Computer Science.
UCalgary Computer Science · Ontario curriculum, Fall 2027The named current calendar degree variants only. Other honours, concurrent, combined and after-degree routes require separate calendars.
BSc
Focus on computer game design and development within the Computer Science degree.
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.
Published recommended degree map. Course alternatives remain choices. Options: Non-Major Field Option , Non-Science Option.
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 unitsAn 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 unitsAn 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 unitsAn 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 unitsPublished recommended degree map. Course alternatives remain choices. Options: Non-Major Field Option , Non-Science Option.
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 unitsRecursion 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 unitsSentential and first-order logic from both deductive and semantic points of view. Some elementary metatheorems.
UCalgary current official course definition and native unitsPublished recommended degree map. Course alternatives remain choices. Options: Non-Science Option, Non-Major Field Option.
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 unitsDiscrete 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 unitsIntroduction 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 unitsPublished 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.
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 unitsA 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 unitsPublished 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.
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 unitsPublished 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.
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 unitsAn introduction to operating systems principles. Performance measurement; concurrent programs; the management of information, memory and processor resources.
UCalgary current official course definition and native unitsNamed 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 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.
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 unitsAn 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 unitsPublished 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.
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 unitsRecursion 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 unitsSentential and first-order logic from both deductive and semantic points of view. Some elementary metatheorems.
UCalgary current official course definition and native unitsPublished 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.
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 unitsDiscrete 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 unitsIntroduction 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 unitsPublished 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.
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 unitsA 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 unitsPublished 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.
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 unitsPublished 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.
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 unitsAn introduction to operating systems principles. Performance measurement; concurrent programs; the management of information, memory and processor resources.
UCalgary current official course definition and native unitsThe principles, processes, and applications of software reliability and software quality assurance.
UCalgary current official course definition and native unitsExploration 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 unitsAttacks 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 unitsStandard 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 unitsAn 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 unitsAn 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 unitsInformation 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 unitsExploration 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 unitsIntroduction 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 unitsSecurity 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 unitsExploration 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 unitsAn 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 unitsAn 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 unitsBasic 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 unitsTheory 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 unitsIntroduction 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 unitsAI 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 unitsAnalyzing 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 unitsTime 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 unitsTheoretical 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 unitsA 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 unitsPrinciples 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 unitsThe 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 unitsSoftware 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 unitsExploration 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 unitsA 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 unitsConcepts, methods, techniques, processes, and tools for software testing.
UCalgary current official course definition and native unitsA 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 unitsAn 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 unitsDesign 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 unitsA 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 unitsExploration 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 unitsConcepts, 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 unitsStudy 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 unitsApplication 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 unitsRemain 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 unitsA 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 unitsSpecial topics at an introductory level on software development methods, technologies, or tools.
UCalgary current official course definition and native unitsParametric 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 unitsPrinciples 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 unitsA 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 unitsInterpolation 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 unitsA software engineering project conducted under the guidance of a faculty member.
UCalgary current official course definition and native unitsIntroduction 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 unitsIntermediate 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 unitsA 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 unitsIntroduction 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 unitsNew 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 unitsCreative 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 unitsA 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 unitsPresenting 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 unitsAn 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 unitsA 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 unitsTheory and practice of designing tangible user interfaces and physical computing systems.
UCalgary current official course definition and native unitsFile 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 unitsAdvanced 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 unitsAn 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 unitsElementary 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 unitsA 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 unitsPhenomena 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 unitsContinuation 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 unitsApplication 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 unitsExploration 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 unitsFundamental 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 unitsA 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 unitsThe 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 unitsIntroduction 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 unitsDesigning 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 unitsIntroduction 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 unitsSoftware specification, verification, and validation using a mathematically rigorous technique.
UCalgary current official course definition and native unitsAn 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 unitsA 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 unitsPrinciples 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 unitsNumerical 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 unitsTechniques 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 unitsComputable functions; decidable and undecidable problems; Church's thesis and recursive functions.
UCalgary current official course definition and native unitsA 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 unitsTopics 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 unitsModelling 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 unitsStandard 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 unitsAnalysis of methods, tools, and techniques for software project management as an effort to achieve quality software products.
UCalgary current official course definition and native unitsDevelopment of business models, building software prototypes and creation of pitch presentations to create a software-based business.
UCalgary current official course definition and native unitsA 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 unitsConcepts 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 unitsA 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 unitsFundamental 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 unitsAn examination of the objectives, key techniques and achievements of work on artificial intelligence in Computer Science.
UCalgary current official course definition and native unitsAn 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 unitsA 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 unitsA 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 unitsSpam and other unsolicited bulk electronic communication, and spyware. Legal and ethical issues. Countermeasures and related security problems.
UCalgary current official course definition and native unitsPhysical 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 unitsA 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 unitsSources 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 unitsFundamental 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 unitsA 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 unitsSentential 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 unitsIntroduction 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 unitsSpecial topics at an advanced level on software development methods, technologies, or tools.
UCalgary current official course definition and native unitsA 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 unitsIntroduction 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 unitsThe history of computation from the earliest times to the modern era.
UCalgary current official course definition and native unitsDesign, 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 unitsPrinciples 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 unitsA 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 unitsThe 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 unitsAn overview of software engineering methods and technologies for developing web-based software systems.
UCalgary current official course definition and native unitsIntroduction 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 unitsInvestigation and application of agile software development practices.
UCalgary current official course definition and native unitsThe named current calendar degree variants only. Other honours, concurrent, combined and after-degree routes require separate calendars.
University-published career examples. Some routes require further study or professional registration; these are not ranked employment outcomes.
Most Faculties*
2026–27 · One 3-unit course · CAD
Canadian students example · Choose your category
Course home-faculty rates · General and programme fees extra
Housing and meals are outside this estimate.
Last updated