Note: This unit is an archived version! See Overview tab for delivered versions.

COMP5212: Software Construction (2013 - Semester 1)

Download UoS Outline

Unit: COMP5212: Software Construction (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Postgraduate
Faculty/School: School of Computer Science
Unit Coordinator/s: Professor Kay, Judy
Session options: Semester 1
Versions for this Unit:
Site(s) for this Unit: http://www.it.usyd.edu.au/~comp5212
Campus: Camperdown/Darlington
Pre-Requisites: None.
Brief Handbook Description: This is a programming unit of study that is designed to enable students, coming from any background, to learn to program in the C language, with emphasis on the individual producing code that works correctly. as a gentler start to C itself, the unit starts with Python, introducing the same core ideas. Once students have mastered this, we move to C, tackling the same deep ideas in the context of the much more difficult programming in C.

Topics include: coding simple dynamic data structures (linked lists); debugging; use of Unix tools for managing programming activities such as testing; learning from manual entries for standard library functions and Unix commands.

On completion of this unit, students will have acquired programming skills and techniques applicable to the development of software used in areas such as networking, computer engineering, language translation, and operating systems.
Assumed Knowledge: Some prior knowledge of programming is preferred; for students without programming experience, extra assistance is given in the first 6 weeks of the semester.
Lecturer/s: Professor Kay, Judy
Associate Professor Kummerfeld, Bob
Timetable: COMP5212 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 2.00 1 13
2 Laboratory 1.00 1 13
T&L Activities: The 3 hours of class time is a flexible mix of lecture and laboratory.

Lecture: This is mainly interactive, with students using their laptops to do small activities during this time.

Laboratory: The lab work aims to help each student consolidate material presented in lectures. Activities include development of small programs, quizes and practice sessions.

Attributes listed here represent the key course goals (see Course Map tab) designated for this unit. The list below describes how these attributes are developed through practice in the unit. See Learning Outcomes and Assessment tabs for details of how these attributes are assessed.

Attribute Development Method Attribute Developed
Design and implementation of a program to solve a specified problem. Design (Level 3)
fundamental skills in programming Engineering/IT Specialisation (Level 3)
Writing quality code following a systematic process. Professional Conduct (Level 3)

For explanation of attributes and levels see Engineering & IT Graduate Outcomes Table.

Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.

Engineering/IT Specialisation (Level 3)
1. Ability to write simple programs in C.
2. Ability to correctly implement standard linked list data structures.
3. Experience of the Unix operating system and the ability to use simple scripts in testing.
4. Ability to write correct code in C that manages memory.
5. understanding common memory related errors in C and how to avoid them
6. Ability to use library modules and functions in both C.
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Assignment No 40.00 Multiple Weeks 1, 2, 3, 4, 5, 6,
2 Quiz No 50.00 Multiple Weeks 1, 2, 3, 4, 5, 6,
3 Lab No 10.00 Multiple Weeks 1, 2, 3, 4, 5, 6,
Assessment Description: Assignment: There are two assignments, one for each half of the semester, and handed in at the lab session.

Lab Skills: Lab sessions include a short programming problem to be completed during the session.

Quiz: Two short exams held during the semester.
Grading:
Grade Type Description
Standards Based Assessment Final grades in this unit are awarded at levels of HD for High Distinction, DI (previously D) for Distinction, CR for Credit, PS (previously P) for Pass and FA (previously F) for Fail as defined by University of Sydney Assessment Policy. Details of the Assessment Policy are available on the Policies website at http://sydney.edu.au/policies . Standards for grades in individual assessment tasks and the summative method for obtaining a final mark in the unit will be set out in a marking guide supplied by the unit coordinator.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of IT may reproduce it entirely, may provide a copy to another member of faculty, and/or to an external plagiarism checking service or in-house computer program and may also maintain a copy of the assignment for future checking purposes and/or allow an external service to do so.

Other policies

All university policies can be found at http://sydney.edu.au/policy

Policies and request forms for the Faculty of Engineering and IT can be found on the forms and policies page of the faculty website at http://sydney.edu.au/engineering/forms
Link to Reading List: http://There are links on the class web site to online textbooks and other resources.
Online Course Content: http://www.it.usyd.edu.au/~comp5212
Note on Resources: Lecture notes will be made available each week and are linked from the web site.

For the second half of the subject, there are flipped lectures where students "attend" lectures at the class2go site.

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp

Week Description
Week 1 Introduction, objects, variables, arithmetic
Week 2 Input/output, if and for statements
Week 3 Functions, iteration, lists, strings
Week 4 Modules, Object Oriented programming
Week 5 Intro to Linux
Week 6 Python to C
Week 7 Control structures
Week 8 Consolidation of python and C
Week 9 Mid semester quiz, Assignment 1 demo
Week 10 Dynamic data structures
Week 11 Functions, scope, memory models
Week 12 Shell, preprocessor and libraries.
Week 13 End of semester quiz, review, perspectives

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Master of Professional Engineering (Electrical) 2013, 2014
Master of Professional Engineering (Power) 2013, 2014
Master of Professional Engineering (Telecommunications) 2013, 2014
Software Engineering (till 2014) 2010, 2011, 2012, 2013, 2014
Software Engineering / Arts 2011, 2012, 2013, 2014
Software Engineering / Commerce 2010, 2011, 2012, 2013, 2014
Software Engineering / Medical Science 2011, 2012, 2013, 2014
Software Engineering / Project Management 2012, 2013, 2014
Software Engineering / Science 2011, 2012, 2013, 2014
Graduate Diploma in Computing (till 2014) 2012, 2013

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
Design (Level 3) Yes 0%
Engineering/IT Specialisation (Level 3) Yes 100.02%
Professional Conduct (Level 3) Yes 0%

These goals are selected from Engineering & IT Graduate Outcomes Table which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.