Queen's School of Computing A course learning outcome is a brief statement of a skill, competency, or attitude a successful student will achieve by the end of a course; there are higher-level more abstract learning outcomes for entire programs. This is a list of all current learning outcomes for courses in the School of Computing. Course websites may list additional learning outcomes for the current specific offering of the course.

This is the current version of the learning outcomes catalog. Many originated in the QUQAP Cyclic Program Review in 2014-15. All are under review during 2015-2018 and can be expected to change. This particular version is a DRAFT not yet ready to be made widely available.

The "needed by" column in each table is largely incomplete. It is intended to show which courses and program learning outcomes require the corresponding course learning outcome. Only a few course dependencies are currently specified; the tables are expected to fill in as the curriculum review progresses.

CISC Courses
CISC P81 CISC 101 CISC 102 CISC 110 CISC 121 CISC 124 CISC 203 CISC 204 CISC 220 CISC 221 CISC 223 CISC 226 CISC 235 CISC 260 CISC 271 CISC 282 CISC 320 CISC 322 CISC 324 CISC 325 CISC 326 CISC 327 CISC 330 CISC 332 CISC 333 CISC 340 CISC 352 CISC 365 CISC 422 CISC 423 CISC 425 CISC 426 CISC 432 CISC 434 CISC 435 CISC 437 CISC 452 CISC 453 CISC 454 CISC 457 CISC 458 CISC 462 CISC 465 CISC 466 CISC 471 CISC 472 CISC 481 CISC 486 CISC 496 CISC 497 CISC 498 CISC 499 CISC 500

COCA Courses
COCA 201

COGS Courses
COGS 100 COGS 201 COGS 300 COGS 400 COGS 499

CISC Courses

See caveat at top.

CISC P81: Computers: Applications and Implications

Calendar description:
Computers are changing our lives; this is a course for any student interested in learning about computing. It surveys many fields of computing science, presents case studies of fascinating examples of computers in use in diverse areas, from searching the world-wide web to medicine, and discusses the possibilities, limitations, and risks of computers.
LEARNING HOURS 120 (36L;12G;72P)
ONE-WAY EXCLUSION May not be taken with or after CISC 124.
See caveat at top.

CISC 101: Elements of Computing Science

Calendar description:
Introduction to algorithms: their definition, design, coding, and execution on computers. Intended for students who have no programming experience. All or most assignment work will be completed during lab time.
LEARNING HOURS 120 (36L;36Lb;48P)
EXCLUSION No more than 3.0 units from APSC 142/3.0; CISC 101/3.0; CISC 110/3.0.
ONE-WAY EXCLUSION May not be taken with or after: CISC 121/3.0; CISC; SOFT at the 200-level and above.
Alternative prerequisite to CISC 271, CISC 282. COCA 201.

These learning outcomes apply to any source of ``programming experience,'' not just CISC 101 and CISC 110.

Needed byLearning Outcome
3.1, 3.2Design a computational solution to a problem described in natural language, express the solution in an algorithmic way, and convert the algorithm effectively and intelligibly into a procedural program.
3.1, 3.2Properly use modularity, repetition (both counted and unbounded), conditionals, and simple (rectangular) data structures in problem solutions
See caveat at top.

CISC 102: Discrete Mathematics for Computing I

Required in all plans. One of several possible co-requisites to CISC 121. Prerequisite to CISC 203, CISC 204. Calendar description:
Introduction to mathematical discourse and proof methods. Sets, functions, sequences, and relations. Properties of the integers. Induction. Equivalence relations. Linear and partial orderings. NOTE Also offered online. Consult Continuing and Distance Studies. Learning Hours may vary.
LEARNING HOURS 120 (36L;84P)
ONE-WAY EXCLUSION May not be taken with or after CISC 203/3.0.
Needed byLearning Outcome
2.2Understand standard Mathematics notation used in the field of Computing.
2.2Recognize comparative magnitudes of functions such as $\log n, n^2, 2^n$.
2.2Read and understand some elementary logical proofs.
2.2Recognize the difference between a proof and a counter example.
2.2Formulate elementary proofs using mathematical induction.
See caveat at top.

CISC 110: Creative Computing

Alternative prerequisite to CISC 282, COCA 201.

These learning outcomes apply to any source of ``programming experience,'' not just CISC 101 and CISC 110. Calendar description:

Introduction to fundamental programming concepts in the context of visual, interactive media. Students may develop applications in any domain (e.g., fine art, education, commerce, physical or social sciences) while learning about algorithms, program design, logic, program control flow, functions, testing, etc. NOTE No computing or art background required. NOTE Sufficient preparation for CISC 121/3.0. Students without programming experience should take CISC 110/3.0 (or CISC 101/3.0) before CISC 121/3.0. With permission of the instructor, students with programming experience may take this course concurrently with CISC 121/3.0.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from APSC 142/3.0; CISC 101/3.0; CISC 110/3.0.
ONE-WAY EXCLUSION May not be taken with or after CISC 121/3.0.
Needed byLearning Outcome
3.1, 3.2Design a computational solution to a problem described in natural language, express the solution in an algorithmic way, and convert the algorithm effectively and intelligibly into a procedural program.
3.1, 3.2Properly use modularity, repetition (both counted and unbounded), conditionals, and simple (rectangular) data structures in problem solutions
See caveat at top.

CISC 121: Introduction to Computing Science I

Required in all plans. Recommended: CISC 101 or CISC 110 or high-school computing. Co-requisite: CISC 102 or any first-year math course (MATH 11x or 12x). Prerequisite to CISC 124, CISC 203, CISC 204, CISC 271, CISC 282, CISC 330, CISC 333, CISC 458, COCA 201. Calendar description:
Introduction to design and analysis of algorithms. Recursion, backtracking, and exits. Sequences, linked lists and references. Binary search trees. Elementary searching and sorting. Assertions and loop invariants. Order-of-magnitude complexity. Numerical computation. Documentation, testing and debugging.
LEARNING HOURS 120 (36L;84P)
RECOMMENDATION Some programming experience (such as high-school level programming or CISC 101/3.0 or CISC 110/3.0); see Introductory Courses in Departmental Notes.
Needed byLearning Outcome
3.3Design and construct simple software in a conventional procedural programming language.
Use an interactive development environment (currently IDLE) to write functions of about 50 lines of code in a conventional procedural programming language (currently Python)
2.1Implement the basic searching and sorting algorithms: linear and binary search; bubble, insertion and/or selection, merge, and quick sort.
Write and analyse programs using linked lists, binary search trees, and recursion
5.1Demonstrate the implication of the representation of integer and floating-point values in a digital computer for underflow, overflow and round-off errors
2.1Analyse the worst-case computational complexity of small iterative and recursive programs
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 124: Introduction to Computing Science II

