Syllabus
Programming Languages CSCI 4430
Meetings:
DARRIN
308, TF 2:00-4:00pm
Website: http://www.cs.rpi.edu/~milanova/csci4430
I. Brief Course Description
This course is a study of important concepts in
programming languages. Topics include programming language syntax and
semantics, types and parameter passing, and programming paradigms
(logic-oriented, functional, von Neumann, object-oriented).
Prerequisite: Introduction to Algorithms (CSCI
2300) and Principles of Software (CSCI 2600)
Mailing list: proglang@cs.lists.rpi.edu. Email
goes to Milanova and Widman. Use list for personal questions, specifically exam
makeup requests and extra time scheduling. Use the forum on Submitty
for non-personal questions, administrative or technical.
II. Learning Outcomes
The goal of this course is to teach students how
to analyze programming languages. Students will become more productive
programmers, will be able to learn new programming languages with ease, and
will be able to choose the most suitable programming language for a given
problem.
Concretely, students who successfully complete
the course should be able to 1) explain programming language syntax and
semantics, 2) implement a front-end for a programming language, 3) explain the
concepts of scoping, data abstraction, types, control abstraction, and
parameter passing, which are essential building blocks of programming
languages, and 4) demonstrate competence across a spectrum of programming
language paradigms by writing programs in Prolog, Scheme, and Haskell.
III. Required Textbook
Programming
Language Pragmatics, Fourth Edition, by Michael Scott,
Morgan Kaufmann, 2015.
IV. Class Work and Policies
Quizzes
There are nine quizzes that should be completed and
submitted individually. We will drop the lowest three quiz grades.
Quizzes will open in Submitty on certain days in
class, typically towards the end of the period.
Collaborative work in groups in class is not only allowed but encouraged. You can
discuss and jointly contribute to the solutions. You are allowed to use lecture
notes, textbook, compilers and interpreters, and the internet. Posting
questions or answers on the Internet, anywhere but Submitty,
is a violation of the academic integrity policy.
There is no quiz makeup.
Homework Assignments
There are seven homework assignments, including programming
and written assignments, typically due in 10 to 14 days. The lowest grade will
be dropped and only six assignments will contribute to the final grade.
Assignments must be turned in Submitty by midnight
on the due date, which falls on either Monday or Thursday. You have eight late days for the semester with a maximum of three late days per assignment.
Programming
homework should be turned in Submitty for autograding as specified in the assignment text. Written
homework should be turned in Submitty as a PDF file.
The homework should be typed; however, you can hand draw figures and formulas.
We strongly encourage you to format your homework in LaTeX.
Discussion of
homework assignments with instructors, TAs, mentors, and classmates is not only
allowed but strongly encouraged, However, the actual work should be entirely
your own. Think about it this way. You are allowed to discuss key ideas that
lead to a solution, but you are not allowed to take written notes,
pictures or screenshots out of a discussion. You should reproduce the ideas and
submit your own work. As with quizzes, posting questions or answers on the
Internet, anywhere but Submitty, is a violation of
the academic integrity policy.
There is no homework makeup.
Exams
There are two midterm
exams and a cumulative final exam.
The midterm exams will take place during the regularly scheduled class hours.
Makeup will be given only with a class dean excuse note. Send excuse notes to course staff at proglang@cs.lists.rpi.edu.
Exams must be completed
individually, and they are entirely analog with only a pen/pencil and a crib
sheet allowed. Using the Internet, or any other resource is a clear violation
of academic integrity and will be punished accordingly. Furthermore, you are
not allowed to discuss or share anything about the exam with anyone except the
instructors or the TAs, including after the exam is over.
Office Hours
Office hours are a great opportunity to get help with the
homework. The Submitty forum is usually the best
place to start if you have a question. If you still have questions after a
discussion on the forum, come prepared during office hours. As always, start
early and have in mind that questions
on the forum that come late at night before homework is due, may remain
unanswered.
V. Grading
The final grade is computed according to the formula:
Quizzes - 8%
Exam 1 - 18%
Exam 2 - 18%
Final exam - 28%
Homework assignments - 28%
Participation
and contribution to class - 1% (extra credit)
Letter grade assignment (grade modifiers are subject to
adjustments):
[94 - 101]: A
[90 - 94): A-
[88 - 90): B+
[82 - 88): B
[80 - 82): B-
[78 - 80): C+
[72 - 78): C
[70 - 72): C-
[60 - 70): D
[0 - 60): F.
VI. Academic Integrity
Trust and academic integrity are crucially
important for a successful learning process. From The Rensselaer Handbook of Student Rights and
Responsibilities: Intellectual integrity and
credibility are the foundation of all academic work. A violation of Academic
Integrity policy is, by definition, considered a flagrant offense to the
educational process. It is taken seriously by students, faculty, and RPI and
will be addressed in an effective manner. If found responsible for committing
academic dishonesty, a student may be subject to one or both types of
penalties: an academic (grade) penalty administered by the professor and a
disciplinary action through the judicial process described in this handbook.
Homework assignments must
be completed individually or in teams of two if specified. Discussion of homework assignments with
instructors, TAs, mentors, or classmates is allowed and even encouraged.
However, the actual work should be your own. Think about it this way. You are
allowed to discuss key ideas that lead to a solution, but you are not allowed
to take written notes, pictures or screenshots out of the discussion. You
should reproduce the ideas and submit your own work.
The following are
violations of the academic integrity policy however, violations are not limited
to these:
Use of
generative AI on homework.
Copying
someone`s homework.
Searching
for homework solutions online, even if it is just to check your answer.
Copying
homework solutions/code available online (e.g., on GitHub or Stackoverflow).
Posting
quiz, homework, or exam questions online, i.e., anywhere where it can be
indexed and made available to search engines, crawlers, and bots.
Posting
quiz, homework, or exam solutions online (e.g., posting on a public or private
GitHub repository is not allowed).
Excessive similarities
between homework submissions, including similarities with online resources,
will be considered evidence of cheating, and punished severely. Violations will
result in (at least) a grade of zero for the assignment and a letter
off the final grade for all students involved. Violations will be reported
immediately to the Dean of Students for further penalty and disciplinary
action. Be advised that course staff runs similarity detection tools regularly
against all submissions, including against past semester submissions and
publicly available repositories.
Exams must be completed
individually, using only materials specifically allowed by the instructors.
Using the Internet, or any other resource to search for answers during the exam
is a clear violation of academic integrity and will be punished accordingly.
Furthermore, you are not allowed to discuss or share anything about the exam
with anyone except the instructors and the TAs, including after the exam is
over.
Excessive similarities between solutions, including, but not
limited to, multiple instances of an egregiously wrong solution, will be
considered evidence of cheating and will be prosecuted accordingly. Violations will result in (at least) a
grade of 0 for the exam and a letter off the final grade for all students
involved. Violations will be reported immediately to the Dean of Students for
further penalty and disciplinary action.