CSE 526 Course Information (Spring 2009)

Course Description and Objectives

The purpose of the course is to explore a variety of concepts and paradigms found in modern programming languages, to use formal description techniques to help acquire a deeper understanding of these ideas, and to study how the formal descriptions relate to machine implementations. The course will not be structured as a survey of a specific collection of programming languages. Rather, the course will focus on the contrast between Algol-like and Lisp-like programming languages, and will examine important programming language concepts (including block structure, recursion, strong typing, higher-order functions, parameter passing, exception handling, and user-defined data types) that can be found in these languages. I do not plan for the course to provide a comprehensive survey of semantic definition techniques. I also do not expect to be able to treat all major programming paradigms; for example, logic programming is something that will likely receive little if any treatment this semester. See here for an overview of what I am planning to do.

Staff

Professor
Eugene W. Stark

TA: TBA

Prerequisite

You must have taken CSE 307 (programming languages) or the equivalent to take this course, or else you must seek special permission from the instructor.

Class Time/Place

Lecture:Tuesday and Thursday, 12:50-2:10PM, SB Union 226.

Examinations

There will be a midterm exam and a final exam.

Midterm:TBA
Final:Tuesday, May 19, 11:00AM-1:30PM

Textbooks

There is no required textbook for this class. Readings will be required from various sources, which I will make available as necessary. This bibliography gives a list of additional references you may be interested in consulting during the course of the semester. Some of them we will cover explicitly in class.

Homework

There will be homework assigned regularly, with due dates ranging from one week to two weeks after the assignment is issued. I expect that there will be about five homework assignments in all. Homework will include reading, programming exercises, implementation problems, and perhaps some essay-type thought questions based on the assigned readings. Although students are encouraged to discuss issues raised by the homework, I expect each student to synthesize their ideas into their own individual writeup. Submission of the same or substantially the same writeup by more than one student is not permitted.

Read This! Each student must do their own individual homework. In particular, this means that everyone must write their own programs, and must submit their own individual writeups. If you wish to discuss with other students the course material as it pertains to the assignments, that is OK, but everyone's coding and writeup must be their own work, and only their own work. Any evidence that a submission is not the individual work of a single student will be regarded as evidence of academic dishonesty. The Department of Computer Science regards academic dishonesty as a very serious matter. If I find evidence of academic dishonesty, I will prosecute the case in accordance with the policies and procedures of the Computer Science Department and the Graduate School. If I have to do this, I will recommend that any student found guilty of academic dishonesty receive an "F" grade for the course in case of a first offense and expulsion from the degree program in case of a second offense.

Homeworks should be handed in on time. Each homework assignment will be graded in one session only, which might take place as early as the day after the due date for that assignment. Homeworks submitted in time for the grading session will be regarded as on time. Homeworks submitted after the due date run the risk of missing the grading session, and thus not being graded. If your homework assignment is not graded due to late submission, at the instructor's 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.

NOTE: As of the start of the semester, I do not know whether a TA will be available for this course. Should a suitable TA not be available for the course, homework grading will likely be fairly superficial, perhaps amounting to just checking to see who has attempted which problems. This does not imply that the homework is not important, however. On the contrary, I feel very strongly that if you do not bother to do the homework, you will learn very little, and you might as well not bother signing up for the class.

Grading

The final grade will be determined as follows: The raw scores obtained by students on each homework assignment will be summed, and the result standardized by representing the sum as a percentage of the total points possible for the homework assignments. The raw scores obtained by a student on each exam will be standardized by converting them to percentile scores. 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 the instructor will apply a subjective method of his 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.

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."

Schedule of Topics

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