Required in all plans. Prerequisite: CISC 121. Corequisite: CISC 102 or any first-year math course (MATH 11x or 12x) Corequisite to: CISC 220. Prerequisite to: CISC 221, CISC 223, CISC 226, CISC 235, CISC 260, CISC 325, CISC 332, CISC 457. Calendar description:
Introduction to object-oriented design, architecture, and programming. Use of packages, class libraries, and interfaces. Encapsulation and representational abstraction. Inheritance. Polymorphic programming. Exception handling. Iterators. Introduction to a class design notation. Applications in various areas.
LEARNING HOURS 120 (36L;24Lb;60P)
Needed byLearning Outcome
3.3Design and construct moderately complex software using the object-oriented features of an object-oriented language.
3.2, 3.3Design and construct 500 line (approx.) object oriented programs using modularity and many classes with good style and documentation.
3.3Use and explain the object oriented concepts of instantiation, encapsulation, inheritance and polymorphism.
3.3Use iterators and exceptions handlers in object-oriented programs
3.2, 3.3Design and construct graphical user interfaces in an object-oriented language.
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 203: Discrete Mathematics for Computing II

Required in all plans. Prerequisite: (CISC 102 or MATH 110) and CISC 121. Prerequisite to: CISC 235, CISC 322, CISC 330, CISC 365. Calendar description:
Proof methods. Combinatorics: permutations and combinations, discrete probability, recurrence relations. Graphs and trees. Boolean and abstract algebra.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
2.2Critique and construct moderately sophisticated mathematical arguments such as proof by contradiction, proof by induction, proof by minimal counterexample, counting arguments, and recognition of orderings
2.2Apply discrete mathematical tools and models such as graph theory, probability, group theory and modular arithmetic to problems such as modelling relational data and networks, scheduling and resource allocation, network design, predicting expected performance, motion planning, cryptography
2.2Apply basic discrete probability techniques to computational tasks
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 204: Logic for Computing Science

Required in all plans. Prerequisite: Level 2 or above and (CISC 102 or MATH 110) and CISC 121. Corequisite to: CISC 223, CISC 260. Prerequisite to: CISC 322, CISC 332, CISC 365, CISC 465. Calendar description:
Elements of mathematical logic with computing applications. Formal proof systems for propositional and predicate logic. Interpretations, validity, and satisfiability. Introduction to soundness, completeness and decidability.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
2.1Construct syntactic and semantic proofs in propositional and predicate logic.
3.1Express English language and mathematical expressions in logic.
Determine semantic equivalences, satisfiability and validity.
2.1Verify the correctness of computer programs.
Apply model checking for verification.
See caveat at top.

CISC 220: System-Level Programming

Required in all plans except COGS and COMA. Corequisite: CISC 124. Recommended for: CISC 221, though this isn't currently listed in the Arts and Science Courses of Instruction for 2016-17. Prerequisite to: CISC 320, CISC 326, CISC 327. Calendar description:
Basic concepts of Unix-like systems. Shells and scripting. System-level programming in the C language. Software development tools and techniques.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
1.2Explain the distinctions among operating system kernel, system software, and applications.
1.2 Explain the basics of a Unix-like file system and answer questions about the effects of hard and symbolic links
3.3Design and construct moderately complex scripts using a Unix-like shell
Use a Unix or Unix-like command line system to create files and run programs, including the use of multiple processes, pipes and I/O redirection.
Write short scripts (up to 30 lines) using a Unix-like shell, including the use of variables, conditionals, loops, arithmetic, pipes and command substitution
3.3Design and construct moderately complex software in a second procedural programming language
Write small C programs (up to 100 lines) including the use of pointers, strings, structs and file I/O
Demonstrate good memory management in C programming, avoiding both dangling pointers and memory leaks
Make simple use of multiple processes in C programs, including sending and receiving signals
Use "make" or a similar tool to build and maintain programs involving multiple modules and scripts
Choose suitable software development tools for managing packages, editing text, etc.
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 221: Computer Architecture

Required in all plans except COCA. Recommended: CISC 220. Prerequisite: CISC 124. Prerequisite to: CISC 324, CISC 340, CISC 458. Calendar description:
The descriptive levels of computer architecture. Instruction-set architectures. Assembly Language. Data representation. Support for operating-system management and high-level languages. Input/output and interrupts. Designing for performance. Digital Logic.
LEARNING HOURS 120 (12L;24G;84P)
Needed byLearning Outcome
3.2Create, analyze and debug short C and assembly language programs using Unix (linux) tools
1.2Identify the equivalence between blocks of assembly language and a higher level procedural language
5.1Create and/or analyze program segments involving the representation, manipulation, and identification of the limitations of computer data.
3.2, 3.3Create and/or analyze program segments focusing on the performance differences of alternative programming choices that are affected by a computer's architecture.
1.2Explain how a computer's hardware resources are managed by the Operating System.
4.1Discuss and resolve in a team environment, case studies and issues relating to computer architecture and make defensible programming choices to best satisfy given requirements.
4.1Demonstrate interpersonal and team interaction skills in the development of two team programming projects.
See caveat at top.

CISC 223: Software Specifications

