CSc 71010: Programming Languages
3 hrs, 3 credits. Computer Science, City University of New York (CUNY) Graduate Center.
- 1 Details
- 2 Course Description
- 3 Topics
- 4 Suggested Previous Courses
- 5 Textbooks and Materials
- 6 Learning Goals
- 7 Assessment
- 8 Key Dates
- 9 Homework
- 10 Exams
- 11 Attendance
- 12 Academic Violations
- 13 Email
- 14 Bulletin Board
- 15 Counseling & Wellness Services
- 16 Special Needs
- 17 ADA Compliance
- 18 Family Educational Rights and Privacy Act (FERPA)
- 19 Sexual Misconduct
- 20 Instructor Biography
- 21 Credits
|Office:||1090H Hunter North Building|
|Office hours:||F 3:00-5:00 pm or by appointment|
|Section:||CSc 71010-1 (55067)|
This course is intended to be a survey on the fundamental concepts and principles that underlie current and emerging methods, tools, and techniques for the design and implementation of modern programming languages. This includes the understanding and appreciation of topics in designing and implementing modern programming languages such as attribute grammars, operational, axiomatic, and denotational semantics, (static and dynamic) type systems, and functional programming and its relationship with mainstream Object-Oriented languages, frameworks, and libraries (APIs).
Please note that this schedule is tentative:
- Attribute grammars
- Operational semantics for Lisp
- Operational semantics for an imperative language
- Axiomatic semantics
- Type systems
- Concurrency and data structures for concurrent and distributed computing
- Streaming APIs for mainstream Object-Oriented languages
- Programming language concepts for Machine Learning (ML) and Deep Learning (DL) systems.
Suggested Previous Courses
- CSc 70010: Algorithms
- Computer Theory or equivalent.
Textbooks and Materials
While there are no required texts, there are readings from the books listed below. All books are available at the library, but please do not check them out from the GC library. I have entered a reservation request.
|Formal Specification of Programming Languages: A Panoramic Primer (copy of a few pages)||Pagan||9780133290523|
|Formal Syntax and Semantics of Programming Languages (online)||Slonneger and Kurtz||9780201656978|
|The Formal Semantics of Programming Languages: An Introduction||Winskel||9780262231695|
|The Study of Programming Languages||Stansifer||9780137269365|
|Types and Programming Languages||Pierce||9780262162098|
|Lisp 1.5 Programmer's Manual (ebook, online)||McCarthy et al.||9780262130110|
|Semantics with Applications: A Formal Introduction (online)||Nielson and Nielson||9780471929802|
|Core Java SE 9 for the Impatient (online)||Horstmann||9780134694726|
|Structure and Interpretation of Computer Programs (online)||Sussman and Abelson||9780070004849|
Please also refer to my notes on type constraints.
- Be able to write attribute grammars and derivations of simple programs.
- Be able to understand and define basic operational semantics.
- Be able to understand and define basic axiomatic semantics.
- Be able to formulate and prove type safety theorems.
- Be able to formulate and reason about key object oriented programming features.
- Be able to formulate and reason about key concurrency programming features.
|No classes||Sep 3-8|
|No classes||Sep 15-16|
|Withdrawal deadline||Sep 15|
|Columbus Day||Oct 11|
|Midterm exam||Oct 27|
|Thanksgiving day observed||Nov 25-26|
|Reading day||Dec 14|
|Final exam||? (Dec 15-21)|
The course will include several written assignments and one large programming project, possibly submitted in pieces. Each will be assigned in Blackboard along with submission instructions. Assignments will be uploaded to Blackboard and the programming project will be uploaded to GitHub classroom and submitted via gradescope. The exact instructions will follow. The project must include command-line instructions on how to run the program.
- Deadlines and due dates for assignments will be assigned in class.
- Late assignments will be penalized.
- No extensions will be given for extra credit assignments.
- Assignments are the result of individual effort unless otherwise noted (e.g., group projects).
Test make-ups will be given if and only if:
- the request is made sufficiently in advance of the test, and
- the make-up is scheduled prior to the next class.
Attendance is expected for each and every class meeting. The instructor will start the class on time, and students are expected to be present on time.
The classroom environment employed will be that of a professional one. While students may discuss course materials and assignments with others, any submitted work in this course must be the result of individual effort only. Students are strongly advised to read the following resources regarding academic integrity:
Emails to the instructor must be via a CUNY GC email address for FERPA reasons. Please post all class-related discussion on Bb. Also, please ensure that your correct email address is entered into the CUNY Blackboard.
You should check the Blackboard site regularly, since all class material will be posted there. Please make sure you have configured Bb to use your CUNY email address. You are responsible for any email the instructors might send there.
Counseling & Wellness Services
The Wellness Center Student Counseling Services offers short-term individual and group counseling and psychotherapy, couples counseling, consultation and referral services, and a variety of programs and workshops relevant to graduate student life. More information can be found on the Counseling Services website.
Students with special needs should see me for accommodation.
It is Graduate Center and CUNY policy to provide appropriate accommodations to students with disabilities. Any student with a disability who may need accommodations in this class is advised to speak directly to the manager of Student Disability Services, located in Student Affairs, room 7301, or call 212-817-7400 as early in the semester as possible. All discussions will remain confidential. More information can be found on the Disabilities Services website.
Family Educational Rights and Privacy Act (FERPA)
The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.
FERPA gives parents certain rights with respect to their children's education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are "eligible students."
- Parents or eligible students have the right to inspect and review the student's education records maintained by the school. Schools are not required to provide copies of records unless, for reasons such as great distance, it is impossible for parents or eligible students to review the records. Schools may charge a fee for copies.
- Parents or eligible students have the right to request that a school correct records which they believe to be inaccurate or misleading. If the school decides not to amend the record, the parent or eligible student then has the right to a formal hearing. After the hearing, if the school still decides not to amend the record, the parent or eligible student has the right to place a statement with the record setting forth his or her view about the contested information.
- Generally, schools must have written permission from the parent or eligible student in order to release any information from a student's education record. However, FERPA allows schools to disclose those records, without consent, to the following parties or under the following conditions (34 CFR § 99.31):
- School officials with legitimate educational interest;
- Other schools to which a student is transferring;
- Specified officials for audit or evaluation purposes;
- Appropriate parties in connection with financial aid to a student;
- Organizations conducting certain studies for or on behalf of the school;
- Accrediting organizations;
- To comply with a judicial order or lawfully issued subpoena;
- Appropriate officials in cases of health and safety emergencies; and
- State and local authorities, within a juvenile justice system, pursuant to specific State law.
Schools may disclose, without consent, "directory" information such as a student's name, address, telephone number, date and place of birth, honors and awards, and dates of attendance. However, schools must tell parents and eligible students about directory information and allow parents and eligible students a reasonable amount of time to request that the school not disclose directory information about them. Schools must notify parents and eligible students annually of their rights under FERPA. The actual means of notification (special letter, inclusion in a PTA bulletin, student handbook, or newspaper article) is left to the discretion of each school.
For additional information, you may call 1-800-USA-LEARN (1-800-872-5327) (voice). Individuals who use TDD may use the Federal Relay Service.
Or you may contact us at the following address:
Family Policy Compliance Office U.S. Department of Education 400 Maryland Avenue, SW Washington, D.C. 20202-8520
Every member of The City University of New York community, including students, employees and visitors, deserves the opportunity to live, learn and work free from sexual harassment, gender - based harassment and sexual violence. Accordingly, CUNY is committed to:
- Defining conduct that constitutes prohibited Sexual Misconduct;
- Providing clear guidelines for students, employees and visitors on how to report incidents of Sexual Misconduct and a commitment that any complaints will be handled respectfully;
- Promptly responding to and investigating allegations of Sexual Misconduct, pursuing disciplinary action when appropriate, referring the incident to local law enforcement when appropriate, and taking action to investigate and address any allegations of retaliation;
- Providing ongoing assistance and support to students and employees who make allegations of Sexual Misconduct;
- Providing awareness and prevention information on Sexual Misconduct, including widely disseminating this policy, as well as a “students’ bill of rights” and implementing training and educational programs on Sexual Misconduct to college constituencies; and
- Gathering and analyzing information and data that will be reviewed in order to improve safety, reporting, responsiveness and the resolution of incidents.
Please review the Sexual Misconduct CUNY Policy.
Raffi Khatchadourian is an Assistant Professor in the Computer Science Department at Hunter College and the Graduate Center of the City University of New York (CUNY). He received his MS and PhD degrees in Computer Science from Ohio State University and BS degree in Computer Science from Monmouth University in New Jersey. Prior to joining CUNY, he was a Software Engineer at Apple, Inc. in Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tested various features of iPhones, iPads, and iPods. His research focus is techniques for automated software evolution, particularly those related to automated refactoring and source code recommendation systems with the goal of easing the burden associated with correctly and efficiently evolving large and complex software.
Portions of this syllabus are based on those of Atanas Rountev, Neelam Soundarajan, Mike Bond, and Subash Shankar.