CS 4700: Programming Languages
Fall 2006

Syllabus: Fall 2006

Eccles Conference Center 311 (satellite)
8:00–10:30 PM R

Instructor and Grader

 Instructor
Name Jerry James
Email Jerry.James@usu.edu
Office 402A Old Main
Phone (435) 797–0742
Office Hours 2:00–3:00 PM MWF
Others by appointment

Prerequisites

CS 2200: Algorithms & Data Structures

Text Book

Programming Languages: Principles and Practice — Second Edition
Kenneth C. Louden
Thomson: Course Technology
ISBN: 0–534–95341–7

Course Objectives

The objectives of this course are to obtain an understanding of programming languages, environments, translation, and implementation. Class discussion, oral explanations, exams, and programming problems are all designed to facilitate the achievement of these goals. The course will introduce programming language paradigms that complement the traditional imperative models taught in introductory courses. Students will learn the principles of programming language design and an understanding of representative languages from several programming language paradigms. This class will impart familiarity with 3 programming languages, familiarity with topics in the theory of computing, and mastery of the subject of programming languages. Upon completing the course successfully, the student will be able to:

  1. Identify key object-oriented language concepts;
  2. Identify key functional language concepts;
  3. Identify key scripting language concepts;
  4. Be able to write nontrivial programs in at least one language from each of the language paradigms identified above; and
  5. Be able to read and understand well-written programs in at least one language from each of the language paradigms identified above.

For the Fall 2006 semester, the languages students will learn are Java, Python, and Haskell.

Topic Outline

The following is a rough outline of the topics the class will cover, and the related chapters in the textbook. Note, however, that the lectures will not follow the book completely; some lecture materials will not appear in the book, and some material in the book will not be covered in lecture. As a general principle, the student will be responsible for the topics covered in lectures, and for topics covered in the book which are specifically assigned by the instructor.

  1. Introduction & History (Chapters 1–2)
  2. Language Design Principles (Chapter 3)
  3. Syntax (Chapter 4)
  4. Basic Semantics (Chapter 5)
  5. Data Types (Chapter 6)
  6. Control (Chapters 7–8)
  7. Abstract Data Types and Modules (Chapter 9)

Grading

The course grade is determined by the student's performance on the programming projects, midterms, and final. Homeworks will be assigned, and sample answers made available, but will not be graded aggressively. Handing in completed homeworks and participating in class are worth a small portion of your grade. This is because we want to encourage you to do the homeworks by making them worth something, but also to encourage you to go through the process of providing your own thoughtful answers without worrying too much about making a mistake.

Projects30%
Midterm 115%
Midterm 215%
Final20%
Homeworks14%
Class participation6%

We will be using Eagle (see http://eagle.cs.usu.edu/) to turn in programming assignments. Create an account on Eagle so that you can get email and grades from me.

If you discover that a test or assignment has been graded in error, please write the nature of the error on the assignment or an attached piece of paper and turn it back in. Even if the error is a trivial one, such as an addition error, writing it down ensures that I will not forget the nature of the problem on the way back to my office.

Late Work

Late work is disruptive to the grading process because it interrupts the flow of work of the grader. Late work is also problematic for the class, because I may be forced to delay handing out answers to an assignment. For that reason, I will dock 10% of the total points from an assignment for every day that it is late. An assignment that is 10 days late is worth zero points. Plan ahead. If you wait until the last second, Eagle may be down, preventing you from turning your assignment in on time.

Class Attendance

Class attendance is mandatory. Many concepts can only be understood over time and after repeated discussion. Discussion is so important that a portion of your grade is based on how often and well you participate in discussion.

Class Etiquette

Students are expected to contribute to a learning environment. This includes participating in discussions, but also includes arriving at class on time and refraining from becoming a distraction. Do not rustle newspapers, and always turn off cell phones and pagers before class begins. If you are an emergency worker who must keep a cell phone or pager on during class, please notify the instructor as soon as possible.

Course Fees

Associated with this class is a course fee. The monies from this fee are used to maintain lab facilities for the class, purhase software and licenses, and supervise the lab. In some cases, students may have their own computing equipment, and thus feel that they do not need to use the lab. However, the lab must be maintained regardless of an individual's use of it, and thus the fee is charged to all registered for the class. If you have questions or concerns about this fee, please see the department head.

Academic Integrity

This class is goverened by the CS Department policy on academic misconduct.

Grievance Process (Student Code)

Students who feel they have been unfairly treated [in matters other than (i) discipline or (ii) admission, residency, employment, traffic, and parking — which are addressed by procedures separate and independent from the Student Code] may file a grievance through the channels and procedures described in the Student Code (Article VII. Grievances, pages 28–32).

Plagiarism

Plagiarism includes knowingly “representing, by paraphrase or direct quotation, the published or unpublished work of another person as one's own in any academic exercise or activity without full and clear acknowledgment. It also includes the unacknowledged used of materials prepared by another person or agency engaged in the selling of term papers or other academic materials.” The penalties for plagiarism are severe. They include warning or reprimand, grade adjustment, probation, suspension, expulsion, withholding of transcripts, denial or revocation of degrees, and referral to psychological counseling.

Sexual Harassment

Sexual harassment is defined by the Affirmative Action/Equal Employment Opportunity Commission as any “unwelcome sexual advances, requests for sexual favors, and other verbal or physical conduct of a sexual nature.” If you feel you are a victim of sexual harassment, you may talk to or file a complaint with the Affirmative Action/Equal Employment Opportunity Office located in Military Science, Room 216, or call the AA/EEO Office at 435–797–1266.

Students with Disabilities

The Americans with Disabilities Act states: “Reasonable accommodation will be provided for all persons with disabilities in order to ensure equal participation within the program.” If a student has a disability that will likely require some accommodation by the instructor, the student must contact the instructor and document the disability through the Disability Resource Center (435–797–2444), preferably during the first week of the course. Any request for special consideration relating to attendance, pedagogy, taking of examinations, etc., must be discussed with and approved by the instructor. In cooperation with the Disability Resource Center, course materials can be provided in alternative format, large print, audio, diskette, or Braille.

Withdrawal Policy and “I” Grade Policy

Students are required to complete all courses for which they are registered by the end of the semester. In some cases, a student may be unable to complete all of the coursework because of extenuating circumstances, but not due to poor performance or to retain financial aid. The term extenuating circumstances includes:

  1. incapacitating illness which prevents a student from attending classes for a minimum period of two weeks,
  2. a death in the immediate family,
  3. financial responsibilities requiring a student to alter a work schedule to secure employment,
  4. change in work schedule as required by an employer, or
  5. other emergencies deemed appropriate by the instructor.

Last modified: Tue Oct 3 09:32:53 MDT 2006 by Jerry James