Evaluation (point values below are approximate):

Component Quantity Points per Total points
Homeworks (lowest dropped) 10 varies 495
CPS 543 project/paper 1 200 200
Exams (including quizzes) 3 100 300
Final exam (comprehensive) 1 205 205
CPS 352 total:1,000
CPS 543 total:1,200

Homeworks involve analytical and programming exercises. The programming involved requires a fair amount of critical thought and design, and approximately 100-500 lines of code. The majority of the assignments involve building and modifying interpreters in Scheme for a block-structured programming language. Other assignments are designed to include novel programming problems which explore the use of alternative language concepts in application areas such as numerical methods, artificial intelligence, and web interaction management. Some assignments also involve reading and critical analysis of articles in the current programming languages literature. Handwritten assignments are not accepted. Assignments are due at noon in class. Late assignments are not accepted. No exceptions. Examinations I and II as well as the final examination are in-class, closed-book, and closed-notes. Examination III is a take-home. Attendance is mandatory at all examinations; make-ups will not be given. Any missed examination will result in a zero. Make no assumptions about anything; always consult the instructor first. Final letter grades of A, A-, B+, B, B-, C+, C, C-, and D start approximately at 93, 90, 87, 83, 80, 77, 73, 70, and 60 percent, respectively. The lowest passing final average for students enrolled in CPS 543 is 73.

Workload: CPS 352/543 is a challenging course and moves at a very fast pace. Spending a minimum of 9 hours outside of class each week reading, studying, and programming is required. I advise you to see me to discuss any problems you may have before you are evaluated. Mastering the understanding and use of fundamental language concepts and alternative language features does not come easy, but does come with high reward. Programming languages are constantly evolving to meet the demands of the modern software development process and abilities of programmers and, as a result, widely used languages such as Ruby and Python now include support for many of the functional and dynamic languages features covered in this course.

Classroom policies: Students are expected to conduct themselves with professionalism and integrity. Keep cell phones and similar devices in a silent mode during class. The use of laptop computers and similar devices is not permitted in class.

Academic integrity: To achieve the course objectives, assignments must be a sole result of your team's work (you and your partner), must not be shared with other teams, and must prepared in accordance with the University Honor Pledge (see below). Moreover, you may not plagiarize code from any textbooks, online resources, or other authors. Discussions among classmates must never include pending assignments. All questions and comments about a pending assignment must only be directed to the instructor and teaching assistants. Evidence indicating a violation of this policy will be handled according to the University Academic Honor Code and result in a doubly-weighted zero which will not be dropped (e.g., if the assignment is worth 100 points, you receive a 0/200). Make no assumptions about this policy; always consult the instructor first. No student should ever feel that they must resort to academic dishonesty. You are encouraged to consult the instructor if you are struggling with the course or an assignment. No grade is worth your integrity. Honesty in your academic work will develop into professional integrity. The faculty and students of the University of Dayton will not tolerate any form of academic dishonesty.

The Honor Pledge as listed in the Academic Honor Code section of the Undergraduate Issue of the Bulletin applies in full to this course. Graduate students and students enrolled in CPS 543 are governed by the Academic Dishonesty section of the Graduate Bulletin.

Return Home