CECS Professional Skills Mapping

COMP1100 — Programming as Problem Solving

code: COMP1100
name: Programming as Problem Solving
unit value: 6
description: This course is the first of three core computer science courses on programming. It introduces students to the field of computer science as a discipline for solving problems through computation and provides the foundation for more advanced courses on programming and software
development. Data structures and algorithms, the key concepts at the core of computer science, receive their first treatment in this course.
The course covers functional programming in depth, developing the core idea of functions operating on data structures. Students learn the organization of programming languages using types, how programs are evaluated (reduction), functional composition, recursive functions, algebraic data types, pattern matching, parametric polymorphism, higher-order functions. Students also gain exposure to asymptotic analysis of basic data structures, abstract data types, modules, laziness, and streams. The functional paradigm demonstrates elegant solutions to many programming problems. The course also introduces students to standard productivity tools for software development that will be used throughout the course and remainder of the computer science degree. These include distributed software revision control systems. The Advanced version of this course covers these topics in more depth, allowing students to deepen their understanding and experience.
P&C: https://programsandcourses.anu.edu.au/course/COMP1100
course learning outcomes:
  1. apply fundamental programming concepts, using a functional programming language, to solve problems
  2. understand basic types and the benefits of static typing
  3. describe, understand and evolve programs, via documentation, testing and debugging
  4. discuss, use and apply the fundamentals of data structures, algorithms, and design; create, implement and debug algorithms for solving problems, including recursively, using divide-and-conquer, and via decomposition
  5. describe basic algorithmic analysis for simple algorithms; determine appropriate algorithmic approaches to a problem for example bruteforce, greedy, divide-and-conquer, recursive backtracking, heuristic, dynamic programming
  6. understand and apply the concepts of parametric and ad-hoc polymorphism
assessment:
  1. Assignments (37%)
  2. Exams (60%)
  3. Lab Participation (3%)

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.6123
  1. apply fundamental programming concepts, using a functional programming language, to solve problems
  1. understand basic types and the benefits of static typing
  1. describe, understand and evolve programs, via documentation, testing and debugging
  1. discuss, use and apply the fundamentals of data structures, algorithms, and design; create, implement and debug algorithms for solving problems, including recursively, using divide-and-conquer, and via decomposition
  1. describe basic algorithmic analysis for simple algorithms; determine appropriate algorithmic approaches to a problem for example bruteforce, greedy, divide-and-conquer, recursive backtracking, heuristic, dynamic programming
  1. understand and apply the concepts of parametric and ad-hoc polymorphism

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