Welcome to the Unofficial Cornell Computer Science Wiki
The Wiki is currently in conservation mode: all content is being maintained, but we are no longer actively seeking new submissions. If you find any errors or misleading information, please let us know or submit a pull request. If you would like to contribute advice or information on a particular course, we recommend that you submit your review to Rate My Professors and CU Reviews. If you are looking for up-to-date information on courses, we recommend checking the Class Roster, the CS 0000 Piazza forum, and the r/Cornell subreddit.
Want to add your thoughts? See a class that needs info? Contribute to this wiki! This is not limited to only coursework. Contribute any resources or additional pages you think anyone may find useful! If a page does not exist for a class you have taken, please do us all a favor and make one!
- Welcome to the Unofficial Cornell Computer Science Wiki
- Handy Links
- CS Community Pages
- CS Classes
- CS-Related Classes
- Clubs and Project Teams
- Hackathons
- Getting Involved in CS/Open Source
Handy Links
- FAQ—Answers to some of the most commonly asked questions
- I’m an incoming freshman
- What Do I Take Next?
- Practice & Challenges—How to improve your CS skills
- Contributing Guide and List of Contributors
CS Community Pages
- Cornell CS Facebook Group—Q&A, interesting links, and discussion
- Cornell CS Polls—For fun or for surveys
- ACSU—The Association of Computer Science Undergraduates
- ISSA—Information Science Student Association
- URMC—Under-Represented Minorities in Computing
- WICC—Women in Computing at Cornell
- Awesome Cornell—Awesome (open source!) projects by your fellow Cornellians
- CS 0000 Piazza
CS Classes
Tag | Description |
---|---|
Core | Core and Introductory Programming Classes |
Core+ | Honors or Alternative Core Classes |
Please check the course roster for official, up-to-date information. The Wiki is meant to supplement official sources with student insights, not replace them.
1000
- CoreCS 1110 - Introduction to Computing Using Python
- Core+CS 1112 - Introduction to Computing Using MATLAB
- Core+CS 1114 - Introduction to Computing Using MATLAB and Robotics
- Core+CS 1115 - Introduction to Computational Science and Engineering Using MATLAB Graphical User Iterfaces
- CS 1132 - Transition to MATLAB
- CS 1133 - Transition to Python
- INFO/CS 1300 - Introductory Design and Programming for the Web
- CS 1610 - Computing in the Arts
- CS 1710 - Introduction to Cognitive Science
- CS 1830 - Voting: Does Democracy Have a Voice?
2000
- CS 2022 - Introduction to C
- CS 2024 - C++ Programming
- CS 2026 - Introduction to C Sharp
- CS 2042 - UNIX Tools
- CS 2043 - UNIX Tools and Scripting
- CS 2044 - Advanced UNIX Programming and Tools
- CoreCS 2110 - Object-Oriented Programming and Data Structures
- CS 2111 - Java Practicum
- Core+CS 2112 - Object-Oriented Programming and Data Structures - Honors
- INFO/CS 2300 - Intermediate Design and Programming for the Web
- CoreCS 2800 - Discrete Structures
- Core+CS 2802 - Discrete Structures - Honors
- CS 2850 - Networks
3000
- CoreCS 3110 - Data Structures and Functional Programming
- CS 3152 - Introduction to Computer Game Development—Introduction to Computer Game Architecture
- INFO/CS 3300 - Data-Driven Web Applications
- CoreCS 3410 - Computer System Organization and Programming
- Core+ECE 3140 / CS 3420 - Embedded Systems
- CS 3758 - Autonomous Mobile Robots
4000
- CS 4110 - Programming Languages and Logics
- CS 4120 - Introduction to Compilers
- CS 4121 - Practicum in Compilers
- CS 4154 - Analytics-Driven Game Design
- CS 4160 - Formal Verification
- CS 4210 / MATH 4250 - Numerical Analysis and Differential Equations
- CS 4220 / MATH 4260 - Numerical Analysis: Linear and Nonlinear Problems
- CS 4320 - Introduction to Database Systems
- CoreCS 4410 - Operating Systems
- CS 4411 - Practicum in Operating Systems
- CS 4420 - Computer Architecture
- CS 4620 - Introduction to Computer Graphics
- CS 4670 - Introduction to Computer Vision
- CS 4700 - Foundations of Artificial Intelligence
- CS 4701 - Practicum in Artificial Intelligence
- CS 4740 - Introduction to Natural Language Processing
- CS 4744 - Computational Linguistics
- CS 4750 - Foundations of Robotics
- CS 4758 - Robot Learning
- CS 4775 - Computational Genetics and Genomics
- CS 4780 - Machine Learning
- CS 4786/5786 - Machine Learning for Data Science
- CS 4810 - Introduction to Theory of Computing
- CS 4812 - Quantum Information Processing
- CoreCS 4820 - Introduction to Algorithms
- CS 4830 - Introduction to Cryptography
- CS 4850 - Mathematical Foundations for the Information Age
- CS 4852 / INFO 4220 - Networks II
- CS 4860
5000
- CS 5150 - Software Engineering
- CS 5152 - Open Source Software Engineering
- CS 5220 - Applications of Parallel Computers
- CS 5412 - Cloud Computing
- CS 5430 - System Security
- CS 5540 - Computational Techniques for Analyzing Clinical Data
- CS 5625 - Interactive Computer Graphics
6000
- CS 6110 - Advanced Programming Languages
- CS 6117 - Category Theory for Computer Scientists
- CS 6360 - Educational Technology
- CS 6820 - Analysis of Algorithms
- CS 6825 - The Science Base for the Information Age
- CS 6840 - Algorithmic Game Theory
- CS 6850 - The Structure of Information Networks
CS-Related Classes
InfoSci
- INFO 1200-Information Ethics, Law, and Policy
- INFO/CS 1300 - Introductory Design and Programming for the Web
- INFO/CS 2300 - Intermediate Design and Programming for the Web
- INFO 2450-Communication and Technology
- INFO 2950-Introduction to Data Science
- INFO 3200-New Media and Society
- INFO/CS 3300 - Data-Driven Web Applications
- INFO 3350-Text Mining History and Literature
- INFO 4240-Designing Technology for Social Impact
- INFO 4320-Introduction to Rapid Prototyping and Physical Computing
- INFO 4430-Teams and Technology
ECE
- ECE 2300-Digital Logic and Computer Organization (sometimes taken with CS 3420 as an alternative to CS 3410)
- ECE 2400-Computer Systems Programming
- ECE 3140 / CS 3420 - Embedded Systems
- ECE 4740-Digital VLSI Design
- ECE 4750-Computer Architecture
- ECE 4760-Digital Systems Design Using Microcontrollers
Math
- Classes sometimes required for CS classes - MATH 2210/2220/2230/2240/2310/2930/2940
- MATH 3360-Applicable Algebra
- MATH 4240-Wavelets and Fourier Series
- CS 4210 / MATH 4250 - Numerical Analysis and Differential Equations
- CS 4220 / MATH 4260 - Numerical Analysis: Linear and Nonlinear Problems
- MATH 4410-Introduction to Combinatorics I
- MATH 4420-Introduction to Combinatorics II
- MATH 4710-Basic Probability
- MATH 4720-Statistics
- MATH 4810-Mathematical Logic
- MATH 4820-Topics in Logic and the Foundations of Mathematics
- MATH 4860
ORIE
- ORIE 4740-Statistical Data Mining
- ORIE 4741-Learning with Big Messy Data
- ORIE 4742-Information Theory, Probabilistic Modeling, & Deep Learning with Scientific & Financial Applications