Tentative Schedule, subject to change
|
|
|
|
text |
|
to do, comments |
1 |
Thu |
8/29 |
Introduction |
ch 1, 2 |
|
read: The 100 Year Language, compilers, IDE, virtual machine, bytecode, PL Timeline, APL
view: how language fans see each other
see Also: Teach yourself..., Worse is Better, a reference to Harlan, and a reference to Go
|
2 |
Tue |
9/3 |
Some history |
ch 2 |
|
There is some important terminology in Chapter 1
Figure 1.2 shows how a PL can be said to create a virtual machine, in some sense
Figure 2.1 gives the impression that PL design is evolving over time, and that's true!
Popularity of programming languages is illustrated by http://www.tiobe.com/tiobe_index |
3 |
Thu |
9/5 |
Syntax |
ch 3 |
|
read: sammet, Steele essay, WP article, programming paradigms
view: Steele interview
Homework 1: Problems 3,4,6,7, 11 and 13 from the end of Chapter 3. Hardcopy due in class Thursday 9/19.
|
4 |
Tue |
9/10 |
Syntax |
ch 3 |
|
Nicholas on travel, Prof. Finin covers class
see Also:
According to the UMBC Academic Calendar, the last day to add a class is September 11
|
5 |
Thu |
9/12 |
Syntax |
ch 3 |
|
Nicholas on travel, Prof. Finin covers class
read: operator precedence, BNF, BNF examples, EBNF, ebnf.pdf, CFG, parsing, Chomsky hierarchy
seeAlso:
BNF and EBNF: What are they and how do they work
|
6 |
Tue |
9/17 |
Semantics |
ch 4 |
|
read: semantics, attribute grammar, operational semantics, denotational semantics, axiomatic semantics, Verification, proofs.pdf,
Knuth's paper on attribute grammars (pdf)
|
7 |
Thu |
9/19 |
Lexical and Syntactic Analysis |
ch 4 |
|
Homework 1 due today
read: Regular expressions, regular grammars
|
8 |
Tue |
9/24 |
Lexical and Syntactic Analysis |
ch 4 |
|
read: compact guide to lex and yacc
|
9 |
Thu |
9/26 |
Parsing |
ch 4 |
|
try: flex example
Homework 2: Problems 14, 23, and 25 from the end of Chapter 3. Hardcopy due in class Thursday 10/3.
|
10 |
Tue |
10/1 |
Parsing |
ch 4 |
|
read: parsing, top-down, recursive descent, bottom-up, ll(k), lr(k)
Do people know about virtual machines? I can demo VirtualBox...
Be advised that I'm skipping some of the compiler material in Chapter 4, and we'll study a bit of C and some C++ before doing functional programming.
|
11 |
Thu |
10/3 |
Some C++ |
ch 4 |
|
We're done with parsing for now.
Full-time college students who register by October 1 can attend the CyberMaryland conference for FREE! To register, go to http://www.fbcinc.com/e/cybermdconference/default.aspx
Students must use the following case-sensitive code to receive complimentary registration: UMstudent.
Wikibooks features C Programming. (pdf) as of today.
The C++ handout is called cppcs.cpp
|
12 |
Tue |
10/8 |
More C++ |
|
|
Class is cancelled today so students who wish to attend CyberMaryland may do so.
In lieu of today's class, please watch this very recent video on C++ 11 by Bjarne Stroustrup sometime before Thursday 10/10.
do: download PLT scheme, and/or try mzscheme on gl
read: on using DrScheme , Guide:1
seeAlso: Teach yourself scheme
|
13 |
Thu |
10/10 |
More C++ |
|
|
read: on using DrScheme , Guide:1, Guide:2, using scheme on gl
view: xkcd
For more on C++, see Stroustrup's recent overview (pdf)
|
14 |
Tue |
10/15 |
|
ch 15 |
|
read: Guide:3, Guide:4, scope, closure
|
15 |
Thu |
10/17 |
|
ch 15 |
|
The Scheme Cheat Sheet is available here, and you can get it from my directory on GL using the command
cp /afs/umbc.edu/users/n/i/nicholas/pub/331/cheatSheet.ss .
Assignment due Thursday 10/24: end of chapter 15 exercises 1, 2, 4, 5 and 6 from page 724. You'll need to submit your Scheme program(s) and a typescript that shows that they work. You can list the programs in the typescript if you like, or zip the files together. Send the program+output to me nicholas@umbc.edu and cc the grader Alex garba1@umbc.edu
read: currying, Haskell,
run: cfg1.ss, cfg2.ss, cfg.ss, fib.ss
view: xkcd |
16 |
Tue |
10/22 |
|
|
|
There are many old midterm and final exams on the web site.
Topics for the exam may include these.
|
17 |
Thu |
10/24 |
Haskell |
ch 15 |
|
|
18 |
Tue |
10/29 |
|
ch 15 |
|
view: DrScheme v4 tour
read: functional programming, lambda calculus, |
19 |
Thu |
10/31 |
mid term |
|
|
read: tail recursion, lazy evaluation, delay,variable
study: everything |
20 |
Tue |
11/5 |
Haskell |
|
|
Graham Hutton's Haskell slides are here, and also
http://www.cs.nott.ac.uk/~gmh/book.html
Read: Perl, R, R tutorial
code: MyHash.r
|
21 |
Thu |
11/7 |
More Haskell |
|
|
read: Currying,
The Haskell Cheat Sheet is available as source (.hs)
and the handout (.pdf)
|
22 |
Tue |
11/12 |
More Haskell |
|
streams |
Went over the midterm exam.
More Haskell
|
23 |
Thu |
11/14 |
Still more Haskell |
|
|
An updated cheat sheet is available (hs, pdf)
More of Hutton's slides
Assign the Haskell Project
|
24 |
Tue |
11/19 |
Not much more Haskell |
|
|
More from Hutton, including Chapters 6, 7 and maybe 10!
There is a main Haskell web site.
Finish Haskell |
|
Thu |
11/21 |
Scripting Languages |
|
|
Start Perl
There is a Perl cheat sheet (.pl) and handout (.pdf)
and some slides (pdf)
|
25 |
Tue |
11/26 |
more Perl |
|
|
Assign Perl exercises.
The Perl library at CPAN is extensive.
Some Perl exercises , due on Tuesday 12/10, extra credit if turned in by Thursday 12/5.
|
26 |
Thu |
11/28 |
Thanksgiving Day |
|
|
|
27 |
Tue |
12/3 |
Perl I |
|
Perl |
finish the Perl cheat sheet
|
28 |
Thu |
12/5 |
Leftovers |
|
Python |
Ooh! I now have a Python 3 cheat sheet! (cs.py). Here's the typescript file from its execution. Check out the Python web site.
|
29 |
Tue |
12/10 |
Review |
|
|
it's snowing! to review for the final, I recommend:
- that you focus most of your time on material we covered since the midterm.
- make sure you understand what's on the Python, Perl, Haskell and Scheme cheat sheets, and bring those to the exam. I will NOT have extra copies.
- I won't ask you to write Python code, but you may have to read it well enough to understand a Python code fragment
- ask yourself how you'd do the exercises from the end of the object-oriented programming and functional programming chapters in the textbook. That's where I might go to get ideas for exam questions.
- there'll be some T/F questions, covering any topic from the course. I won't ask much in the way of history questions.
- I have been known to recycle questions from previous semesters, usually with some small modifications.
- As of Thursday 12/12, two final exams from recent semesters have been added to the web site.
|
-- |
Tue |
12/17 |
final exam 1-3pm |
|
|
study: old exams |
|