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