Semester 2, 2022 Toowoomba On-campus | |
Units : | 1 |
Faculty or Section : | Faculty of Health, Engineering and Sciences |
School or Department : | School of Mathematics, Physics & Computing |
Grading basis : | Graded |
Course fee schedule : | /current-students/administration/fees/fee-schedules |
Staffing
Examiner:
Requisites
Pre-requisite: CSC5020
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 endpoint 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.
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 endpoint 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.
Course learning outcomes
On completion of this course students should be able to:
- Explain complex programming syntax and structure using formal language tools, reflecting deep understanding of programming language syntax and semantics;
- Compare and contrast a wide range of properties of programming languages, with a particular focus on imperative language features;
- Evaluate the difference between the major programming language paradigms, and 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
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
Description | Group Assessment |
Weighting (%) | Course learning outcomes |
---|---|---|---|
Problem Solving 1 | No | 10 | 1 |
Problem Solving 2 | No | 20 | 2 |
Problem Solving 3 | No | 20 | 3 |
Report | No | 50 | 1,2,3 |