Quick links

Course Catalog

This catalog is a list of courses that the department may offer in a given year. Not all courses in the catalog are offered every year.

If you are looking for current course information:
-View the Registrar's course offerings page for courses offered this semester.
-Students and faculty can refer to the Undergraduate Announcement for the academic year undergraduate course information.

Undergraduate courses are in the 100 - 400 listing. Graduate courses are in the 400 - 500 listing.

COS375 - Computer Architecture and Organization (Fall)

An introduction to computer architecture and organization. Instruction set design; basic processor implementation techniques; performance measurement; caches and virtual memory; pipelined processor design; design trade-offs among cost, performance, and complexity.

Cross-listed as ECE375 Department of Electrical and Computer Engineering.

Classes: Two 90-minute classes, one self-scheduled hardware laboratory.
Prerequisite(s): COS 217

COS381 - Networks: Friends, Money and Bytes

COS396 - Introduction to Quantum Computing (Fall)

See ECE 396 Department of Electrical and Computer Engineering.
Prerequisite(s): Linear algebra at the level of MAT 202, 204, 217, or the equivalent.

COS397 - Junior Independent Work (B.S.E. candidates only) (Fall)

Offered in the fall, juniors are provided with an opportunity to concentrate on a "state-of-the-art" project in computer science. Topics may be selected from suggestions by faculty members or proposed by the student.

Prerequisite(s): B.S.E. candidates only.

COS398 - Junior Independent Work (B.S.E. candidates only) (Spring)

Offered in the spring, juniors are provided with an opportunity to concentrate on a "state-of-the-art" project in computer science. Topics may be selected from suggestions by faculty members or proposed by the student.

Prerequisite(s): B.S.E. candidates only.

COS402 - Machine Learning and Artificial Intelligence

This course will provide a basic introduction to the core principles, algorithms and techniques of modern artificial intelligence and machine learning research and practice. Main topics will include: 1. Problem solving using search, with applications to game playing 2. Probabilistic reasoning in the presence of uncertainty 3. Hidden Markov models and speech recognition 4. Markov decision processes and reinforcement learning 5. Machine learning using decision trees, neural nets and more. 6. Basic principles of mathematical optimization for learning.

Classes: Two 90-minute lectures.
Prerequisite(s): 226.and 340

COS418 - Distributed Systems

This course covers the design and implementation of distributed systems. Students will gain an understanding of the principles and techniques behind the design of modern, reliable, and high-performance distributed systems. Topics include server design, network programming, naming, concurrency and locking, consistency models and techniques, security, and fault tolerance. Modern techniques and systems employed at some of the largest Internet sites (e.g., Google, Facebook, Amazon) will also be covered. Through programming assignments, students will gain practical experience designing, implementing, and debugging real distributed systems.

COS423 - Theory of Algorithms (Spring)

Design and analysis of efficient data structures and algorithms. General techniques for building and analyzing algorithms. Introduction to NP-completeness.

Classes: Two 90-minute lectures and one precept.
Prerequisite(s): COS 226 and 340, or permission of instructor.

COS424 - Fundamentals of Machine Learning

Computers have made it possible to collect vast amounts of data from a wide variety of sources. It is not always clear, however, how to use the data, and how to extract useful information from them. This problem is faced in a tremendous range of social, economic and scientific applications. The focus will be on some of the most useful approaches to the problem of analyzing large complex data sets, exploring both theoretical foundations and practical applications. Students will gain experience analyzing several types of data, including text, images, and biological data. Two 90-minute lectures. Prereq: MAT 202 and COS 126 or equivalent.

Cross-listed as SML 302 Center for Statistics and Machine Learning.

Classes: Two 90-minute lectures.
Prerequisite(s): MAT 202 and COS 126 or equivalent or permission of instructor.

COS426 - Computer Graphics (Fall)

The principles underlying the generation and display of graphical pictures by computer. Hardware and software systems for graphics. Topics include: hidden surface and hidden line elimination, line drawing, shading, half-toning, user interfaces for graphical input, and graphic system organization.

Classes: Two 90-minute lectures.
Prerequisite(s): COS 217 and COS 226. MAT 202 or equivalent recommended.

COS429 - Computer Vision (Fall)

