Tentative schedule for CIS 343

Week Date Topics Reading Milestones
1 Tue. 10 Jan. Introduction
Why Study Programming Languages? (slides)
Intro to Connect 4 project
Proficiency-Based Grading
Sections 1.1
Connect 4
Assign First Day Survey
Assign Homework 1: Chapter 1
Assign In-Class 1: Ice Breaker
Assign Project 1: Connect 4 in C
Thu. 12 Jan. Evaluating Programming Languages (slides) Sections 1.3 - 1.7
2 Tue. 17 Jan. Tradeoffs in programming lanuages (slides)
Compiled vs. Interpreted (slides)
Static vs. Dynamic typing
Video 03 Due Homework 1: Chapter 1
Due Homework 1: Tests for Connect 4
Assign Homework 2: System vs. Scripts
Assign In-Class 2: Tradeoffs
Assign In-Class 3: Intro to Kawa Scheme
Thu. 19 Jan. Compiled vs. Interpreted (slides)
Static vs. Dynamic typing
3 Tue. 24 Jan. Functional Programming
Motivation and Installation of Kawa
Scheme Expressions and Functions
Scheme binding ("let") and debugging
Kawa conditionals
Names, Bindings, and Scopes (slides)
Sections 15.1-15.5
Video 01
Video 02
Video 03
Video 04
Sections 5.1-5.4
Assign In-Class 3: Intro to Kawa Scheme
Thu. 26 Jan. Scheme binding ("let") and debugging
Kawa conditionals
Names, Bindings, and Scopes (slides)
Video 03
Video 04
Sections 5.1-5.4
Assign Project 2: Connect 4 in Scheme
Due Project 1: Connect 4 in C
Due Homework 2: System vs. Scripts
4 Tue. 31 Jan. Scope and Lifetime
Kawa recursion
Using Symbols as Data
Functional Programming Lists
 
Section 5.5-5.8
 
Video 05
Video 06
Video 07
Assign In-Class 5: Scope
Assign In-Class 3: Intro to Kawa Scheme
Thu. 2 Feb. Using Symbols as Data
Functional Programming Lists
 
First-class functions
Enumerated Types
Quiz 1(compile vs. interpreted)
Video 05
Video 06
Video 07
Video 08
Section 6.4
Assign In-Class 4: Names and Bindings
5 Tue. 7 Feb. More lists
First-class functions
Video 08 Assign Term Paper : Term Paper
Thu. 9 Feb. First-class functions
Map/reduce/fold (notes)
Lifetime / Scope (slides)
6 Tue. 14 Feb. Map/Reduce/Fold
Lifetime/Scope
Strings (slides)
Quiz 2(Scheme recursion and lists)
 
 
Section 6.3
Thu. 16 Feb. JavaScript (notes)
Enumerated Types
Strong vs. Weak typing (notes)
Sample Code
Section 6.4
 
Assign Project 3: Connect 4 in JavaScript
7 Tue. 21 Feb. JavaScript (notes) Sample Code Due Project 2: Connect 4 in Scheme
Thu. 23 Feb. JavaScript (notes) Deconstructing objects
8 Tue. 28 Feb. More JavaScript
Quiz 3(Scheme map/reduce/fold)
Thu. 2 Mar. JavaScript callbacks
Expressions (slides)
9 Tue. 14 Mar. JavaScript Promises
JavaScript unit testing with Jest
Sample Code
Thu. 16 Mar. Calling methods / bind / apply
Subprograms (slides)
Sample Code
Sections 9.2
10 Tue. 21 Mar. Subprograms (slides)
Quiz 4(JavaScript; binding)
Sections 91-9.6, 9.9
Thu. 23 Mar. Ruby (notes)
Subprograms (slides)
Quiz 5(JavaScript; JS reduce; Scheme map/reduce/fold)
Ruby
Sections 91-9.6, 9.9
Assign Project 4: Connect 4 in Ruby
Due Project 3: Connect 4 in JavaScript
11 Tue. 28 Mar. More subprograms
Thu. 30 Mar. Generics / Templates
Ruby
Quiz 6(JavaScript; JS reduce; binding)
12 Tue. 4 Apr. Abstract Data Types (notes)(slides)
Ruby
Sections 11.1, 11.2, 11.3, 11.5, 11.6, 11.7  
Assign In-Class 6: Ruby
Thu. 6 Apr. Ruby
Quiz 7 Scope
Sections 12.1, 12.2, 12.3
13 Tue. 11 Apr. Object-Oriented (notes) (slides)
Thu. 13 Apr. Reflection (notes)
Quiz 8 Ruby, ADT, and make-up Scope
14 Tue. 18 Apr. TBD
Quiz 9 OO, polymorphism, and make-up
Due Project 4: Connect 4 in Ruby
Thu. 20 Apr. Quiz 10 various make-up questions
15 Tue. 25 Apr. TBD
Thu. 27 Apr. Final Exam: 8:00 a.m. or 10:00 a.m.

Assignment List

Due Name Details
Tue. 17 Jan. Homework 1: Chapter 1
Tue. 17 Jan. Homework 1: Tests for Connect 4
Thu. 26 Jan. Project 1: Connect 4 in C
Thu. 26 Jan. Homework 2: System vs. Scripts
Tue. 21 Feb. Project 2: Connect 4 in Scheme
Thu. 23 Mar. Project 3: Connect 4 in JavaScript

Labs

Date Name Details

Updated Monday, 10 April 2023, 4:21 PM

W3c Validation