Concordia University Wisconsin  ·  School of Arts and Sciences  ·  B.S. Computer Science Curriculum proposal draft
Computer Science Curriculum Evolution
CSC 3210 3 Credits 3000 level Moderate AI weight

Programming Language Theory

In industry a growing share of source code is drafted by AI coding agents, which shifts the practitioner's leverage from typing code to specifying intent precisely and establishing that the delivered program means what was specified. That makes the language-level machinery this course already teaches - grammars, type systems, contracts, and formal semantics - the practical verification surface for machine-generated code, and it revalues declarative and functional styles as specification tools rather than historical curiosities.

Current catalog prerequisites — (CSC 300 or 4400).

The revision

Current description → proposed description

Current — CUW catalogverbatim

This course surveys major topics in the design, analysis, implementation and use of high-level languages. The four major programming paradigms are studied (procedural, functional, object, and declarative). Programming projects in each paradigm are implemented.

Prerequisites: (CSC 300 or 4400).

Proposed — revised for the AI eradraft

This course surveys the design, analysis, implementation, and use of high-level programming languages. Students study grammars and syntax, binding and scope, type systems, evaluation strategies, memory management, and formal semantics. Programming projects are implemented in each of the four major paradigms: procedural, functional, object-oriented, and declarative. The course then applies these foundations to a professional setting in which much source code is drafted by AI coding agents. Students examine how grammars constrain the output of language models, and how type systems, contracts, static analysis, and property-based testing serve as machine-checkable guardrails on generated programs. They also consider why declarative and functional styles can make programmer intent easier to specify and to verify. A single semester project carries this work: students design a small domain-specific language intended as a tool interface for an autonomous agent and for a non-specialist domain expert, build its grammar and type checker, apply them to model-generated code, and defend their design decisions in writing. Throughout, precise specification and disciplined review of code the programmer did not write are treated as professional responsibilities.

Note. The catalog prerequisite for CSC 3210 reads "Prerequisites: (CSC 300 or 4400)." No CSC 300 appears in the current CSC catalog listing, so that number appears stale and should be confirmed by the department. CSC 3210 has no entry in the workbook's assessment map and no department-authored proposed description, so the mapping above is newly proposed rather than reconciled against existing workbook data.

What changes

  • Grammars and type systems framed as guardrails on model-generated code
  • Verification of code the student did not write
  • Domain-specific language design as an agent tool interface
  • Declarative and functional paradigms reframed as specification skills
  • Explicit language-implementation core: semantics, scope, memory, evaluation strategies
Course learning outcomes

6 proposed outcomes, mapped to 6 program outcomes

Each outcome below is written to be observable and assessable, and each is mapped to the program learning outcomes for which it produces evidence.

1

Students will be able to implement a comparable solution to a common problem in each of the four major paradigms - procedural, functional, object-oriented, and declarative - and assess in a written comparison how each successive implementation changed their own approach to the problem.

Maps to

The written comparison of how each successive implementation changed the student's own approach is a submitted, gradeable artifact of self-assessment, which is the continuous assessment and improvement of one's own problem-solving that PLO 4.3 describes.

2

Students will be able to differentiate the four major paradigms by their trade-offs in state management, expressiveness, and the effort required to verify machine-generated code.

Maps to

The CLO's requirement to differentiate paradigms by stated trade-offs is a qualitative comparative analysis that draws conclusions from evidence, matching PLO 6.2's analysis of patterns to reach meaningful conclusions.

3

Students will be able to construct a grammar and type checker that constrain and validate the code a language model produces for a small language.

Maps to

The CLO requires students to propose a technical solution to the problem of unreliable model-generated code and to evaluate it against real model output, which is the propose-and-evaluate evidence PLO 4.2 calls for.

4

Students will be able to evaluate AI-generated program code against a written specification using static type checking, formal semantics, and property-based testing, stating which claims each technique establishes and which it leaves unproven.

Maps to

The CLO's demand that students state what each technique leaves unproven is the critical reading of a generated outcome and its risks that PLO 4.1 calls for.

5

Students will be able to design a domain-specific language that exposes a technical capability as a tool interface usable by an autonomous agent, together with reference documentation that enables a non-specialist domain expert to use it.

Maps to

The required reference documentation that enables a non-specialist domain expert to use the language is the translation of technical knowledge for non-specialists that PLO 5.3 names.

6

Students will be able to defend a language design decision in a written rationale that states the semantics of the construct, the alternatives considered, and which claims were verified rather than assumed.

Maps to

The CLO's requirement to defend a decision in writing and to distinguish verified claims from assumed ones is written communication conducted transparently and with integrity, which is what PLO 5.1 names.

Coverage

Program outcomes this course reaches

Filled cells are program learning outcomes with at least one supporting course learning outcome in this course. Sparse coverage is expected — no single course carries all eighteen.

ULO1
1.11.21.3
ULO2
2.12.22.3
ULO3
3.13.23.3
ULO4
4.14.24.3
ULO5
5.15.25.3
ULO6
6.16.26.3