Open Universities Australia 13 6736 Favourites
Open Universities Australia
  • Study online
    • Explore study online
    • Architecture & construction
    • Art & creative design
    • Business & management
    • Community services & care
    • Education & teaching
    • Engineering
    • Health & medical science
    • Humanities & social science
    • IT & computer science
    • Law & justice
    • Media & communication
    • Psychology & mental health
    • Science
    • Search all courses
    • Study types
    • Undergraduate degrees
    • Postgraduate courses
    • Pathways and pre-university
    • Single subjects
    • Short courses
    • Choosing a course
    • Help me choose a course
    • Chat with a student advisor
    • Compare courses
    • Degrees vs single subjects
  • How OUA works
  • Your studies
    • Getting started
    • Key dates
    • Minimum age requirements
    • How to enrol
    • Applying for credit
    • Study planning
    • Textbooks & study materials
    • Computer requirements
    • Exams
    • International students
    • Financial options
    • Student loans
    • Study allowances
    • Fees
    • Support
    • Getting advice
    • Study preparation
    • Disability support
    • Smarthinking
    • Special Circumstances
    • COVID-19 & Study
  • Advice
13 6736
Favourites
Sign in
  • OUA
  • Subjects

Undergraduate RMI-CPT225-2021

Advanced Programming Techniques

From

$993 $1,243

Your upfront cost: $0

International student?

Duration

13 weeks

Study method

100% online

Available loans

  • HECS-HELP
  • FEE-HELP

Assessments

100% online

Prior study

Required

Study terms

  • 31 May 2021
  • 29 Nov 2021
RMIT University logo
Australia's largest dual-sector institute, offering both TAFE and higher education, RMIT University proudly delivers work-related education and practical research relevant to current business and community needs. More than 60,000 students study with RMIT, and many of their degrees are available through Open Universities Australia.

QS RANKING 2021

15

Times Higher Education Ranking 2021

23

  • 2021

Subject details

What you'll learn

Upon successful completion of this subject, students should be able to:

  1. Analyse and Solve computing problems; Design and Develop suitable algorithmic solutions using software concepts and skills both (a) introduced in this course, and (b) taught in pre-requisite courses; Implement and Code the algorithmic solutions in the C++ programming language.
  2. Discuss and Analyse software design and development strategies; Make and Justify choices in software design and development; Explore underpinning concepts as related to both theoretical and practical applications of software design and development using advanced programming techniques.
  3. Discuss, Analyse, and Use appropriate strategies to develop error-free software including static code analysis, modern debugging skills and practices, and C++ debugging tools.
  4. Implement small to medium software programs of varying complexity; Demonstrate and Adhere to good programming style, and modern standards and practices; Appropriately Use typical features of the C++ language include basic language constructs, abstract data types, encapsulation and polymorphism, dynamic memory management, dynamic data structures, file management, and managing large projects containing multiple source files; Adhere to the C++11/C++14/C++17 ISO language definition and features.
  5. 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.
  6. Demonstrate and Adhere to the standards and practice of Professionalism and Ethics, such as described in the ACS Core Body of Knowledge (CBOK) for ICT Professionals.
Topics covered
    • Week #1 Module 1: Getting Started with C++
    • Introduction, Course Road-map, Keyboard I/O, Arrays, Functions, Types
    • Week #2 Module 2: String, Classes, Pointers & References
    • Character arrays, Classes, Pointers, References, Arrays Pointers
    • Week #3 Module 3: Dynamic Memory Management I
    • Dynamic Memory Allocation
    • Week #4 Module 4: Managing and Debugging C++ Programs
    • Unit Testing, GDB, Valgrind, Multi-file programs, Makefiles
    • Week #5 Module 5: Version Control & Program I/O
    • Version Control (git), Files, Command line arguments
    • Week #6 Module 6: Abstraction & Containers
    • ADTs, Structs, C++ STL, auto type
    • Week #7 Module 7: Error Free Software
    • Asserts, Programming methodologies, C++ language features
    • Week #8 Module 8: Dynamic Memory Management II
    • Object Ownership, smart pointers, move semantics
    • Week #9 Module 9: Data Structures & Recursion
    • Linked Lists, Recursion
    • Week #10 Module 10: Advanced Polymorphism and Typing
    • Enumerated Types, Generics, Templates, Operator Overloading
    • Week #11 Module 11: Advanced Topics
    • Potential Topics include: Lambda functions, macros, iterations, multi-threading
    • Week #12: Revision
Entry requirements

You won't be able to enrol into this subject if you've already successfully completed or currently enrolled in the following subject(s) as they are considered anti-requisites due to the similarity of the content.

  • RMI-CPT323-Object-Oriented Programming in C++
  • RMI-CPT220-Programming Principles 2A

You must have successfully completed the following subject(s) before starting this subject:

RMI-CPT121-Programming 1 ;

Others

All students will be expected to have solid practical experience in and theoretical grasp of underlying programming concepts such as compiling / running programs, I/O, program structure, control structures, procedural and object-oriented programming, programming design including interpreting program requirements and is expected of all students entering into this course. For students who have had a significant break between prior programming studies and undertaking this option course it is strongly recommended that you undertake thorough revision of the learning materials covered in your prior studies, including getting some practice in with programming, prior to commencing this course. A basic understanding of UNIX operating system use and commands may also be required and tutorials on working in a UNIX operating system will be provided in the course learning materials.

Special requirements

  • SoftwareDetails - Access to a program such as putty or macOS terminal to enable connection to remote UNIX Server. Other software such as compilation / runtime / library packages, code editors or an Integrated Development Environments (IDE) may also be required (check learning materials for more information).
Description

This course teaches programming principles, skills and practices for modern software development, continuing the study of software design and development in pre-requisite courses. Concepts in this include dynamic memory management, advanced typing and polymorphism, automated build systems, defensive programming, debugging, testing, and adherence to modern coding standards and practices. This course uses the C++ programming language for the practical implementation and practice of these concepts. This course may serve as a foundation for further studies in Information Technology, Computer Science and Software Engineering.


Assessments

The assessment for this course comprises practical work involving the development and analysis of computer programs for two assignments. The assessment also includes a final exam. Across all assessment tasks you will be required to demonstrate your analysis, problem solving, and software development concepts and skills. You will demonstrate this using the C++ programming language.

  • Memory Management with Pointers (15%)
  • Group Project (45%)
  • Mid-Semester Test (20%)
  • Final Exam (20%)
Textbooks

Current study term: 30 May 21 to 29 Aug 21)

Check the learning management system (LMS) of your university for textbook details.

Next study term: 28 Nov 21 to 27 Feb 22

Check the learning management system (LMS) of your university for textbook details.

Related degrees

Undergraduate RMI-CPT-DEG-2021

Bachelor of Information Technology

Tell us a little about yourself

Open Universities Australia
Facebook Twitter Instagram LinkedIn YouTube
  • Contact us
  • About us
  • OUA Blog
  • Media centre
  • Partnerships
  • Universities
  • Your career
  • FAQ and glossary
  • Work with us
  • Courses
  • MBA online
  • COVID-19 and study
  • Partner Hub
  • Open2Study

Open Universities Australia is a not-for-profit organisation.
© Open Universities Australia 2021. All rights reserved.

  • Cookies
  • Copyright
  • Disclaimer
  • Privacy
  • Terms of use
  • Site map