You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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 Discussionhttps://piazza.com/class/ibslot8j6un5p6

Description

 

This class provides an introduction to concepts, principles, and approaches of functional programming. Functional programming is a style of programming where the key means of computation is the application of functions to arguments (which themselves can be functions). This style of programming has a long history in computer science, beginning with the formulation of the Lambda Calculus as a foundation for mathematics and computer science. It has become increasingly popular in recent years because it offers important advantages in designing, maintaining, and reasoning about programs in many modern contexts such as web services, multicore programming, and cluster computing. Course work consists of a series of programming assignments in the Scala programming language and various extensions.

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

Topic 1.1 Lecture, Topic 1.1 Demonstration

lec1-slides

 

 

 ThursAug 27 Module 1: Section 1.4Topic 1.4 Lecture, Topic 1.4 Demonstrationlec3-slidesHomework 1Lecture & 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.1Topic 1.6 Lecture, Topic 1.6 Demonstration, Topic 2.1 Lecture,  Topic 2.1 Demonstrationlec5-slides Lecture & demo quizzes for topics 1.5, 1.6, 2.1

3

Tues

Sep 8

 

Module 1: Section 2.3Topic 2.3 Lecture , Topic 2.3 Demonstration  lec6-slides  
 ThursSep 10

 

Module 1: Sections 2.5, 2.6Topic 2.5 Lecture ,  Topic 2.5 Demonstration, Topic 2.6 Lecture ,  Topic 2.6 Demonstration  lec7-slidesHomework 2Homework 1

4

Tues

Sep 15

 

Module 1: Section 2.2Topic 2.2 Lecture ,  Topic 2.2 Demonstrationlec9-slides  

 

Thurs

Sep 17

 

Module 1: Section 3.4Topic 3.4 Lecture , Topic 3.4 Demonstrationlec11-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.6Topic 3.5 Lecture, Topic 3.5 Demonstration, Topic 3.6 Lecture,  Topic 3.6 Demonstration  lec12-slides  

 

Thurs

Sep 24

 

Module 1: Section 4.5Topic 4.5 Lecture,  Topic 4.5 Demonstrationlec14-slides

Homework 3

hw_3.zip

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.3Topic 4.2 Lecture,  Topic 4.2 Demonstration, Topic 4.3 Lecture,  Topic 4.3 Demonstrationlec16-slides  

7

Tues

Oct 6

 

 Topic 4.6 Lecture,  Topic 4.6 Demonstrationlec18-slides  

 

Thurs

Oct 8

 

  lec19-slidesExam 1 

8

Tues

Oct 13

 

 

 

 

 

 

 

Thurs

Oct 15

 

Module 1: Sections 3.5, 3.6Topic 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 Lecturelec26-slides

 

 

11

Tues

Nov 3

 

 Topic 7.2 Lecturelec27-slides 

 

 

Thurs

Nov 5

 

 Topic 7.5 Lecturelec29-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

Homework 5

hw_5_boruvka.zip

 

14

Tues

Nov 24

 

  

lec36-slides

 

Thurs

Nov 26

 

  lec37-slides

 

 

15

Tues

Dec 1

 

  lec38-slides

 

 

 ThursDec 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.

  • No labels