NOTE: This page is for an old offering of the course. To find the latest course offering, please visit https://comp311.rice.edu/.
COMP 311: Functional Programming (Fall
...
2016)
Instructor | Dr. Eric Allen Dr. Corky Cartwright | Graduate TAs |
| |
---|---|---|---|---|
Co-Instructor | Dr. Sağnak Taşırlar | Undergraduate TAs |
| |
Lectures | Herzstein Hall 210DCH 1075 | Lecture | timesTimes | T Th 28:3000AM - 39:4515AM TR |
Course Email | comp311_staff@rice.edu | Online Discussion | https://piazza.com/class/ibslot8j6un5p6 | Piazza -- Rice Comp 311 |
Description
Description
Grading will be based on your performance on weekly programming assignments. All work in this class is expected to be your own, and you are expected not to post your solutions or share your work with other students, even after you have taken the course. Please read the Comp 311 Honor Code Policy for more details on how you are expected to work on your assignments.
All students will be held to the standards of the Rice Honor Code, a code that you pledged to honor when you matriculated at this institution. If you are unfamiliar with the details of this code and how it is administered, you should consult the Honor System Handbook. This handbook outlines the University's expectations for the integrity of your academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.
Students with disabilities are encouraged to contact me during the first two weeks of class regarding special needs. Students with disabilities should also contact Disabled Student Services in the Ley Student Center and the Rice Disability Support Services .
General Information
Lecture Schedule
...
(Subject to Change Without Notice)
Conditional Functions on Ranges, Point Values, and Compound Datatypes
Semantics of Type Checking, Binary Methods, Abstract Datatypes
For Expressions, Monads, The Environment Model of Reduction
Call-by-Name, Environment Model of Type Checking, Generative Recursionlec36-slides
Week | Day | Date | Topic | Assigned ReadingAssigned 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 | Topic 1.1 Lecture, Topic 1.1 Demonstration lec1-slides23 | |||||||||||
Thurs | Thur | Aug | 27Module 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 | 25 | What are Types, Core Scala | Hwk 0 | ||||||
2 | Tues | Aug 30 | 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 | 01 | Functions on Ranges, Point Values, Compound Datatypes | ||||||||
3 | Tues | Sep | 806 |
| Module 1: Section 2.3 | Topic 2.3 Lecture , Topic 2.3 Demonstration | lec6-slides | |||||||||
Thurs | Thur | Sep | 1008 | Abstract Datatypes | 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 | Hwk 1 | ||||||
4 | Tues | Sep | 1513 |
| Module 1: Section 2.2 | Topic 2.2 Lecture , Topic 2.2 Demonstration | lec9-slides | |||||||||
| ThursThur | 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 | 15 | ||||||||
5 | Tues | Sep | 2220 |
| 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 | 22 | Hwk 2 | Hwk 1 | |||||
6 | Tues | Sep | 2927 | lec15-slides | ||||||||||||
| Thur |
| 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 | Sep 29 | |||||||
7 | Tues | Oct | 604 | For Expressions, Monads, The Environment Model |
| Topic 4.6 Lecture, Topic 4.6 Demonstration | lec18-slides | |||||||||
| Thurs | Oct | 806 | Hwk 3 | Hwk 2 | |||||||||||
| lec19-slides | Exam 1 | 8 | Tues | Oct | 1311 | MIDTERM RECESS | |||||||||
|
|
|
| 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 | Thur | Oct 13 | |||||
9 | Tues | Oct | 2018 | Call-by-Name, Type Environments, Generative Recursion |
| lec21-slides | ||||||||||
| Thur | Thurs | Oct | 2220 | Hwk 4 | Hwk 3 | ||||||||||
| 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 | 2725 |
| Topic 6.6 Lecture, Topic 6.6 Demonstration | lec24-slides | |||||
| ThursThur | Oct | 2927 | Topic 7.1 Lecture | lec26-slides |
| ||||||||||
11 | Tues | Nov | 301 |
| Topic 7.2 Lecture | lec27-slides | ||||||||||
| Thur | Thurs | Nov | 503 | Hwk 5 | Hwk 4 | ||||||||||
| Topic 7.5 Lecture | lec29-slides |
|
| 12 | Tues | Nov | 1008 | ||||||||
| Lecture & demo quizzes for topics 7.5, 7.6 | Thur | Nov 10 |
| Thurs | Nov 12 | lec31-slides |
| ||||||||
13 | Tues | Nov | 1715 | lec33-slides |
| Homework 4 (now due by 11:59pm on April 12th) | ||||||||||
| Thurs | Nov 19 |
| lec34-slides |
| |||||||||||
| Thur | Nov 17 | Hwk 6 | Hwk 5 | ||||||||||||
14 | Tues | Nov | 2422 | Project Fortress | lec36-slides | |||||||||||
| ThursThur | Nov | 2624 | THANKSGIVING | lec37-slides |
|
| |||||||||
15 | Tues | Dec 1 | Nov 28 | lec38-slides | ||||||||||||
| Thur | Thurs | Dec | 301 |
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
...
Course Wrap Up | Hwk 6 |