Course Description
Instructor: Prof. Richard Chang <chang@umbc.edu>
In-person office hours (ITE 326): Tue & Thu 12:30pm – 2:00pm
Online office hours: Wed 2:00pm - 3:00pm
Teaching Assistant: Shivanand Kundargi <shivank2@umbc.edu>
Office hours: Mon & Wed 10:30am - 11:30am
Grader: Amanjot Singh <asingh22@umbc.edu>
Course Web Page: http://umbc.edu/~chang/cs331
Time & Place.
Tue & Thu 2:30pm – 3:45pm, Sherman 015
Textbooks.
Programming Language Pragmatics 4th edition, Michael L. Scott.
Morgan Kaufmann, 2016 (ISBN: 9780124104099)
Programming in Haskell, 2nd edition, Graham Hutton.
Cambridge University Press, 2016 (ISBN: 9781316626221)
Prerequisites. Students enrolled in this class must have completed CMSC 202 Computer Science II and CMSC 203 Discrete Structures with a grade of C or higher.
Objectives. The key learning objectives for this course are:
Grading. Grades will be based upon the following distribution
Attendance | 4% |
Homework (12) | 36% |
Haskell Quizzes (4) | 16% |
Midterm Exam | 20% |
Final Exam | 24% |
The schedule as planned has 12 homework assignments. However, if a homework assignment is canceled and not made up, homework assignments would still be 36% of your final grade — each homework assignment would be worth more.
The final letter grade is based on the standard formula:
0 ≤ F < 60, 60 ≤ D < 70, 70 ≤ C < 80, 80 ≤ B < 90, 90 ≤ A ≤ 100
Grades will not be "curved" — that is, the percentages of A’s, B’s and C’s are not fixed. However, depending upon the distribution of grades in the class, there may be adjustments in the students’ favor, but under no circumstances will the letter grades be lower than in the standard formula.
Grades are given for work done during the semester; incomplete grades will only be given for medical illness or other such dire circumstances. In particular, taking a heavy course load is not a legitimate excuse for receiving an incomplete.
Attendance. Lectures will be recorded but attendance will be taken starting the second week of classes (after the add/drop period is over). You may be excused for up to 3 absences. If you miss a lecture, you can make up the points by completing an online attendance quiz before 9:00am on the next Monday. Note that you will receive 100% of attendance points by being physically present for a lecture, but you will lose credit if you answer the questions of the attendance quiz incorrectly.
Haskell Quizzes & Exams. There are four Haskell quizzes, one midterm exam and one final exam. (See class schedule.) The Haskell quizzes and exams must be taken in-person.
Homework Submission. Written work will be submitted online in PDF. You can prepare your written work electronically or scan in handwritten sheets. If you scan in your work, please make sure that you use a good scanning app that corrects the lighting and keystoning. Both the Apple App Store and the Google Play Store have many good inexpensive scanning apps.
Programming assignments will be submitted on GL.
Late Homework. Homework assignments are due by 11:59pm on Thursdays. Unexcused late homework will be penalized as follows:
1 day late (by Friday 11:59pm) | -5% |
2 days late (by Saturday 11:59pm) | -10% |
3 days late (by Sunday 11:59pm) | -20% |
4 days late (by Monday 11:59pm) | -40% |
before next class (by Tuesday 2:30pm) | -100% |
Late homework will not be accepted after the start of the next lecture. This allows for timely grading and discussion.
Three times during the semester, you will be allowed to submit a late homework assignment without excuse and without penalty one lecture late (e.g., homework due on Thursday may be submitted on Tuesday without penalty). One full-credit unexcused late assignment will be accepted for Homework 1-4, one for Homework 5-8 and another for Homework 9-12. You do not accrue any credit for submitting homework assignments on time. For example, if you submitted all of Homework 1-8 on time, you can still only turn in one of Homework 9-12 late for full credit.
Homework Policy. You are allowed to discuss the homework assignments including the programming portions with other students verbally. However, you should never look at another student's code. Homework should be written up independently. All cases of academic misconduct will be reported to the UMBC Academic Conduct Committee.
University Policies and Resources.
The UMBC academic integrity policy is available at: <https://tinyurl.com/yd26tx2d>
UMBC Policies on Accessibility & Disability Accommodations; Sexual Assault, Sexual Harassment, Gender Based Violence & Discrimination; Pregnancy and Parenting; Religious Observances & Accommodations; and Hate, Bias Discrimination & Harassment are described at the Office of Equity & Inclusion's website.