An introduction to the concepts of 2D and 3D computer vision. Topics include low-level image processing methods such as filtering and edge detection; segmentation and clustering; optical flow and tracking; shape reconstruction from stereo, motion, texture, and shading. Throughout the course, there will also be examination of aspects of human vision and perception that guide and inspire computer vision techniques.

Classes: Two 90-minute lectures.
Prerequisite(s): 217 and 226.

COS432 - Information Security (Spring)

Security issues in computing, communications, and electronic commerce. Goals and vulnerabilities; legal and ethical issues; basic cryptology; private and authenticated communication; electronic commerce; software security; viruses and other malicious code; operating system protection; trusted systems design; network security; firewalls; policy, administration and procedures; auditing; physical security; disaster recovery; reliability; content protection; privacy.

Classes: Two 90-minute lectures.
Prerequisite(s): COS 217 and COS 226.

COS433 - Cryptography (Fall)

An introduction to the theory of modern cryptography. Topics covered include private key and public key encryption schemes, digital signatures, pseudorandom generators and functions, zero-knowledge proofs, and some advanced topics. Prerequisites: COS 240 is a required prerequisite or equivalent proof-based mathematical maturity.

Cross-listed as MAT473 Department of Mathematics.

Classes: Two 90-minute lectures.
Prerequisite(s): 226 or permission of instructor.

COS436 - Human-Computer Interaction (Fall)

This course is a survey of the field of Human-Computer Interaction (HCI). We cover foundational as well as current research topics in HCI. The two core focus areas are interactive computing and social computing; breadth topics include AI+HCI, AR/VR, design tools, and accessibility. A semester-long group project that involves the design and implementation of an interactive system. Prerequisite COS 217 or permission of instructor.

Classes: Two lectures and one precept
Prerequisite(s): COS 217 or ELE 302.

COS445 - Economics and Computing (Spring)

Computation and other aspects of our lives are becoming increasingly intertwined. In this course we will study a variety of topics on the cusp between economics and computation. Topics to be covered include: games on networks, auctions, mechanism and market design, reputation, computational social choice. The aim of the course is two-fold: (1) to understand the game-theoretic issues behind systems involving computation such as online networks, and (2) to learn how algorithms and algorithmic thinking can help with designing better decision and allocation mechanisms in the offline world.

Prerequisite(s): COS226, MAT 175 or MAT 202 or 204 or 217, or instructor's permission.

COS448 - Innovating Across Technology, Business, and Marketplaces (Spring)

This course introduces computer science and technology-oriented students to issues tackled by Chief Technology Officers: the technical visionaries and managers innovating at the boundaries of technology and business. These individuals are partners to the business leaders of the organization, not merely implementers of business goals. The course covers companies from ideation and early-stage startup, to growth-stage startup, to mature company, covering the most relevant topics at each stage, including ideation, financing, product-market fit, go-to-market approaches, strategy, execution, and management. Exciting industry leaders guest lecture.

Cross-listed as EGR448.

Prerequisite(s): COS 217 or COS 226 or equivalent

COS451 - Computational Geometry

Introduction to basic concepts of geometric computing, illustrating the importance of this new field for computer graphics, solid modelling, robotics, databases, pattern recognition, and statistical analysis. Algorithms for geometric problems. Fundamental techniques, for example, convex hulls, Voronoi diagrams, intersection problems, multidimensional searching.

Classes: Two 90-minute lectures.
Prerequisite(s): 226 and 340 or equivalent.

COS455 - Introduction to Genomics and Computational Molecular Biology (Fall)

COS461 - Computer Networks (Spring)

This course studies computer networks and the services built on top of them. Topics include packet-switch and multi-access networks, routing and flow control, congestion control and quality-of-service, Internet protocols (IP, TCP, BGP), the client-server model and RPC, elements of distributed systems (naming, security, caching) and the design of network services (multimedia, peer-to-peer networks, file and Web servers, content distribution networks).

Classes: Two lectures, one preceptorial.
Prerequisite(s): COS 217.

COS475 - Computer Architecture (Spring)

See ECE 475 Department of Electrical and Computer Engineering.
Prerequisite(s): Prerequisite: ECE 375/COS 375 and ECE 206/COS 306 (or familiarity with Verilog)
Follow us: Facebook Twitter Linkedin