Required in all plans except COGS and the Arts General. Prerequisite: CISC 124. Corequisite: CISC 204. Prerequisite to: CISC 322, CISC 327, CISC 458, CISC 462, CISC 465. Calendar description:
Introduction to techniques for specifying the behaviour of software, with applications of these techniques to design, verification and construction of software. Logic-based techniques such as loop invariants and class invariants. Automata and grammar-based techniques, with applications to scanners, parsers, user-interface dialogs and embedded systems. Computability issues in software specifications.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.1design specifications for the functional behaviour of algorithmic code fragments;
2.1, 3.1formally verify the correctness of simple code fragments involving conditional statements and loops using logic based techniques;
design regular expressions, state transition diagrams and context-free grammars for formal languages;
5.1appraise the limitations of regular expressions and context-free grammars and to demonstrate that a language is nonregular;
5.1appraise the limitations of algorithmic computation and prove that the halting problem is unsolvable.
See caveat at top.

CISC 226: Game Design

Required in SODE (Game Design). Prerequisite: CISC 124. Prerequisite to: CISC 486, CISC 496. Calendar description:
An introduction to techniques for designing elementary computer games. Topics will include game development tools and processes, principles of game design, game prototyping and game evaluation.
LEARNING HOURS 120 (36L;60G;24P)
Needed byLearning Outcome
3.3apply a development process to design, evaluate and implement a digital game
apply creative techniques for stimulating the generation of game design ideas
perform early-stage evaluation of games using paper prototyping
discuss the elements contributing to the design of a game and use these elements to critique existing designs
discuss controversial aspects of game design such as game addiction and violence in games
See caveat at top.

CISC 235: Data Structures

Required in all plans. Prerequisite: CISC 124 and CISC 203. Prerequisite to: CISC 320, CISC 322, CISC 324, CISC 325, CISC 326, CISC 352, CISC 365, CISC 432, CISC 452. Calendar description:
Design and implementation of advanced data structures and related algorithms, including correctness and complexity analysis.
LEARNING HOURS 120 (36L;84P)
Boldfaced items are specifically mentioned in needs of follow-on courses.
Needed byLearning Outcome
2.1, 3.3Choose among alternative data structures to solve specific data-representation and algorithmic problems.
be familiar with common data structures, including: trees and graphs; stacks and queues; binary trees; AVL trees; Red-Black Trees; Heaps; Tries; Hash Tables; Bloom Filters; Skip Lists
be familiar with the fundamental algorithms for manipulating these structures
have practical experience implementing these structures
understand the use of complexity analysis to determine which data structure is most efficient and appropriate for use in a particular application
be able to determine the computational complexity for algorithms related to data structures (both upper and lower bounds)
See caveat at top.

CISC 260: Programming Paradigms

Required in all plans except the Arts General. Prerequisite: CISC 124. Corequisite: CISC 204. Prerequisite to: CISC 465. Recommended for: CISC 352. Calendar description:
Review of imperative programming features. Introduction to other widely used programming paradigms. Functional programming languages, such as LISP and Haskell. Higher order functions, lazy evaluation, abstract and recursive types, structural induction, symbolic expressions. Logic programming languages, such as PROLOG. Operational interpretation of predicates and terms, proof search, unification, backtracking. Typical applications. LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.3Design and construct simple software in both a functional language and a logic programming language.
Write short programs (approximately 50 lines) in a functional language such as Haskell or LISP, including the use of recursion, lists, higher-order functions
Explain the difference between lazy and eager evaluation
Use structural induction to prove simple assertions about functional programs
Write short programs (up to 50 lines) in a logical language such as Prolog, including lists, arithmetic, cuts and negation
Predict the behavior of small programs written in either paradigm
Compare and contrast the imperative, functional and logical paradigms and applications for which each is suited
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 271: Scientific Computing

Required in BMCO. Alternative to CISC 340 in SODE. Prerequisite: CISC 101 or CISC 121, and both first-year algebra and calculus (MATH 11x and 12x). Prerequisite to: CISC 330, CISC 471. Calendar description:
Introduction to scientific computing: algorithm design, error analysis, ill-conditioning. Linear equations. Least-squares fitting. Non-linear equations. Effective use of library programs, with discussion of their limitations and some aspects of their design and implementation.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from CISC 271/3.0; MATH 272/3.0; PHYS 313/3.0.
Needed byLearning Outcome
Design and use algorithms for tabulated data
Design and analyze algorithms for solution of linear equations
Select, apply, and analyze least-squares solutions of geometric problems
Solve problems in computer-aided medicine
See caveat at top.

CISC 282: Fundamentals of Web Development

Prerequisite: Level 2 and: CISC 101 or CISC 110 or CISC 121.
Needed byLearning Outcome
Write and make available to the pubic well formulated HTML pages with appropriate styling through CSS
Identify when it is appropriate to use server side programming such as PHP and to write simple PHP code to perform some functionality for a web application
Identify when it is appropriate to use client side programming such as Javascript and to write simple Javascript code to make a web application interactive
Build, populate, and access a database through server side programming to provide data access for a web application.
See caveat at top.

CISC 320: Fundamentals of Software Development

Required in BMCO. Prerequisite: CISC 220 and CISC 235. Calendar description:
Introduction to management of small and medium-scale software projects. Advanced programming methodology using the programming language C++. Includes a significant programming project.
LEARNING HOURS 120 (36L;24T;24G;36P)
Needed byLearning Outcome
3.3Design and construct medium-sized console and GUI programs in both procedural and object-oriented paradigms.
Design and construct 500 to 1000 line console and GUI C++ programs using both Object Oriented and procedural C++ code.
4.1, 6.1Contribute to the design and construction of a larger software project as a member of an agile programming team.
3.2Use software engineering techniques and tools to aid in the development of larger scale software projects.
See caveat at top.

CISC 322: Software Architecture

Alternative to CISC 326 in the major, COMA, CSCI, and SODE (Software Development). Prerequisite: CISC 203, CISC 204, CISC 223, and CISC 235. Prerequisite to: CISC 423, CISC 498. Calendar description:
Abstractions and patterns of interactions and relationships among modules. Design recovery; relationship of architecture to requirements and testing.
LEARNING HOURS 120 (36L;16G;68P)
EXCLUSION No more than 3.0 units from CISC 322/3.0 and CISC 326/3.0.
Needed byLearning Outcome
recognize and describe the various architecture styles and design patterns
3.2analyze the tradeoffs between competing software architecture styles and design patterns
recover. document, present, and discuss the architecture of a pre-existing software system using high level diagrams (such as UML and basic box and arrow diagrams).
3.2specify, design and possibly implement a feature in a pre-existing code base.
6.1work effectively in a group setting
See caveat at top.

