CIS 505/705, (Introduction to) Programming Languages, Fall 2019


Summary

This course teaches important concepts involved in the design and implementation of programming languages.

Logistics

Personnel

Schedule

EventPlaceMondayTuesday WednesdayThursdayFriday
ClassesDurland
1107
8:30-
9:20am
8:30-
9:20am
8:30-
9:20am
Torben
Office Hours
Engineering
2179
1-2pm 2-3pm 3-4pm
Joydeep
Office Hours
Engineering
1116
3:30-5pm 3:30-5pm
Mahmood
Office Hours
Engineering
1119
9:30-11am 9:30-11am

Communication

Use the email address help-505@santoslab.org for all questions about lectures, homework, and appointments. Do not email the TAs or instructor directly (unless there is a very good reason), and do not use Canvas messaging to contact us.

We make efforts to keep up with email (even though we may not check our inboxes all the time), and it is our goal that you should expect an email answer no later than on the next business day. So if you send an email on Friday, we will aim to get back to you the next day the university holds classes (which will typically be Monday), and often even earlier.

For questions (or comments) of general interest, we encourage that you post in the Canvas discussion forum so that also other students will benefit from the answers. We even encourage you to answer questions from other students (of course you should not give more hints towards solutions than you would reasonably expect the instructor to give).

Course Material

Textbooks

Software Tools

We shall use 3 languages, illustrating diverse paradigms:
Standard ML
which can be downloaded from http://www.smlnj.org which also contains links to documentation
Racket
which is documented in http://docs.racket-lang.org
Prolog
where we shall use SWI-Prolog from www.swi-prolog.org

Objective and Topics

Students should know and understand important concepts, such as scope and types, involved in the design and implementation of programming languages.

Grading

Final letter grades are not based on strict percentage cutoffs but are "curved" by taking into account the difficulty of the exercises and exams.
As a rule of thumb, however, you should expect that In general, my approach to grading is expressed well by this piece by S.A. Miller.

Programming Assignments

are due regularly and are to be submitted through Canvas. There are two kinds:
Projects
which are major exercises (there will be around 5 such); the aim is that you appreciate some of the challenges involved in the implementation of various programming languages, and that you apply standard techniques to solve them
Labs
which are minor exercises, given when we start on a new language (paradigm) so as to make you acquainted with it.

Exams

will be open book/notes. The final will be comprehensive, but with emphasis on the latter part of the course.

Graduate work

To merit graduate credit, CIS705 students must towards the end of the semester do some extra work (to be specified later; in previous semesters, they had to read and summarize a research paper). That work will count around 15% of the total score; the remaining part will be weighed between exams, projects and labs as for undergraduates.

Graduate students must expect that

Also, the exams may be somewhat more challenging than for undergraduate students.

Grievances

If you think the instructor or the TAs have made an error when grading your test or your homework, you are of course very welcome to ask for clarification. But complaints about judgment calls, like how much credit to give for a partially correct solution, are not encouraged (it is like arguing balls and strikes).

Academic Honesty

Kansas State University has an Honor and Integrity System based on personal integrity, which is presumed to be sufficient assurance that, in academic matters, one's work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor and Integrity System. The policies and procedures of the Honor and Integrity System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. A component vital to the Honor and Integrity System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: "On my honor, as a student, I have neither given nor received unauthorized aid on this academic work." A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.

You are very welcome to discuss the course material, as well as specific questions, with your fellow students. However, all submitted answers must be your own work:

If you are in doubt about what is permissible, please ask me. I very much hope that it will not be necessary to file any honor pledge violation reports during the semester!

Other Administrative Issues

Acknowledgments

Most of this syllabus is adapted from the course taught by David Schmidt.

Torben Amtoft