Syllabus
Grading
The course grade will be determined as follows:
Homework assignments | 50% |
Quizzes and Exercises | 30% |
Final project | 20% |
Active learning
We will use "active learning" during lectures. You will need to attend every lecture and bring your laptop with you everyday.
There will be graded activities during almost every class. You will need to read the lecture notes before class and work through the exercises. We may begin class with a quiz that tests whether you have read the material and attempted the exercises. We may also have in-class exercises that you will need to complete with a partner during class time.
If you do need to miss a class, send a Course Absence Report through Penn-in-touch.
In computing the Quiz/Attendance grade at the end of the semester, you will be allowed to miss three class periods (for any reason) with no penalty. This flexibility is to work around absences due to job interviews, brief illness, etc. Please also send notification of your absence in a timely manner so that we can make alternative arrangements on the homework assignments, if necessary.
If you must miss more than three class periods, send email to sweirich@cis.upenn.edu.
Group work
"If you want to go quickly, go alone. If you want to go far, go together."
You will need to complete both in-class work and most of the homework assignments in small groups of two or three students. For shorter assignments, these groups will be randomly assigned so that you will get a chance to interact with more of your classmates.
CIS 552 uses group work because programming is more than just correctness; it is also design and communication, especially with respect to interfaces and abstractions. You are expected to not just solve the problems; but to also talk with your partner(s) about the design of your solution.
Homework/project submission
Homeworks should be uploaded via the class website by the given due date. The late period for homework submission will be 48 hours after the deadline. Assignments submitted up to 24 hours late will receive a 10 point penalty. Assignments submitted up to 48 hours late will receive a 20 point penalty. After 48 hours, no homework will be accepted.
Homeworks may be submitted multiple times to the course website. Only the latest assignment will be graded. If that latest submission is during the late period, then the assignment will receive a late penalty, even if earlier versions of the assignment were submitted on time.
Academic Integrity
This course will abide by Penn's code of academic integrity.
Learning from your peer students is an important component of any course. Therefore, we encourage both high-level ("What does it mean to be a fold?") and low-level ("Why doesn't my code typecheck?") questions among class members and between different groups.
Learning from web resources and reading code is also vital to your understanding. We encourage you to read the blog posts, Haskell textbooks, and watch videos.
However, there is a line between referring to freely available and educational resources, and deception.
In general: You should never COPY code from any source and present it as your own. That's plagiarism and it's wrong.
If you do take advantage of external resources, you must note this in the comments of your code. Be careful of too much web surfing---your grade will be based on your contributions, not your ability to search.
Because CIS 552 is a course and not a developer job, there are times that we will ask you to refrain from using standard libraries or referring to (easily accessible) solutions. I believe in the importance of practice (and the Dunning-Kruger effect) so I will ask you to do things that you may believe you have already mastered.
Don't be a cheater.
Some reference materials should never be used for this course: solutions to exercises from other groups in the class, from previous versions of the class (or from similar courses at other universities), or from solutions solicited from Haskell community sites or Rent-A-Coder. If you use these sources, I will find out. I use automatic tools to detect unallowable collaboration and code use.
Violations of this policy will be dealt with severely. For a first violation (on a homework assignment), the penalty will be from 0 to up to triple loss of credit. I will likely also refer you to Penn's Office of Student Conduct for reprimand.