You are reading the 2024/25 Academic Calendar. The 2023/24 version remains in effect until August 31, 2024 and is available here.

Computer Science, Faculty of Science

COSC: Computer Science


  1. COSC 101 (3) Digital Citizenship

    Knowledge and skills to navigate the digital society. Digital participation, digital access, skills and utilization. Digital literacy, computer applications, converging technologies, and online resources. This course does not assume students have any Computer Science background. [3-2-0]

  2. COSC 111 (3) Computer Programming I

    Introduction to the design, implementation, and understanding of computer programs. Topics include problem solving, algorithm design, and data and procedural abstraction, with emphasis on the development of working programs. This course should be followed by COSC 121. [3-2-0]

    Prerequisite: A score of 70% or higher in one of PREC 12, MATH 12, MATH 125, MATH 126.

  3. COSC 114 (3) Vector Graphics and Animations

    Foundation and applications of 2D /3D Euclidean geometry necessary for the computer manipulation of curves and surfaces; decomposition of a picture into basic objects; planar and spatial linear transformations; automatic picture generation and introduction to algorithmic art. [3-2-0]

    Prerequisite: One of MATH 12, PREC 12, CALC 12.

  4. COSC 121 (3) Computer Programming II

    Advanced programming in the application of software engineering techniques to the design and implementation of programs manipulating complex data structures. [3-2-0]

    Prerequisite: A score of 60% or higher in one of COSC 111, COSC 123, APSC 177.

  5. COSC 122 (3) Computer Fluency

    Introduction to computer skills (electronic communication, websites, Internet, document editing, programming, data analysis using spreadsheets/databases) and concepts (information representation, abstraction, algorithmic thinking). Course objectives are lifelong productivity and understanding of technology in society. [3-2-0]

  6. COSC 123 (3) Computer Creativity

    A hands-on introduction to programming and computer-based problem solving and creativity. Experience with application development including storytelling, graphics, games, and networking. [3-0-2]

    Prerequisite: One of COSC 111, COSC 122.

  7. COSC 150 (3) Physical Computing

    Physical computing is the design and building of hardware and software systems for sensing, processing, and affecting the analog world. Principles of physical computing, including basic electricity, digital logic, and analogue and digital electronics. Systems design for interfacing with microprocessors, sensors, and actuators using analogue and digital elements and signals. Programming for embedded systems. [3-2-0]

    Corequisite: One of COSC 111, COSC 122, APSC 177.

  8. COSC 210 (4) Software Construction

    Design, and implementation of software components. Data structures, object-oriented design, debugging, testing. Credits will only be granted for one of COSC 210 or COSC 222. [3-2-0]

    Prerequisite: One of APSC 177, COSC 111.

  9. COSC 211 (3) Machine Architecture

    Organization and design of computer systems and their impact on the practice of software development. Instruction set architecture and assembly programming languages, design of central processing units (CPU), memory hierarchy and cache organization, input and output programming. [3-0-0]

    Prerequisite: COSC 121.

  10. COSC 221 (3) Introduction to Discrete Structures

    Sets, logic, combinatorics, and graph theory, as applied in computing: sets and propositions, permutations and combinations, graphs and trees, Boolean algebra, algorithms, and applications. [3-0-1]

    Prerequisite: One of MATH 101, MATH 103, MATH 142, APSC 173.

    Corequisite: COSC 121.

  11. COSC 222 (3) Data Structures

    Introduction to the design, implementation and analysis of data structures. Topics will include lists, stacks, queues, trees, and graphs. Credit will only be granted for one of COSC 210 or COSC 222. [3-2-0]

    Prerequisite: A score of 60% or higher in COSC 121.

  12. COSC 223 (3) Principle of Computing: Logic, Discrete Structure, and Data Structure

    Propositional logic and logic inference, problem-solving techniques (recursion, induction, and mathematical proof), models of computation (theory of finite automata), graph theory, data structures (linear data structures, dictionaries, and graphs), basic algorithmic techniques. [3-2-0]

    Prerequisite: One of COSC 114, APSC 171 and one of COSC 123, COSC 111.

  13. COSC 247 (3) Networks and Social Media

    Online social networks and digital social media. Social media platforms, channels, and software tools. Graph-theoretic and game-theoretic foundation of network analysis and network science. Network metrics and evaluation. Computational, economic, and social aspects of social media. [3-2-0]

    Prerequisite: COSC 223.

  14. COSC 264 (3) Introduction to Web Development and Databases

    Construction of simple database-driven websites. Introduction to web programming: client-side, server-side; database design, implementation, and query. [3-2-0]

    Prerequisite: One of COSC 121, COSC 223.

  15. COSC 301 (3) Introduction to Data Analytics

    Software development and techniques for computation, analysis, and visualization of data. Manipulation of small and large data sets. Automation using scripting. Credit will be granted for only one of COSC 301, DATA 301 or DATA 501. [3-2-0]

    Prerequisite: Third-year standing.

    Corequisite: COSC 304.

  16. COSC 303 (3) Numerical Analysis

    Numerical techniques for basic mathematical processes and their analysis. Taylor polynomials, root-finding, linear systems, eigenvalues, approximating derivatives, locating minimizers, approximating integrals, solving differential equations. Credit will be granted for only one of COSC 303 or MATH 303. [3-1-0]

    Prerequisite: All of MATH 200, MATH 221 and either (a) COSC 111 or (b) DATA 301.

    Equivalency: MATH 303.

  17. COSC 304 (3) Introduction to Databases

    Databases from a user's perspective: querying with SQL, designing with UML, and using programs to analyze data. Construction of database-driven applications and websites and experience with current database technologies. Completion of COSC 121 is recommended. [3-0-0]

    Prerequisite: One of COSC 111, COSC 123, COSC 210. Third-year standing.

  18. COSC 305 (3) Project Management

    Examine tools and techniques to complete projects successfully, and within budget. Topics include Program Evaluation and Review Technique (PERT) and Critical Path Methods (CPM), and project management software. [3-2-0]

    Corequisite: COSC 310.

  19. COSC 310 (3) Software Engineering

    Techniques to construct large systems using fundamental activities of specification, design, implementation, testing, and maintenance. Various life cycle models, exposure to software development tools, modelling techniques, good development practices, and project management. [3-2-0]

    Prerequisite: One of COSC 210, COSC 222, COSC 223 and third-year standing.

  20. COSC 315 (3) Introduction to Operating Systems

    Introduction to batch, multiprogramming, and time-sharing systems. Process synchronization and communication. Main memory allocation techniques including virtual memory; process scheduling; deadlock avoidance and prevention; file organization and device management. [3-2-0]

    Prerequisite: All of COSC 221, COSC 222.

  21. COSC 320 (3) Analysis of Algorithms

    Design and analysis of algorithms, illustrated from various problem areas. Models of computation, choice of data structures, space and time efficiency, computation complexity, algorithms for searching, sorting and graph-theoretic problems, NP-complete problems. [3-0-0]

    Prerequisite: All of COSC 221, COSC 222 and one of MATH 221, APSC 179.

  22. COSC 322 (3) Introduction to Artificial Intelligence

    AI and intelligent agents; state space search; game playing agents; logic and knowledge-based agents; constraint programming; planning; reasoning and decision making under uncertainty; machine learning; natural language understanding. Credit will be granted for only one of COSC 322 or COSC 522. [3-2-0]

    Prerequisite: All of COSC 221, COSC 222.

  23. COSC 328 (3) Introduction to Networks

    The five-layer Internet architecture using TCP/IP: application, transport, network, link, and physical. Topics include web protocols, network programming, routing, addressing, congestion control, error handling, Ethernet, wireless networks, security, multimedia transmission, and network management. [3-0-0]

    Prerequisite: All of COSC 211, COSC 222.

  24. COSC 329 (3) Learning Analytics

    Introduction to data analytics and machine learning techniques in the context of educational data. Focuses on user profiling, collaborative filtering, clustering, Bayesian user modeling, preference elicitation, and plagiarism detection. Credit will be granted for only one of COSC 329, COSC 419C, or COSC 519C. [3-0-0]

    Prerequisite: COSC 222 and one of STAT 121, STAT 124, STAT 205, STAT 230.

  25. COSC 335 (3) Introduction to Medical Imaging and Imaging Informatics

    Fundamental image analysis techniques. Image creation, manipulation, optimization, and analysis to aid in the diagnosis and treatment of human health conditions. Generation and display of X-ray, CT, MRI, Ultrasound and Nuclear Medicine images. Imaging Informatics and its place in the Electronic Medical Record. Credit will be granted for only one of COSC 335 or PHYS 336. [3-2-0]

    Prerequisite: A score more than 60% in COSC 222 and a score more than 60% in one of PHYS 121, PHYS 122. PHYS 121 preferred.

  26. COSC 341 (3) Human Computer Interaction

    History of human-computer interaction. Basic design principles, user-centered design, user task analysis, interaction models, input and output devices, graphical interface design, prototyping, and evaluation. [3-0-0]

    Prerequisite: One of COSC 111, COSC 121, COSC 123, DATA 301 and third-year standing.

  27. COSC 344 (3) Image Processing and Applications

    Fundamental theoretical and practical concepts for processing and analyzing real-world digital images and videos, image enhancement and filtering, frequency domain and other transform analysis, morphological image operations, image segmentation, and object recognition. Credit will be granted for only one of COSC 344, COSC 435, or COSC 445. [3-0-0]

    Prerequisite: One of COSC 210, COSC 222 and one of MATH 200, APSC 248 and one of MATH 221, APSC 179.

  28. COSC 360 (3) Web Programming

    Design and implementation of web-based information systems and app development. Rich user interfaces, asynchronous updates, client-side and server-side scripting using standard technologies such as HTML, CSS, SVG, JavaScript, PHP. Data manipulation with SQL, JSON, XML. Modern scripting frameworks and libraries. [3-2-0]

    Prerequisite: All of COSC 121, COSC 304 and third-year standing.

  29. COSC 404 (3) Database System Implementation

    Fundamental concepts in constructing database systems including file organizations, storage management, system architectures, query processing/optimization, transaction management, recovery, and concurrency control. Additional topics may include distributed databases, mobile databases, and integration. Credit will be granted for only one of COSC 404 or COSC 504. [3-0-0]

    Prerequisite: COSC 304 and third-year standing.

  30. COSC 405 (3) Modelling and Simulation

    Numeric dynamic systems models and emphasis on discrete stochastic systems. State description of models, common model components, entities. Common simulation language. Simulation using algebraic languages. Simulation methodology: data collection, model design, output analysis, optimization, validation. Elements of queuing theory, relationship to simulation. Applications to computer systems models. Credit will be granted for only one of COSC 405, DATA 405, COSC 505, or DATA 505. [3-2-0]

    Prerequisite: All of COSC 221, COSC 222.

  31. COSC 406 (3) Numerical Optimization

    Formulation and analysis of algorithms for continuous optimization problems; linear, quadratic, semi-definite, nonlinear (constrained and unconstrained), convex (smooth and non-smooth) optimization; large-scale problems; software packages and their implementation; elements of duality theory. Credit will not be granted for both COSC 406 and COSC 506. [3-0-0]

    Prerequisite: One of MATH 200, APSC 248 and one of MATH 221, APSC 179.

  32. COSC 407 (3) Introduction to Parallel Computing

    Design and implementation of parallel programs including theoretical computer models, parallel architectures (distributed, multicore, GPU), and standard parallel libraries. Credit will be granted for only one of COSC 407 or COSC 507. [3-2-0]

    Prerequisite: One of COSC 222, COSC 210.

  33. COSC 414 (3) Computer Graphics

    Human vision and colour, modelling, geometric transformations, algorithms for 2-D and 3-D graphics, hardware and system architectures, shading and lighting, animation. [3-0-0]

    Prerequisite: All of COSC 221, COSC 222 and one of MATH 221, APSC 179.

  34. COSC 421 (3) Network Science

    Graphs and complex networks in scientific research. Probabilistic and statistical models. Structures, patterns, and behaviors in networks. Algorithmic and statistical methods (online/mobile), social networks, and social media platforms. Social influence, information diffusion, and viral marketing. Sentiment analysis and opinion mining. Data privacy. Search engines and recommendation systems. Credit will be granted for only one of COSC 421, COSC 521, DATA 421 or DATA 521. [3-2-0]

    Prerequisite: All of COSC 221, COSC 222 and one of STAT 230, STAT 205.

  35. COSC 431 (3-9) Special Topics in Databases, Lecture Format

    Advanced or specialized topics in database design, modelling, and implementation. This course may be taken more than once for credit. Credit will be granted for only one of COSC 416, 431, 432, 516, 531, 532 when the subject matter is of the same nature.

    Prerequisite: COSC 304 and third-year standing.

  36. COSC 432 (3-9) Special Topics in Databases, Lecture and Laboratory Format

    Advanced or specialized topics in database design, modelling, and implementation. This course may be taken more than once for credit. Credit will be granted for only one of COSC 416, 431, 432, 516, 531, 532 when the subject matter is of the same nature.

    Prerequisite: COSC 304 and third-year standing.

  37. COSC 433 (3-6) Topics in Computer Networks, Lecture Format

    Advanced or specialized topics in emerging network technologies. With different topics, this course may be taken twice for credit. Credit will be granted for only one of COSC 417, 433, 434 when the subject matter is of the same nature.

    Prerequisite: All of COSC 315, COSC 328.

  38. COSC 434 (3-6) Topics in Computer Networks, Lecture and Laboratory Format

    Advanced or specialized topics in emerging network technologies. With different topics, this course may be taken twice for credit. Credit will be granted for only one of COSC 417, 433, 434 when the subject matter is of the same nature.

    Prerequisite: All of COSC 315, COSC 328.

  39. COSC 436 (3-9) Topics in Computer Science, Lecture Format

    Advanced or specialized topics in computer science. Consult the department for the specific topic to be offered in any given year. Credit will be granted for only one of COSC 419, 436, 437, 519, 536, 537 when the subject matter is of the same nature.

    Prerequisite: Fourth-year standing.

  40. COSC 437 (3-9) Topics in Computer Science, Lecture and Laboratory Format

    Advanced or specialized topics in computer science. Consult the department for the specific topic to be offered in any given year. Credit will be granted for only one of COSC 419, 436, 437, 519, 536, 537 when the subject matter is of the same nature.

    Prerequisite: Fourth-year standing.

  41. COSC 441 (3) Advanced Human Computer Interaction

    Computer interaction design principles, advanced methodologies and theories; novel interfaces and platforms, conceptualization from ideation to implementation, advanced techniques for evaluation including controlled quantitative evaluation, field evaluation, quantitative analysis; introduction to HCI research. Credit will be granted for only one of COSC 441 or COSC 541. [3-2-0]

    Prerequisite: COSC 341 and Fourth-year standing.

  42. COSC 442 (3) Mobile Educational Game Development

    Game design and development on a mobile platform with special attention to educational games. Topics may include: educational frameworks, storytelling techniques, game design, iterative prototyping, evaluation methodology, learner modelling, and learning analytics. Credit will be granted for only one of COSC 442 or COSC 542. [3-0-0]

    Prerequisite: All of COSC 341, COSC 310.

  43. COSC 444 (3) Computer Vision

    Advanced vision methods that enable machines to analyze and understand images. Fundamental problems in computer vision and the state-of-the-art approaches that address them. Feature detection and matching, geometric and multi-view vision, structure from X, segmentation, object tracking and visual recognition, and deep learning methods. Credit will be granted for only one of COSC 444, COSC 544 or COSC 545. [3-0-0]

    Prerequisite: COSC 344.

  44. COSC 447 (3) Directed Studies in Software Maintenance

    Maintenance of a large software system including prioritizing requests, modifying the design, implementing new features, fixing bugs, and regression testing. The student will undertake the maintenance of an existing project.

    Prerequisite: Third-year standing and permission of the department head.

  45. COSC 448 (3/6) d Directed Studies in Computer Science

    Supervised reading, participation in a seminar, and one or more programming projects. With different topics, this course may be taken twice for credit.

    Prerequisite: Third-year standing and permission of the department head.

  46. COSC 449 (6) Honours Thesis

    Students will undertake a research project as agreed upon by the student, supervising faculty member, and department head. A written thesis and a public presentation (poster or seminar) are required.

    Prerequisite: Fourth-year standing; admission to the B.A. or B.Sc. Computer Science Honours Program; and permission of the department head.

  47. COSC 490 (3) Student-Directed Seminar

    Self-directed, collaborative studies, in a group-learning environment, initiated and coordinated by senior undergraduate or graduate students with the supervision of a faculty advisor. Course structure, enrolment and delivery methods will comply with the "Handbook for Student-Directed Seminars".

    Prerequisite: Third-year standing and permission of the Department Head.

  48. COSC 499 (6) Capstone Software Engineering Project

    A capstone project requiring team software development for an actual client. Students must produce a comprehensive report and deliver a formal presentation. [0-3-0; 0-3-0]

    Prerequisite: All of COSC 304, COSC 310, COSC 341.

  49. COSC 504 (3) Database System Implementation

    Constructing database systems: file organizations, storage management, system architectures, query processing/optimization, transaction management, recovery, and concurrency control. Credit will be granted for only one of COSC 404 or COSC 504.

  50. COSC 505 (3) Modelling and Simulation

    Simulation methodology: data collection, model design, output analysis, optimization, validation. Credit will be granted for only one of COSC 405, DATA 405, COSC 505, or DATA 505.

  51. COSC 506 (3) Numerical Optimization

    Formulation and analysis of algorithms for continuous optimization problems; linear, quadratic, semi-definite, nonlinear (constrained and unconstrained); large-scale problems. Credit will be granted for only one of COSC 406 or COSC 506.

  52. COSC 507 (3) Parallel Computing

    Design, implementation and performance analysis of parallel programs. Theoretical computer models, parallel architectures, and standard parallel libraries. Credit will be granted for only one of COSC 407 or COSC 507.

  53. COSC 520 (3) Advanced Algorithms

    Algorithm design, analysis and application. Algorithmic graph theory, parameterization, approximation, and randomization techniques. Algorithms for computational-hard problems and problems involving large-scale networks and/or massive datasets. Credit will be granted for only one of COSC 320 or COSC 520.

  54. COSC 521 (3) Network Science

    Graphs and complex networks in scientific research. Probabilistic and statistical models. Structures, patterns, and behaviors in networks. Algorithmic and statistical methods. (online/mobile) social networks and social media platforms. Social influence, information diffusion, and viral marketing. Sentiment analysis and opinion mining. Data privacy. Search engines and recommendation systems. Credit will be granted for only one of COSC 421, COSC 521, DATA 421 or DATA 521.

  55. COSC 522 (3) Advanced Topics in Artificial Intelligence

    Artificial intelligence and intelligent systems. Problem solving techniques, state-space search, game-tree search, and constraint programming. Logic reasoning, multiagent systems, and game theory. Probabilistic reasoning, machine learning, and applications in digital games/arts, data mining, and natural language processing. Credit will be granted for only one of COSC 322 or COSC 522.

  56. COSC 531 (3-6) Special Topics in Databases, Lecture Format

    Specialized topics in database design, modelling, and implementation. This course may be taken more than once for credit. Credit will be granted for only one of COSC 416, 431, 432, 516, 531, 532 when the subject matter is of the same nature.

  57. COSC 532 (3-6) Special Topics in Databases, Lecture and Laboratory Format

    Specialized topics in database design, modelling, and implementation. This course may be taken more than once for credit. Credit will be granted for only one of COSC 416, 431, 432, 516, 531, 532 when the subject matter is of the same nature.

  58. COSC 536 (3-6) Topics in Computer Science, Lecture Format

    Specialized topics in computer science. Credit will be granted for only one of COSC 419, 436, 437, 519, 536, 537 when the subject matter is of the same nature.

  59. COSC 537 (3-6) Topics in Computer Science, Lecture and Laboratory Format

    Specialized topics in computer science. Credit will be granted for only one of COSC 419, 436, 437, 519, 536, 537 when the subject matter is of the same nature.

  60. COSC 541 (3) Advanced Human Computer Interaction

    Computer interaction design principles, advanced methodologies and theories; novel interfaces and platforms, conceptualization from ideation to implementation, advanced techniques for evaluation including controlled quantitative evaluation, field evaluation, quantitative analysis; HCI research, literature review, critique, reproducibility. Credit will be granted for only one of COSC 441 or COSC 541.

  61. COSC 544 (3) Computer Vision

    Computer vision methods and problem-solving techniques. Feature detection and matching, geometric and multi-view vision, structure from X, segmentation, object tracking and visual recognition, and deep learning methods. Credit will be granted for only one of COSC 444, COSC 544 or COSC 545.

  62. COSC 548 (3) Directed Studies

  63. COSC 549 (12) Master's Thesis

    Pass/Fail.

  64. COSC 550 (6) Master's Project

    Pass/Fail.

  65. COSC 590 (1-3) d Graduate Seminar

    Presentation and discussion of recent results in the Computer Science literature. Pass/Fail.

  66. COSC 649 (0) Doctoral Dissertation

    Pass/Fail.

  67. COSC 690 (3) Research Skills

    Completion of a small research project that generates original results. Written and oral presentation required. Pass/Fail.


UBC Crest The official logo of the University of British Columbia. Urgent Message An exclamation mark in a speech bubble. Caret An arrowhead indicating direction. Arrow An arrow indicating direction. Arrow in Circle An arrow indicating direction. Arrow in Circle An arrow indicating direction. Chats Two speech clouds. Facebook The logo for the Facebook social media service. Information The letter 'i' in a circle. Instagram The logo for the Instagram social media service. Linkedin The logo for the LinkedIn social media service. Location Pin A map location pin. Mail An envelope. Menu Three horizontal lines indicating a menu. Minus A minus sign. Pencil A pencil indicating that this is editable. Telephone An antique telephone. Plus A plus symbol indicating more or the ability to add. Search A magnifying glass. Twitter The logo for the Twitter social media service. Youtube The logo for the YouTube video sharing service.