CISC 324: Operating Systems

Required in the major, COMA, CSCI, and SODE. Prerequisite: CISC 221 and CISC 235. Prerequisite of: CISC 426, CISC 434, CISC 435, CISC 437, CISC 486. Calendar description:
Layered operating systems for conventional shared memory computers: concurrent processes. Synchronization and communication. Concurrent algorithms. Scheduling. Deadlock. Memory management. Protection. File systems. Device management. Typical layers.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
describe the representation of processes and threads, and the concepts of inter-process communication and synchronization. Assessed on programming assignments.
describe the steps in a context switch: process control blocks, the role of interrupts, the ready queue, CPU scheduling algorithms. Assessment is via short answer questions on assignments and exams.
3.2design, code and analyse concurrent programs using semaphores or monitors, with awareness of pitfalls such as race conditions, deadlock and starvation. Assessment is via programming assignments and programming questions on exams.
1.2understand and apply memory management concepts including address spaces, sharing and protection, paging, segmentation, translation lookaside buffer, and page replacement algorithms. Assessment is via short answer questions on assignments and exams.
1.2describe organizational principles for operating systems: layers, kernel. Assessment is via short answer questions on assignments and exams.
1.2Explain how a computer's hardware resources are managed by the Operating System. (Also listed in )
See caveat at top.

CISC 325: Human-Computer Interaction

Required in SODE. Prerequisite: CISC 124 and CISC 235. Corequisite to: CISC 423. Preequisite to: CISC 425, CISC 498. Currently being revised. See caveat at top.

CISC 326: Game Architecture

Required in SODE (Game Design). Alternative to CISC 322 in the major, COMA, CSCI, and SODE (Software Development). Prerequisite: CISC 220 and CISC 235. Recommended: CISC 226. Prerequisite to: CISC 423, CISC 486, CISC 496, CISC 498. Calendar description:
An introduction to software architectural design through the application domain of game development. Topics will include notations for expressing static and dynamic aspects of software architecture, design patterns, interface design, and application of these techniques to 3D games, mobile games and web-based games.
LEARNING HOURS 120 (36L;24T;60P)
EXCLUSION No more than 3.0 units from CISC 322/3.0 and CISC 326/3.0.
Needed byLearning Outcome
3.2design, document, and implement software architectures for the high-level structure of digital games using appropriate tools such as UML and Unity.
3.2analyze tradeoffs between competing software architectural designs.
apply standard software design patterns.
See caveat at top.

CISC 327: Software Quality Assurance

Required in SODE. Prerequisite: CISC 220 and CISC 124. Prerrequisite to: CISC 422, CISC 426, CISC 437, CISC 498. Calendar description:
Validation of software throughout the life cycle. Comparative effectiveness in defect removal of formal methods (proofs of correctness), inspection (walkthroughs and reviews), and testing (unit, integration, and system testing; white box versus black box).
LEARNING HOURS 120 (36L;84G)
EXCLUSION No more than 3.0 units from CISC 327/3.0; SOFT 327/3.0.
Needed byLearning Outcome
3.3Choose appropriate software process models
Describe the inspection process, and the advantages of inspection.
3.3Compare and contrast different testing methods, including black and white box approaches
Explain different metrics used to evaluate software complexity
3.1Outline and implement quality requirements at different phases of the software life-cycle
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 330: Computer-Integrated Surgery

Required in BMCO. Prerequisite: CISC 121 and CISC 271. Prerequisite to: CISC 472. Calendar description:
Concepts of computer-integrated surgery systems and underlying techniques such as medical-image computing, robotics, and virtual reality, learned through real-life applications and problems. Techniques learned in class will be applied in a hands-on surgery session where students perform minimally invasive surgery with virtual-reality navigation tools.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from CISC 330/3.0; COMP 329/3.0; COMP 230/3.0.
EQUIVALENCY COMP 230/3.0.
CISC 330 is designed to introduce the concept of assisting medical interventions by computing; a field in the intersection of computer science, electrical engineering, mechanical engineering, life sciences, and medicine.
Needed byLearning Outcome
3.4Design and partly implement conputer-integrated surgery systems
1.2analyze the mechanism of computer-integrated surgery systems
3.2produce high level design of computer-aided surgery systems
implement key components in software.
Learning outcomes are assessed in assignments and an examination (in-class or take-home), each covering the design, implementation and analysis of system examples derived from real-life medical applications; as well by performance in hands-on laboratory session. See caveat at top.

CISC 332: Database Management Systems

Prerequisite: CISC 124 and CISC 204 (CISC 235 to be added) Prerequisite to: CISC 432. Calendar description:
Data models: relational, entity-relationship. Relational query languages: relational algebra and SQL. Relational database design. Application interfaces and embedded SQL. Storage and indexing.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from CISC 332/3.0; COMM 392/3.0.
Needed byLearning Outcome
apply database design techniques and tools to create a database schema and database instance for an application.
Apply an application design method and development tools to create a web application to support users in querying and manipulating the database for an application.
Compose queries on a database in both SQL and the relational algebra.
Assess the quality of database schemas and queries.
Apply methods to improve the performance and security of a database application.
See caveat at top.

CISC 333: Introduction to Data Mining

Prerequisite: CISC 121 and CISC 203; 3.0 units from STAT; 3.0 units from MATH 11x. Calendar description:
Supervised and unsupervised learning, neural networks, support-vector machines, decision trees, metriC based clustering, distribution-based clustering, rule-based techniques, genetic algorithms. Applications to information retrieval, web mining, customer-relationship management, recommender systems, science and engineering.
LEARNING HOURS 120 (36L;84P)
See caveat at top.

CISC 340: Digital Systems

