CSCI 3210: Theory of Programming Languages

Sect. 001

Lecture

M W

1420 - 1545

KOM 320


Tentative Schedule

 

Date

Lecture Topic

Homework & Projects

Links to Documents

Week 1

Jan. 16

 

 

 

Jan. 17

Introduction: (Canceled. Please check your MTMail)

Week 2

Jan. 22

Introduction: Syllabus, SVN Tutorial

 Presentation Assignment (Due: Feb. 5)
Presentation Requirement
Project1 (Due: Feb. 5)
Project2 (Due: Apr. 9)

How to access repository
Tortoise SVN Tutorial

Jan. 24

Introduction: language evaluation criteria, language classification

 

Presentation Group

Week 3

Jan. 29

Syntax and Semantics: Tokens, Lexemes, Regular Expression, CFG

 

 

Jan. 31

Syntax and Semantics: CFG, derivation, parse tree, ambiguity

Project3(Due: Feb. 14)

 

Week 4

Feb. 5

Name, Scope, and Binding: Name, binding (static binding vs. dynamic binding), type binding (explicit vs. implicit, type inference, dynamic type binding)

 

 

Feb. 7

storage binding (table), Scope (static scoping)

 

 

Week 5

Feb. 12

1st Exam (introduction, RE, CFG) Sample questions

 

 

Feb. 14

Name, Scope, and Binding: Dynamic scoping, named constant

 

 

Week 6

Feb. 19

Functional Programming Language: (example)

Project4 (Due. Mar.  1)

Ten Reasons not to use functional programming language

Feb. 21

Type Systems: type equivalence (name v.s. type), type compatibility, type inference, type checking

 

Gradual Evolution

Cold War

Week 7

Feb. 26

Data Types: type checking (static v.s. dynamic), strong typing v.s. weak typing. Data types (integer, floating-point, decimal, character, boolean, string, enumeration), mutable and immutable string,  Java Enum Example

 

Including both static and dynamic typing

Feb. 28

Data Types: Array (C# array tutorial), associative array,

 

 

Week 8

Mar. 5

Spring Break. No classes

 

 

Mar. 7

Spring Break. No classes

 

 

Week 9

Mar. 12

Expressions and Assignment Statements: pointer, dangling pointer, memory leak, garbage collection(reference counters vs. mark-sweep),  relational expression (==, ===), boolean expressions (AND, OR, &&, ||),

 

S-STEM Scholarship in Computer Science

Mar. 14

Logic Programming: short circuit evaluation, value and reference variables, Prolog example

Project5 (Due: Mar. 28)

 

Week 10

Mar. 19

Control Flow: if-then-else, switch/case statements, for-loop, while-loop, foreach loop, break/continue

 

 

Mar. 21

2nd Exam (Name, Scope, Binding, Type Systems, Data Types, and functional programming language) Sample questions

 

 

Week 11

Mar. 26

Subprogram: Went through 2nd exam

 

 

Mar. 28

Subprogram: subprogram fundamental, default parameter, variant # of function parameters (JavaC#C++RubyPython)

 Project6 (Due: Apr. 9)

Project2 is Due at April 4.

 

Week 12

Apr. 2

Subprogram: Pass parameters, pass-by-value, pass-by-result, pass-by-value-result, pass-by-reference (value model v.s. reference model)

 

Apr. 4

Subprogram Implementation: activation record, call stack

 

 

Week 13

Apr. 9

Abstract Data Type and Object Oriented Programming:

Project7 (Due: Apr. 16)

PresentationRubric

Apr. 11

Presentation: Power point slides

 

 

Week 14

Apr. 16

Presentation

 

 

Apr. 18

3rd Exam (Expression/Assignment statement, control flow, subprogram, subprogram implementation, Prolog)

 

 

Week 15

Apr. 23

Presentation

 

 

Apr. 25

Presentation

 

 

Week 16

Final Exam

May 2, 1230 - 1430

 

 

Class Resources

Syllabus

Please take your time to go through the syllabus carefully and with patience.

$PUB

All class examples, assignments, and source codes are available in this directory.