ECS 140A, Fall 2017

Programming Languages

  • 09/27/2017: welcome to ECS 140A!

Time MWF 4:10-5:00 PM
Location 100 Hunt
Instructor Zhendong Su, 3011 Kemper Hall, OH: MWF 5-6 PM
TA Tara Hariri (thariri AT ucdavis DOT edu)
    OH & Location: MW 11 AM - 1 PM, T 4 PM - 5 PM (53 Kemper)

Nima Johari (johari AT ucdavis DOT edu)
    OH & Location: M 1 PM - 3 PM (55 Kemper), RF 1 PM - 3 PM (53 Kemper)

Phuong Pham (pdpham AT ucdavis DOT edu)
    OH & Location: M 6 PM - 8 PM (53 Kemper), WF 6 PM - 8 PM (55 Kemper)

Sec 1 (CRN: 40255) M 3:10-4:00 PM, 119 Wellman
Sec 2 (CRN: 62331) W 2:10-3:00 PM, 1204 Haring
Sec 3 (CRN: 62332) F 5:10-6:00 PM, 107 Cruess
Sec 4 (CRN: 62333) R 8:00-8:50 AM, 107 Cruess

Course Objectives

  • Learn the fundamental principles of modern computer programming languages.
  • Learn about a variety of different programming languages and what each is specifically good for.
  • Gain some programming experience in a selected set of languages.


(ECS 50 or EEC 70) and ECS 60. The prerequisite will be strictly enforced.


The principal textbook is Programming Languages: Principles and Practice by Louden.

In addition, three programming language texts are needed: The Java Programming Language by Arnold, Gosling, and Holmes (AGH), Common LispCraft by Wilensky, and Programming in Prolog (Fifth Edition) by Clocksin and Mellish.

Since there are plenty online resources available, especially for Java, Lisp and Prolog, so you may not find the three programming books necessary. Older editions of the books should also suffice.

Home Page, SmartSite and Piazza

Web page:
Canvas: ECS 140A Canvas site
Piazza: ECS 140A Piazza site

Emails to the instructor or the TAs should only be regarding personal matters and must come from an e-mail account with "[ECS140A] ..." as the email subject. All course questions should be posted to the course discussion forums on Piazza/Canvas.


There will be five homework assignments: four programs and one non-program problem set. There will be one midterm and a final (and also occasional unscheduled in-class quizzes). The exams will cover general programming language concepts, the analysis and synthesis of specific concrete programs, plus material based on the assignments. Attempting the exercises at the back of the chapters in the main textbook will improve your understanding and your performance on exams.

The exams will be closed-book, but you are permitted one hand-written or typed "cheat sheet" on standard letter-sized paper (front/back allowed, i.e., two pages) for the midterm and two sheets (i.e., four pages with front and back) for the final. You must bring your student photo ID to each exam.

The homework assignments are together worth 27% of the course grade, the midterm 20% (and 15% for in-class quizzes), and the final 38%. The non-programming assignments, homework 1 is worth 3%. The programming assignments, homeworks 2-5, are each worth 6%. Performance on the exams, especially the final, will weigh more heavily in assigning course grades in borderline cases.

A significant difference between homework scores and exam scores may result in an alternate grading scheme. For example, someone that scores 100% on all homework assignments yet fails both exams will fail the course.

Simplicity, presentation, and neatness of your solutions are considered in the grading of assignments and exams.

What you turn in is exactly what will be graded. Be sure to turn in what you intend us to grade, e.g., all required parts and the correct version.

It is expected that all students understand University policies on academic honesty. Cheating on assignments or exams is very serious and will not be tolerated. Any suspected cases will be reported to Student Judicial Affairs.

Late and Regrade Policies

Assignments must be turned in ON TIME to receive credit. Except in the most extreme situations, late assignments will not be accepted. If you cannot complete an assignment by the due date, hand in whatever you have done in order to receive partial credit. We realize that most of you have demanding schedules and some of you may have to work to support yourselves. However, please do not ask us to accept either of these as excuses for late assignments or diminished performance.

Make-up or early exams will not be given except in the most extreme situations. If you must miss an exam due to extreme illness, etc., contact the instructor or leave a message including your phone number in the Computer Science office (752-7004) before the exam.

Regrade requests must be made no later than one week after the graded papers were made available, not from when the student picked up her or his paper. See the teaching assistants for regrades of assignments; see the instructor for regrades of exams. Similarly, any missing or mis-recorded grades must be reported within a week of their posting.

Valid HTML 4.01!