Required in CSCI. Alternative to CISC 271 in SODE. Prerequisite: CISC 221. Calendar description:
Combinational circuits; sequential circuits; digital systems design; micro-programming; bus structures; data communications; interface design; microprocessor systems.
LEARNING HOURS 120 (12L;24G;84P)
Needed byLearning Outcome
1.2Design, implement, and verify the operation of simple digital circuits, using manual design, synthesis, and verification methods.
Model, design, simulate, and verify the operation of digital logic circuits using current EDA (Electronic Design Automation) software tools used by industry.
Create a RTLab (Register Transfer Level) design of a complex digital logic function, starting with a model of the functional behaviour of a digital electronic circuit written in a high level programming language and ending with a functioning FPGA (Field Programmable Gate Array).
3.2Evaluate and defend design choices relating to the distribution of hardware versus software implementation to satisfy speed, complexity, and labour criteria.
1.2Interface common sensors, switches, display devices, and servo motors to an embedded processor
See caveat at top.

CISC 352: Artificial Intelligence

Required in BMCO, COCA, and COGS. Prerequisite: CISC 235. Recommended: CISC 260. Prerequisite to: CISC 453, CISC 471. Calendar description:
An introduction to the basic principles and tools of artificial intelligence. Problem solving methods and knowledge representation techniques.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.1Represent knowledge using state-space search techniques, rules, expert systems, frames, semantic nets, and propositional and first-order predicate logic in order to solve complex problems based on the intelligent behavior of humans and other animals.
3.1Explain the relationship between probability theory and logic by discussing probabilistic reasoning, with a focus on Bayes’ Theorem.
3.3Apply search to game-playing and to solve Constraint Satisfaction Problems.
3.3Apply inference and resolution in propositional and first-order predicate logic to prove theorems.
3.3Apply the intelligent agent paradigm as an underlying model for exploring AI problem domains, tools, and techniques.
See caveat at top.

CISC 365: Algorithms I

Required in all honours plans except COGS. Prerrequisite: CISC 203, CISC 204, and CISC 235. Prerequisite to: CISC 466, CISC 497, CISC 499. Recommended for: CISC 462. Calendar description:
Principles of design, analysis and implementation of efficient algorithms. Case studies from a variety of areas illustrate divide and conquer methods, the greedy approach, branch and bound algorithms and dynamic programming.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
possess a strong understanding of computational complexity, up to and including: Polynomial time Reducibility; classes P and NP; NP-Completeness; Proofs of NP-Completeness
5.1be able to recognize classical NP-Complete problems
5.1be able to prove that new problems are NP-Complete using polynomial time reductions from known NP-Complete problems
2.1Apply key algorithm paradigms, both in the abstract and through concrete examples: Divide and Conquer; Greedy Algorithms; Dynamic Programming; Branch and Bound
have some understanding of an advanced topic, which varies from year to year. Recent choices have included: Linear Programming; Computational Geometry; String Matching
See caveat at top.

CISC 422: Formal Methods in Software Engineering

