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 Hulbert. Use this list for personal questions, including
homework extension requests, quiz and exam makeup requests, extra time
scheduling, and so on. 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 9 quizzes that should be completed and submitted
individually. We will drop the lowest quiz grade and only 8 will count towards
the final grade. Quizzes will open in Submitty at 2PM
and should take about 10-15 minutes.
Quiz makeup will be allowed only with a written note from the
Class Dean.
Collaborative work in small
groups is allowed and even encouraged. Small group is defined as a
group of at most 5 students working together, discussing, and contributing to
the solutions. Posting your answers on a globally visible board is a violation
of the academic integrity policy. You are allowed to use lecture notes,
textbook, compilers and interpreters, and the internet.
Homework Assignments
There are 7 homework assignments, including programming and
written assignments, typically due in 10 to 14 days. Assignments must be turned
in Submitty by 2pm on the due date. You have 6 late
days for the entire semester without penalty with a maximum of 2 late days per assignment. Exceptions to this policy will be allowed only with a
note from the Class Dean to be sent to proglang@cs.lists.rpi.edu.
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 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 a discussion. You should reproduce the ideas and submit your own work.
Exams
There are two midterm
exams and a cumulative final exam.
The midterm exams will take place during the regularly scheduled class hours. If you are unable to attend in person due to a medical exemption,
email course staff at proglang@cs.lists.rpi.edu
by September 9 and we will arrange accommodations.
Exams must be completed individually, using only
materials specifically allowed by the instructors (this typically is just class
notes and the textbook). 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. Be advised that we will not be holding office hours in the morning right before
the homework is due (either Tuesday or Friday); also, have in mind that questions on the forum that come late at night or in the
morning before homework is due, may remain unanswered.
V. Grading
The final grade is computed according to the formula:
Quizzes - 8%
Exam 1 - 12.5%
Exam 2 - 12.5%
Final exam - 25%
Homework assignments - 42%
Class
attendance and participation - 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 Rensselaer
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/or
disciplinary action through the Rensselaer 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:
Copying
someone`s notes or 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 or exam questions online.
Posting
your quiz, homework, or exam solutions online (e.g., posting on a public or
shared private GitHub repository).
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 0
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 (this typically is the class
notes and the textbook). 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.