Jupyter at Bryn Mawr College |
|||
Public notebooks: /services/public/dblank / CS245 Programming Languages / 2014-Fall |
Bryn Mawr College, Fall 2014
An introduction to a wide range of topics relating to programming languages with an emphasis on abstraction and design. Design issues relevant to the implementation of programming languages are discussed, including a review and in-depth treatment of mechanisms for sequence control, the run-time structure of programming languages and programming in the large. The course has a strong lab component where students get to construct large programs in at least three different imperative programming languages.
Course website: http://cs.brynmawr.edu/cs245
Class: Monday and Wednesdays, 2:40pm-4:00pm, Park Science Building, Room 336
Lab: Thursdays 10:10am-12:00pm, Park Science Building, Room 230
Professor: Douglas Blank, http://cs.brynmawr.edu/~dblank/
Email: dblank@cs.brynmawr.edu
Office: Park Science, Room 248
Office phone: (610)526-6501
Office hours: TBA
Course Management System: https://moodle.brynmawr.edu/course/view.php?id=3232
We will use the following resources for this course:
September October November December Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 4 1 1 2 3 4 5 6 7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13 14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20 21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27 28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31 30
Week | Dates | Topic | For Class |
---|---|---|---|
1 | 9/2, 9/4 | Overview, Introduction to Scheme | For Thursday, read 00 Jupyter Notebooks and do Assignment 00 |
2 | 9/9, 9/11 | Scheme Programming Language | Read Chapters 1 and 2 from The Scheme Programming Language. Do Assignment 01. |
3 | 9/16, 9/18 | Advanced Scheme | Read Chapters 4 and 5 from The Scheme Programming Language. Do Assignment 02. |
4 | 9/23, 9/25 | Scheme Exam | Assignment 03 |
5 | 9/30, 10/2 | Creating our first programming language: calc | Assignment 04 |
6 | 10/7, 10/9 | Fall break! | no assignments |
7 | 10/14, 10/16 | Adding global and local variables | Read Google Chart in Scheme and do Assignment 05 |
8 | 10/21, 10/23 | Adding functions, recursion, and the y-combinator | Read Fibonacci, recursion, and memoization in Scheme and do Assignment 06 |
9 | 10/28, 10/30 | Continuations, and Continuation Passing Style | Calc without Closures |
10 | 11/4, 11/6 | Midterm | Review: Continuations and CPS |
11 | 11/11, 11/13 | Tail Calls | Tail Calls |
12 | 11/18, 11/20 | Streams and infinite data | Scheme Streams |
13 | 11/25, 11/27 | Language comparisons | Hy Lisp - and video rubric |
14 | 12/2, 12/4 | Implementing Scheme in Python | Scheme in Python |
15 | 12/9, 12/11 | Project Presentations, and Review | Final Projects Plogs |
Final grades will be calculated as a weighted average of all grades according to the following weights: