cse307 : programming languages...programming assignments extensions programming assignments must be...

5
CSE307 : Programming Languages Syllabus Term: Fall 2017 Instructor: Tony Mione Course Meeting Times: Mon & Wed, 10:30-11:50AM Office: B425 Phone: +82 032-626-1226 Email: [email protected] Office Hours: Mon & Wed: 3:30-5:00PM; Thurs 3:30-4:30PM Course Homepage: www3.cs.stonybrook.edu/~anmione/CSE307_Course/index.html Text: Scott, Michael L., “Programming Language Pragmatics, 4 th Edition”, Morgan-Kaufmann, 2016, ISBN-13: 978-0-12-410409-9. 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. Course Objectives 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. Prerequisite CSE 219 or CSE 260; CSE 220; CSE major or permission of instructor. Grades and Evaluation Your grade in the course will be based on the following work:

Upload: others

Post on 06-Jan-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSE307 : Programming Languages...Programming Assignments Extensions Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems

CSE307 : Programming Languages

Syllabus

Term: Fall 2017 Instructor: Tony Mione Course Meeting Times: Mon & Wed, 10:30-11:50AM

Office: B425 Phone: +82 032-626-1226 Email: [email protected] Office Hours: Mon & Wed: 3:30-5:00PM; Thurs 3:30-4:30PM Course Homepage: www3.cs.stonybrook.edu/~anmione/CSE307_Course/index.html Text: Scott, Michael L., “Programming Language Pragmatics, 4th Edition”, Morgan-Kaufmann, 2016, ISBN-13: 978-0-12-410409-9.

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.

Course Objectives 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.

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

Grades and Evaluation Your grade in the course will be based on the following work:

Page 2: CSE307 : Programming Languages...Programming Assignments Extensions Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems

Quizzes – 10% - Several quizzes will be given throughout the semester to assess the student’s understanding of the material. Programming Assignments – 50% - Several assignments will be given including some problems from the text book that will give the student an opportunity to apply the knowledge acquired from reading and lectures. Midterm Exam – 15% - A midterm exam based on reading and concepts presented in the lecture. Final Exam – 25% - A non-cumulative final exam will provide questions that will cover the key concepts taught during the latter half of the semester.

Final Grade Calculation The final grade is based on the accumulated percentage from all quizzes, exams, and assignments. Letter grades are given on the following scale:

Letter Minimum Percentage A 93 A- 90 B+ 87 B 83 B- 80 C+ 77 C 73 C- 70 D 60 F <60

Re-grading For re-grading of an assignment or exam, please meet with the person (instructor or teaching assistant) responsible for the grading. 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/her office hour. If you would like to speak with the TA in person, and have a schedule conflict with his/her office hour, you are welcome to make an appointment to meet the TA at another time.

Page 3: CSE307 : Programming Languages...Programming Assignments Extensions Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems

Programming Assignments

Extensions Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems such as congestion or failure of computer facilities at the last minute. If your assignment is incomplete or is not working by the due date, turn in whatever you have. Note due to limited resources for grading, programs which do not compile or run for testing may not be graded. If some sort of emergency prevents you from submitting your assignment on time, supplying me with suitable documentation and notification prior to the assignment deadline will be considered.

Course Schedule Following is a tentative schedule for the class topics: Week Lecture Topics Readings Notes/Exercises

8/28 Course Overview

Introduction to Programming Languages Text:Chapter 1

9/4 Python

Python

9/11 SML [Quiz 1]

SML

9/18 Lexical Analysis Text: Chapter 2

Programming Language Syntax and Parsing [Quiz 2]

9/25 Programming Language Syntax and Parsing II

Programming Language Syntax and Parsing III

10/2 No Classes Text: Chapter 3

10/10 Midterm Review

10/16 [Midterm]

Names, Scope, and Binding

10/23 Names, Scope, and Binding II

Names, Scope, and Binding III [Quiz 3]

10/30 Semantic Analysis Text: Chapter 4

Semantic Analysis II

11/6 Control Flow Text: Chapter 6

Control Flow II

11/13 Data Types Text: Chapter 7-8 [Quiz 4]

Data Types II

11/20 Subroutines and Control Abstraction Text: Chapter 9

Subroutines and Control Abstraction II

11/27 Data Abstraction and Object Orientation Text: Chapter 10

Functional Languages Text: Chapter 11 [Quiz 5]

12/4 Logic Languages Text: Chapter 12

Logic Languages II

Page 4: CSE307 : Programming Languages...Programming Assignments Extensions Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems

12/11 Logic Languages III

Review for Final

Academic Dishonesty You may discuss the practice problems with anyone you like, however each students' assignment (including coding) which they submit must be their own work, and only their own work. Any evidence that source code or solutions have been copied, shared, or transmitted in any way (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty.

Guidelines for Assignments

When working on programming assignments, you must work only with others whose understanding of the material is approximately equal to yours. In this situation, working together to find a good approach for solving a programming problem is cooperation; listening while someone dictates a solution is cheating. You must limit collaboration to a high-level discussion of solution strategies, and stop short of actually writing down a group answer. Anything that you hand in, whether it is a written problem or a computer program, must be written in your own words. If you base your solution on any other written solution, you are cheating

Guidelines for Taking Exams When taking an exam, you must work completely independently of everyone else. Any collaboration here, of course, is cheating. All examinations will be closed-notes and closed-book. No electronic devices of any kind will be permitted to be used during exams. All cell phones must be silenced or turned off during exams.

General Guidelines

Be advised that any evidence of academic dishonesty will be treated with

utmost seriousness. We do not distinguish between cheaters who copy others'

work and cheaters who allow their work to be copied.

If you cheat, you will be given an F on the assignment. Repeat offenses will lead to an F in the course and being referred to the appropriate office at the University. If you have any questions about what constitutes cheating, please ask.

Students with Disabilities If you have a physical, psychological, medical or learning disability that may impact your course work, please let the instructor know. Reasonable accommodation will be provided if necessary and appropriate. All information and documentation are confidential.

Page 5: CSE307 : Programming Languages...Programming Assignments Extensions Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems

Critical Incident Management The University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn.