Programming Languages and Paradigms

Description

This course places the programming from year 1 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 the programming from year 1 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): COMP2200. Students who have successfully completed COMP2200 are not eligible to enrol in SENG2200.

Assumed Knowledge

SENG1110 Introduction to Software Engineering 1 and SENG1120 Introduction to Software Engineering 2.

Assessment Items

Written Assignment: Assignment 1

Written Assignment: Assignment 2

Written Assignment: Assignment 3

Quiz: Quiz

Formal Examination: Formal Examination *

* 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