CS 3110

CS 3110

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.

View Enrollment Information

Syllabi: none
  •   Regular Academic Session.  Choose one lecture and one discussion.

  • 4 Credits GradeNoAud

  • 17297 CS 3110   LEC 001

    • MWF
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • 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/

  • 17298 CS 3110   DIS 201

    • M
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17299 CS 3110   DIS 202

    • M
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17300 CS 3110   DIS 203

    • T
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17301 CS 3110   DIS 204

    • T
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17302 CS 3110   DIS 205

    • T
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17303 CS 3110   DIS 206

    • T
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17304 CS 3110   DIS 207

    • T
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17305 CS 3110   DIS 208

    • T
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17306 CS 3110   DIS 209

    • W
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person

  • 17307 CS 3110   DIS 210

    • W
    • Aug 24 - Dec 7, 2026
    • Clarkson, M

  • Instruction Mode: In Person