A.B. Computer Science
Bachelor's degree
In Princeton (USA)
Description
-
Type
Bachelor's degree
-
Location
Princeton (USA)
The Department of Computer Science (link is external) curriculum encourages students to learn fundamental concepts of the discipline and to become proficient in the use of advanced computer systems. The plan provides opportunities for study in software systems, algorithms and complexity, machine architecture, computer graphics, programming languages, machine learning, and other core areas of computer science. Most computer science students enjoy programming and are given ample opportunity to do so within the curriculum.
Facilities
Location
Start date
Start date
Reviews
Subjects
- Computational
- Network Training
- Programming
- Engineering
- Technology
- Systems
- Project
- Private
- Web
- Graphics
- Design
- Algorithms
- Network
- Internet
- Networks
- Computing
- Staff
Course programme
COS 109 Computers in Our World (also
EGR 109
COS 116 The Computational Universe (also
EGR 116
COS 126 Computer Science: An Interdisciplinary Approach (also
EGR 126
COS 217 Introduction to Programming Systems Fall/Spring QR An introduction to computer organization and system software. The former includes topics such as processor and memory organization, input/output devices, and interrupt structures. The latter includes assemblers, loaders, libraries, and compilers. Programming assignments are implemented in assembly language and C using the UNIX operating system. Three lectures. Prerequisite: 126 or instructor's permission. A. Appel
COS 226 Algorithms and Data Structures Fall/Spring QR This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric algorithms, graph algorithms, and some numerical algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications. Two online lectures, two class meetings, one precept. K. Wayne
COS 231 An Integrated, Quantitative Introduction to the Natural Sciences I (See ISC 231)
COS 232 An Integrated, Quantitative Introduction to the Natural Sciences I (See ISC 232)
COS 233 An Integrated, Quantitative Introduction to the Natural Sciences II (See ISC 233)
COS 234 An Integrated, Quantitative Introduction to the Natural Sciences II (See ISC 234)
COS 306 Contemporary Logic Design (See ELE 206)
COS 314 Computer and Electronic Music through Programming, Performance, and Composition (See MUS 314)
COS 318 Operating Systems Fall A study of the design and analysis of operating systems. Topics include: processes, mutual exclusion, synchronization, semaphores, monitors, deadlock prevention and detection, memory management, virtual memory, processor scheduling, disk management, file systems, security, protection, distributed systems. Two 90-minute lectures. Prerequisites: 217 and 226 or instructor's permission. J. Singh
COS 320 Compiling Techniques Spring The principal algorithms and concepts associated with translator systems. Topics include lexical analysis, syntactic analysis, parsing techniques, symbol table management, code generation and optimization, run time system design, implementation issues related to programming language design. Course will include a large-scale programming project utilizing the above topics. Three lectures. Prerequisites: 217 and 226 or instructor's permission. D. August
COS 323 Computing and Optimization for the Physical and Social Sciences (See ORF 363)
COS 333 Advanced Programming Techniques Fall/Spring The practice of programming. Emphasis is on the development of real programs, writing code but also assessing tradeoffs, choosing among design alternatives, debugging and testing, and improving performance. Issues include compatibility, robustness, and reliability, while meeting specifications. Students will have the opportunity to develop skills in these areas by working on their own code and in group projects. Two 90-minute lectures. Prerequisites: 217 and 226 (as corequisite). B. Kernighan, R. Dondero Jr.
COS 340 Reasoning about Computation Fall/Spring QR An introduction to mathematical topics relevant to computer science. Combinatorics and probability will be covered in the context of computer science applications. The course will present a computer science approach to thinking and modeling through such topics as dealing with uncertainty in data and handling large data sets. Students will be introduced to fundamental concepts such as NP-completeness and cryptography that arise from the world view of efficient computation. Prerequisites COS 126 and 226 (or sufficient mathematical background), and MAT 202 or MAT 204 or MAT 217. COS 226 can be taken along with COS 340 in the same term. R. Raz, B. Chazelle
COS 342 Introduction to Graph Theory (See MAT 375)
COS 351 Information Technology and Public Policy (See WWS 351)
COS 375 Computer Architecture and Organization (also
ELE 375
COS 381 Networks: Friends, Money and Bytes (See ELE 381)
COS 396 Introduction to Quantum Computing (See ELE 396)
COS 397 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. B.S.E. candidates only. A. Gupta
COS 398 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. B.S.E. candidates only. A. LaPaugh
COS 402 Machine Learning and Artificial Intelligence Not offered this year 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. Prerequisites- COS 226 and COS 340 Staff
COS 423 Theory of Algorithms Spring Design and analysis of efficient data structures and algorithms. General techniques for building and analyzing algorithms. Introduction to NP-completeness. Two 90-minute lectures. Prerequisites: 226 and 340 or instructor's permission. R. Tarjan
COS 424 Fundamentals of Machine Learning (also
SML 302
COS 425 Database and Information Management Systems Not offered this year 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. Two 90-minute lectures. Prerequisites: 217 and 226. A. LaPaugh
COS 426 Computer Graphics Spring 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. Two 90-minute lectures. Prerequisites: 217 and 226. A. Finkelstein
COS 429 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. Prerequisites: 217 and 226. Two 90-minute lectures. O. Russakovsky
COS 432 Information Security (also
ELE 432
COS 433 Cryptography (also
MAT 473
COS 435 Information Retrieval, Discovery, and Delivery Not offered this year This course studies both classic techniques of indexing documents and searching text, and also new algorithms that exploit properties of the World Wide Web, digital libraries, and multimedia collections. There is significant emphasis on current methods employed by Web search engines, including methods of employing user profiles to enhance search results. Pragmatic issues of handling very large amounts of information that may be widely dispersed--caching, distributed storage, and networking technology--are also covered. Prerequisite: COS 226 and MAT 202. Two 90-minute lectures. A. LaPaugh
COS 436 Human-Computer Interface Technology (also
ELE 469
COS 441 Programming Languages Not offered this year 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. Prerequisites: COS 217 and 226. Three lectures. Staff
COS 448 Innovating Across Technology, Business, and Marketplaces (also
EGR 448
COS 451 Computational Geometry Not offered this year 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. Two 90-minute lectures. Prerequisites: 226 and 340 or 341, or equivalent. B. Chazelle
COS 455 Introduction to Genomics and Computational Molecular Biology (See QCB 455)
COS 461 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). Two lectures, one preceptorial. Prerequisite: 217. N. Feamster
A.B. Computer Science