Skip to content | Change text size

M O N A T A R

InfoTech Unit Avatar

CSE3322 Programming Languages and Implementation

Chief Examiner

This field records the Chief Examiner for unit approval purposes. It does not publish, and can only be edited by Faculty Office staff

To update the published Chief Examiner, you will need to update the Faculty Information/Contact Person field below.

NB: This view restricted to entries modified on or after 19990401000000

Unit Code, Name, Abbreviation

CSE3322 Programming Languages and Implementation (14 Jun 2004, 3:41pm) [PLI (14 Jun 2004, 3:42pm)]

Reasons for Introduction

Reasons for Introduction (14 Jun 2004, 3:48pm)

PLI was introduced as part of Bachelor Computer Science curriculum revision replacing the 4 point subject CSC3220 Programming Languages and Implementation. It has essentially the same curriculum but reflecting the change to 6 points covers the material in more detail and has more assignment work.

Role of Unit (14 Jun 2004, 3:54pm)

The unit is part of the optional third year core of the Bachelor of Computer Science. It covers the major programming language paradigms and the implementation of programming languages.

Objectives

Knowledge and Understanding (Cognitive Domain Objectives) (15 Jun 2004, 3:42pm)

  1. Knowledge of the history of programming languages and the reasons for their introduction and an understanding that programming languages and programming language paradigms have evolved and will almost certainly change in the future.
  2. Knowledge and comprehension of programming language paradigms including imperative, object-oriented, functional and logical. Comprehension that the choice of programming language affects the ease of programming. The ability to evaluate whether a particular paradigm or programming language is well-suited for a particular programming application.
  3. Knowledge of the core aspects of modern functional programming languages
    1. Functions as first class objects
    2. Lists, tuples and pattern-matching
    3. User defined datatypes
    4. Polymorphic types; Hindley-Milner type inference; type classes
    5. Higher-order functions; Currying
    6. Eager and lazy function evaluation
  4. Knowledge of a particular functional programming language, such as ML, which exemplifies most of these aspects and the ability to apply it to solve moderate sized programming tasks.
  5. Knowledge of the main issues in programming language design and comprehension of the various design alternatives:
    1. Variables: Lifetime; Garbage Collection; Binding mechanisms; Scope
    2. Types and type systems: Subtypes; Kinds of Polymorphism; Coercion; Checking and Inference
    3. Abstraction mechanisms: Procedural abstraction including parameter passing mechanisms; Abstract data types; Modules; Objects
  6. Knowledge of the main approaches to programming language implementation:interpretation vs compilation; the use of virtual/abstract machines and comprehension of their relative advantages and disadvantages.
  7. Knowledge of the main phases in a compiler and their purpose. Knowledge and comprehension of:
    1. Lexical analysis and its theoretical basis regular expressions
    2. Syntax analysis and its theoretical basis context free grammars
    3. Different approaches to parsing: Top down vs bottom up parsing; Recursive descent parsing; Table-driven predictive parsing; Table-driven bottom-up parsing and LR parsing
    4. Error handling
    5. Semantic analysis and its theoretical basis, i.e. attribute grammars
    6. Type inference
    7. Common program optimisations
    8. Code generation including the run-time system;
    9. Compilation of object-oriented languages.
  8. Knowledge of compiler generation tools such as flex and bison and the ability to use these to create simple compilation/translation programs.

Attitudes, Values and Beliefs (Affective Domain Objectives) (15 Jun 2004, 3:25pm)

  1. Learn to value the important role that theory (in this case formal language theory and type theory) can play in the development of practical software applications (in this case compilers and other data translation applications.).
  2. Become an informed consumer of programming languages, choosing the right programming language for a particular task and and have a willingness to consider new programming languages.

Unit Content

Summary (15 Jun 2004, 3:55pm)

The four main programming language paradigms: imperative, functional, logic and object oriented. Example languages and their applications. The implementation of programming languages by means of interpreters and translators will be discussed. This will include parsing techniques, compiler construction and implementation techniques for language features which are paradigm specific.

Recommended Reading (17 May 2007, 4:34pm)

Recommended references

* J.D. Ullman.

Elements of ML Programming (2nd Ed.). Prentice Hall, 1998.
* D. Watt.
Programming Language Design Concepts, John Wiley, 2004.
* A.V. Aho, M. S. Lam, R. Sethi and J.D. Ullman.
Compilers: Principles, Techniques and Tools. Second Edition. Addison-Wesley, 2007.

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.

