e
Class Meetings | Wed 7:10-9pm in CIWW 109 |
Recitations | Thu 7:10-8:00pm in CIWW 109 |
First Lecture | Jan 30, 2019 |
Last Lecture | May 15, 2019 |
Midterm Exam | Mar 27, 2019, 7:10-9pm in CIWW 109 |
Final Exam | May 8, 2019, 7:10-9pm in CIWW 109 |
Instructor | Thomas Wies, Office 60FA 403, Office Hours Tue 4:00-5:00pm, or by appointment |
Recitations | Goktug Saatcioglu, Office Hours Fri 11:00am-12:30pm in room 60FA 402 |
Graders | Nikita Bhargava, Vaibhav Vijay Gupta, Diksha Meghwal |
Design and use of mainstream programming languages: naming, scoping, type models, control structures, procedural abstractions, modularization. Implementation issues and runtime organization. We will study various languages with a primary focus on the multi-paradigm languages Scala and OCaml. The course work includes extensive programming exercises in these languages.
Prerequisites: Undergraduate courses in data structures and algorithms or equivalent, as well as familiarity and programming experience in a high-level language like C/C++, Java, Python or a similar language.
Throughout the semester, we will investigate the following topics in detail among others:
We will use Piazza for course-related discussions and announcements. I encourage you to ask questions when you are struggling to understand a concept - you can even do so anonymously.
Homework assignments (30%), midterm exam (30%), final exam (40%).
Late submissions of homework solutions and projects will be graded with a 10% penalty per day of late submission. Solutions will not be graded if they are submitted later than one week after the specified deadline.
Please review the departmental academic integrity policy. In this course, you may discuss assignments with other students, but the work you turn in must be your own. Do not copy another student's work. You should help other students on specific technical issues but you must acknowledge such interactions. Copying code or other work without giving appropriate acknowledgment is a serious offense with consequences ranging from no credit to potential expulsion.
There will be no required textbook for this course. However, the following textbooks are recommended for further study:
The syllabus can be subject to change, so please refresh frequently.
Week | Date | Topics | Materials | Further Reading |
---|---|---|---|---|
1 | 01/30 |
|
PLP, Ch. 1-2 | |
1 | 01/31 |
|
||
2 | 02/06 |
|
|
|
2 | 02/07 |
|
||
3 | 02/13 |
|
|
|
3 | 02/14 |
|
||
4 | 02/20 |
|
|
|
4 | 02/21 |
|
||
5 | 02/27 |
|
|
|
5 | 02/28 |
|
||
6 | 03/06 |
|
|
|
6 | 03/07 |
|
||
7 | 03/13 |
|
|
|
7 | 03/14 |
|
||
03/20 |
|
|||
03/21 |
|
|||
8 | 03/27 |
|
||
8 | 03/28 |
|
||
9 | 04/03 |
|
|
|
9 | 04/04 |
|
||
10 | 04/10 |
|
|
|
10 | 04/11 |
|
||
11 | 04/17 |
|
|
|
11 | 04/18 |
|
||
12 | 04/24 |
|
|
|
12 | 04/25 |
|
||
13 | 05/01 |
|
|
|
13 | 05/02 |
|
||
14 | 05/08 |
|
||
14 | 05/09 |
|
||
15 | 05/15 |
|