COMP 311: Functional Programming (Fall 2015)
Instructor | Dr. Eric Allen | TAs | |
---|---|---|---|
Lectures | Herzstein Hall 210 | Lecture times | T Th 2:30-3:45 |
Course Email | Online Discussion | https://piazza.com/class/ibslot8j6un5p6 |
Description
General Information
Lectures | Tuesdays and Thursdays 2:30PM-3:45PM |
Grading | Coursework will consist of a series of small weekly programming assignments in Scala |
Textbooks | There is no required textbook, but we will draw material from a variety of sources, including: Chiusano and Bjarnason. "Functional Programming in Scala.” Manning Publications Co. August 2014. Available online at http://it-ebooks.info/book/3099/ Coursera: Functional Programming Principles in Scala by Martin Odersky. https://www.coursera.org/course/progfun edX: FP101x: Introduction to Functional Programming by Erik Meijer. https://www.edx.org/course/introduction-functional-programming-delftx-fp101x#.VR1tZVYk_wI Okasaki. "Purely Functional Data Structures.” Cambridge University Press. New York, NY. 1999. The Apache Spark website. https://spark.apache.org |
Lecture Schedule
lec36-slides
Week | Day | Date | Topic | Assigned Reading | Assigned Videos (Quizzes due by Friday of each week) | Slides | Work Assigned | Work Due |
---|---|---|---|---|---|---|---|---|
1 | Tues | Aug 25 |
| Module 1: Sections 0.1, 0.2, 1.1 | lec1-slides |
|
| |
Thurs | Aug 27 | Module 1: Section 1.4 | Topic 1.4 Lecture, Topic 1.4 Demonstration | lec3-slides | Homework 1 | Lecture & demo quizzes for topics 1.1, 1.2, 1.3, 1.4 | ||
2 | Tues | Sep 1 |
| |||||
| Thurs | Sep 3 |
| Module 1: Section 1.6 (self-study), Section 2.1 | Topic 1.6 Lecture, Topic 1.6 Demonstration, Topic 2.1 Lecture, Topic 2.1 Demonstration | lec5-slides | Lecture & demo quizzes for topics 1.5, 1.6, 2.1 | |
3 | Tues | Sep 8 |
| Module 1: Section 2.3 | Topic 2.3 Lecture , Topic 2.3 Demonstration | lec6-slides | ||
Thurs | Sep 10 |
| Module 1: Sections 2.5, 2.6 | Topic 2.5 Lecture , Topic 2.5 Demonstration, Topic 2.6 Lecture , Topic 2.6 Demonstration | lec7-slides | Homework 2 | Homework 1 | |
4 | Tues | Sep 15 |
| Module 1: Section 2.2 | Topic 2.2 Lecture , Topic 2.2 Demonstration | lec9-slides | ||
| Thurs | Sep 17 |
| Module 1: Section 3.4 | Topic 3.4 Lecture , Topic 3.4 Demonstration | lec11-slides | Lecture & demo quizzes for topics 2.2, 3.1, 3.2, 3.3, 3.4 | |
5 | Tues | Sep 22 |
| Module 1: Sections 3.5, 3.6 | Topic 3.5 Lecture, Topic 3.5 Demonstration, Topic 3.6 Lecture, Topic 3.6 Demonstration | lec12-slides | ||
| Thurs | Sep 24 |
| Module 1: Section 4.5 | Topic 4.5 Lecture, Topic 4.5 Demonstration | lec14-slides | Lecture & demo quizzes for topics 3.5, 3.6, 4.5 | |
6 | Tues | Sep 29 |
| lec15-slides | ||||
| Thurs | Oct 1 |
| Module 1: Sections 4.2, 4.3 | Topic 4.2 Lecture, Topic 4.2 Demonstration, Topic 4.3 Lecture, Topic 4.3 Demonstration | lec16-slides | ||
7 | Tues | Oct 6 |
| Topic 4.6 Lecture, Topic 4.6 Demonstration | lec18-slides | |||
| Thurs | Oct 8 |
| lec19-slides | Exam 1 | |||
8 | Tues | Oct 13 |
|
|
|
| ||
| Thurs | Oct 15 |
| Module 1: Sections 3.5, 3.6 | Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.3 Lecture, Topic 5.3 Demonstration | lec20-slides |
| |
9 | Tues | Oct 20 |
| lec21-slides |
| |||
| Thurs | Oct 22 |
| Topic 6.1 Lecture, Topic 6.1 Demonstration, Topic 6.2 Lecture, Topic 6.2 Demonstration, Topic 6.3 Lecture, Topic 6.3 Demonstration | lec23-slides |
|
| |
10 | Tues | Oct 27 |
| Topic 6.6 Lecture, Topic 6.6 Demonstration | lec24-slides |
|
| |
| Thurs | Oct 29 |
| Topic 7.1 Lecture | lec26-slides |
|
| |
11 | Tues | Nov 3 |
| Topic 7.2 Lecture | lec27-slides |
| ||
| Thurs | Nov 5 |
| Topic 7.5 Lecture | lec29-slides |
|
| |
12 | Tues | Nov 10 |
| Lecture & demo quizzes for topics 7.5, 7.6 | ||||
| Thurs | Nov 12 |
| lec31-slides |
| |||
13 | Tues | Nov 17 |
| lec33-slides |
| Homework 4 (now due by 11:59pm on April 12th) | ||
| Thurs | Nov 19 |
| lec34-slides |
| |||
14 | Tues | Nov 24 |
| |||||
| Thurs | Nov 26 |
| lec37-slides |
|
| ||
15 | Tues | Dec 1 |
| lec38-slides |
|
| ||
Thurs | Dec 3 |
Grading, Honor Code Policy, Processes and Procedures
Grading will be based on your performance on five homeworks (weighted 40% in all), two exams (weighted 20% each), weekly lab exercises (weighted 10% in all), and class participation including worksheets, in-class Q&A, Piazza participation, and online quizzes (weighted 10% in all).
The purpose of the homeworks is to train you to solve problems and to help deepen your understanding of concepts introduced in class. Homeworks are due on the dates and times specified in the course schedule. Please turn in all your homeworks using the subversion system set up for the class. Homework is worth full credit when turned in on time. A 10% penalty per day will be levied on late homeworks, up to a maximum of 6 days. No submissions will be accepted more than 6 days after the due date.
As in COMP 321, all students will be given 3 slip days to use throughout the semester. When you use a slip day, you will receive up to 24 additional hours to complete the assignment. You may use these slip days in any way you see fit (3 days on one assignment, 1 day each on 3 assignments, etc.). The only requirement for use of your slip days is that you e-mail the instructors prior to the time the assignment is due. On group projects, each student in the group must use a slip day in order to extend the deadline for the assignment. When slip days are used, you should clearly indicate so at the beginning of the assignment writeup. Other than slip days, no extensions will be given unless there are exceptional circumstances (such as severe sickness, not because you have too much other work). Such extensions must be requested and approved by the instructor (via e-mail, phone, or in person) before the due date for the assignment. Last minute requests are likely to be denied.
You will be expected to follow the Honor Code in all homeworks and exams. All submitted homeworks are expected to be the result of your individual effort. You are free to discuss course material and approaches to homework problems with your other classmates, the teaching assistants and the professor, but you should never misrepresent someone else’s work as your own. If you use any material from external sources, you must provide proper attribution ( as shown here). Exams 1 and 2 test your individual understanding and knowledge of the material. Exams are closed-book, and collaboration on exams is strictly forbidden. Finally, it is also your responsibility to protect your homeworks and exams from unauthorized access.
Graded homeworks will be returned to you via email, and exams as marked-up hardcopies. If you believe we have made an error in grading your homework or exam, please bring the matter to our attention within one week.
Accommodations for Students with Special Needs
Students with disabilities are encouraged to contact me during the first two weeks of class regarding any special needs. Students with disabilities should also contact Disabled Student Services in the Ley Student Center and the Rice Disability Support Services.