ECS 140A Programming Languages

Winter 2016

Lecture: TR 10:30a-11:50a 1001 Giedt
Discussion 1: M 5:10p-6:00p 146 Olson
Discussion 2: T 2:10p-3:00p 204 Art
Discussion 3: W 9:00a-9:50a 146 Olson

Instructor: Cindy Rubio-González
E-mail Address: crubio AT ucdavis DOT edu
Office Hours: TR 12:00p-1:00p
    3039 Kemper Hall

TA Name E-mail Address Office Hours *
Janis Fredick jmfredrick AT ucdavis DOT edu Tue 6:00p-8:00p
    Wed 5:00p-7:00p
Samanwita Pal spal AT ucdavis DOT edu Mon 6:00p-8:00p
    Thu 7:00p-9:00p
Sandeep Rasoori srasoori AT ucdavis DOT edu Wed 7:00p-9:00p
    Thu 5:00p-7:00p
Zihan Zhao hqzhao AT ucdavis DOT edu Thu 6:00p-8:00p

* TA office hours will be held in 55 Kemper Hall, except for Wednesday's office hour 5-7pm, which will be held in 53 Kemper Hall.

Course Objectives


(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 required: The Java Programming Language by Arnold, Gosling, and Holmes (AGH), Common LispCraft by Wilensky, and Programming in Prolog (Fifth Edition) by Clocksin and Mellish.

Tentative Course Schedule

Date Topic Readings Homework
1/5 Course Overview PL Chapter 1: Introduction
    PL Chapter 2: Language Design Criteria
    Java Chapter 1: A Quick Tour
1/7 Syntax, Parsing PL Chapter 6: Syntax
    PL Chapter 7: Basic Semantics
    Java Chapter 6: Enumeration Types
Homework #1
1/12 Syntax, Parsing No additional reading assignments
1/14 Binding and Scope PL Chapter 9 (9.1-9.4): Control I -- Expressions and Statements
    Java Chapter 7: Tokens, Variables, and Values
    Homework #1 due 11:59pm Thu Jan 14th
Homework #2
1/19 Binding and Scope No additional reading assignments
1/21 Types PL Chapter 8: Data Types
    PL Chapter 11: Abstract Data Types and Modules
1/26 Types No additional reading assignments
1/28 Modularity No additional reading assignments
    Homework #2 due 11:59pm Fri Jan 29th
Homework #3
2/2 Object-Oriented Programming and C++ PL Chapter 5: Object-Oriented Programming
    Java Chapter 2: Classes and Objects
    Java Chapter 3: Extending Classes
2/4 Java No additional reading assignments
2/9 Java No additional reading assignments
2/11 Functional Programming PL Chapter 3: Functional Programming
    Lisp Chapters: 1-9
    Homework #3 due 11:59pm Thu Feb 11th
Homework #4
2/18 Functional Programming No additional reading assignments
2/23 Functional Programming No additional reading assignments
2/25 Functional Programming/
    Logic Programming
PL Chapter 4: Logic Programming
    Prolog Chapters: 1-4, 6-8
    Homework #4 due 11:59pm Thu Feb 25th
Homework #5
3/1 Logic Programming No additional reading assignments
3/3 Logic Programming No additional reading assignments
3/8 Logic Programming No additional reading assignments
3/10 TBD Homework #5 due 11:59pm Thu Mar 10th
3/19 FINAL EXAM Final Exam 10:30am-12:30pm
    1001 Giedt (same lecture room)


This course is based on the Programming Language course designed by Prof. Zhendong Su.