Effective Functional Programming

COMP 4600/5300 - 205


  • Exercises: 65%
  • Final Project: 35%



This is a hands-on course, and the majority of your grade will be determined by small regularly-assigned projects, which mostly involve writing some code. These assignments will take more than one day to complete. That is why most assignments are given well in advance of their due date (usually two weeks). I STRONGLY recommend that you begin working on an assignment the first week it is made available, once you finish with the previous one. If you wait until the due date before beginning work on an assignment, you will struggle to complete it in time. Planning ahead can save you a lot of heartache in this course. If you are frequently having trouble with staying on top of the assignment deadlines, then please contact the professor as soon as possible to work on a solution before it becomes a problem.

There is ample opportunity to collect extra credit points throughout the course by completing bonus exercises given out in the regular assignments. If you complete a bonus exercise and want it to be graded for potential extra credit, be sure to list which bonus exercises you have completed in your submission, otherwise they may not be graded. To list the bonus exercises included in your submission, include a file named extracredit (such as extracredit.md or extracredit.txt) which names the bonus sections and/or bonus exercises you completed.

Assignments will be turned in online, via Blackboard. If there are multiple files to turn in (such as a directory of code files), turn in a single archive that includes all the files you wish to turn in. If there is a written portion to the assignment, then turn in your writing in a portable document file format (e.g. pdf, txt, markdown). Microsoft Word and other similar word processor formats should be converted to a portable format for turning in. Homework in an inappropriate format (in particular, if you turn in code as a non-executable file, such as a PDF) will not be graded.


For the sake of fairness among all students, and to accommodate unexpected emergencies that might keep you from finishing your homework on time, you will start with an initial pool of 10 FREE MISSED DEADLINE DAYS. Every time you want turn in an assignment n days late, you can use n days from your pool of free missed deadline days, and it will be graded without penalty no-questions-asked. Otherwise, if you do not have enough days to make up for a missed deadline, your late assignment will not be accepted, and the grade will be 0.

In very exceptional circumstances, additional extensions to due dates may be granted at the discretion of the instructor if a student has unusual circumstances (such as long-term health issues) that would reasonably interfere with the on-time completion of several assignments throughout the course of the semester. To ensure that all students can be fairly accommodated, these exceptional extensions must be requested well in advance of the due date in question, as soon as possible. Ordinary illness, short-term personal emergencies, or other school or work obligations (especially on the day of the due date) do not count as exceptional circumstances, and are covered by your free missed deadline days. So be sure to budget your free missed deadline days wisely to help you in these situations.


Academic Integrity and Plagiarism

All students are advised that there is a University policy regarding academic integrity. Students are responsible for the honest completion and representation of their work.

Students are welcome discuss the exercises with one another. However, each student is responsible for their own work and completing all exercises independently. Copying another students solutions (either by sending files directly or copying down from a screen), or from some other source (e.g. the internet), and turning them in as their own work constitutes plagiarism, and will result in a failing grade. What specific actions constitute plagiarism is left to the discression of the instructor, and will not be fully enumerated here. If in doubt, please ask before doing something that seems fishy.

That said, there are many instances where using a library found in the standard library or Hackage is permitted or even expected. Realistic software is not an island, and neither are you. In general, if an exercise asks you to write some particular function piece of code, then you should write it yourself. If some details required to implement that code are left unspecified (e.g. sorting a list), then it is okay to use a standard or Hackage library for that part. If there is any doubt about whether or not it is okay to use a library for implementing part of an exercise, please ask.

Posting answers to homework exercises to any publicly-visible website or location also counts as plagiarism. Future students deserve the chance to fully engage with the homework assignments on their own. If you are found publicly posting any answers to a homework assignment, it will be treated the same as if you provided your answers to another student of this same class.

Credit Hour Policy

Federal definition of a credit hour requires that for every course credit awarded, a course must offer 15 hours of instructor-led course activities and 30 hours of out-of-class student work. This means that a standard 3 credit hour course requires 45 hours of instructor-led course activities and 90 hours of out-of-class student work.

University Privacy Statement

UMass Lowell recognizes the importance of mutual trust between students and faculty. Massachusetts is a two-party consent state, which means it is illegal to record someone without their permission. Recordings of classroom lectures are the intellectual property of the instructor. Instructors have the right to prohibit audio and video recording of their lectures, unless the requesting student is registered with Disabilities Services and recording of class sessions is an approved accommodation. In addition, sharing or selling recordings of classroom activities, discussions or lectures with any other person or medium without permission of the instructor is prohibited.

Health and Safety

The safety and health of the UMass Lowell community is our shared priority. In seeking to provide the fullest academic and campus life experience possible, UMass Lowell will rely on all members of our community to act responsibly. For the latest updates on UMass Lowell’s COVID policies, please visit www.uml.edu/coronavirus.

UMass Lowell has implemented reasonable health and safety protocols in accordance with national and state public health guidelines. These standards apply to anyone who is physically present on campus or participating in a UMass Lowell-sponsored activity.

  • Daily Symptom Checker: All campus community members should use the daily symptom checker (www.uml.edu/alert/coronavirus/COVID-19-symptom-review.aspx) every day prior to leaving your home, apartment or room.
  • Vaccination: COVID-19 vaccination is required for ALL students (with rare and approved exceptions). Please visit Mass. Vaccine Finder (vaxfinder.mass.gov) to find vaccine locations.