CS3305 Programming Languages

Course Aims & Objectives:
This module aims to provide a comparative study of the fundamental principles and mechanisms of major programming paradigms.

Upon completion, students should be able to:

  1. evaluate the applicability and effectiveness of major programming languages in problem solving tasks.
  2. undertake software development using representative programming languages exemplifying the object-oriented and logic programming paradigms.
  3. develop a conceptual foundation in programming language syntax and semantics.

Units: 3

Level: B3

Medium of Instruction: English

Keyword Syllabus:
Programming paradigms. Historical perspectives. Object-oriented programming: encapsulation; information hiding; inheritance; polymorphism. Garbage collection. Exception-handling. The structure of programs: lexical structure; syntactic structure; scoping; parameter passing; language implementation. Logic programming: facts and rules; unification; backtracking; controlling execution; list processing; applications.

Teaching Pattern:
Duration of course: 1 semester
Current mix of lecture/tutorial/laboratory, other: 2 hrs lecture; 1 hr tutorial.

Assessment Pattern:
Examination duration: 2 hours
Percentage distribution of marks for coursework, examination, other: 30% CW; 70% Exam.
Grading pattern: Standard (A+AA-...F)
For a student to pass the course, at least 30% of the maximum mark for the examination must be obtained.

Pre-requisite(s):
CS2302 /or
CS2468

Pre-cursor(s): Nil

Equivalent Course(s):
*CS3365 Programming Languages

Related Links
Department of Computer Science