Section: Home

Units

QUT Course Structure
Programming

Unit code: INB270
Contact hours: 3 per week
Credit points: 12
Information about fees and unit costs

This unit aims to give you a positive introduction to the skills required in solving computational problems and implementing solutions in a programming or scripting language. Although some theoretical aspects of computer programming are introduced briefly, the overall emphasis of the unit is programming practice. The unit emphasises generic programming concepts and related problem-solving strategies. The skills you learn in this unit will be applicable to a wide variety of commonly-used, industrially-significant programming and scripting languages.


Availability
Semester Available
2013 Semester 1 Yes
2013 Semester 2 Yes

Sample subject outline - Semester 1 2013

Note: Subject outlines often change before the semester begins. Below is a sample outline.

Rationale

Computer programs and scripts are the fundamental way in which we tell computers how to solve new problems. All Information Technology students need an appreciation of the skills involved in programming and scripting. Although not all Information Technology graduates will become programmers, all IT professionals need to understand the challenges and constraints that arise during software development.

Developing a program to solve a computational problem involves two steps. Firstly, you must devise an 'algorithmic' solution to the problem, i.e., a sequence of well-defined, unambiguous instructions to follow in order to achieve the desired outcome. Secondly, you must 'code' your solution in a form that a computer can interpret, using an appropriate programming or scripting language. Through numerous worked examples and practical exercises, this unit will give you hands-on practice at both of these skills.

This breadth option unit builds on the knowledge and skill you gained from Building IT Systems (INB104). Successfully completing this unit will provide you with a sound basis for ongoing development of your programming skills and an appreciation of the technical issues that must be considered when working with programming staff.

Aims

This unit aims to give you a positive introduction to the skills required in solving computational problems and implementing solutions in a programming or scripting language. Although some theoretical aspects of computer programming are introduced briefly, the overall emphasis of the unit is programming practice.

The unit emphasises generic programming concepts and related problem-solving strategies. The skills you learn in this unit will be applicable to a wide variety of commonly-used, industrially-significant programming and scripting languages.

Objectives

On completion of this unit you should be able to:

1. Have practical experience in designing algorithmic solutions to computational problems (GC1 & GC2)
2. Demonstrate understanding of the issues relating to effective software development, and the software development lifecycle (GC2 & GC6)
3. Be able to communicate effectively in a software development context (GC3)
4. Have the ability to read and understand given program code (GC1 & GC4)
5. Have practical experience in using programming tools and technical documentation (GC1 & GC4)
6. Have experience working independently on technical problems (GC5)

Key: Graduate Capabilities
GC1 - Knowledge and Skills
GC2 - Critical and Creative Thinking
GC3 - Communication
GC4 - Lifelong Learning
GC5 - Independence and Collaboration
GC6 - Social and Ethical Responsibility
GC7 - Leadership and Change

Content

This unit introduces fundamental techniques for solving computational problems using computer programming or scripting languages. It describes basic programming principles and strategies and how to use them effectively. Major topics covered in the unit include:

  • The basic program development process (requirements definition, algorithm design, coding, testing and debugging)

  • Programs as calculators (expressions, variables, types and functions)

  • Breaking (small) problems down into sequential steps (assignment, sequence and choice)

  • Solving (bigger) problems through repetition (loops, recursion and higher-order iterators)

  • Making programs fault-tolerant (input checking and exception handling)

  • Input and output (user interaction and accessing files)

  • Basic principles for showing that programs are efficient ( growth functions) and correct (test-case design)

  • Basic principles of object-oriented programming (encapsulation, classes, attributes and methods)


  • Though this unit deals mainly with small-scale program development it will provide an essential foundation for later units on large-scale system development or development of software for specialised application domains.

    Approaches to Teaching and Learning

    The unit emphasises a 'hands-on' approach to teaching and learning. Formal contact hours each week comprise:

  • A two-hour 'demonstration-based' lecture, at which new technical concepts will be explained and illustrated with worked examples

  • A two-hour practical, at which you will be required to complete practical exercises based on the lecture material


  • The series of weekly lectures will provide you with the theoretical knowledge, teamed with 'hands-on' practical sessions to provide you with the practical skills required to successfully complete the unit.

    You will be supplied with tasks, exercises and readings each week, which will be available online. It is important that you put time aside each week to pre-read the supplied information, and to practice with the supplied exercises. You will have the opportunity to reflect on your learning and progress via the assessment items and by the use of QUT's Student Portfolio.

    Assessment

    The two programming assignments will be submitted electronically through Blackboard - details will be provided. You are expected to work on the assignments independently, but you can ask for assistance from the teaching staff.You can obtain feedback on your progress throughout the unit through the following mechanisms:

  • Tutors will provide formative feedback during the supervised practicals

  • Solutions to the weekly quiz question will be released on the Blackboard site as well as sample solutions to selected practical exercises.

  • Summative and formative feedback will be provided on the programming assignment

  • Before the final examinations, sample questions will be made available to help you prepare for the upcoming examination and to provide feedback on you progress thus far.

  • Tutors and the unit coordinator will be available during their consultation times or via email to provide individual assistance and feedback on your progress.
  • Assessment name: Project (applied)
    Description: A minor program development exercise
    Relates to objectives: 1 - 6
    Weight: 20%
    Internal or external: Internal
    Group or individual: Individual
    Due date: Week 7

    Assessment name: Examination (Theory)
    Description: Final exam details to be provided
    Relates to objectives: 1 - 6
    Weight: 40%
    Internal or external: Internal
    Group or individual: Individual
    Due date: Exam Period

    Assessment name: Project (applied)
    Description: A major program development exercise
    Relates to objectives: 1-6
    Weight: 40%
    Internal or external: Internal
    Group or individual: Individual
    Due date: Week 12

    Academic Honesty

    QUT is committed to maintaining high academic standards to protect the value of its qualifications. To assist you in assuring the academic integrity of your assessment you are encouraged to make use of the support materials and services available to help you consider and check your assessment items. Important information about the university's approach to academic integrity of assessment is on your unit Blackboard site.

    A breach of academic integrity is regarded as Student Misconduct and can lead to the imposition of penalties.

    Resource materials

    The Blackboard site will provide:

  • Lecture notes

  • Practical documents and resources.

  • Assessment details, specifications and marking criteria.

  • Supporting documentation and references.


  • Required Textbook(s):

  • Doyle, B. (2011), C# Programming: From Problem Analysis to Program Design. 3rd Ed. Boston: Thompson Learning/Course Technology.
  • top
    Risk assessment statement

    There are no unusual health or safety risks associated with this unit.

    Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.

    Last modified: 07-Sep-2012