COSC 252: Programming Languages

Instructor

Jeremy Bolton: Teaching and Research


Course Calendar

Syllabus

Books

Recommended Resources:

Gradiance HWs: Some homeworks are facilitated using Gradiance. Please create an account.

Topic Schedule

This course covers many perspective of programming languages. Discussion of different programming language paradigms is interspersed throughout the term to coordinate with project due dates.

The following schedule is sequentially organized by topics and subject to change.

SEE CANVAS FOR SUBMISSION AND DUE DATES

Lecture Topic/notes Readings Assignments, etc.
Intro and Motivation
0 Introduction to Programming Languages and Translation [ pdf ] [ALSU] 1 Assignment #0: Create Gradiance Web Acct
1 Language Basics and Translation Overview [pdf ] [ALSU] 2.1, 2.2, 2.3* Assignment #1
2 Language Basics and Translation Overview [ALSU] 2.4 - 2.6
Syntax
3 Lexical Analysis [pdf ] [ALSU] 3.1 - 3.3 Assignment #2
4 Lexical Analysis [ALSU] 3.4, 3.6 - 3.8 Assignment #3
5 Syntax: Context Free Grammars [pdf ]
Introduce Project #1
[ALSU] 4.1 - 4.3 Project #1: Calculator

Project #1 Source

Assignment #4
6 Syntax: Top-Down Parsing [ pdf ] [ALSU] 4.4
Top Down Brief
7 Review: Project Discussion and Practice Problems
8 VERY BASIC Semantics (Project)[ pdf ]
8 Syntax: Bottom-Up Parsing [ pdf ] [ALSU] 4.5
Bottom Up Brief
Assignment #5
9 Syntax: LR and LALR Parsers [pdf ] [ALSU] 4.6 - 4.7
SLR Brief
Formal Languages
10 Discussion of Formal Languages and Language Hiearchy [pdf ]
* Exam Previous Exam
PL Paradigms: Functional Designing and Assessing PLs

(informal) Designing PLs
13 Programming Language Paradigms: Functional Programming [pdf ] [Ba] 1
[Lo] 3.1
[Dy] 1
14 Functional Programming: Scheme [Lo] 3.2 - 3.5
[Dy] 2
Assignment #5.5
15 Introduce Project [Dy] 3.2, 4.1, 4.2, 4.4 Project #2: mini-Scheme
Basic Semantics
16 Variables, Environments, [pdf 1 ] Data Types [pdf 2 ] [Lo] 7 - 8
17 Expressions [pdf ] Control Structures [pdf ] [Lo] 9 Assignment #6
18 Subroutines [pdf ] and Runtime Stack [pdf ] [Lo] 10
Object Oriented Programming Paradigm
19 OOP [pdf] [Lo] 5.1 - 5.2 Assignment #7
20 OOP [Lo] 5.2 - 5.6
[Se] 17
Project #3: CLOS Interpreter
C++ Code Example
21 Introduce Project Read this --> Lisp Cookbook
Formal Semantics
22 Operational and Denotational Semantics[ pdf ] [Lo] 12.1 - 12.2 Assignment #8
23 Axiomatic Semantics [Lo] 12.4 - 12.5
Logic Programming Paradigm
24 Logic Programming [Lo] 4.1 - 4.2
25 Prolog [Lo] 4.3 - 4.6
Casual Intro to Prolog
Special Topic: Concurrency
* Concurrency (if time)[ ppt ] [Lo] 13
* **** Final Exam is HERE ****