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.