Exploring term Fall 2023 Change
- ACAN: Arts of Canada
- ADMN: Public Administration
- AE: Art Education
- AGEI: Ageing
- AHVS: Art History and Visual Studies
- ANTH: Anthropology
- ART: Visual Arts
- ARTS: Arts
- ASL: American Sign Language
- ASTR: Astronomy
- ATWP: Academic and Technical Writing Program
- BCMB: Biochemistry and Microbiology
- BIOC: Biochemistry
- BIOL: Biology
- BME: Biomedical Engineering
- CE: Community Engagement
- CHEM: Chemistry
- CIVE: Civil Engineering
- COM: Commerce
- CS: Canadian Studies
- CSC: Computer Science
- CW: Creative Writing (En'owkin Centre)
- CYC: Child and Youth Care
- DHUM: Digital Humanities
- DSST: Disability Studies (DSS)
- ECE: Electrical and Computer Engineering
- ECON: Economics
- ED-D: Educational Psychology and Leadership Studies
- ED-P: Curriculum and Instruction Studies
- EDCI: Curriculum and Instruction Studies
- EDUC: Education
- ENGR: Engineering
- ENSH: English
- ENT: Entrepreneurship
- EOS: Earth and Ocean Sciences
- EPHE: Exercise Science, Physical and Health Education
- ER: Environmental Restoration
- ES: Environmental Studies
- EUS: European Studies
- FA: Fine Arts
- FRAN: French and Francophone Studies
- GDS: Global Development Studies
- GEOG: Geography
- GMST: Germanic Studies
- GNDR: Gender Studies
- GREE: Greek
- GRS: Greek and Roman Studies
- HDCC: Human Dimensions of Climate Change
- HINF: Health Information Science
- HLTH: Health
- HS: Health and Society
- HSD: Human and Social Development
- HSTR: History
- HUMA: Humanities
- IB: International Business
- ICDG: Indigenous Community Development and Governance
- IED: Indigenous Education
- IGOV: Indigenous Governance
- INGH: Indigenous Health Studies
- INTS: International Health Studies
- IS: Indigenous Studies
- ISP: Intercultural Studies and Practice
- ITAL: Italian
- LAS: Latin American Studies
- LATI: Latin
- LAW: Law
- LING: Linguistics
- MATH: Mathematics
- MDIA: Media Studies
- MECH: Mechanical Engineering
- MEDI: Medieval Studies
- MEDS: Medical Science
- MICR: Microbiology
- MRNE: Marine Science
- MUS: Music
- NURS: Nursing
- PAAS: Pacific and Asian Studies
- PHIL: Philosophy
- PHYS: Physics
- POLI: Political Science
- PORT: Portuguese
- PSYC: Psychology
- RCS: Religion, Culture and Society
- SCIE: Science
- SENG: Software Engineering
- SJS: Social Justice Studies
- SLST: Slavic Studies
- SMGT: Service Management
- SOCI: Sociology
- SOCW: Social Work
- SOSC: Social Science
- SPAN: Spanish
- STAT: Statistics
- TCA: Transformative Climate Action
- THEA: Theatre
- TS: Technology and Society
- VIRS: Visiting International Research Studies
- VKUR: Valerie Kuehne Undergraduate Research Award
- WRIT: Writing
- CSC100: Elementary Computing
- CSC101: Untangling the Web by Analyzing and Architecting Digital Solutions
- CSC103: Introductory Programming and Software Development
- CSC105: Computers and Information Processing
- CSC106: The Practice of Computer Science
- CSC110: Fundamentals of Programming I
- CSC111: Fundamentals of Programming with Engineering Applications
- CSC115: Fundamentals of Programming II
- CSC116: Fundamentals of Programming with Engineering Applications II
- CSC130: World Wide Web and Mobile Applications
- CSC167: Game Strategy, Interaction and Design
- CSC205: 2D Computer Graphics and Image Processing
- CSC225: Algorithms and Data Structures I
- CSC226: Algorithms and Data Structures II
- CSC230: Introduction to Computer Architecture
- CSC299: Undergraduate Directed Project
- CSC305: Introduction to Computer Graphics
- CSC320: Foundations of Computer Science
- CSC322: Logic and Programming
- CSC330: Programming Languages
- CSC349A: Numerical Analysis
- CSC350: Computer Architecture
- CSC355: Digital Logic and Computer Organization
- CSC360: Operating Systems
- CSC361: Computer Communications and Networks
- CSC370: Database Systems
- CSC371: Data Management and Visualization
- CSC375: Introduction to Systems Analysis
- CSC402: Systems for Massive Datasets
- CSC411: Information Visualization
- CSC412: Computing for Cognitive Augmentation
- CSC413: Designing Creativity Support Tools
- CSC421: Introduction to Artificial Intelligence
- CSC422: Graph Algorithms
- CSC423: Randomized Algorithms
- CSC425: Analysis of Algorithms
- CSC426: Computational Geometry
- CSC427: Advanced Topics in Bioinformatics
- CSC428: Computational Biology Algorithms
- CSC428A: Combinatorial Algorithms
- CSC429: Cryptography
- CSC431: Machine Learning Theory
- CSC435: Compiler Construction
- CSC445: Operations Research: Linear Programming
- CSC446: Simulations in Operations Research
- CSC449: Numerical Linear Algebra
- CSC460: Design and Analysis of Real-time Systems
- CSC461: Multimedia Systems
- CSC462: Distributed Computing
- CSC463: Wireless and Mobile Networks
- CSC464: Concurrency
- CSC466: Overlay and Peer-to-Peer Networking
- CSC467: Switching, Network Traffic and Quality of Service
- CSC471: Fundamentals of Computer Rendering
- CSC472: Fundamentals of Computer Modelling
- CSC473: Fundamentals of Computer Animation
- CSC475: Music Retrieval Techniques
- CSC482A: Topics in Algorithms
- CSC482B: Topics in Algorithms
- CSC482C: Topics in Algorithms
- CSC482D: Topics in Algorithms
- CSC483A: Topics in Programming Methodology
- CSC483B: Topics in Programming Methodology
- CSC483C: Topics in Programming Methodology
- CSC483D: Topics in Programming Methodology
- CSC484A: Topics in Scientific Computing
- CSC484B: Topics in Scientific Computing
- CSC484C: Topics in Scientific Computing
- CSC484D: Topics in Scientific Computing
- CSC485A: Topics in Systems
- CSC485B: Topics in Systems
- CSC485C: Topics in Systems
- CSC485D: Topics in Systems
- CSC485E: Topics in Systems
- CSC485F: Topics in Systems
- CSC485G: Topics in Systems
- CSC485H: Topics in Systems
- CSC486A: Topics in Graphics
- CSC486B: Topics in Graphics
- CSC486C: Topics in Graphics
- CSC486D: Topics in Graphics
- CSC490: Directed Studies
- CSC497: Interdisciplinary Project
- CSC499: Honours Seminar and Project
CSC330
Programming Languages
Fundamental concepts of programming in different paradigms. Topics include syntax, grammar, semantics, scope, extent, type construction, type checking, type inference, polymorphism, evaluation strategies, functions as values, closures, pattern matching, unification, non-determinism.
Lecture: 3h
Lab: 0h
Tutorial: 0h
Credits: 1.5