Professional Documents
Culture Documents
ECS 140A
Programming Languages
University of California, Davis
Copyright 2014 Ronald A. Olsson
ECS140A
Programming Languages
00-1
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