精东传媒app

UniSQ Logo
The current and official versions of the course specifications are available on the web at .
Please consult the web for updates that may occur during the year.

CSC3403 Comparative Programming Languages

Semester 1, 2023 Online
Units : 1
School or Department : School of Mathematics, Physics & Computing
Grading basis : Graded
Course fee schedule : /current-students/administration/fees/fee-schedules

Staffing

Course Coordinator:

Requisites

Pre-req: CSC2408; and
Pre-req or Co-req: CSC2402; or
Students must be enrolled in one of the following Programs: GDTI or GCSC or GCEN or METC or MCOT or MCTE or MCOP or MPIT
Enrolment is not permitted in CSC3403 if CIS3001 has been previously completed

Overview

Today the number of available programming languages is large and continues to increase, creating a challenge in choose the right tool for a task. However, programming languages are more alike than they are different. To master new languages with minimum time and effort, professional developers need to know the basic structures, semantics and elements that are common to all programming languages. They also need to understand the design principles of a small number of paradigms that effectively group languages. This advanced course forms an end-point in the formal investigation into programming, and provides the skills for practitioners to continue to grow their expertise over a large range of present and future languages.

This course addresses the principles of programming languages. The course emphasizes the interpretation of the structure and the semantics of programming languages. Students examines the major elements of languages such as types, objects, names, scopes, expressions, functions, procedures, parameters and control structures. Run-time storage management is also covered in detail. Students will demonstrate a deep understanding of the semantics and the implementation of programming languages.

Course learning outcomes

On successful completion of this course students should be able to:

  1. Use the formal language tools to describe the programming language syntax and semantics;
  2. Compare and contrast a wide range of properties of programming languages, with a particular focus on imperative language features;
  3. Apply the concepts of functional programming to solve relevant software problems;
  4. Evaluate the difference between the major programming language paradigms, and be able to contextually select the paradigm best suited to solve a particular problem.

Topics

Description Weighting(%)
1. Language Evolution and Evaluation 5.00
2. Formal Description of Languages; Parsing 15.00
3. Common elements of imperative languages (variables, expressions, sub-programs etc) 20.00
4. Interpretation and compilation; typing systems 5.00
5. Prototype-based languages versus class-based languages 5.00
6. Functional Programming 40.00
7. Logical and other programming paradigms 10.00

Text and materials required to be purchased or accessed

Sebesta, R.W 2019, Concepts of Programming Languages, 12th edn, Pearson Higher Ed, USA.
(ISBN 9780135102268 or alternatively eBook version from .)

Student workload expectations

To do well in this subject, students are expected to commit approximately 10 hours per week including class contact hours, independent study, and all assessment tasks. If you are undertaking additional activities, which may include placements and residential schools, the weekly workload hours may vary.

Assessment details

Approach Type Description Group
Assessment
Weighting (%) Course learning outcomes
Assignments Written Problem Solving No 15 1,2
Assignments Practical Tech and/or scntific artefact 1 No 20 3
Assignments Practical Tech and/or scntific artefact 2 No 20 3
Examinations Non-invigilated Time limited online examinatn No 45 1,2,3
Date printed 9 February 2024