CECS Professional Skills Mapping

COMP6710 — Structured Programming

code: COMP6710
name: Structured Programming
unit value: 6
description: This course introduces students to the fundamentals of software development with a substantial group software project at its center. Major foci are data structures, object oriented programming, and an introduction to software engineering. Students will extend their understanding of software productivity tools, using revision control for group work, and be introduced to test-driven development as an integral part of software construction.

Students will be introduced to an industrial strength object oriented programming language, extending their understanding of the imperative programming paradigm with a solid grounding in object oriented programming. Inheritance, polymorphism, and parametric types are taught, as well as concepts such as boxing and auto boxing. The important role of standard libraries and their collection types will be emphasized. GUI programming will be introduced.

The course includes a deeper treatment of data structures, using hash tables, trees and lists, which are used to provide concrete implementations of abstract library collection types. The theory of data structures and their time and space complexity will thus be tied to the practice of using standard collections such as those offered by object oriented languages.

The foundations of software engineering including: major development paradigms (such as big plan up front, agile, and formal methods), risk are introduced.
P&C: https://programsandcourses.anu.edu.au/course/COMP6710
course learning outcomes:
  1. Apply fundamental programming concepts, using an object oriented programming language, to solve substantial problems; understand basic types and the benefits of static typing for object oriented programs
  2. Distinguish language definition from implementation, syntax and parsing from semantics and evaluation, understand how program state maps to memory (globals, local, heap), and understand the implications of heap reachability for memory management
  3. Develop, understand, test, and evolve substantial programs using a modern IDE, and associated configuration tools; understand common coding errors and how to avoid them; practice fundamental defensive programming; perform individual and team program reviews; use established design principles to organize a software system
  4. Use, implement, and evaluate fundamental data structures and associated algorithms; create, implement, debug, and evaluate algorithms for solving substantial problems, including recursive, using divide-and-conquer and via decomposition; select and implement an abstract data type for a given problem
  5. Perform analysis of simple algorithms; select and use appropriate algorithmic approaches to solve problems (brute-force, divide-and-conquer, recursive backtracking, heuristic)
  6. Understand the basics of event-driven programming, and its use in constructing GUIs
  7. Deliver and evaluate basic technical documents, presentations, and group interactions, using appropriate tools
assessment:
  1. Lab test (5%)
  2. Individual Assignment (5%)
  3. Mid-Semester Exam (5%)
  4. Group Assignment (30%)
  5. Class Engagement (5%)
  6. Final Exam (50%)

Mapped learning outcomes

learning outcome1. KNOWLEDGE AND SKILL BASE2. ENGINEERING APPLICATION ABILITY3. PROFESSIONAL AND PERSONAL ATTRIBUTESassessment tasks
1.11.21.31.41.51.62.12.22.32.43.13.23.33.43.53.6123456
  1. Apply fundamental programming concepts, using an object oriented programming language, to solve substantial problems; understand basic types and the benefits of static typing for object oriented programs
  1. Distinguish language definition from implementation, syntax and parsing from semantics and evaluation, understand how program state maps to memory (globals, local, heap), and understand the implications of heap reachability for memory management
  1. Develop, understand, test, and evolve substantial programs using a modern IDE, and associated configuration tools; understand common coding errors and how to avoid them; practice fundamental defensive programming; perform individual and team program reviews; use established design principles to organize a software system
  1. Use, implement, and evaluate fundamental data structures and associated algorithms; create, implement, debug, and evaluate algorithms for solving substantial problems, including recursive, using divide-and-conquer and via decomposition; select and implement an abstract data type for a given problem
  1. Perform analysis of simple algorithms; select and use appropriate algorithmic approaches to solve problems (brute-force, divide-and-conquer, recursive backtracking, heuristic)
  1. Understand the basics of event-driven programming, and its use in constructing GUIs
  1. Deliver and evaluate basic technical documents, presentations, and group interactions, using appropriate tools

Course contribution towards the Engineers Australia Stage 1 Competency Standard

This table depicts the relative contribution of this course towards the Engineers Australia Stage 1 Competency Standard. Note that this illustration is indicative only, and may not take into account any recent changes to the course. You are advised to review the official course page on P&C for current information..

1. KNOWLEDGE AND SKILL BASE
1.1
1.2
 
1.3
 
1.4
1.5
1.6
 
2. ENGINEERING APPLICATION ABILITY
2.1
 
2.2
 
2.3
 
2.4
 
3. PROFESSIONAL AND PERSONAL ATTRIBUTES
3.1
 
3.2
 
3.3
 
3.4
3.5
 
3.6
 

Engineers Australia Stage 1 Competency Standard — summary

1. KNOWLEDGE AND SKILL BASE
1.1Comprehensive, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline.
1.2Conceptual understanding of the, mathematics, numerical analysis, statistics, and computer and information sciences which underpin the engineering discipline.
1.3In depth understanding of specialist bodies of knowledge within the engineering discipline.
1.4Discernment of knowledge development and research directions within the engineering discipline.
1.5Knowledge of contextual factors impacting the engineering discipline.
1.6Understanding of the scope, principles, norms, accountabilities and bounds of contemporary engineering practice in the engineering discipline.
2. ENGINEERING APPLICATION ABILITY
2.1Application of established engineering methods to complex engineering problem solving.
2.2Fluent application of engineering techniques, tools and resources.
2.3Application of systematic engineering synthesis and design processes.
2.4Application of systematic approaches to the conduct and management of engineering projects.
3. PROFESSIONAL AND PERSONAL ATTRIBUTES
3.1Ethical conduct and professional accountability.
3.2Effective oral and written communication in professional and lay domains.
3.3Creative, innovative and pro-active demeanour.
3.4Professional use and management of information.
3.5Orderly management of self, and professional conduct.
3.6Effective team membership and team leadership.

Updated:  18 February 2021/ Responsible Officer:  Dean, CECS/ Page Contact:  CECS Academic Education Services