May 04, 2024  
OHIO University Undergraduate Catalog 2020-21 
    
OHIO University Undergraduate Catalog 2020-21 [Archived Catalog]

Add to Portfolio (opens a new window)

CS 3200 - Organization of Programming Languages


A hands-on introduction to the science of programming and programming languages, including topics such as: structured data and pattern-matching, recursive and polymorphic data, recursion and higher-order functions, lazy evaluation and streams, automated and equational reasoning about programs, concrete and abstract syntax, grammars, interpreters, desugaring, types and type-checking, type safety, mutable state, references, and objects. Over the course of the semester, students build interpreters and type checkers for a series of increasingly complex languages.

Requisites: CS 2650 and (CS 3000 or MATH 3050) and C or better in CS 2401
Credit Hours: 3
Repeat/Retake Information: May be retaken two times excluding withdrawals, but only last course taken counts.
Lecture/Lab Hours: 3.0 lecture
Grades: Eligible Grades: A-F,WP,WF,WN,FN,AU,I
Learning Outcomes:
  • Students will be able to design, implement, and analyze structured data types to solve computational problems.
  • Students will be able to analyze and reason equationally about the correctness of small functional programs.
  • Students will be able to apply understanding of grammars and syntax trees to implement a parser for an extended arithmetic expression language.
  • Students will be able to apply understanding of structured data types, pattern-matching, recursion, and programming language semantics to implement an interpreter for an extended arithmetic expression language.
  • Students will be able to apply understanding of type systems, type judgments, and inductively defined typing rules to implement a type checker for an extended arithmetic expression language.



Add to Portfolio (opens a new window)