^server / courseware / CSE3322^   <2004< >2006>

CSE3322 Programming Languages and Implementation, Semester 2, 2005

Lectures: The [timetable] shows Monday 1pm (11/H4) and Wednesday 9am (11/H4).
Practical assignments: All practical assignments are due 6pm Fridays. Read the submission instructions carefully and also see [assessment] below.
Week 1, 18-22 July
L1: History [printable L1 notes] (Radio mike u/s, feedback, reported.)
(Straw poll of languages used by >=1 student before starting cse3322: Basic, C, C++, C#, Cobol, Eiffel, Forth, Haskell, Java, Javascript, Joy, Lisp, Modula-II, Pascal, Perl, Prolog, Python, & special purpose cg, php, SQL. Interest only: [Bletchley Park], [Colossus], [computer50.org].)
L2: ML1 [printable ML notes] A note of [tutorials].
Week 2, 25-29 July (tutorial 1)[*] NB. Tutorials are voluntary.
L3: ML2
L4: ML3 to pp.45 ...
Week 3, 1-5 August (tutorial 2)
L5: ... pp.46-51, then ML4 to pp.65
L6: ... pp.66-69, then ML5
(practical [assignment 1] (IPD in ML))
Week 4, 8-12 August
L7: ML6
L8: ML7
Week 5, 15-19 August (tutorial 3)
L9: ML8
L10: ML summary
Week 6, 22-26 August (tutorial 4)
L11: Concepts_2 [printable concepts notes] covered pp.1-17, continued...
L12: ...pp.18-22, then Concepts_3 pp.23-41, continued...
(practical [assignment 2] (Differentiate in ML))
Week 7, 29 August-2 September
L13: ...pp.42-47, then Concepts_4
L14: Concepts_5
Week 8, 5-9 September
L15: Imp1 Click here for complete lecture notes on Programming Language Implementation
L16: Imp2
Week 9, 12-16 September
L17: Imp3
L18: Imp4
Week 10, 19-23 September (tutorial 5)
L19: Imp5
L20: Imp6
-- semester break, 26-30 September --
Tutorials will continue!

Week 11, 3-7 October (tutorial 6)
L21: Imp7
L22: Imp8
(practical [assignment 3] (angle calc., ML-lex, rec. descent))
Now due 5pm Friday 14th of October. This is a deadline extension of 1 week due to a slight delay in the lecture schedule.
Week 12, 10-14 October (tutorial 7)
L23: Imp9
L24: Imp10
Week 13, 17-21 October (tutorial 8)
L25: revision
L26: revision
(practical [assignment 4] LR parse tables, no programming)
Note that there won't be a late penalty for this assignment.
CSE3322:
2005
introduction
people
assessment
prereqs
textbooks
notes,ml,Cs,imp
e.g. code
sample exams:
 2004,soln
 2003,soln
handbook
news
newsgroup[1][2]
tutes
General:
csse
 sem2 units
 timetable
 help room

Web:
wikipedia
APL
gcc,C,C++
haskell
java
pascal
retro.comp.
smlnj.org
  FAQ
  interactive
  error msgs

Local:
LA
 ProgLang
  Glossary
  Algol 60
 FP
  λ
   intro.
   e.g.
  Haskell
  SML
   SML-97
 Prolog
ML -- the functional programming language ML (SML).
Con -- Programming language concepts.
Imp -- Implementation of programming languages.

People

Dr. Lloyd Allison, 75/127, [timetable]
Dr. Bernd Meyer, 75/148
Dr. Lim Tong Ming (.my),
Email: lloyd / berndm AT mail.csse.monash.edu.au, & lim.tong.ming AT infotech.monash.edu.my,
NB. Mail must contain "CSE3322" in the subject line and come from your monash email account or it may be misdirected or treated as spam.
Tutes, Clayton
Cameron McCormack, office 75/153.

Assessment

Final exam (70%), assignments (30%)
Exam: Closed book, 3 hours.
Practical work:
The assignments will be available through the unit's home page.
Assignment 1: basic ML: Fri 5 Aug (5%)
Assignment 2: advanced ML: Fri 26 Aug (10%)
Assignment 3: Fri 14 Oct (10%)
Assignment 3 is now due 5pm Fri Oct 14. This is a 1 week deadline extension due to a slight delay in the lecture schedule.
Assignment 4: Fri 21 Oct (5%)
Note that there is no late penalty on this assignment.

Assignments should be received on or before the due date and time. Late submissions will be penalised at the rate of 5% per day penalty rate. They will not be accepted more than one week after the due date. If you believe that your assignment will be delayed because of circumstances beyond your control such as illness you should apply for an extension before the due date. Medical certificates or certification supporting your application may be required.

Prerequisite knowledge

The following topics should already be known, they will not be covered again in CSE3322.
  1. Elementary data structures including lists and binary trees.
  2. Familiarity with an object-oriented programming language.
  3. Deterministic and non-determinstic finite state automata.
Completion of CSE2303, CSE2304, and CSE2305 or equivalent subjects, is also required.

Textbooks

Four main textbooks for this subject:
J.D. Ullman. Elements of ML Programming (2nd Ed.). Prentice Hall, 1998.
D. Watt. Programming Language Design Concepts. Wiley, 2004.
A.V. Aho, R. Sethi and J.D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.
A.W. Appel. Modern compiler implementation in ML. Cambridge University Press, 1998.
 
Additional reading:
M. Felleisen and D. Friedman. The Little MLer. MIT Press, 1997.
L.C. Paulson. ML for the Working Programmer (2nd Ed.). Cambridge University Press, 1996.
T.W.Pratt and M.V. Zelkowitz. Programming Languages: Design and Implementation (4th Ed). Prentice Hall, 2001.
J.C. Mitchell. Concepts in Programming Languages. Cambridge University Press, 2003.
R. Sethi. Programming Languages: Concepts and Constructs. Addison-Wesley, 1989.
R. Wilhelm and D. Maurer. Compiler Design. Addison-Wesley, 1995.

"Here is a language [Algol-60] so far ahead of its time, that it was not only an improvement on its predecessors, but also on on nearly all its successors." -- C. A. R. Tony Hoare, `Hints on Programming Language Design', Stanford AI Lab., Memo AIM-224, STAN-CS-73-403, Dec. 1973.


2005, Bernd Meyer and Lloyd Allison, School of Computer Science and Software Engineering, Monash University, Australia 3800.
Created with "vi (Linux & Solaris)",  charset=iso-8859-1.  Last modified Thursday, 15-Jun-2006 17:04:10 EST. www.csse.monash.edu.au/courseware/cse3322/2005/index.html, fetched Sunday, 08-Nov-2009 06:43:28 GMT