You are on page 1of 6

Lecture Notes and Handouts for

ECS 140A
Programming Languages
University of California, Davis
Copyright 2014 Ronald A. Olsson

Preliminaries go over handout


office hours.
TA is ??
4 unit course.
3 hours of lectures
1 hour of discussion section.
will complement and reinforce lectures.
will use interchangeably with lectures.
Prerequisites
ECS 50 or EEC 70; ECS 60 Ill assume you did well; important
you
understand
mapping of programming language features to assembly
(and machine) code
layout of activation records
passing of parameters
know data structure concepts and applications
can deal with moderately sized programs
are facile with recursion
know a reasonable amount of C+ +
use of CSIF UNIX machines.

ECS140A

Programming Languages

00-1

lecture notes will free you from lots of writing.


Texts.
All recommended but see syllabus for what that really means.
Activities.
subject to change.
exams will test
general concepts from lecture
and what you should have learned from doing assignments.
Grading.
Absolute rather than relative.
grades based on your performance, not my impressions.
E-NWS (Enrolled No Work Submitted) as of Fall 2012, no longer a
possible grade see syllabus for details.
Attendance.
Lateness not enough time for you to or us to mess around
no late assignments.
no makeup or early exams; plan to be here for the final.
Cheating and Plagiarism. OK to talk in general about approaches or algorithms. OK to work together in groups on homeworks. However, exams
are entirely individual efforts.
Computer Usage.

ECS140A

Programming Languages

00-2

Schedule
tentative might add or delete topics or assignments.
should give you an idea of what we are going to cover in this course.
order of material:
try to build on what you already know. I.e., you know lots about languages, so not entirely new, but will see interrelationships and variations, generalization not previously seen. Also will see some new
paradigms.
readings
given on the schedule so I dont forget
I tend to assign entire chapters rather than sections. Part of course is
to learn what and how to read when confronted with new language. I
suggest you make two passes: one to get overview, second to focus on
important areas; then, when need to do assignment, have general idea
and know where to refer for specific topic.
Lectures will cover some of reading, and some other stuff; readings
used to reinforce, complement lectures. However, read all, since its
good to round out your exposure to various ideas, and some reading
might appear on exams. And READ BEFORE LECTURES!
start reading IMMEDIATELY

ECS140A

Programming Languages

00-3

Note on Workload
significant programming load (also will be tested on exams)
need to start assignments early
do reading on language X before I start lecturing on language X
will need to start Y assignment even though havent complete discussing all of Y in lecture; thats feasible because assignments are
given in parts.
Note that must develop assignments in parts, in the order given, and
turn in all parts.
relative workload throughout quarter

ECS140A

Programming Languages

00-4

Course Objectives
Main Goal: study Principles of Programming Languages.
kinds of languages
parameter passing techniques
data abstraction mechanisms
type systems and checking
scoping
control structures
lots more
Exposure to different languages, what they are good for; commonalities
and differences among the different languages and their features
Exposure to terminology, although be warned that some terminology is
used differently by different folks.
Understand why languages are the way they are and tradeoffs in language
design, e.g., flexibility vs. reliability (Cs switch statement needing break).
Learn some new programming skills/techniques and improve existing
skills/techniques.
Gain some programming experience. Wont become an expert in any of
the language. E.g., should not say Im a Java expert; can say that you
have had some experience with it, and that you would have little problem
using it or most any other language.
As such, lectures will cover mostly concepts. Will draw examples from
many different languages. Discussion section will fill in details of languages; it will also cover lecture material in different forms. Bring your
questions there.

ECS140A

Programming Languages

00-5

You might also like