Cornell UniversityWebsiteAcademic Catalog
BS Degree in Computer Science (Eng)source 1source 2source 3
CS Courses
- Introduction to Computing: A Design and Development PerspectiveorCS 1110 (4)introCS 1110: Introduction to Computing: A Design and Development Perspective
Programming and problem solving using Python. Emphasizes principles of software development, style, and testing. Topics include procedures and functions, iteration, recursion, arrays and vectors, strings, an operational model of procedure and function calls, algorithms, exceptions, object-oriented programming.
Introduction to Computing: An Engineering and Science PerspectiveCS 1112 (4)introCS 1112: Introduction to Computing: An Engineering and Science PerspectiveProgramming and problem solving using Python. Emphasizes the systematic development of algorithms and programs. Topics include iteration, functions, arrays, strings, recursion, object-oriented programming, algorithms, and data handling and visualization.
- Object-Oriented Programming and Data StructuresorCS 2110 (4)introCS 2110: Object-Oriented Programming and Data Structures
Fall, Spring, Summer. 4 credits. Student option grading. C. Muhlberger, A. Myers. Intermediate programming in a high-level language and introduction to computer science. Topics include object-oriented programming (classes, objects, subclasses, types), graphical user interfaces, algorithm analysis (asymptotic complexity, big “O” notation), recursion, testing, program correctness (loop invariants), searching/sorting, data structures (lists, trees, stacks, queues, heaps, search trees, hash tables, graphs), graph algorithms. Java is the principal programming language.
Object-Oriented Design and Data Structures - HonorsCS 2112 (4)introCS 2112: Object-Oriented Design and Data Structures - HonorsFall. Not offered: 2023-2024. Next offered: 2024-2025. 4 credits. Student option grading (no audit). N Foster. Intermediate software design and introduction to key computer science ideas. Topics are similar to those in CS 2110 but are covered in greater depth, with more challenging assignments. Topics include object-oriented programming, program structure and organization, program reasoning using specifications and invariants, recursion, design patterns, concurrent programming, graphical user interfaces, data structures as in CS 2110, sorting and graph algorithms, asymptotic complexity, and simple algorithm analysis. Java is the principal programming language.
- or
- Practicum or ProjectorororororComputer Graphics PracticumorCS 4621 (2)graphicsCS 4621: Computer Graphics Practicum
Provides CS 4620 students with hands-on experience in computer graphics programming on modern graphics hardware. This course emphasizes effective use of graphics APIs and the architecture of graphics applications. A final project involves building a substantial interactive graphics system. The course uses Javascript and WebGL for code development.
Practicum in Artificial IntelligenceorCS 4701 (2)aiCS 4701: Practicum in Artificial IntelligenceArtificial Intelligence project class. Possible projects topics include knowledge representation systems, search procedures, game-playing, automated reasoning, concept learning, reinforcement learning, neural nets, genetic algorithms, planning, natural language processing, computer vision. Should be taken only by students with significant experience in Artificial Intelligence, such as those who have already taken CS 4700, CS 4780, CS 4670, or CS 4740.
Natural Language ProcessingorCS 4740 (4)aiCS 4740: Natural Language ProcessingThis course constitutes an introduction to natural language processing (NLP), the goal of which is to enable computers to use human languages as input, output, or both. NLP is at the heart of many of today’s most exciting technological achievements, including machine translation, automatic conversational assistants and Internet search. The course will introduce core problems and methodologies in NLP, including machine learning, problem design, and evaluation methods.
Software EngineeringorororCS 5150 (4)softengCS 5150: Software EngineeringIntroduction to the practical problems of specifying, designing, building, testing, and delivering reliable software systems. Special topics include professionalism, project management, and the legal framework for software development. As a central part of the course, student teams carry out projects for real clients, using concepts of agile software development. Each project includes all aspects of software development from a feasibility study to final delivery.
Interactive Computer GraphicsCS 5625 (4)graphicsCS 5625: Interactive Computer GraphicsMethods for interactive computer graphics, targeting applications including games, visualization, design, and immersive environments. Introduces students to state-of-the-art interactive techniques and programmable shading. Programming assignments use C++ and OpenGL, and students also propose and implement an open-ended final project.
- Computer System Organization and ProgrammingorCS 3410 (4)sysCS 3410: Computer System Organization and Programming
Introduction to computer organization, systems programming and the hardware/ software interface. Topics include instruction sets, computer arithmetic, datapath design, data formats, addressing modes, memory hierarchies including caches and virtual memory, I/O devices, bus-based I/O systems, and multicore architectures. Students learn assembly language programming and design a pipelined RISC processor.
- Introduction to Analysis of AlgorithmsCS 4820 (4)algsCS 4820: Introduction to Analysis of Algorithms
Develops techniques used in the design and analysis of algorithms, with an emphasis on problems arising in computing applications. Example applications are drawn from systems and networks, artificial intelligence, computer vision, data mining, and computational biology. This course covers four major algorithm design techniques (greedy algorithms, divide-and-conquer, dynamic programming, and network flow), undecidability and NP-completeness, and algorithmic techniques for intractable problems (including identification of structured special cases , approximation algorithms, local search heuristics, and online algorithms).
- Mathematical Foundations for the Information AgeorCS 4850 (4)mathCS 4850: Mathematical Foundations for the Information Age
Covers the mathematical foundations for access to information. Topics include high dimensional space, random graphs, singular value decomposition, Markov processes, learning theory, and algorithms for massive data.
Basic ProbabilityorMATH 4710 (4)mathMATH 4710: Basic ProbabilityIntroduction to probability theory, which prepares the student to take MATH 4720. The course begins with basics: combinatorial probability, mean and variance, independence, conditional probability, and Bayes formula. Density and distribution functions and their properties are introduced. The law of large numbers and the central limit theorem are stated and their implications for statistics are discussed.
Basic Engineering Probability and StatisticsorENGRD 2700 (4)engrENGRD 2700: Basic Engineering Probability and StatisticsGives students a working knowledge of basic probability and statistics and their application to engineering. Includes computer analysis of data and simulation. Topics include random variables, probability distributions, expectation, estimation, testing, experimental design, quality control, and regression.
Introduction to Probability and Inference for Random Signals and SystemsororECE 3100 (4)engrECE 3100: Introduction to Probability and Inference for Random Signals and SystemsProbability theory is a mathematical discipline that allows one to reason about uncertainty: it helps us to predict uncertain events, to make better decisions under uncertainty, and to design and build systems that must operate in uncertain environments. This course will serve as an introduction to the subject on the modeling and analysis of random phenomena and processes, including the basics of statistical inference in the presence of uncertainty. Topics include probability models, combinatorics, countable and uncountable sample spaces, discrete random variables, probability mass functions, continuous random variables, probability density functions, cumulative distribution functions, expectation and variance, independence and correlation, conditioning and Bayess rule, concentration inequalities, the multivariate Normal distribution, limit theorems (including the law of large numbers and the central limit theorem), Monte Carlo methods, random processes, and the basics of statistical inference. Applications to communications, networking, circuit design, computer engineering, finance, and voting will be discussed throughout the semester.
Math/Stat Courses
- Calculus for EngineersMATH 1910 (4)mathMATH 1910: Calculus for Engineers
Essentially a second course in calculus. Topics include techniques of integration, finding areas and volumes by integration, exponential growth, partial fractions, infinite sequences and series, tests of convergence, and power series.
- Multivariable Calculus for EngineersMATH 1920 (4)mathMATH 1920: Multivariable Calculus for Engineers
Introduction to multivariable calculus. Topics include partial derivatives, double and triple integrals, line and surface integrals, vector fields, Green’s theorem, Stokes’ theorem, and the divergence theorem.
- Differential Equations for EngineersorMATH 2930 (4)mathMATH 2930: Differential Equations for Engineers
Introduction to ordinary and partial differential equations. Topics include: first-order equations (separable, linear, homogeneous, exact); mathematical modeling (e.g., population growth, terminal velocity); qualitative methods (slope fields, phase plots, equilibria, and stability); numerical methods; second-order equations (method of undetermined coefficients, application to oscillations and resonance, boundary-value problems and eigenvalues); and Fourier series. A substantial part of this course involves partial differential equations, such as the heat equation, the wave equation, and Laplace’s equation.
Basic ProbabilityorMATH 4710 (4)mathMATH 4710: Basic ProbabilityIntroduction to probability theory, which prepares the student to take MATH 4720. The course begins with basics: combinatorial probability, mean and variance, independence, conditional probability, and Bayes formula. Density and distribution functions and their properties are introduced. The law of large numbers and the central limit theorem are stated and their implications for statistics are discussed.
Introduction to Probability and Inference for Random Signals and SystemsorECE 3100 (4)engrECE 3100: Introduction to Probability and Inference for Random Signals and SystemsProbability theory is a mathematical discipline that allows one to reason about uncertainty: it helps us to predict uncertain events, to make better decisions under uncertainty, and to design and build systems that must operate in uncertain environments. This course will serve as an introduction to the subject on the modeling and analysis of random phenomena and processes, including the basics of statistical inference in the presence of uncertainty. Topics include probability models, combinatorics, countable and uncountable sample spaces, discrete random variables, probability mass functions, continuous random variables, probability density functions, cumulative distribution functions, expectation and variance, independence and correlation, conditioning and Bayess rule, concentration inequalities, the multivariate Normal distribution, limit theorems (including the law of large numbers and the central limit theorem), Monte Carlo methods, random processes, and the basics of statistical inference. Applications to communications, networking, circuit design, computer engineering, finance, and voting will be discussed throughout the semester.
General Chemistry IIorCHEM 2080 (4)sciCHEM 2080: General Chemistry IICovers fundamental chemical principles, including reaction kinetics, thermodynamics, and equilibrium. These principles are presented quantitatively and explored in the laboratory. Considerable attention is given to the quantitative calculations and techniques important for further work in chemistry.
Honors General and Inorganic ChemistryorCHEM 2150 (4)sciCHEM 2150: Honors General and Inorganic ChemistryIntensive systematic study of the laws and concepts of chemistry, with considerable emphasis on quantitative aspects. CHEM 2150 covers electronic structure of atoms, chemical bonding, thermodynamics, kinetics, and equilibrium. This course serves as an accelerated entry into organic chemistry in the Spring semester for students with a strong background in chemistry. Laboratory work covers qualitative and quantitative analysis, thermodynamics, kinetics transition metal chemistry, and spectroscopic techniques.
Physics III: Oscillations, Waves, and Quantum PhysicsorPHYS 2214 (4)sciPHYS 2214: Physics III: Oscillations, Waves, and Quantum PhysicsFor majors in engineering (including bio-, civil, and environmental engineering), computer and information science, physics, earth and atmospheric science, and other physical and biological sciences who wish to understand the oscillation, wave, and quantum phenomena behind everyday experiences and modern technology including scientific/medical instrumentation. Covers the physics of oscillations and wave phenomena, including driven oscillations and resonance, mechanical waves, sound waves, electromagnetic waves, standing waves, Doppler effect, polarization, wave reflection and transmission, interference, diffraction, geometric optics and optical instruments, wave properties of particles, particles in potential wells, light emission and absorption, and quantum tunneling. With applications to phenomena and measurement technologies in engineering, the physical sciences, and biological sciences. Some familiarity with differential equations, complex representation of sinusoids, and Fourier analysis is desirable but not essential.
Physics III: Waves and Thermal PhysicsororPHYS 2218 (3)sciPHYS 2218: Physics III: Waves and Thermal PhysicsThis course is divided into two parts. The larger segment of the course typically focuses on wave phenomena. Topics include: coupled harmonic oscillators, strings, sound and light waves, superposition principle, wave equations, Fourier series and transforms, diffraction and interference. The discussion is at the level of The Physics of Waves by Georgi. The second segment of the course covers thermodynamics and statistical mechanics at the level of Thermal Physics by Schroeder.
- Linear Algebra for EngineersMATH 2940 (4)mathMATH 2940: Linear Algebra for Engineers
Linear algebra and its applications. Topics include: matrices, determinants, vector spaces, eigenvalues and eigenvectors, orthogonality and inner product spaces; applications include brief introductions to difference equations, Markov chains, and systems of linear ordinary differential equations. May include computer use in solving problems.
Engineering Courses
Science Courses
- Engineering General ChemistryCHEM 2090 (4)sciCHEM 2090: Engineering General Chemistry
Covers basic chemical concepts, such as reactivity and bonding of molecules, introductory quantum mechanics, and intermolecular forces in liquids and solids and gases. Attention will be focused on aspects and applications of chemistry most pertinent to engineering.
- Physics I: Mechanics and HeatorPHYS 1112 (3)sciPHYS 1112: Physics I: Mechanics and Heat
First course in a three-semester introductory physics sequence. This course is taught in a largely 'flipped', highly interactive manner, with reading preparation and online reading quizzes required for class. Covers the mechanics of particles with focus on kinematics, dynamics, conservation laws, central force fields, periodic motion. Mechanics of many-particle systems: center of mass, rotational mechanics of a rigid body, translational & rotational equilibrium. Temperature, heat, the laws of thermodynamics. At the level of University Physics, Vol. 1, by Young and Freedman.
Physics I: Mechanics and Special RelativityPHYS 1116 (4)sciPHYS 1116: Physics I: Mechanics and Special RelativityFirst in a three-semester introductory physics sequence. Explores quantitative modeling of the physical world through a study of mechanics. More mathematical than a typical mechanics course - for example, considers how choice of coordinate system (Cartesian, cylindrical, etc.) influences the nature of kinematical equations. Includes kinematics, dynamics, conservation laws, central force fields, periodic motion, and special relativity. At the level of An Introduction to Mechanics by Kleppner and Kolenkow, which assumes a strong mathematical foundation in calculus.
- Physics II: ElectromagnetismorPHYS 2213 (4)sciPHYS 2213: Physics II: Electromagnetism
Second course in a three semester introductory physics sequence. The course emphasizes active learning during class. Video lectures are viewed before class; most class time is devoted to problem-solving. Topics include: electric forces and fields, electric energy and potential, circuits, magnetic forces and fields, magnetic induction, and Maxwell’s equations. Taught at a level somewhat higher than University Physics, Vol. 2, by Young and Freedman. The math prerequisite is essential: line, surface, and volume integrals are done routinely and occasional use is made of gradient, divergence, and curl.
Physics II: Electricity and MagnetismPHYS 2217 (4)sciPHYS 2217: Physics II: Electricity and MagnetismSecond in a three semester introductory physics sequence. Explores quantitative modeling of the physical world through a study of electricity and magnetism. More mathematical and abstract than a typical introductory electricity and magnetism course. Topics include electrostatics, behavior of matter in electric fields, circuits, magnetic fields, Faraday’s law, AC circuits, and electromagnetic waves. Makes substantial use of vector calculus. At the level of Electricity and Magnetism by Purcell.
Other Courses
History of the Major
2024 | Rename CS 2800 (Discrete Structures → Mathematical Foundations of Computing). Replace 1 CS Elective → "CS 3700 (Foundations of AI Reasoning and Decision-Making) or CS 3780 (Introduction to Machine Learning)". Drop required Probability course. |
2023 | Rename CS 1110 (Introduction to Computing using Python → Introduction to Computing: A Design and Development Perspective). Rename CS 1112 (Introduction to Computing using MATLAB → Introduction to Computing: An Engineering and Science Perspective). Remove CS 5414 (Practicum in System Security) as a project-course option. |
2022 | |
2021 | Add CS 4414 (Systems Programming) as an alternative to CS 4410 (Operating Systems). Drop CS 5152 (Open-Source Software Engineering) as a project-course option. |
2020 | Add CS 3152 (Introduction to Computer Game Architecture), CS 4152 (Advanced Topics in Computer Game Architecture), and CS 4750 (Natural Language Processing) as project-course options. Drop CS 6670 (Computer Vision) as a project-course option. |
2019 | Drop CS 4758 (Robot Learning) and CS 5643 (Physically Based Animation for Computer Graphics) as project-course options. |
2018 | |
2017 | |
2016 |