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.

Corequisites or prerequisites: CS 2800.

Distribution Requirements (SMR-AS)

Last 4 Terms Offered 2026FA, 2026SP, 2025FA, 2025SP

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

  •  6621 CS 3110   LEC 001

    • MWF
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

    For Bowers Computer and Information Science (CIS) Course Enrollment Help, please see: https://tdx.cornell.edu/TDClient/193/Portal/Home/

  •  6622 CS 3110   DIS 201

    • M
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6623 CS 3110   DIS 202

    • M
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6624 CS 3110   DIS 203

    • M
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6625 CS 3110   DIS 204

    • M
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6626 CS 3110   DIS 205

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6627 CS 3110   DIS 206

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6628 CS 3110   DIS 207

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6629 CS 3110   DIS 208

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6630 CS 3110   DIS 209

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6631 CS 3110   DIS 210

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6632 CS 3110   DIS 211

    • T
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person

  •  6633 CS 3110   DIS 212

    • W
    • Jan 25 - May 11, 2027
    • Hsu, J

  • Instruction Mode: In Person