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.
COS396 - Introduction to Quantum Computing (Fall)
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.
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.
COS401 - Introduction To Machine Translation (Spring)
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.
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.
COS424 - Fundamentals of Machine Learning (Spring)
Computers have made it possible, even easy, to collect vast amounts of data from a wide variety of sources. It is not always clear, however, how to use those data, and how to extract useful information from them. This problem is faced in a tremendous range of business and scientific applications. This course will focus 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.
Cross-listed as SML 302 Statistics and Machine Learning.
COS425 - Database and Information Management Systems
Theoretical and practical aspects of database systems and systems for accessing and managing semi-structured information (e.g., Web information repositories). Topics include: relational and XML models, storage and indexing structures, query expression and evaluation, concurrency and transaction management, search effectiveness.
COS426 - Computer Graphics (Spring)
Introduction to computer graphics. Topics include image synthesis, 3D modeling, image processing and animation. Encourage hands-on experience.
COS429 - Computer Vision
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.
COS432 - Information Security (Fall, 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.
COS433 - Cryptography (Spring)
An introduction to modern cryptography with an emphasis on fundamental ideas. The course will survey both the basic information and complexity-theoretic concepts as well as their (often surprising and counter-intuitive) applications. Among the topics covered will be private key and public key encryption schemes, digital signatures, pseudorandom generators and functions, chosen ciphertext security; and time permitting, some advanced topics such as zero knowledge proofs, secret sharing, private information retrieval, and quantum cryptography.
Cross-listed as MAT473 Department of Mathematics.
COS435 - Information Retrieval, Discovery, and Delivery
This course examines the methods used to gather, organize and search for information in large digital collections (e.g. web search engines). We study classic techniques of indexing documents and searching text and also new algorithms that exploit properties of the Web (e.g. links) social networks and other digital collections, including multimedia collections. Techniques include those for relevance and ranking of documents, exploiting user history, and information clustering. We also examine systems aspects of search technology: how distributed computing and storage are used to make information delivery efficient.
COS436 - Human-Computer Interface Technology (Fall)
Creating technologies that fit into people's everyday lives involves more than having technically sophisticated algorithms, systems, and infrastructure. It involves understanding how people think and behave and using this info. to design user-facing interfaces that enhance and augment human capabilities. You will be introduced to the field of human-computer interaction and the tools, techniques, and principles that guide research on people. Design and implement user-facing systems that bring joy rather than frustrate the user and put these skills into practice in a semester long group project involving the creation of an interactive system.
Cross-listed as ELE469 Department of Electrical Engineering.
COS441 - Programming Languages (See COS 510)
How to design and analyze programming languages and how to use them effectively. Functional programming languages, object-oriented languages; type systems, abstraction mechanisms, operational semantics, safety and security guarantees. Implementation techniques such as object representations and garbage collection will also be covered. See COS 510
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.
COS448 - Innovating Across Technology, Business, and Marketplaces (Spring)
Course teaches engineering students about issues tackled by leading Chief Technology Officers: the technical visionaries and/or managers who innovate at the boundaries of technology and business by understanding both deeply, and who are true partners to the CEO, not just implementers of business goals. Focus will be on thinking like a CTO (of a startup and a large company) from technology and business perspectives, and on software and Internet-based businesses. Industry-leading guest speakers provide perspectives too.
Cross-listed as EGR448.
COS451 - Computational Geometry (Fall)
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.
COS455 - Introduction to Genomics and Computational Molecular Biology (Fall)
COS461 - Computer Networks
This course studies computer networks and the applications and services that run on them. The course covers concepts in networking including: packet switching; Internet routing and business relationships; IPv4 and IPv6 addressing; the domain name system (DNS), router, switch, and middlebox design; network security; content distribution networks; wireless networks; and networked applications such as streaming video. The course will also include several programming assignments, ranging from client-server programming to network measurement, analysis, and inference