Syllabus
Grading
The course grade will be determined as follows:
| Homework assignments | 60% |
| Final project | 20% |
| Class participation | 20% |
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.
Class participation
One goal of this course is practice with oral and written technical communication. Clarity is a skill that is developed only through practice.
Class participation grades will come (qualitatively) from several sources: code walkthroughs in class homework discussions, questions and comments during class lectures, questions during instructor office hours, questions and answers on piazza.
Academic Integrity
This course will abide by Penn's code of academic integrity.
Of course, many sources of information are available that could help you to come up with the answer for the homework assignment. However, some of those sources are detrimental to the learning process. Therefore, the course instructors have selected specific references that are the only ones that may be used while completing your homework assignments.
Examples of reference materials that should never be used for this course: textbooks not listed on the references webpage, solutions to exercises from previous versions of the class (or from similar courses at other universities), source code from blog posts, source code from packages on hackage, source code solicited or discovered from haskell-cafe, #haskell, StackOverflow, or Rent-A-Coder. If you use these sources, we will find out.
In short: You should never COPY code from any source and present it as your own. That's plagiarism and its wrong.
If you want to include external code in your solution, the best way is to import the package from hackage. If that code is not available on hackage, then clearly identify the external code in your solution.
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. For a repeat violation, or for a violation on the project, the student will be forwarded to Penn's Office of Student Conduct.
We will use MOSS to automatically detect unallowable collaboration between class members.
Class discussion and group study
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.
However, to make sure that all class members get an equal chance to participate in such discussions, we encourage you to have such discussions in public: in class, on piazza, and during office hours. Even if you are in the same room as your classmate, and want to ask a question, please post it to piazza, so that everyone in the class may benefit from the question and answer.
News :
Welcome to CIS 552!
See the home page for basic
information about the course, the schedule for the lecture notes
and assignments, the resources for links to the required software
and online references, and the syllabus for detailed information about
the course policies.