Programming Languages and Paradigms

Description

This course places programming into its correct theoretical context with the following topics:

- Elementary Language Theory and Specification.

- Low level implementation of language mechanisms (e.g. pointers, parameters, activation records and method tables).

- Implementation of software structures in both Java and C++.

- A comparison of object models in different object-oriented languages.

- An introduction to non-object programming paradigms, e.g. list processing, functional and declarative languages.

Availability

Callaghan Campus

  • Semester 1 - 2015

Learning Outcomes

1. Use Elementary Language Theory and Specification to describe language features

2. Program using advanced features of object-oriented languages

3. Compare the low level implementation of language mechanisms, such as pointers and references, activation records, method tables, memory allocation/de-allocation and garbage collection, thread activation and communication

4. Compare and analyse alternate parameter passing mechanisms

5. Compare the object models in different object-oriented languages

6. Describe and evaluate advanced programming language features

7. Demonstrate an introductory understanding of concurrency and inter-process communication.

8. Demonstrate an introductory understanding of the area of machine intelligence

9. Describe the operation of non-object programming paradigms, eg. List processing, functional languages, and declarative languages

Content

This course places programming into its correct theoretical context with the following topics:

  • Elementary Language Theory and Specification
  • A second object-oriented language
  • Low level implementation of language mechanisms
  • 1.  pointers
  • 2.  activation records
  • 3.  method tables
  • 4.  memory allocation/de-allocation and garbage collection
  • 5.  process and thread activation and communication
  • Parameter passing mechanisms
  • A comparison of object models in different object-oriented languages.
  • An introduction to advanced programming language features.
  • An introduction to concurrency and inter-process communication.
  • An introduction to non-object programming paradigms, eg.
  • 1.   list processing
  • 2.   functional languages
  • 3.   declarative languages.

Replacing Course(s)

This course replaces the following course(s): COMP6200. Students who have successfully completed COMP6200 are not eligible to enrol in SENG6220.

Assumed Knowledge

SENG6110 Introduction to Software Engineering 1 and SENG6120 Introduction to Software Engineering 2.

Assessment Items

Quiz: Quiz - Class

Formal Examination: Examination: Formal *

Written Assignment: Essays / Written Assignments

Written Assignment: Review

* This assessment has a compulsory requirement.

Compulsory Requirements

In order to pass this course, each student must complete ALL of the following compulsory requirements:

Course Assessment Requirements:

  • Formal Examination: Minimum Grade / Mark Requirement - Students must obtain a specified minimum grade / mark in this assessment item to pass the course. - Students must obtain 40% in the final exam to pass the course.

Contact Hours

Lecture

Face to Face On Campus 3 hour(s) per Week for Full Term

Workshop

Face to Face On Campus 2 hour(s) per Week for Full Term