Subject details

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

  1. use standard C programming language appropriately
  2. discuss software design and development strategies and explore underpinning concepts as related to practical projects using advanced programming techniques
  3. organise separate C source files, with larger C programs in mind, so that they reflect the use of Abstract Data Types wherever required
  4. demonstrate how computer memory works in the context of the C programming language
  5. employ good programming style, standards and practices, during program development using the C language
  6. analyse and solve computing problems, develop suitable algorithmic solutions which are then coded in the C programming language
  7. implement dynamic data structures in a modular fashion in standard C
  8. 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
  9. discuss and use appropriate strategies to develop bug free software including debugging skills, including identifying appropriate debugging tools
  10. adapt programming experience and language knowledge to / from other programming language contexts
  11. make choices in software development and justify those choices
  12. develop further skills for learning in a computer science context, including decision-making about guided design of some software components.
  • Topics

    • Getting started - Data Types & Pointers, C Pitfalls
    • Problem solving and functional abstraction
    • Data abstraction using C - Structured Data Types, Data Abstraction, Further C Pitfalls
    • Pointer types and debugging techniques in C
    • File processing - text and binary files
    • Managing C programs - storage classes, multi-file programs, C pre-processor, development tools
    • Module abstraction and portability in C
    • Dynamic memory management
    • Dynamic data structures
    • Program readability and usability - enumerated types, unions, command-line args, Basic File I/O
    • Generics and reusability
  • Study resources

    • Instructional Methods

      • Disscusion forum/Discussion Board
      • Embedded Multimedia
      • Online Quizzes/Tests
      • Online assignment submission
      • Podcasting/Leacture capture
      • Standard Media
      • Streaming Multimedia
      • Web links
    • Online Materials

      • Resources and Links
      • Quizzes
      • Audio-Video streaming
      • FAQs
      • Printable format materials

Entry Requirements

You are recommended to have completed the following subjects(s) or have equivalent knowledge before starting this unit:

Others

Or have significant programming experience before starting this subject.

Special requirements

  • OtherDetails -

    Unrestricted broadband access to enable working in the C programming environment on RMIT core teaching servers an advantage. Stable broadband connection required to access online learning materials and live chat sessions / recordings.

This subject teaches practical, modern software development practices in the C programming language. This subject extends the study of programming principles developed in pre-requisite 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.

  • Assignment 1 (15%)
  • Invigilated Exam (50%)
  • Assignment 2 (30%)
  • Debugging Exercise (5%)

Textbooks are subject to change within the academic year. Students are advised to purchase their books no earlier than one to two months before the start of a subject.

View textbooks

Related Degrees

undergraduate RMI-CPT-DEG-2018

Bachelor of Information Technology

4 available majors
close
  • Foundation Subjects
  • Core Subjects - Level 1
  • Core Subjects - Level 2
  • Core Subjects - Level 3

undergraduate SWI-CIS-DEG-2018

Bachelor of Business Information Systems

5 available majors
close
  • Core Subjects Information Systems
  • Major in Business Analysis
  • Major in Data Analytics
  • Co-Major in Economics
  • Co-Major in Marketing