Course Title: Advanced Programming Techniques

Part A: Course Overview

Course Title: Advanced Programming Techniques

Credit Points: 12.00


Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC1076

City Campus

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 1 2006,
Sem 2 2006,
Sem 1 2007,
Sem 2 2007,
Sem 1 2008,
Sem 2 2008,
Sem 2 2009,
Sem 1 2010,
Sem 2 2010,
Sem 1 2011,
Sem 2 2011,
Sem 1 2012,
Sem 2 2012,
Sem 1 2013,
Sem 2 2013,
Sem 1 2014,
Sem 2 2014,
Summer2015,
Sem 2 2015,
Sem 1 2016

COSC1076

City Campus

Undergraduate

140H Computer Science & Information Technology

Face-to-Face or Internet

Sem 1 2009

COSC1076

City Campus

Undergraduate

171H School of Science

Face-to-Face

Sem 1 2017,
Sem 2 2017

COSC2082

RMIT University Vietnam

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Viet2 2007,
Viet3 2007,
Viet2 2008,
Viet3 2008,
Viet1 2009,
Viet2 2009,
Viet3 2009,
Viet1 2010,
Viet2 2010,
Viet3 2010,
Viet1 2011,
Viet2 2011,
Viet3 2011,
Viet1 2012,
Viet2 2012,
Viet3 2012,
Viet1 2013,
Viet2 2013,
Viet3 2013

COSC2207

City Campus

Postgraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 1 2006,
Sem 1 2007,
Sem 2 2007,
Sem 1 2008,
Sem 2 2008,
Sem 1 2009,
Sem 2 2009,
Sem 1 2010,
Sem 2 2010,
Sem 1 2011,
Sem 2 2011,
Sem 1 2012,
Sem 2 2012,
Sem 1 2013,
Sem 2 2013,
Summer2015,
Sem 2 2015

COSC2207

City Campus

Postgraduate

171H School of Science

Face-to-Face

Sem 1 2017

COSC2233

Taylors College KL

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Offsh 3 10,
Offsh 1 11

Course Coordinator: Professor Xiaodong Li

Course Coordinator Phone: +61 3 9925 9585

Course Coordinator Email: xiaodong.li@rmit.edu.au

Course Coordinator Location: 14.8.14B

Course Coordinator Availability: By appointment


Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Prerequisites: 

COSC1295 Advanced Programming 

OR 

COSC1073 / COSC2081 / COSC2231 / COSC2362 Programming 1 

OR 

COSC1283 / COSC1284 / COSC2451 / COSC2497 Programming Techniques

Note it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.

For your information the RMIT Course Requisites policy can be found at Course requisites – 7.29.1.6: http://www.rmit.edu.au/browse;ID=twx09y07zi1c     


Course Description

This course teaches practical, modern software development practices in the C programming language. This course extends the study of programming principles developed in pre-requisite courses, including use of defensive programming, debugging, testing, coding standards and practices and software design principles. This course may serve as a foundation for further studies in Computer Science and Software Engineering.   


Objectives/Learning Outcomes/Capability Development

Program Learning Outcomes

This course contributes to the following program learning outcomes in

o   BP094 Bachelor of Computer Science, BP096 Bachelor of Software Engineering,

o   BP215 Bachelor of Information Technology (Games and Graphics Programming),

o   BH091 Bachelor of Engineering (Computer and Network Engineering) (Honours)/Bachelor of Computer Science,

o   BH107 Bachelor of Engineering (Telecommunications Engineering) (Honours)

and is an option course in several postgraduate programs:

  • Enabling Knowledge:You will gain skills as you apply knowledge effectively in diverse contexts.
  • Critical Analysis:You will learn to accurately and objectively examine and consider computer science and information technology (IT) topics, evidence, or situations, in particular to analyse and model requirements and constraints for the purpose of designing and implementing software artefacts and IT systems
  • Problem Solving:Your capability to analyse problems and synthesise suitable solutions will be extended as you learn to: design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.
  • Responsibility: You will be required to accept responsibility for your own learning and make informed decisions about judging and adopting appropriate behaviour in professional and social situations. This includes accepting the responsibility for independent life-long learning. Specifically, you will learn to: effectively apply relevant standards, ethical considerations, and an understanding of legal and privacy issues to designing software applications and IT systems.   

 


Course Learning Outcomes

Upon successful completion of this course you should be able to:

  1. use various aspects of standard C programming language appropriately such as basic language constructs, Abstract Data Types, dynamic memory management, dynamic data structures, file management, and managing large projects containing multiple source files
  2. discuss software design and development strategies and explore underpinning concepts as related to practical projects using advanced programming techniques
  3. analyse and solve computing problems, develop suitable algorithmic solutions which are then coded in the C programming language while employing good programing style, standards and practices
  4. implement small to medium programs of varying complexity, using the most commonly used features of the C language, whilst also adhering to standard (ISO) language features
  5. discuss and use appropriate strategies to develop bug free software including debugging skills, including identifying appropriate debugging tools
  6. adapt programming experience and language knowledge to / from other programming language contexts, make choices in software development and justify those choices, and develop further skills for learning in a computer science context, including decision-making about guided design of some software components.

Please note that postgraduate students are expected to demonstrate deeper knowledge and higher level skills than undergraduate students.    


Overview of Learning Activities

The learning activities included in this course include:

  • Lectures outline the core concepts underpinning the use of the C programming language. Source code examples are provided and these examples offer valuable preparation toward assessable tasks.
  • Tutorials and Labs focus on practical analysis and problem-solving exercises aimed at building your general software design and development skills, which all contribute to the skills expected in assessed activities. These tutorials and labs allow exploration of concepts with teaching staff and other students, and give feedback opportunities on your progress and understanding. Following along and engaging with learning exercises in tutorial and labs vastly improves your chances of understanding the course subject matter and your overall performance in the course.
  • Assessment preparation provides the opportunity to demonstrate your understanding of the C programming language and memory management by implementing practical programming tasks.
  • Private study should include working through the content as presented in classes and other learning materials, and gaining practice at solving conceptual and technical problems. It is essential to keep up to date with provided class exercises as well as doing your own broader reading on the topics covered.   

 

A total of 120 hours of study is expected during this course, comprising:

Teacher-directed hours (48 hours): lectures, tutorials and laboratory sessions. Each week there will be 2 hours of lecture and tutorial plus 2 hours of computer laboratory work. You are encouraged to participate during lectures through asking questions, commenting on the lecture material based on your own experiences and through presenting solutions to written exercises.

Student-directed hours (72 hours): You are expected to be self-directed, studying independently outside class.    

 


Overview of Learning Resources

You will make extensive use of computer laboratories and relevant software provided by the School. You will be able to access course information and learning materials through MyRMIT and may be provided with copies of additional materials in class or via email. Lists of relevant reference texts, resources in the library and freely accessible Internet sites will be provided.  

 

 


Overview of Assessment

Note: This course has no hurdle requirements.

The assessment for this course comprises practical work involving the development of computer programs for two assignments (20% + 30%). The assessment also includes a final exam (50%).

Across all assessment tasks you will be required to demonstrate your analysis, problem solving, and software development skills in the C programming language. This requires you to understand both the syntax of the language and the meaning of the code as it would run on a computer.

Assessment tasks

Assessment Task 1:  Written Assignment 1 (20%)

This assessment task supports CLOs 1-4

Assessment Task 2: Written Assignment 2 (30%)

This assessment task supports CLOs 1-6

Assessment Task 3: Written Examination (50%)

This assessment task supports CLOs 1-6

Please note that postgraduate students are expected to demonstrate deeper knowledge and higher level skills than undergraduate students.