Required in SODE. Prerequisite: CISC 223. Calendar description:
Mathematical methods for describing software behaviour and structure. Topics include (but are not limited to) the following: Requirements specification. Module specification: axiomatic, algebraic, and trace specifications. Abstract models. Verification. Specification-based validation.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.1formalize declarative statements in propositional or predicate logic and reason about them by constructing formal proofs manually or with the help of a tool proof assistant tool
3.1formalize structural aspects of software systems using relational logic (as offered by the Alloy tool from MIT) and reason about them using a satisfiability checker (as offered by Alloy's analyzer)
3.1formalize behavioural aspects of software systems (such as protocols) using NuSMV's language for expressing finite state machines and reason about them using temporal logic and model checking (i.e., exhaustive state space exploration) with the NuSMV model checker.
5.1discuss the scope and limitations of propositional logic, predicate logic, relational logic, temporal logic and finite state machines to express software systems and their properties
5.1discuss the advantages, disadvantages, and limitations of formal proofs, satisfiability checking, and model checking to analyze software systems
See caveat at top.

CISC 423: Software Requirements

Required in SODE. Prerequisite: CISC 322 or CISC 326. Corequisite: CISC 325. Calendar description:
An integrated approach to discovering and documenting software requirements. Identification of stakeholders; customer, operator, analyst, and developer perspectives. Requirements elicitation. Transition from initial (informal) requirements to semi-formal and formal representations. Requirements analysis process; analysis patterns. Requirements specification techniques. Relation to architecture and user interface design; traceability of requirements.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from CISC 423/3.0; SOFT 423/3.0.
Needed byLearning Outcome
3.1Explain techniques for eliciting natural language requirements from non-technical clients.
Analyse natural-language requirements, resolving omissions, ambiguities, and inconsistencies.
Identify both direct and indirect stakeholders for a system
Elicit requirements information about the system from a variety of sources using a variety of techniques
Analyze requirements information for conflict, completeness and consistency
Formally model the requirements
Prepare validation plans to validate the final product against the requirements
Understand how requirements change over time
See caveat at top.

CISC 425: Advanced User Interface Design

Prerequisite: CISC 325 or permission of the School. Calendar description:
Advanced user-interface styles such as eye-tracking input, digital desks, wearable computing, ubiquitous and context-aware computing, and tangible interfaces.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from CISC 425/3.0; SOFT 425/3.0.
See caveat at top.

CISC 426: Real-Time Systems

Prerequisite: CISC 324 and CISC 327. Calendar description:
Design and implementation of real-time embedded applications. Specifying timing properties: formal and semi-formal methods; soft real-time versus hard real-time. Design notations; language constructs. Real-time operating systems. Abstract device interfaces.
EXCLUSION No more than 3.0 units from CISC 426/3.0; SOFT 426/3.0.
We have not offered this course for many years. See caveat at top.

CISC 432: Advanced Database Systems

Prerequisite: CISC 235 and CISC 332. Calendar description:
Topics include the presentation and storage of data, implementation concerns, and the integration of databases with other areas of computer science.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
Apply optimization algorithms to SQL queries to produce efficient query plans.
Apply concurrency control and recovery algorithms to sample transaction workloads to ensure ACID properties are maintained.
Assess the use of relational DBMSs and NoSQL systems for different types of data and applications.
Apply a NoSQL system to the creation of a sample database.
Apply the MapReduce framework to a sample big data problem.
Evaluate the use of a big data approach to a sample application area or problem.
See caveat at top.

CISC 434: Distributed Systems

Prerequisite: CISC 324, from which it needs all learning outcomes. Calendar description:
Distributed systems goals, characteristics, and architectures. Processes: models, inter-process communication and coordination. Name services. Consistency and replication. Fault tolerance: design for reliable communication and recovery. Security. Development paradigms based on data types: object, file, and web-based systems.
LEARNING HOURS 120 (36L;84P)
The students will gain insight into the principles underlying the design of distributed systems and learn necessary tools for evaluating existing distributed systems or building improved ones. The students will be knowledgeable about the state of the art and practice in distributed computing through in-depth discussions on the following topics: distributed operating systems, communication and synchronization, processes, distributed algorithms, naming, consistency and replication, fault tolerance and security. See caveat at top.

CISC 435: Computer Communications and Networks

Prerequisite: CISC 324. Calendar description:
Fundamental concepts in the design and implementation of computer communication networks, protocols, and applications. Overview of network architectures; applications; network programming interfaces (e.g., sockets); transport; congestion; routing and data link protocols; addressing; local area networks; wireless networks, mobility management; security.
LEARNING HOURS 120 (36L;84P)
See caveat at top.

CISC 437: Performance Analysis

Prerequisite: CISC 324 and CISC 327. Calendar description:
Analytic and empirical evaluation of the performance of software systems. Performance modeling. Experimental design and statistical techniques for empirical performance analysis.
LEARNING HOURS 120 (36L;84P)
EXCLUSION No more than 3.0 units from CISC 437/3.0; SOFT 437/3.0.
See caveat at top.

CISC 452: Neural and Genetic Cognitive Models

This course is identical to COGS 400. See caveat at top.

CISC 453: Topics in Artificial Intelligence

Prerequisite: CISC 352. Calendar description:
Investigation of selected areas of artificial intelligence research. Possible topics include natural language understanding, computational perception, planning, learning, and neurocomputing.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.5Apply artificial intelligence techniques to planning and reasoning problems.
4.1Research, and present an advanced topic in artificial intelligence.
3.1formulate classical planning problems as state space search using PDDLabaction schemas
identify complexity controlling heuristics, developing them from a planning graph formulation
generalize classical planning problems to propositional logic, constraint satisfaction and first-order logic formulations
investigate relaxation of classical planning assumptions, including: time and resource constraints; limited observability; non-determinism in a Job Shop Scheduling paradigm
analyse efficiency gains through hierarchical planning approaches
summarize variations on multiactor planning scenarios, exploring related tools and techniques
extrapolate the knowledge engineering approach to include ontological issues - represent and manipulate hierarchical category representations, event calculus, modal logic for mental events and objects
explain systems for reasoning over categories and with default information
identify representation and reasoning techniques associated with probability models
employ the full joint distribution for inference and explore the inferential advantages of knowledge of independence
apply Bayes' rule to calculate diagnostic probabilities from known causal relationships, and use Bayesian networks for exact and approximate inference
select, research, and present an advanced topic from among possibilities in Decision Making, Learning, Natural Language, Perception
See caveat at top.

CISC 454: Computer Graphics

Prerequisite: Level 3 or 4 and CISC 235 and MATH 11x. Calendar description:
Introduction to computer graphics, including a review of current hardware; modelling and transformations in two and three dimensions; visual realism: perspective, hidden surface elimination, and shading; colour models; applications in several fields.
LEARNING HOURS 120 (36L;84P)
See caveat at top.

CISC 457: Image Processing and Computer Vision

Prerequisite: MATH 11x and MATH 12x and CISC 124. Calendar description:
Introduction to fundamental concepts and applications in image processing and computer vision. Topics include image acquisition, convolution, Discrete Fourier Transform, image enhancement, edge detection, segmentation, image registration, human contrast perception, colour perception and reproduction, stereo vision.
LEARNING HOURS 120 (36L;84P)
See caveat at top.

CISC 458: Programming Language Processors

Prerequisite: CISC 121 and CISC 221 and CISC 223. Calendar description:
Introduction to the systematic construction of a compiler: grammars and languages, scanners, top-down and bottom-up parsing, runtime organization, symbol tables, internal representations; Polish notation, syntax trees, semantic routines, storage allocation, code generation, interpreters.
LEARNING HOURS 120 (36L;36Lb;48G)
Needed byLearning Outcome
Use real software engineering tools to maintain and enhance existing software systems.
Apply component-based software engineering and table-driven programming to multi-phase software systems.
Follow standard practices for software quality assurance and testing in a small-team project.
Employ domain-specfic languages and model-driven engineering to develop software.
See caveat at top.

CISC 462: Computability and Complexity

Recommended: CISC 365. Prerequisite: CISC 223. Calendar description:
Turing machines and other models of computability such as μ-recursive functions and random-access machines. Undecidability. Recursive and recursively enumerable sets. Church-Turing thesis. Resource-bounded complexity. Complexity comparisons among computational models. Reductions. Complete problems for complexity classes.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
use diagonalization to prove undecidability
use informal and formal reductions to establish algorithmic unsolvability
appraise the complexity difference between finding a solution to an algorithmic problem and verifying a solution to an algorithmic problem
use mapping reductions to establish hardness of computational problems
use hierarchy theorems to establish separation between complexity classes
See caveat at top.

CISC 465: Foundations of Programming Languages

Prerequisite: CISC 204 and CISC 223 and CISC 260. Calendar description:
Syntax and semantics. Classification of programming languages. The language of while programs. The typed lambda calculus. Recursive definitions and domain theory.
LEARNING HOURS 120 (18G;12I;90P)
See caveat at top.

CISC 466: Algorithms II

Prerequisite: CISC 365. Calendar description:
A continuation of CISC 365/3.0. Lower bound theory. Average-case analysis of algorithms. Approximation algorithms. Probabilistic algorithms. Parallel algorithms.
LEARNING HOURS 120 (36L;84P)
See caveat at top.

CISC 471: Computational Biology

Required in BMCO. Prerequisite: CISC 271, CISC 352, and certain biochemistry. BCHM 218/3.0 (or MBIO-218/3.0), BIOL-334/3.0 (or BCHM-315/3.0) Calendar description:
Advanced computational approaches to the problems in molecular biology. Techniques and algorithms for sequence analysis and alignment; molecular databases; protein structure prediction and molecular data mining.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.4Describe state-of-the-art algorithms in Bioinformatics with emphasis on the strengths and limitations of these techniques.
3.4Distill information provided by a biologist and discern appropriate and effective algorithmic solutions.
Critically assess an algorithm for its correctness and efficiency, and argue about the algorithms correctness, performance bounds, and approximation ratio as appropriate.
3.3Make sensible pragmatic algorithmic choices of standard packages or implementations for specific applications.
See caveat at top.

CISC 472: Medical Informatics

Required in BMCO. Prerequisite: CISC 330. Calendar description:
Current topics in the application of information technology to medical image computing and its use in image-guided medical interventions.
LEARNING HOURS 120 (36L;84P)
This course provides an introduction to computational approaches to the use of medical imaging in computer-assisted surgery and interventions, and in this respect it complements CISC 330 Computer-Integrated Surgery. It also gives a brief introduction into other fields of Medical Informatics, such as clinical decision support systems, telehealth, and patient monitoring systems. Students will be able to:
Needed byLearning Outcome
analyze the inner workings of medical image manipulation and registration methods for use in image-guided computer-assisted intervention systems.
3.4design solutions in which modern information technology is used to solve applied problems in the medical field.
analyze the specifics and limitations of dataflow in a medical environment, especially in the area of medical image analysis.
3.3design and develop basic medical image analysis and image registration methods for use in typical computer-assisted surgery and intervention applications.
Learning outcomes are assessed in assignments and examination. In the examination (taken-home or written in class) the students demonstrate the use of in-class material in solving similar problems. The assignments and exam cover design, implementation and analysis of system-level examples derived from real-life medical applications, using real medical images. See caveat at top.

CISC 481: Syntax Systems for Natural Language

Prerequisite: permission of School Calendar description:
Chomsky grammars, including context-free languages; algorithms for natural language processing. Content will vary from year to year, but may include lexical-functional grammars, ambiguity resolution, parsing algorithms, grammatical inference, Lindenmeyer grammars and grammars for multi-dimensional objects. Students will present seminars.
LEARNING HOURS 120 (36S;84P)
We have not offered this course for many years. See caveat at top.

CISC 486: Game Engine Development

Required in SODE (Game Design). Prerequisite: CISC 226, CISC 326, CISC 324, MATH 11x. Calendar description:
An introduction to 'engines' used in networked 3-dimensional games. Topics include game-engine architecture and components providing 3-dimensional rendering, physics simulation, sound, artificial intelligence and networking services.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
develop a simple game engine
design the software architecture of a game engine
develop engine-level algorithms supporting artificial intelligence in games
develop engine-level algorithms supporting networking in games
develop engine-level algorithms supporting physics in games
See caveat at top.

CISC 496: Game Development Project

Required in SODE (Game Design). Prerequisite: Level 4, GPA 1.9, CISC 226, (COCA 201 or CISC 326 or permision of School). Calendar description:
Team-based project involving the development of a game using modern tools and software engineering techniques.
LEARNING HOURS 129 (9L;120G)
Needed byLearning Outcome
3.3Design and implement a game
4.1, 6.1Collaborate and communicate with colleagues to cooperatively develop a substantial software system.
6.1Schedule intermediate milestones to plan and track progress through the development process.
See caveat at top.

CISC 497: Social, Ethical, and Legal Issues in Computing

Required in all honours plans except COCA and COGS. Prerequisite: Level 4, registered in a computing honours plan, and (CISC 365 or COGS 300) and an overall GPA of 1.9 and a 2.6 GPA from 30 units of CISC. Calendar description:
A wide range of topics of current importance in computing, including technical issues, professional questions, and moral and ethical decisions. Students make presentations, deliver papers, and engage in discussion. LEARNING HOURS 120 (36S;84P)
Calendar description:
Topic selected under the supervision of a faculty member. Emphasis is on the application of software engineering techniques to the development of a substantial software system. Group work, oral presentation, participation in design and code review meetings, and delivery of complete software specification and design are required.
LEARNING HOURS 258 (18S;240P)
EXCLUSION No more than 6.0 units from CISC 498/6.0; CISC 499/3.0.
Needed byLearning Outcome
3.2critically analyse legal, ethical and social issues related to computing
evaluate information as a guide to beliefs and action
4.1explain cogently their position with regard to any legal, ethical or social issues
4.1communicate effectively in writing, discussing, and presenting
6.1Evaluate social, ethical, and legal issues in computing using ethical systems and professional codes of conduct
The prerequisites are the closest SOLUS could check for ``successful completion of 3rd year'' and ``admission to honours.'' See caveat at top.

CISC 498: Information Technology Project

Required in SODE (Software Development) except for internships. Prerequisite: Level 4, SODE, GPA 1.9, CISC GPA 2.6, (CISC 322 or CISC 326) and (CISC 325 or CISC 327). Calendar description:
Topic selected under the supervision of a faculty member. Emphasis is on the application of software engineering techniques to the development of a substantial software system. Group work, oral presentation, participation in design and code review meetings, and delivery of complete software specification and design are required.
LEARNING HOURS 258 (18S;240G)
EXCLUSION No more than 6.0 units from CISC 498/6.0; CISC 499/3.0.
Needed byLearning Outcome
4.1, 6.1Collaborate and communicate with colleagues to cooperatively develop a substantial software system.
3.1Elicit and document customer requirements and develop external interfaces that satisfy them.
Apply software architecture principles to divide the system into modules.
Implement, validate, and deploy software in a form useful to the customer.
6.1Schedule intermediate milestones to plan and track progress through the development process.
See caveat at top.

CISC 499: Advanced Undergraduate Project

Required in the major, BMCO, COMA, and CSCI except for internships. Prerequisite: Level 4, Computing honours, GPA 1.9, CISC GPA 2.6, CISC 365. Calendar description:
Topic selected under the supervision of a faculty member. Emphasis may be on the development of a large program, or on more theoretical issues. Independent research, an oral presentation, and a written report are required.
EXCLUSION No more than 6.0 units from CISC 498/6.0; CISC 499/3.0.
EXCLUSION No more than 6.0 units from (CISC 499/3.0; COGS 499/3.0; CISC 500/6.0)
Needed byLearning Outcome
6.1Demonstrate the potential for independent research and/or development via a term-long project under the supervision of a faculty member.
4.1Describe the process and results of their independent project via a written report.
4.1Summarize the key ideas of their independent project via an oral or poster presentation.
6.1Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
See caveat at top.

CISC 500: Undergraduate Thesis

Prerequisite: Permission of School. Level 4, CISC honours, GPA 3.5. Calendar description:
Individual research project under the supervision of a School of Computing faculty member. Evaluation is based on an oral presentation and a written thesis. It is the responsibility of the student to make a research proposal and secure a supervisor prior to enrolling in the course.
LEARNING HOURS 240 (24I;216P)
EXCLUSION No more than 6.0 units from (CISC 499/3.0; COGS 499/3.0; CISC 500/6.0).

COCA Courses

See caveat at top.

COCA 201: Introduction to Computing and the Creative Arts

Prerequisite: 6.0 units in ARTF or ARTH or DRAM or FILM or MUSC at the 100-level. Co-requisite; CISC 101 or CISC 110 or CISC 121 or permission of instructor. Prerequisite to: CISC 496. Calendar description:
A multidisciplinary studio-oriented overview of computer-based applications in Art, Music, Drama and Film. History of human-computer interaction. Critical and philosophical issues. Animation. Virtual reality. Computer-aided design. Computer games. Enrolment is limited.
LEARNING HOURS 120 (36L;84P)
Needed byLearning Outcome
3.2Design, implement, and critically evaluate an electronic art exhibit.
2.1Design real-time interactive algorithms for user input and output.
3.1Identify user requirements for an interactive art exhibit.
4.1Communicate non-verbally with the user through the exhibit
3.3Design and construct simple real-time software and hardware systems for an effective interactive electronic arts exhibit
5.1Understand the limitations of communication with participants through art exhibits
5.1Enable effective shifting of perspective by users interactive with the art piece.
5.1Understand the role of unpredictability in user input/output; particularly as it relates to artistic concept of discovery
5.1Understand limitations of real-time and of interactive systems.
6.1Schedule intermediate milestones to plan and track progress through the development process.

COGS Courses

See caveat at top.

COGS 100: Introduction to Cognitive Science

Needed byLearning Outcome
1.1, 1.3, 3.5Identify cognitive science as an interdisciplnary paradigm of study of cross-cutting areas such as Philosophy, Psychology, Neuroscience, Linguistics, Anthropology, and Artificial Intelligence
Explain various processes of the mind such as memory and attention, as well as representational and modeling techniques that are used to build computational models of mental processes.
Illustrate cognitive models such as IAM and modeling techniques such as logic programs and neural networks.
Design simple automata and develop logical deductions for problem solving that serve as the foundation of intelligent computer programs such as natural language processing applications (e.g. ALICE and ELIZA).
Read, understand, and summarize scientific articles in the different related areas of Cognitive Science
4.1Collaborate, communicate, and negotiate with peers as a team to produce a joint outcome.
See caveat at top.

COGS 201: Cognition and Computation

Prerequisites: PSYC 221 or COGS 100. Co-requisite: PSYC 100. Some programming experience can be helpful (such as CISC 101).
Needed byLearning Outcome
1.1, 1.3, 3.5Illustrate theory of cognition through computational aspects such as logic propositions, reasoning, constraint satisfaction, information theory, and observable quantitative behavioural measures.
3.5Eplain the two main modeling approaches: the physical symbol systems and artificial neural networks.
2.1, 3.5Implement simple logic programs as physical symbol systems to simuilate human cognition and thought process in the areas of problem solving, language, and decision making
4.1, 5.1Collaborate with peers to summarize and present research papers on major cognitive architectures used for modeling human cognitive processes.
See caveat at top.

COGS 300: Programming Cognitive Models

Prerequisite: COGS 100 or 201, PSYC 100 or PSYC 221, base concepts from linear algebra, statistics, and programming. Alternative prerequisite to: CISC 497.
Needed byLearning Outcome
1.1, 2.1Explain the challenges in model building, identifying the parameters, refining and cleaning the data, developing the numerical model to suport the theoretical concepts, calculating errors and measuring the fitness, and optimizing and refining the model.
2.3,3.5Apply a variety of mathematical modeling and optimization techniques to build or extend and optimize simple quantitative models of human cognition based on a given dataset.
3.5Implement or extend some well-known cognitive model in parts and compare the results with expected outcomes using different programming tools and languages.
5.1, 6.1Summarize and present both well reputed and recent cognitive models from the literature with a primary focus on the modeling techniques.
See caveat at top.

COGS 400: Neural and Genetic Cognitive Models

Prerequisite (CISC 452): CISC 235 or COGS 300.
Prerequisite (CMPE 452): ELEC 278.
Needed byLearning Outcome
1.1, 1.3, 3.5Explain the concepts behind the operation of biological neurons and the evolution of artifical neural network (ANN) to model connections as a representation of information.
2.1, 3.2, 3.3Design and implement different types of ANNs using a variety of design techniques and learning algorithms for prediction, clustering, classification, storage, and function approximation
3.2Apply optimization techniques such as simulated annealing and genetic algorithms with ANN training algorithms
4.1, 6.1Describe with reference to recent research work how ANNs are used to simulate human cognition, vison, and memory, and are applied to intelligent systmes for language and image processing, decision support systems, and predictive systems.
5.1Explain the power and limitations of neural network systems.
See caveat at top.

COGS 499: Advanced Undergraduate Project

Prerequisite: Level 4, Computing honours, GPA 1.9, CISC GPA 2.6, COGS GPA 2.6, CISC 365. Topic selected under the supervision of a CISC, LING, PHIL, or PSYC faculty member. Emphasis may be on the development of a large program, or on more theoretical issues. Students will
Needed byLearning Outcome
6.1Demonstrate the potential for independent research and/or development via a term-long project under the supervision of a faculty member.
4.1Describe the process and results of their project via a written report.
4.1Summarize the key ideas of their project via an oral or poster presentation.