CSE 307 Online Syllabus - Summer 2018

Principles of Programing Languages

http://www.cs.stonybrook.edu/~cse307


Course Description

Presents examples of important programming languages and paradigms such as LISP, ALGOL, ADA, ML, Prolog, and C++. Students write sample programs in some of the languages studied. The languages are used to illustrate programming language constructs such as binding, binding times, data types and implementation, operations (assignment data-type creation, pattern matching), data control, storage management, parameter passing, and operating environment. The suitability of these various languages for particular programming tasks is also covered. (https://www.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE307)

Online course
This online course provides the students with the flexibility and convenience of studying online for a course with very high demand in order to support timely degree completion and meet the student’s academic goal. The course is taught online, synchronously on SBConnect (https://it.stonybrook.edu/services/sbconnect-adobe-connect-web-conferencing for those students that can join online) and asynchronously (recorded for later viewing) delivered, and provides all materials, discussions, advising and contact with faculty online over the Internet.

The students are required to go to Stony Brook University to take the course exams.

A successful online student should possess some specific qualities:

  • Strong self-discipline,
  • A high level of professional, personal, or educational motivation;
  • Good time management skills;
  • Ability to work and study independently without face to face interaction with faculty and classmates to complete the work;
  • Experience using computers and the Internet;
  • Access to a computer and the Internet to work many hours a week online;
  • Have already completed all the prerequisites;
Understand that an online course requires as many hours as an on-campus course – or more.

Prerequisites

CSE 219 or CSE 260; CSE 220; CSE major or permission of instructor.

Course Outcomes

The following are the official course goals agreed upon by the faculty for this course:
  • Knowledge of, and ability to use, language features used in current programming languages.
  • An ability to program in different language paradigms and evaluate their relative benefits.
  • An understanding of the key concepts in the implementation of common features of programming languages.

Major Topics Covered in Course

  • Principles of Language Design
  • Specification of Language Syntax
  • Survey of Procedural and OO Languages
  • Intro. to Functional Programming
  • Intro. to Logic Programming
  • Programming Language Semantics
  • Values
  • Bindings
  • Types
  • Programming Language Constructs
  • Expressions
  • Statements
  • Procedures and Environments
  • Parameter Passing

Staff

Instructor: Dr. Paul Fodor
214 New Computer Science Department, Stony Brook University
Office hours: Tuesdays and Thursdays 3:30PM-5:00PM, online (on SBConnect).
Phone: 1 (631) 632-9820
Email: paul.fodor@stonybrook.edu

Class Time/Place

  • Summer 1 (http://www.stonybrook.edu/summer-session/calendar/): May 29 – July 7.
    • Lectures: MW 9:30am-12:55pm, online (synchronous on SBConnect, i.e., you can watch it while it is streaming, but it will also be recorded and it can also be watched asynchronously, i.e., the lectures are recorded, so you can watch them later).

Exams (in person) at Stony Brook University

  • Midterm Exam:  Wednesday, 6/13/18, 9:30AM-11:30AM, during class time, Melville Library room W4550.
  • Final Exam:  Friday, 7/6/18, 9:30AM-11:30AM, during class time, Melville Library room W4550. Calendar notes : "Classes follow a Wednesday Schedule on Friday".

Textbook

Programming Language Pragmatics by Michael Scott. Fourth Edition, Morgan Kaufmann Publishers, 2015. ISBN-13: 9780124104099.


Grading Schema

Grades will be based on homework and exams according to the following formula:
  • Homework -- 25%
  • Midterm exams -- 35%
  • Final exam -- 40%

Do not miss the exam. Make-up exams will be given only in extenuating circumstances (e.g., doctor's note stating that you were ill and unfit to take the exam). Students who miss an exam for a valid reason may need to take a make-up exam; specific arrangements will be made on a case-by-case basis.

Grade Cutoffs

A [93-100], A- [90-93), B+ [87-90), B [83-87), B- [80-83), C+ [77-80), C [73-77), C- [70-73), D+ [65-70), D [60-65), F [0-60)

SPECIAL RULE: If all your grades, including homework assignments and your exam grades are above the respective class averages, you're guaranteed to receive a grade of C or higher for this class.

The Pass/No Credit (P/NC) option is not available for this course.

This policy applies to all CSE/ISE undergraduate courses used to satisfy the graduation requirements for the major.

The grades will be posted on Blackboard: http://blackboard.stonybrook.edu for privacy reasons.


Programming homework assignments

There will be regular programming assignments which must be submitted electronically on Blackboard (http://blackboard.stonybrook.edu) by the announced due date and time. All code must compile. Code that does not compile will not be graded. Assignments will be graded based on program performance and documentation. You may not submit any programming assignment late. Late programming work will not be graded. All program code that is submitted electronically must have the following information listed clearly in documentation (comments in your program code) at the beginning of each file: your name, the course (CSE 307), and the programming assignment number. There is also a programming project before the end of the semester.

  • Code that does not compile will not receive any credit.
  • Submissions that are no submitted as requested in the assignment will not receive any credit. That is, if the submission requires a Test.java file, any submissions of test.java, test.text, test, etc. will not receive any credit. Similarly, if the requirements say that a method computeBalance with 2 paramenters is required, any submission that defined methods like compute_balance, computer_Balance, etc. will also not receive any credit.

Re-grading

For re-grading of an assignment or exam, please meet with the person (instructor or teaching assistant) responsible for the grading. Please arrange a re-evaluation within one week of receiving the graded work. All such requests that are later than one week from the date the graded work is returned to the class will not be entertained. To promote consistency of grading, questions and concerns about grading should be addressed first to the TA and then, if that does not resolve the issue, to the instructor. You are welcome to contact the TA by email or come to his office hour. If you would like to speak with the TA in person, and have a schedule conflict with his office hour, you are welcome to make an appointment to meet the TA at another time.

Class Schedule

Week Lecture Topics
1 Introduction to Programming Languages, Python, SML
2 Programming language syntax
3 Names, Scopes, and Bindings
4 Semantic Analysis, Control Flow, Data Types
5 Subroutines and Control Abstraction, Data Abstraction and Object Orientation
6 Functional Languages, Logic Languages

Piazza

The Piazza discussion board should be used for all communication with the teaching staff for questions about the course assignments and material. Piazza is a forum for additional learning and assistance. The following are not appropriate uses of Piazza:

  • cyber-bullying
  • posting memes
  • complaining about a grade
  • airing concerns/comments/criticisms about the course
  • posting more than a few lines of source code from an attempt at a homework problem
  • posting the solution to a homework problem or a link to a website containing the solution
  • in general, anything unrelated to the course material and student learning

Therefore, you are expected to use the Piazza forum for all non-personal, course-related communication. Questions about what a homework problem is asking, technical problems that need troubleshooting, or other questions that might be of interest to other students must be posted to Piazza and not emailed to the instructor or a TA. Piazza is a luxury, and if used inappropriately it will be closed/removed for you. We will not tolerate cyber-bullying. Anonymous posting is turned off, so we can see who you are. Improper conduct will be reported to the Dean of Students Office.


Email Etiquette

When emailing your instructor about the course, use the following guidelines to ensure a timely response:

  • use your official @stonybrook.edu email account (we cannot respond to an other email due to FERPA regulations)
  • use a descriptive subject line that includes "CSE307" and a brief note on the topic
  • begin with a proper greeting, such as "Hi Prof. Fodor"
  • briefly explain your question or concern or request including the course (we are teaching several courses)
  • end with a proper closing that includes your full name, Net ID and SBU ID number

Disability Support Services (DSS) Statement:

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disability Support Services, ECC(Educational Communications Center) Building, Room 128, (631)632-6748. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential.
Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Disability Support Services. For procedures and information go to the following website: http://www.stonybrook.edu/ehs/fire/disabilities

Academic Integrity Statement:

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty is required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website at http://www.stonybrook.edu/commcms/academic_integrity/index.html

Critical Incident Management Statement:

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.

Page maintained by Paul Fodor