CS 450: Structure of Higher Level Languages

Spring 2019

Course Schedule

Week 1:

Week 2:

Week 3:

Week 4:

Week 5:

Week 6:

Week 7:

  • 03/12 (Spring break)
  • 03/14 (Spring break)

Week 8:

Week 8:

Week 9:

Week 10:

Week 11:

Week 12:

Week 13:

Week 14:

Week 18:

Syllabus

Instructor contact

  • Email: Tiago.Cogumbreiro@umb.edu
  • Office: S-3-183

Course information

Warning: No courses required by the CS major, minor, or certificate may be taken pass/fail.

  • Room: M-1-0207, McCormack
  • Schedule: Tuesdays & Thursdays 5:30pm to 6:45pm
  • Office hours: Tuesdays & Thursdays 3:30pm to 5:00pm

Course description

We will be learning and designing the semantics of functional and object oriented programming. The course is taught “from the ground up,” so it does not assume a specific background in functional programming. Important topics include mechanisms for parameter passing, scoping, dynamic storage allocation, and the implementation of object-oriented programming. The language of instruction is Racket, a dialect of LISP, which is taught and implemented in the course.

Prerequisites

  • CS310 (Advanced Data Structures and Algorithms)
  • CS320 (Applied Discrete Mathematics)

Or permission from the instructor.

Textbook

Structure and Interpretation of Computer Programs. Harold Abelson and Gerald Jay Sussman with Julie Sussman. MIT Press. 1996. ISBN: 978-0-262-51087-5 A free PDF version is available online.

Topics covered

  • semantics of programming languages
  • functional programming
  • object oriented programming
  • persistent data structures
  • assignment-free programming

Course work and grades

There will be no exams. Your grade will be a (possibly weighted) average of at most 10 homework assignments.

  • Homework: 90%
  • Participation: 10%

If P is the final percentage of your homework and participation, then your course grade will be calculated as follows.

(define (get-grade p)
  (cond [(> p 90) 'A]
        [(> p 85) 'A-]
        [(> p 80) 'B+]
        [(> p 75) 'B]
        [(> p 70) 'B-]
        [(> p 65) 'C+]
        [(> p 60) 'C]
        [(> p 55) 'C-]
        [(> p 50) 'D+]
        [(> p 45) 'D]
        [(> p 40) 'D-]
        [else 'F]))

Software requirements

Students are expected to have access to Racket 7.0. Homework assignments consist of a Racket script or a paper that will be submitted to Gradescope (unless stated otherwise).

Attendance

Attendance is required. All students are responsible for knowing everything that is covered during class meetings, including announcements. If you must be absent from a class meeting, make arrangements with another student to find out what you missed.

Homework

  • No late homework will be accepted. The reception of assignments is done automatically.
  • You may not collaborate with anyone else on any homework. Each homework represents your own, individual work.
  • It is acceptable to discuss the concept in general terms, but unacceptable to discuss specific solutions to any homework assignment.

Participation

The participation component in the evaluation corresponds to student participation in classes and in the online forum. Participation does not just mean just answering questions correctly. Discussion and questions, either posed online or in class, are encouraged and counted toward participation.

Accommodations

This class seeks ways to become a working and evolving model of inclusion and universal design for all participants. Individuals with disabilities of any kind (including learning disabilities, ADHD, depression, health conditions), who require instructional, curricular, or test accommodations are responsible for make such needs known to the instructor as early as possible. Every effort will be made to accommodate students in a timely and confidential manner. Individuals who request accommodations must be registered with the Ross Center for Disability Services, which authorizes accommodations for students with disabilities. If applicable, students may obtain adaptation recommendations from the Ross Center for Disability Services, M-1-401, (617-287-7430). The student must present these recommendations and discuss them with each professor within a reasonable period, preferably by the end of Drop/Add period.

Student Conduct

Students are required to adhere to the University Policy on Academic Standards and Cheating, to the University Statement on Plagiarism and the Documentation of Written Work, and to the Code of Student Conduct as delineated in the catalog of Undergraduate Programs, pp. 44-45, and 48-52. The Code is available online.