Principles of programming languages: design, syntax, semantics, information binding, strings, arithmetic, input/output, recursion and extensibility. PRE/COREQ: COMPSCI 342.

Date Topic Quiz Homework Interpreter and Programming Assignments Project Deadlines
27-Aug Introduction        
29-Aug Implementation Methods        
31-Aug Implementation Methods        
3-Sep Labor day - no class        
5-Sep Syntax and Semantics Q1     P1
7-Sep Syntax and Semantics        
10-Sep Context Free Grammar     C# programming assignment  
12-Sep CFG examples and BNF        
14-Sep EBNF and Semantics   H1    
17-Sep Names and Binding Q2     P2
19-Sep Names and Binding        
21-Sep Interpreter (part 1)        
24-Sep Variables and scope        
26-Sep Variables and scope      
28-Sep Introduction to Python - code examples   H2 Interpreter - V1  
1-Oct Data types - Integers Q3     P3
3-Oct IEEE 754 Floating point representation        
5-Oct Data types - Chars and Strings        
8-Oct Enumeration types and Pointers     Python programming assignment  
10-Oct Arrays - One dimensional        
12-Oct Subscript binding and array categories   H3    
15-Oct Multi-dimensional arrays - 2D Array indexing Q4     P4
17-Oct No class        
19-Oct Records and Unions        
22-Oct Interpreter (part 2)       P5
24-Oct Expression and Assignment statements        
26-Oct Statement level control structures   H4    
29-Oct Statement level control structures Q5      
31-Oct Iteration        
2-Nov In-class project status presentations       P6
5-Nov Iteration     Interpreter - V2  
7-Nov Subprograms        
9-Nov Subprograms   H5    
12-Nov Subprograms - Type Checking Q6      
14-Nov Functional programming       P7
16-Nov Structured Data - Tuples, Records, Lists        
19-Nov Thanksgiving break - no classes        
21-Nov Thanksgiving break - no classes        
23-Nov Thanksgiving break - no classes      
26-Nov Pattern matching on lists and functions Q7      
28-Nov Pattern matching on lists and functions    
3-Dec   H6    
7-Dec Introduction to MapReduce   Functional programming assignment  
10-Dec In-class presentation of final project       P8
12-Dec In-class presentation of final project       P8
14-Dec In-class presentation of final project   H7 (extra credit)   P8