CSC 272 - Software II: Principles of Programming Language

Dr. R. M. Siegfried

Science 407      (516)877-4482      siegfrie@adelphi.edu NOT for homework submission

Office hours: Tu 12:00 Noon - 2:00PM; W 11:00-11:50AM; F 1:00-2:00PM

Course Home Page | Announcements | Syllabus | Class Notes | Assignments

Course Description and Purpose

Expand on CSC 270 by examining the theory and implementation behind common programming-language constructs. Topics may include scanning and parsing, parameter passing, variable binding, scoping, static and dynamic types, type inference, lazy vs. eager evaluation, tail recursion, concurrency, higher-order functions, implementation of OOP techniques, etc.

Gen Ed Learning Goals and Distribution Requirements

None

Course Learning Goals

Students will understand the principles of programming language design and implementation as well as understanding the key decisions that must be made when designing a new programming language.

Preequisite

Grade of C- or better in CSC 270 and 271

Text

Concepts of Programming Languages, 11th edition by Robert W. Sebesta, Addison-Wesley, 2016.

Topics:

Lectures

Lecture handouts are available online on the course website (see above). When possible they may be distributed in class. Where available, lecture videos may be posted online. The assigned videos will be listed on the web site and should be viewed before coming to class.

Class Activities

Classtime will be spent on lecture material and activities relevant to course material. We will examine a few languages to see what certain design decisions were made, and we will design a language and/or translator of our own.

Assignments

The assignments this semester will require students to use text editors and compilers available on Panther, the University's Linux-based computer as well as a text editor (such as Notepad) to create source-language programs and compilers and interpreters that are either in the public domain or made freely available by the copyright holder. This will require students to have a flash drive on which they can store software as well as source code of programs that they are writing as required assignments in the course.

While there will be opportunities to use class time for assigned work, this will be mainly limited to debugging and other assistance that students require in class. One should expect to spend 4-6 hours outside class working on programming assignments for this class.

Grading

Each programming assignment will be graded with a base grade of 90%, with points added to reflected areas in which the assignment exceeded specified requirements and/or points deducted to show areas where the assignment is deficient.

Late penalties may be assessed of 2 points per class after the due date.

