CS 3110
Last Updated
- Schedule of Classes - April 13, 2026 10:10AM EDT
Classes
CS 3110
Course Description
Course information provided by the 2026-2027 Catalog.
Advanced programming course emphasizing functional programming, data structures, and software design. Topics include recursive and higher-order programming, algebraic data types and pattern matching, modularity and abstraction mechanisms, models of program evaluation, and type systems. Covers techniques for specifying, testing, and reasoning about program correctness, and for analyzing the performance and design tradeoffs of data structures and programs.
Prerequisites CS 2110 or equivalent programming experience. Prerequisite or corequisite: CS 2800.
Distribution Requirements (SMR-AS)
Last 4 Terms Offered 2026SP, 2025FA, 2025SP, 2024FA
Learning Outcomes
- Design programs using functional programming techniques, including recursion, immutability, higher-order functions, algebraic data types, and pattern matching.
- Apply principles of static and dynamic semantics to predict, explain, and reason about program behavior.
- Design and implement modular software systems using abstraction mechanisms that enforce well-defined interfaces and information hiding.
- Specify, test, and reason about program correctness using precise specifications, systematic testing, and mathematical reasoning.
- Analyze and evaluate programs and data structures with respect to efficiency, abstraction, and design tradeoffs, and select and implement appropriate solutions.
Regular Academic Session. Choose one lecture and one discussion.
-
Credits and Grading Basis
4 Credits GradeNoAud(Letter grades only (no audit))
-
Class Number & Section Details
-
Meeting Pattern
- MWF
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
You may opt to enroll in a 1-credit Academic Excellence Workshop (AEW) to be taken in conjunction with this course. AEWs are weekly collaborative problem-solving workshops designed to enhance student understanding of course material. AEWs are facilitated by upper-level engineering students or CS majors. They are graded S/U based on attendance. In order to attend an AEW, you must enroll in an AEW section, listed under course number ENGRG 1031.
For Bowers Computer and Information Science (CIS) Course Enrollment Help, please see: https://tdx.cornell.edu/TDClient/193/Portal/Home/
-
Class Number & Section Details
-
Meeting Pattern
- M
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- M
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- T
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- T
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- T
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- T
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- T
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- T
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
-
Class Number & Section Details
-
Meeting Pattern
- W
- Aug 24 - Dec 7, 2026
Instructors
Clarkson, M
-
Additional Information
Instruction Mode: In Person
Share
Or send this URL:
