CIS 505/705, (Introduction to) Programming Languages, Fall 2019
Summary
This course teaches important concepts
involved in the design
and implementation of programming languages.
-
Credits: 3
-
Prerequisites:
-
CIS 300 (Data and Program Structures) and
CIS 301 (Logical Foundations of Programming), or equivalent experience
-
some experience with various programming languages.
Logistics
Personnel
-
Instructor:
Torben Amtoft,
tamtoft hat ksu dot edu
-
Teaching Assistant:
Joydeep Mitra, joydeep hat ksu dot edu
-
Teaching Assistant:
Mahmood Qureshi, mahmood102 hat ksu dot edu
Schedule
Event | Place | Monday | Tuesday |
Wednesday | Thursday | Friday |
Classes | Durland 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.
-
To help master the material, the students will write
a number of interpreters (and parsers) for various languages.
-
The implementation will be done in languages following a variety of
paradigms,
such as the functional (Standard ML) and logical (Prolog), as well
as a quite eclectic language (Racket).
Grading
-
Projects: 40% (your lowest score will be disregarded)
-
Labs: 15%
-
Exam 1 (October 2): 15%
-
Exam 2 (November 6): 15%
-
Final (December 18): 15%
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
-
to earn an A,
it requires around 85%,
and not less than 80% exam average;
-
to earn a B,
it requires around 70%,
and not less than 60% exam average;
-
to earn a C, it requires somewhat more that 50%.
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
-
to earn an A it requires almost 90 %,
and not less than 85 % exam average;
-
to earn a B it requires around 75 %,
and not less than 65 % exam average.
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:
-
You are not allowed to consult previous model solutions that
may be around, or solicit the Internet for solutions to
specific homework problems
(but you are very welcome
to search for general material that gives alternative presentations
of the topics of the course!)
-
You are not allowed to show your
answers to, or look at the answers of, any other student --- this of course
excludes any student that you have been allowed to team up with,
but in such a case each of you must be able to understand and explain
all parts of the submitted 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
-
Lateness:
If you have a documented medical or family emergency,
or a certified excused absence for official university activities,
you should notify the instructor as soon as possible.
In such a case, you may be granted extensions for homework assignments.
For exams,
we do not offer make-ups, but will disregard that exam
(this is roughly equivalent to eventually
assigning you a score close to your average for
the other two exams).
If you do not have a valid excuse, you should not expect any points
for missed exams or late assignments, with the following exception:
if you submit
a project less than 12 hours after the deadline, or a lab
less than 8 hours after the deadline, we will grade it,
but afterwards subtract 20% of your score.
-
Drop Policy: It is your responsibility to drop the course if you are enrolled but decide not to complete the course; there are no "automatic" drops due to nonattendance.
-
Student with Disabilities
who need classroom accommodations, access to technology, or information about emergency building/campus evacuation processes should contact the Student Access Center and/or their instructor. Services are available to students with a wide range of disabilities including, but not limited to, physical disabilities, medical conditions, learning disabilities, attention deficit disorder, depression, and anxiety.
If you are a student enrolled in campus/online courses through the Manhattan or Olathe campuses, contact the
Student Access Center
at accesscenter@k-state.edu, 785-532-6441;
-
Incompleteness:
An incomplete (I) final grade will be given only by prior arrangement in
exceptional circumstances
in which the bulk of course work has been completed in passing fashion.
-
Expectations for Classroom Conduct:
All student activities in the University, including this course, are governed by the
Student Judicial Conduct Code
as outlined in the Student Governing Association By Laws, Article V, Section 3, number 2. Students who engage in behavior that disrupts the learning environment may be asked to leave the class.
-
Copyright 2019 (Torben Amtoft) as to all lectures.
During this course students are prohibited from selling notes to or being paid for taking notes by any person or commercial firm without the express written permission of the professor teaching this course. In addition, students in this class are not authorized to provide class notes or other class-related materials to any other person or entity, other than sharing them directly with another student taking the class for purposes of studying, without prior written permission from the professor teaching this course.
Acknowledgments
Most of this syllabus is adapted from the
course
taught by
David Schmidt.
Torben Amtoft