CSE 307 Course Information (Spring 2010)

Course Objectives and Description

The objective of this course is to introduce you to the fundamental concepts in programming languages and to give you the intellectual tools needed to use, evaluate, design, and choose programming languages. You will be introduced to finer aspects of familiar imperative and object-oriented programming paradigms, and also to functional programming. The course will not be structured as a survey of a specific collection of programming languages. Rather, the course will survey important programming language concepts (e.g. recursion, user-defined data types, strong typing, control structures, exception handling, block structure, parameter passing), their uses, and their implementations. The concepts will be illustrated and reinforced through programming exercises that will be included as part of the regular homework assignments. A particular functional programming language, Standard ML, will serve as the primary programming language for these exercises.

Official Course Goals

The following are the official course goals agreed upon by the faculty for this course.

Staff

Professor
Eugene W. Stark

Teaching Assistant(s):

Prerequisite

You must have taken CSE 219 and CSE 220 to take this course.

Class Time/Place

Tuesday and Thursday, 2:20PM-3:40PM, Library E4330.

Examinations

There will be two in-class exams and a final exam. Exams will be held in the regular classroom unless a change is announced.

Textbooks

Handouts

This semester, all course handouts, including homework assignments, will be available on the Web for you to download and print, if desired. No paper copies will be handed out. It is assumed that you know how to use a Web browser and have regular access to the Internet. Start from my home page at the following URL:

http://www.cs.sunysb.edu/~stark/
and follow the link to reach the CSE307 home page. I will try to announce in class when new homeworks and handouts are available, but ultimately it will be your responsibility to check the course WWW pages regularly to find out if there is anything new.

Homework

There will be homework assigned regularly, due approximately two weeks after the assignment is issued. I expect that there will be five or six homework assignments in all. Homework will include written exercises as well as short programming exercises. You are expected to work individually on the homeworks. Assignments will be handed in electronically, using a method described elsewhere.

You must turn the homeworks in on the day they are due. Any homeworks that are submitted after the due date might or might not be graded, at the convenience of the course staff. Late homeworks that are not graded will be held until the end of the semester, in which case I will have a look at them to decide whether you will be receiving a fair final grade. Generally speaking, if your homework assignment is not graded due to late submission, at my discretion you will receive either a zero for that assignment or you will receive a score equal to the average grade you received on all your homeworks that were graded. If some sort of emergency prevents you from submitting your homework on time, supplying me with suitable documentation might influence the choice I make, but please do not ask me to tell you that it is ``OK'' to submit your homework late. It is never ``OK'' to submit your homework late, but you will benefit more from submitting a late homework than if you submit nothing at all.

Note: For Spring 2010 I am expecting the TA situation to be bleak. It is quite likely that I will not be provided with adequate TA resources. Should this in fact turn out to be the case, I will only be able to grade the homework assignments in a superficial manner. This does not mean that the homeworks are not important, it simply means that time will not permit me to read and comment on the homework in detail.

Grading

The final grade will be determined as follows: The raw scores obtained by a student on each assignment and exam will be standardized for that particular assignment or exam by converting them to percentile scores, or else by applying a linear transformation to map the scores to a standard [0, 100] scale. A weighted sum of the resulting standardized scores will then be formed (with weights as shown below) to obtain a composite score for each student.

Finally, the composite scores will be ranked, and I will apply a subjective method of my choice to determine the cutoffs for each grade category. Absolute performance standards, the distribution of composite scores, and information derived from late homeworks are factors likely to contribute to this decision.

Pass/No Credit

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

This policy applies to all CSE/ISE undergraduate courses except CSE 101, 110, 130, 230, and 301.

Students in CSE 587

In accordance with the policies detailed in the CS Department Graduate Handbook, under certain conditions students admitted to the M.S. program may be permitted to register for this course under the CSE 587 designation. The following special conditions apply to such students:

Academic Dishonesty

Read This! You may discuss the homework in this course with anyone you like, however each student's submission, including written material and coding, must be their own work, and only their own work. Any evidence that written homework submissions or source code have been copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty. The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an `F' grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.

Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College laws.

All students taking this course are required to complete this form in which you acknowledge specific activities that are and are not permitted in this course. No grades will be issued for anyone who has not completed this form.

The following statement about academic dishonesty, adopted by the Undergraduate Council on September 12, 2006, is required to be included in syllabi for all undergraduate courses:

"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. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website."

Students with Disabilities

"If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disability Support Services office (DSS), ECC Building (behind SAC), 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential."

Critical Incident Management

Stony Brook 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.

Schedule of Topics

An outline of the course can be found by clicking on the following link: topics.html.