Course Title: Programming Principles 2A

Part A: Course Overview

Course Title: Programming Principles 2A

Credit Points: 12.00

Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC1097

Bundoora Campus

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 1 2006

COSC1098

City Campus

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 1 2006,
Sem 2 2006

COSC2085

RMIT University Vietnam

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Viet2 2009,
Viet1 2010,
Viet3 2010

COSC2138

Open Learning Australia

Non Award

171H School of Science

Distance / Correspondence

OUASP4UG20

Course Coordinator: Dr Timothy Wiley

Course Coordinator Phone: +61 3 9925 5202

Course Coordinator Email: timothy.wiley@rmit.edu.au

Course Coordinator Location: 014.11.013

Course Coordinator Availability: by appointment


Pre-requisite Courses and Assumed Knowledge and Capabilities

Programming 1


Course Description

This subject teaches practical, modern software development practices in the C programming language. This subject extends the study of programming principles developed in prerequisite subjects, including use of defensive programming, debugging, testing, coding standards and practices and software design principles. This subject may serve as a foundation for further studies in computer science and software engineering.


Objectives/Learning Outcomes/Capability Development

N/A


Course Learning Outcomes (CLOs):

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

CLO1: Use a UNIX shell environment to enable typical software development practices. Demonstrate skills in the use of UNIX environment including basic file management, text editing and compilation and running of C Programs.

CLO2: Discuss, Analyse and Use the C Programming language to solve programming problems. Explore core concepts as related to both theoretical and practical applications of software design using the C Programming language. These concepts include:

  • Organise separate C source files, with larger C programs in mind
  • Design and use Abstract Data Types
  • implement dynamic data structures in a modular fashion in standard C
  • Demonstrate how computer memory works in the context of the C programming language
  • Employ good programming style, standards and practices, in developing development programs using the C language
  • Develop algorithmic solutions to programming problems which are then coded in the C programming language
  • Make choices in software development and justify those choices

 

CLO3: 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.

 

CLO4: Discuss and use appropriate strategies to develop bug free software including debugging skills, including identifying appropriate debugging tools

 

CLO5: Develop skills for further self-directed learning in the general context of software engineering and computer science, including decision-making about guided design of software; Adapt programming experience and language knowledge to and from other programming language contexts.


Overview of Learning Activities

The learning activities included in this course:

Lectures: Lectures outline the core programming concepts and skills. These concepts, and skills techniques are implemented in the C programming language and the use of the UNIX environment. Source code examples are provided. The lecture content provides a valuable foundation for self-directed learning, and course-work including tutorials and assessable tasks.

Tutorials: Tutorials focus on practical analysis and problem-solving exercises to further development the course programming concepts and skills. Tutorials allow exploration of concepts with teaching staff and other students, and give feedback opportunities on your progress and understanding. Engaging with learning exercises in tutorials vastly improves your understanding of the course subject matter and your overall performance in the course.

Assessments: Assessed actives provides the opportunity to further develop and demonstrate your understanding of the skill and concepts taught in this course. These will be demonstrated in the C programming language and UNIX environment through practical programming tasks, and written evaluation and analysis of code.

Self-directed Exercises: Self-directed private learning and study is essential. This should include completing the weekly coding exercises, working through the content as presented in classes and other learning materials outside of allocated course-work hours. It is essential to keep up to date with provided class exercises as well as doing your own broader reading on the topics covered. 


Overview of Learning Resources

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.

You will require unrestricted broadband access to enable working in the UNIX and C programming environment on RMIT teaching servers. Stable broadband connection required to access online learning materials and live chat sessions/recordings.

This course is delivered in a UNIX environment and you be required to learn and utilise UNIX tools and utilities,.


Overview of Assessment

This course has no hurdle requirements.

Assessment tasks

Assignment 1: (15%). This task supports CLOs: 1-4

Invigilated Exam: (50%). This task supports CLOs: 1-4

Assignment 2: (30%). This task supports CLOs: 1-5

Debugging Exercise: (5%). This task supports CLOs: 1, 2, 4