[Home] [Syllabus] [Assignments] [Resources] [Wiki]
The syllabus will be updated throughout the semester. Dates, topics, assigned reading, and problem set due dates will be added or might change. All changes in assigned reading and due dates will be announced in class (and occasionally by e-mail). While I will do my best to update the web site accordingly, it is a student's responsibility to keep track of the problem set due dates and reading assignments. If you are not sure about due dates, please don't hesitate to ask.
Reading assignments are listed for the day when the material is first explained in class. You may read the material ahead of the lecture or after, either way is fine.
The dates for the midterm exams are set and will not change. If you have a conflict with these dates, please let me know right away. No makeup exams will be given unless there are circumstances beyond your control AND the makeup time is arranged in advance.
The midterms are open book, open notes. The policies on use of electonic resources will be announced in class.
Problem sets and labs are individual work, unless otherwise stated. While it's perfectly OK (and is encouraged) to discuss problem sets in general terms with others in the class, your solution must be your own work (i.e. written or coded by you without using anybody else's materials). Copying any part of another person's solution (even if you modify the code) is considered academic dishonesty and will be dealt with according to the university's policy.
You may use electronic resources for problem sets to get general ideas for your solutions as well as to help in fixing errors. However, you may not copy a code fragment found online into your solution. Use of sources other than the textbook and the handouts given in class must be acknowledged in the beginning of the problem solution. For take home tests please follow the instructions on the test to determine appropriate resources. Use of any materials from previous runs of this class is not allowed.
Late problem sets policy:
Problem sets are due in the beginning of the class on the due
date, unless a different time is specified for an electronic
submission. If a problem set is submitted at (or before) the next
class meeting
after the due date, it is graded out of 3/4 credit. If it is submitted any
time after the next meeting (until the last class meeting), then it is graded
out of 1/2 credit.
Hand in one assignment from the entire group with names of both students on the first page. If submitting by e-mail, you must CC it to all your partner(s). In a programming assignments make sure to keep track (in comments or in some other electronic form) of each partner's contribution to the work.
Generally all group members get the same grade for the submitted group work. If you feel that your group members are not contributing the way they should or if there are any circumstances that prevent you or you partner from contributing a fair share, please talk to your partners to work out an arrangement (if possible) and in either case let me know right away. If after the assignment is finished you feel that the group members have contributed unevenly, please talk to me and I'll try to come up with a fair grading strategy.
Discussion with students other than those in your group (or anyone not in this class) should be limited to general approaches to the problem. All such discussions as well as use of sources other than the textbook and the handouts given in class must be acknowledged in the beginning of the problem solution.
Studying in groups is strongly encouraged. You may study for tests, go over textbook materials or lecture notes, and discuss problem sets in general terms (i.e. without actually writing the formulas or giving out the answers).
Use of laptops for class-related activities is usually allowed, except for test time and other specific assignments. Laptops and other devices may not be used for activities unrelated to the class work (checking e-mail, text messaging, etc.). The instructor reserves a right to ask a student to leave the class if the student uses electronic devices inappropriate in a class. No communication devices can be used during a test, including quizzes. If you are taking notes on your laptop, you are not allowed to access anything other than your notes during a test.
Tuesday | Thurssday | ||
---|---|---|---|
Week 1: August 25 - 27 | |||
Summer break, no class |
Introduction. Course overview, course policies. The recent need for
parallel computing.
Reading: see the resources page. |
||
Week 2: August 30 - September 3 | |||
Key challenges in parallel computing. Language support for parallel computing. Map-reduce model. Functional paradigm. Reading: see the resources page. |
Introduction to Clojure. Reading: Ch. 1,2. |
||
Week 3: September 6 - 10 | |||
Clojure: lab day. Problem set 1: Clojure basics. Due Tue. Sept. 14 |
Java methods in Clojure. . Reading: Ch. 3. |
||
Week 4: September 13 - 17 | |||
Clojure sequences. Reading: Ch. 4. Problem set 1 due Problem set 2: Clojure sequences. Due Tue. Sept. 21 |
Functional programming in Clojure. Reading: Ch. 5. |
||
Week 5: September 20 - 24 | |||
Clojure concurrency. Reading: Ch. 6. Problem set 2 due Problem set 3: Functional programming and concurrency. Due Tue. Sept. 28 |
Lab: Functional programming and concurrency. | ||
Week 6: September 27 - October 1 | |||
Advanced features of Clojure.
Problem set 3 due Problem set 4: Clojure: putting it all together. Due Tue. Oct 5th. |
Overview of Hadoop. Forming groups for Project 1. |
||
Week 7: October 4 - 8 | |||
Review for the midterm. Problem set 4 due |
Midterm I. | ||
Week 8: October 11 - 15 | |||
Hadoop: examples. Reading: see the resources page. Project 1: Proposal. Due Th. Oct 16. |
Hadoop and Clojure. Project: proof of concept. Project 1: Proposal due |
||
Week 9: October 18 - 22 | |||
Fall break, no class | Project work. | ||
Week 10: October 25 - 29 | |||
Overview of Erlang. Reading: Erlang, Ch. 1. |
Project work. | ||
Week 11: November 1 - 5 | |||
Main features of Erlang. Reading: Erlang, Ch. 2,3,9. Project I due. |
Erlang lab. Problem set 5: basics of Erlang. Due Thursday, November 11th. |
||
Week 12: November 8 - 12 | |||
Concurrency in Erlang. Reading: Erlang, Ch. 4, 5. |
Lab: concurrency in Erlang. Problem set 5 due Problem set 6: Concurrent Erlang. Due Thursday, November 18th. |
||
Week 13: November 15 - 19 | |||
Error handling in Erlang Reading: Erlang, Ch. 6. |
Distributed programming in Erlang. Problem set 6 due Project/paper 2: Forming groups, initial discussions. |
||
Week 14: November 22 - 26 | |||
Project 2 work. Project 2 proposal due |
Thanksgiving holiday - no class | ||
Week 15: November 29 - December 3 | |||
Midterm II |
Project 2 work. |
||
Week 16: December 6 - 10 | |||
Project 2 work. |
Projects presentations (not final). | ||
Final project/paper due: Thur., Dec. 16 at 1pm. |