[mirror]     (staff) ^server/ courseware/ CSE3322^   <2005< >2007> [timetables]
for staff: [Tcup] [tutorSupport] [30/6/06] [allocate+]

Programming Languages and Implementation, CSE3322, Semester 2, 2006

2006 Summary
year-page exam
2007 sample Qs
2006 exam
Results summary: 109 students at Clayton and .my:
HD 14 (13%), D 25 (23%), C 26 (24%), P 20 (18%), N with complete assessment 7 (6%), N incomplete assessment 14 (13%) (4 no exam, 1 confiscated; 5 one prac, 8 no prac), WH 1 (1%), DEF 2 (2%), --11/2006.
2005 exam
2004 sample exam
2003 sample exam
2002  
2001  
Lectures: Clayton, Mon. 1pm 11/H4, Wed. 9am 11/H4, as of 4/7/2006.
Practical assignments: Read the submission instructions carefully and also see [assessment] below.
Week 1, 17-21 July
L1: History [notes(click)]
L2: ML1 [notes(click)]
Week 2, 24-28 July (tutorial 1)
L3: ML2
L4: ML3
Week 3, 31 July - 4 August (tutorial 2)
L5: ML4
L6: ML5
(practical assignment 1 [click], due Fri 4pm) (see solution [here])
Week 4, 7-11 August
L7: ML6
L8: ML7, e.g., [functors, signatures, structures]
Week 5, 14-18 August (tutorial 3)
L9: ML8, e.g. implementing [laziness] in SML.
L10: ML summary
Week 6, 21-25 August (tutorial 4)
L11: Con1 [notes(click)]
L12: Con2
(practical assignment 2 [click], due Fri 4pm) (see solution [here])
Week 7, 28 August-1 September
L13: Con3
L14: Con4
Week 8, 4-8 September
L15: Imp1 [notes(click)]
L16: Imp2
Week 9, 11-15 September
L17: Imp3
L18: Imp4
Week 10, 18-22 September (tutorial 5)
L19: Imp5. Order modified, check [here]
L20: Imp6
-- semester break, 25-29 September --
Week 11, 2-6 October (tutorial 6)
L21: Imp7
L22: Imp8
(practical assignment 3 [click], due Fri 4pm) (see solution [here])
Week 12, 9-13 October (tutorial 7)
L23: Imp9
L24: Imp10
Week 13, 16-20 October (tutorial 8)
(practical assignment 4 [click] due Mon 4pm) (see solution [here])
L25: [revision]
Check [news (click)].
CSE3322:
2006
 introduction
 people
 assessment
  A1&solA2&sol,
  A3&sol, A4&sol
 prereqs
 textbooks
notes,
 ml,Cs,imp,
 revn
e.g. code
sample exams:
 2006 (after!)
 2005
 2004,soln
 2003,soln
handbook
news
newsgroup[1][2]
tutes tba
General:
school

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 (.au),
Dr. Lim Tong Ming (.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]
www.csse.monash.edu.au/courseware/cse3322/2006/index.shtml

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 4 Aug (5%),   [solution].
Assignment 2: advanced ML: Fri 25 Aug (10%),   [solution].
Assignment 3: implementation-1 : Fri 6 Oct (10%),   [solution].
Assignment 4: implementation-2 : Mon 16 Oct (5%),   [solution].

Assignments must be received on or before the due date and time. Late submissions will be penalised at a 5% penalty per day or part thereof. 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 must apply for an extension before the due date. Medical certificates or certification supporting your application will be required.

Assignment Preparation Guide

Unless otherwise advised, your assignment marks for the unit may be posted on the 3rd-year notice board, and/or on a unit web-page, next to your student-ID. Your name will not be on the list, only your ID and assignment mark. If you do not wish your mark and student ID to appear on this list please contact the general office by Tuesday of week-3 of semester to make alternative arrangements.

Programs required by an assignment must work according to the given specifications, and must be commented in a clear and thorough way.

If possible you should get your assignment marked by the tutor in one of the optional tutorial classes for the unit. If you cannot attend a tutorial, or if the assignment requires it, then you must submit your assignment electronically using /cs/cc/bin/submit. Carefully follow all instructions in the assigment description.

Furthermore, your submission must include the following declaration at the top of the submitted file(s):

Line-1:
Line-2:
Line-3:
...etc.
(* #YOUR_NAME#, #YOUR_ID_NUMBER#, #YOUR_MONASH_EMAIL#,
Monash University, Student Declaration for CSE3322 Submission.
I declare that this submission is all my own work and has not been copied from any other source without attribution. I acknowledge that severe penalties exist for any copying of code without attribution including, but not limited to, a mark of zero for this assessment. *)

If any of these requirements is not satisfied, your assignment will not be marked and you will receive zero for the assignment.

Plagiarism

It is important that your solutions to the assignment questions be your own work. It is perfectly acceptable to seek help and advice when completing the assignments, but this must not be taken to the point where what is submitted is in part someone else's work. Please note that, since the assignments are used in assessing your final grade in this subject, the following Faculty policy applies.

"Students should note that cheating is regarded as a very serious offence which is likely to lead not only to failure in the subject concerned but also to additional penalties including exclusion. Students should carefully note that the taking of any unauthorised material into examinations such as notes and unauthorised dictionaries will be regarded as cheating. Students should also note that essays, assignments and other work are generally understood to be the student's own work and where such work is identical with, or similar to, another student's work, an assumption of cheating may arise. Where students wish to undertake work in conjunction with other students, it is suggested that the matter be discussed with the lecturer concerned." Faculty of Computing and Information Technology Handbook

Please consult the Faculty web site for the policy on Academic Cheating.

Prerequisite knowledge

The following topics must 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.
A.V. Aho, R. Sethi and J.D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.
D. Watt. Programming Language Design Concepts. Wiley, 2004.
A.W. Appel. Modern compiler implementation in ML. Cambridge U. 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 U. 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 U. 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.

Introductory Information

babel
Just a few languages.

Welcome to CSE3322 Programming Languages and Implementation. The following guide is given so that you can have a productive semester and so that you can complete the unit successfully.

Subject Structure

In this subject we will:
Overview the programming language landscape and the four major language paradigms --procedural, object-oriented, functional and logic-- and examine functional programming in detail;
Discuss implementation of programming languages and compiler-generation tools, such as flex and bison, which facilitate this process.

The lectures will cover the following information:

In addition there may be one or two revision lectures.


Lloyd Allison, B. Computer Science, B. Software Engineering, B. Science (Computer Science), & related double degrees, Faculty of Information Technology (Bldg#75, Clayton), Monash University, Australia 3800.
Created with "vi (Linux & Solaris)",  charset=iso-8859-1.  Last modified Thursday, 21-Dec-2006 16:18:05 EST, www.csse.monash.edu.au/courseware/cse3322/2006/index.shtml, fetched Sunday, 08-Nov-2009 07:22:35 GMT.