CSCI-344
Programming Language Concepts
Term 20235



General Information

Instructor: Arthur Azevedo de Amorim
E-mail:  aaavcs at rit.edu
Office hours: GOL-3547
 Mo 3pm–4pm
 We 11am – 12pm
 or by appointment
  
Lectures: Section 01    MWF 2:00pm – 2:50pm; SLA-2150
  
Website: http://arthuraa.net/teaching/20235/plc
 http://mycourses.rit.edu

Course Description

This course is a study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design and implementation. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming projects will be required.

Enrollment Requirements

  • (CSCI-243: The Mechanics of Programming or SWEN-250: Personal Software Engineering or IGME-309: Data Structures and Algorithms for Games and Simulations II)
    and (MATH-190: Discrete Mathematics for Computing or MATH-200: Discrete Mathematics and Introduction to Proofs)
  • or permission of instructor

Course Goals

Although students who have had the introductory sequence have a solid background in basic algorithmic and object-oriented techniques, their perspective is narrow and their understanding of programming languages uncritical. The main goal of this course is to widen students’ perspectives by learning the power of alternative paradigms. Students become more critical and self-aware as software designers and thereby are better able to choose the appropriate paradigm and language for the problem at hand. The second goal is to expose the students to the decisions, both in design and in implementation, that go into developing new programming languages.

Course and Program Outcomes

Course learning outcomes:

  • Students will be able to learn new programming paradigms and languages on their own.
    Program outcome(s): 1
    Evaluation: homework, projects, presentations, or exams
  • Students will be able to describe programming language syntax formally and semantics informally.
    Program outcome(s): 1
    Evaluation: homework, projects, or exams
  • Students will be able to identify appropriate programming languages to use to address the specific needs of a stated problem.
    Program outcome(s): 1
    Evaluation: homework or exams
  • Students will be able to explain and apply basic constructs and concepts used in common programming languages.
    Program outcome(s): 1
    Evaluation: homework, projects, or exams

Program Outcomes:

  • (CS Undergraduate Program Outcome 1) Demonstrate fluency in high-level programming languages, environments, and tools for computing.

Grades

Grades will be assigned based on the following grading scheme:

Attendance & Participation (lectures): 5%
Attendance & Participation (recitations): 5%
Reading Quizzes (≈ 13): 10%
Programming Assignments (≈ 8): 65%
Final Exam: 15%

Final letter grades will be assigned based on the following grading scale:

Letter gradeNumeric grade
A[93,∞)
A-[90,93)
B+[87,90)
B[83,87)
B-[80,83)
C+[77,80)
C[73,77)
C-[70,73)
D [60,70)
F [0,60)

Important Dates

May 01 (Wed.): Final Exam (10:45am – 1:15pm; SLA-2150)

Text Books

Required: 
Title: Programming Languages: Build, Prove, and Compare (draft)
Author: Norman Ramsey
Publisher: Cambridge University Press
ISBN: 978-1107180185 (print), 978-1316852989 (etext)
Website: https://www.cambridge.org/highereducation/books/programming-languages/6606FE71C29E106582D743FB9DC9257F#overview
Website: https://www.build-prove-compare.net/ (includes supplementary materials)

Course Policies

Attendance & Participation

Students are required to attend and expected to participate in class. Participation means being an engaged student, not simply attending class. During lectures, asking and answering questions is the primary means of participation; during recitations, contributing to group problem solving and presenting solutions are the primary means of participation.

The use of cell phones and audio players is prohibited during class meetings. If you must take a phone call, please leave the classroom immediately and do not return until you have ended the phone call.

The use of a laptop is permitted during class only for the purpose of taking notes or working on recitation problems. Persistent use of a laptop for other activities will result in 0 credit for your Attendance & Participation grade.

Assigned readings should be completed before the lecture section. You are responsible for the material in assigned readings, whether covered during lecture or not.

Final Exam

There will be a final exam; see above for the date. The final will be comprehensive and will cover material from the entire course, including readings, lectures, and assignments.

The final exam must be taken at its scheduled time. Any exam conflicts must be reported to the instructor by the end of Week 10 (see the RIT Final Examination Policies).

Late Policy

Assignments are to be submitted on time. However, to accommodate the occasional difficulty with meeting an assignment due date, each student begins the term with three “extension tokens.” Using an extension token grants a 24-hour extension on a single programming assignment (no extensions for reading quizzes). An extension token is automatically applied to “Late Submissions” on myCourses (work submitted after the “Due Date” but before the “End Date”); an extension token cannot be used after the assignment’s “End Date” has passed. Only one extension per assignment will be granted. After using three extension tokens, late submissions will not be accepted. The instructor will not discuss or answer questions about a programming assignment after the assignment’s “Due Date” has passed.

For extraordinary difficulties, contact an appropriate administrative staff member (e.g., the Dissability Services Office (DSO), assistant or associate dean for student success or academic services, or academic advisor) and ask that they contact the instructor, who will make special arrangements suited to the situation.

Regrading

After a graded exam or assignment has been returned, you have one week to bring any questions about grading to the instructor’s attention. No grade adjustments will be made after this time.

Academic Integrity

As with all courses, the RIT Honor Code and the Student Academic Integrity Policy apply. See the RIT Academic Integrity website for more details.

In this course, all submitted work must be your own work (i.e., written or programmed by you alone, unless explicitly stated otherwise) and must include acknowledgments of any collaborators or sources (other than course text books or handouts) used to produce your submission.

You are encouraged to discuss course material with other students. Discussion of assignments is also allowed, but sharing solutions or code is not allowed.

Health and Wellbeing

The academic demands in this course and your other classes can be understandably difficult. It is normal to feel anxious about your academic ability, especially when unexpected life events emerge. I want to invite you to connect with me about any difficulties you have in this course as soon as possible. Your success is important. I want you to get the additional assistance needed before the challenges become too much.

Please reach out to me by e-mail or attend office hours (in person or Zoom) if there is anything about the course or your academics, no matter how small, that you wish to discuss. While aspects of the course material are meant to be challenging, know that I want your time spent on the “interesting” parts. If you find yourself struggling for over an hour without making progress, then put the work aside for a time and make a plan to seek guidance.

Disclaimer

The instructor reserves the right to make any changes to the syllabus deemed necessary throughout the course. Minor changes, such as assignment due dates, will be announced orally during class and posted on the course mailing list and home page. Major changes, such as grading percentages, will additionally be provided in writing.

Acknowledgements

Portions of this course material based upon similar courses offered at Tufts University (Norman Ramsey, Samuel Guyer, Kathleen Fisher).


Last modified: Wed Jan 31 12:43:00 EST 2024