The final average will be weighted (based on the following ratio:

Midterm Exam 40%
Final Exam 40%
Assignments 20%

The final average will translate to a letter grade according to the following table:
Final Average Course Grade
A 90 - 100
A- 87.5 - 89.9
B+ 83.3 - 87.4
B 80.0 - 83.2
B- 77.5 - 79.9
C+ 73.3 - 77.4
C 70.0 - 73.2
C- 67.5 - 69.9
D+ 63.3 - 67.4
D 60.0 - 63.2
F 0.0 - 59.9

Attendance

The following is the Adelphi University General Attendance Policy:

Only students who are registered for courses, and whose name appears on the Official Class Roster may attend courses at the University. Adelphi students make a commitment to be active participants in their educational program; class attendance is an integral part of this commitment. Attendance requirements for each course will be announced by the faculty member at the beginning of each term. Students are expected to be present promptly at the beginning of each class period, unless prevented by illness or by other compelling cause. In the event of such absence, students may request that faculty members be notified by the Office of Academic Services and Retention. Students are responsible for completing course work missed through absences. Students should wait a reasonable length of time for an instructor in the event that the instructor is delayed.

Additionally, you are also responsible for whatever work is covered in class whether or not you are there. Absence from the final exam will be excused only for a good and well-documented reason. The decision to allow a make-up exam will be made in accordance with the policies of Adelphi University.

NB: I will not be available on Wednesday, April 12 or Monday, April 17. There will be lab on both days with attendance taken; we will make up both class meetings on Monday, May 8 11:00-11:50 and 2:25-3:40 in our usual rooms with attendance taken. Students are encouraged to take advantage of the time to complete programming assignments.

If the University is closed for more than two days due to an emergency, go the home page for this course site each day for instructions and assignments. Student instructions materials can be found at http://home.adelphi.edu/~siegfried/cs272

Tentative Schedule (Subject to Change)
Date Topic Assignment due
January 23 Intro to Programming Languages
January 25 Intro to Programming Languages
January 27 Intro to Programming Languages
January 30 History of Major Programming Languages
February 1 History of Major Programming Languages Assn #1 - p. 31-32/ Problem set 2, 3, 4, 8, 13
February 3 History of Major Programming Languages
February 6 History of Major Programming Languages
February 8 Formal Descriptions of a Programming Language
February 10 Formal Descriptions of a Programming Language Assn #2 - p. 105-106/ Problem set 5, 6, 7, 13
February 13 Formal Descriptions of a Programming Language
February 15 Formal Description of a Programming Language
February 17 Language Translation Issues
February 20 Language Translation Issues Assn #3 - p. 157/ Problem set 2e, 3, 4, 6
February 22 Language Translation Issues
February 24 Language Translation Issues
February 27 Names, Bindings, Type Checking and Scopes
March 1 Names, Bindings, Type Checking and Scopes Assn #4 - p. 193/ Problem set 1, 5
March 3 Names, Bindings, Type Checking and Scopes
March 6 Review for Midterm Exam Assn #5 - p. 229-231/ Problem set 7, 9, 10
March 8 Midterm Exam
March 10 Data Types
March 20 Data Types
March 22 Data Types
March 24 Data Types
March 27 Data Types
March 29 Data Types
March 31 Expressions and Assignment Statements
April 3 Expressions and Assignment Statements
April 5 Expressions and Assignment Statements Assn #6 - p. 298/ Problem set 2, 3, 7
April 7 Expressions and Assignment Statements
April 10 Control Structures
April 12 Control Structures Assn #7 - p. 326/ Problem set 4, 5, 7
April 14 Control Structures
April 17 Control Structures
April 19 Subprograms
April 21 Subprograms
April 24 Subprograms Assn #8 - p. 361/ Problem set 4 & "What is wrong with the GOTO?"
April 26 Subprograms
April 28 Implementing Subprograms
May 1 Implementing Subprograms Assn #9 - p. 414-9/ Problem Set 2, 5, 7
May 3 Implementing Subprograms
May 5 Implementing Subprograms
May 8 Review for Final Exam
May 12 Review for Final Exam Assn #10 - p. 413/ Problem Set 1, 5, 7, 14
May 17 Final Exam (10:30AM . 12:30 PM)

Students With Disabilities

If you have a disability that may significantly impact your ability to carry out assigned coursework, please contact the Student Access Office (SAO) at 516-877-3806 or send an email to sao@adelphi.edu. The staff will review your concerns and determine, with you, appropriate and necessary accommodations. Please allow for a reasonable time frame for requesting ASL Interpreters or Transcription Services.

Honor Code

Students enrolled in this course are expected to abide by the Adelphi University Honor Code. The purpose of the Honor Code is to protect the academic integrity of the University by encouraging consistent ethical behavior in assigned coursework by students. Following is excerpted from the Student Honor Code:

The code of academic honesty prohibits behavior, which can broadly be described as lying, cheating, or stealing. Violations of the code of academic honesty will include, but are not limited to, the following:

  1. Fabricating data or citations
  2. Collaborating in areas prohibited by the professor
  3. Unauthorized multiple submission of work
  4. Sabotage of others' work, including library vandalism or manipulation
  5. Plagiarism: presenting any work as one's own that is not one's own
  6. The creation of unfair advantage
  7. The facilitation of dishonesty
  8. Tampering with or falsifying records
  9. Cheating on examinations through the use of written materials or giving or receiving help in any form during the exam, including talking, signals, electronic devices, etc.

Student Course Evaluations

During the last two weeks of the class, you will receive notification, via mail and eCampus, that the course evaluation is available for your input electronically. Availability will end at the start of the final examination period. Your feedback is valuable and I encourage you to respond. Please be assured that your responses are anonymous and the results will not be available to the instructor until after the end of the semester and therefore after course grades have been submitted.


Tear off this and return with information required below:


STUDENT ACKNOWLEDGEMENT:

I HAVE RECEIVED AND READ THE SYLLABUS FOR [INSERT COURSE NUMBER AND SECTION].


SIGNED: __________________________________________


PRINT NAME: _________________________________________


DATE: ___________________________


Warning ? This page must be signed and returned to the instructor to receive a complete grade in this course.