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.