Teaching Methods

Mode (15 Jun 2004, 5:03pm)

on-campus

Strategies of Teaching (15 Jun 2004, 5:16pm)

  1. Lectures
  2. Assignments
  3. (Optional) practice classes

Teaching Methods Relationship to Objectives (15 Jun 2004, 5:19pm)

  1. Lectures: C1-8, A9-10
  2. Assignments: C4, C8
  3. Practice classes: C3-5, C7-8

Assessment

Strategies of Assessment (16 Jun 2004, 10:51am)

  1. Assignments (30%)
  2. Exam (70%)

Assessment Relationship to Objectives (16 Jun 2004, 10:54am)

  1. Assignments: C4, C8
  2. Exam: C1-8

Workloads

Workload Requirement (16 Jun 2004, 10:58am)

  1. lectures: 2 hours per week
  2. practice class: 0.5 hours per week
  3. assignments: 4 hours per week
  4. private study (revision and homework questions): 5.5 hours per week

Resource Requirements

Lecture Requirements (16 Jun 2004, 10:59am)

Hi-tech lecture theatre for 2 hours per week

Tutorial Requirements (16 Jun 2004, 11:00am)

None

Laboratory Requirements (16 Jun 2004, 11:02am)

Need labs for one optional practice class every fortnight

Staff Requirements (16 Jun 2004, 11:08am)

On average per week: 2 hours lecturing, 10 hours preparation, 4 hours consultation, 6 hours of practice classes (including preparation), 17 hours of marking-- about 1 EAS

Software Requirements (19 Jun 2007, 12:44pm)

Teaching Responsibility (Callista Entry) (16 Jun 2004, 11:09am)

School of CSSE

Prerequisites

Prerequisite Units (16 Jun 2004, 11:13am)

  1. CSE2303 or CSC2030,
  2. CSE2304 or CSC2040, and
  3. CSE2305 or CSC2050

Prerequisite Knowledge (16 Jun 2004, 11:15am)

  1. Advanced C programming including recursion
  2. Elementary data structures including lists and binary trees
  3. Familiarity with an object-oriented programming language
  4. Deterministic and non-determinstic finite state automata and regular expressions
  5. Context-free grammars

Prohibitions (16 Jun 2004, 11:16am)

CFR3160, CSC3220, SFT2207, SFT3207

Level (16 Jun 2004, 11:19am)

3

Frequency of Offering (16 Jun 2004, 11:17am)

once per year

Location of Offering (16 Jun 2004, 11:19am)

Clayton Second semester 2004 (Day) and Malaysia Second semester 2004 (Day)

Faculty Information

Proposer

Maria Garcia De La Banda

Approvals

School:
Faculty Education Committee:
Faculty Board:
ADT:
Faculty Manager:
Dean's Advisory Council:
Other:

Version History

21 May 2004 Maria Garcia De La Banda Initial Draft; modified UnitContent/RecommendedReading; modified ResourceReqs/SoftwareReqs
16 Jun 2004 Kimbal Marriott Kim Marriott completed avatar entry for subject as part of the review: modified Assessment/Strategies; modified Assessment/Objectives; modified Workload/WorkHours; modified ResourceReqs/LectureReqs; modified ResourceReqs/TutorialReqs; modified ResourceReqs/LabReqs; modified ResourceReqs/StaffReqs; modified ResourceReqs/StaffReqs; modified ResourceReqs/SchoolReqs; modified Prerequisites/PreReqUnits; modified Prerequisites/PreReqKnowledge; modified Prohibitions; modified Frequency; modified LocationOfOffering; modified Level
23 Nov 2004 Bernd Meyer modified ResourceReqs/SoftwareReqs
17 Oct 2005 David Sole Added Software requrirements template
21 Oct 2005 Lloyd Allison modified UnitContent/RecommendedReading; modified ResourceReqs/SoftwareReqs; modified ResourceReqs/SoftwareReqs; modified UnitContent/RecommendedReading
24 Oct 2005 David Sole Updated requirements template to new format
19 Jun 2007 Michelle Kinsman modified ResourceReqs/SoftwareReqs
19 Jun 2007 Michelle Kinsman modified ResourceReqs/SoftwareReqs
19 Jun 2007 Caitlin Slattery format changes
19 Jun 2007 Michelle Kinsman modified ResourceReqs/SoftwareReqs
19 Jun 2007 Caitlin Slattery modified UnitObjectives/ObjText; modified UnitObjectives/ObjSocial

This version: