Note: This unit version is currently being edited and is subject to change!

INFO1110: Introduction to Programming (2018 - Semester 1)

Download UoS Outline

Unit: INFO1110: Introduction to Programming (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Junior
Faculty/School: School of Information Technologies
Unit Coordinator/s: Dr Stavrakakis, John
Session options: Semester 1, Semester 2, Int July
Versions for this Unit:
Campus: Camperdown/Darlington
Pre-Requisites: None.
Prohibitions: INFO1103 OR INFO1105 OR INFO1905.
Brief Handbook Description: This unit is an essential starting point for software developers, IT consultants, and computer scientists to build their understanding of principle computer operation. Students will obtain knowledge and skills with procedural programming. Crucial concepts include defining data types, control flow, iteration, functions, recursion, the model of addressable memory. Students will be able to reinterpret a general problem into a computer problem, and use their understanding of the computer model to develop source code. This unit trains students with software development process, including skills of testing and debugging. It is a prerequisite for more advanced programming languages, systems programming, computer security and high performance computing.
Assumed Knowledge: None.
Lecturer/s: Dr Stavrakakis, John
Tutor/s: Tyson Thomas

Jonathan Du

Frank Zhu

Madeleine Wagner

Brody Franks

Alison Wong

Vincey Au

James Hardwick

David Vo

Eve Martin Jones

Yuhao Wu

Nahian-Al Hasan

Rachel Dowavic

Kelly Stewart

Vincent Thong Nguyen

Monica Lee

Jonathan Chung

Shenin Faizah

Charles Christopher Hyland

Jose Alejandro Vera Ospina

Yining Guo

Amy Cao

Meng Zhou
Timetable: INFO1110 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 1.00 1 13
2 Laboratory 2.00 1 13
3 Independent Study 8.00 13
4 Seminar 1.00 1 13
T&L Activities: About the seminar:

- Attendance is not compulsory

- It will not contain new content needed to complete this course

- Seminar has value to those who need more help with reviewing material and programming exercises

Attributes listed here represent the key course goals (see Course Map tab) designated for this unit. The list below describes how these attributes are developed through practice in the unit. See Learning Outcomes and Assessment tabs for details of how these attributes are assessed.

Attribute Development Method Attribute Developed
Algorithm-based approach to problem solving Design (Level 2)
Basic procedural programming and use of algorithms Engineering/IT Specialisation (Level 1)
Problem solving will require locating and using information effectively and efficiently. Information Seeking (Level 1)
Lab work will encourage collaboration, team work and communication. Communication (Level 1)

For explanation of attributes and levels see Engineering & IT Graduate Outcomes Table.

Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.

Engineering/IT Specialisation (Level 1)
1. Understanding of programming principles. Data types, variables and operators. Control-flow: simple statement, sequence, if-then-else, while. Functions. Stack. Input/Output. Reference memory model
2. Ability to read, understand and trace procedural code. Scoping/variable lifetime, memory of the stack, references and globals, data types, operations on data types
3. Ability to modify and add functionality to small procedural program or function.
4. Ability to write code cliches for input and manipulating arrays, including maximum, minimum, search or traverse, with actions on each element for counting or summation
5. Ability to write a structured algorithmic design to solve the descriptive problem specification
6. Ability to write entire procedural program from descriptive problem specification
7. Ability to trace and write recursive code for evaluating recursively-defined numerical functions, and for recursively described array manipulations
8. Experience in testing and debugging programs. Ability to write a set of tests for a small program or function
9. Familiarity with compilation process and debugging tools
10. Ability to use standard library functions
11. Ability to follow programming style conventions for writing consistently readable code
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Online computing tasks No 10.00 Multiple Weeks 1, 2, 3, 4, 5, 6, 7, 8,
2 Practical Exam I No 0.00 Week 5 (As specified by your unit coordinator)
3 Assignment I No 5.00 Week 6 (Monday, 10 pm) 1, 2, 3, 6, 10, 11,
4 *Quiz I No 5.00 Week 8 (During your timetabled class) 1, 2, 3, 4, 5, 6, 7, 8,
5 Assignment II No 10.00 Week 13 (Friday, 2 pm) 1, 2, 3, 4, 5, 6, 8, 9, 10, 11,
6 Practical Exam II No 10.00 Week 11 (As specified by your unit coordinator)
7 *Quiz II No 10.00 Week 12 (During your timetabled class) 1, 2, 3, 4, 5, 6, 7, 8,
8 Final Examination No 50.00 Exam Period 1, 2, 3, 4, 5, 6, 7, 8,
Assessment Description: Online computing tasks

- The online tasks are a series of programming exercises to be completed throughout the semester. These are released regularly and have varying submission dates. Late enrolments (up to week 4) will be able to submit prior weeks.

Quiz 1 & 2

- A pen and paper exercise to test both knowledge and skills of course materials in the semester thus far.


- Development of a program based on a specification

Practical exam

- Demonstrating programming ability from specification

- Produce a set of test cases for a given specification

- To be completed on campus using standard laboratory computer

Final Exam

- The final exam covers all aspects of the course. Demonstrate knowledge in procedural programming. Reading and tracing through short programs. Writing short programs. Writing test cases and debugging with existing test cases.

* indicates an assessment task which must be repeated if a student misses it due to special consideration. A repeated assessment`s questions/tasks may vary from the original.

Late submission is 50% per day unless otherwise stated in the specification.

For other assessments: non-attendance for in lab assessment tasks, such as manual marking, or exercises, will award zero marks, unless special consideration is granted.
Assessment Feedback: Online computer tasks are automatically graded. Further feedback is provided by the grading software.

Assignments. The tutors will provide further feedback to students about correctness, style and testing.

Quizzes. Tutors mark the quiz and provide annotations where needed.

Note: Quiz 1 has been moved to Week 8 due to public holiday in week 7
Prescribed Text/s: Note: Students are expected to have a personal copy of all books listed.
Recommended Reference/s: Note: References are provided for guidance purposes only. Students are advised to consult these books in the university library. Purchase is not required.

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar

Week Description
Week 1 Lecture: Introduction to the unit, fundamental concepts, first program
Lab: Programming basics
Week 2 Lecture: Numerical, Boolean and Character types; Variables and expressions
Lab: Data types, expressions and variables
Week 3 Lecture: Variables: Assignment, Operators, Addressable memory
Lab: Working with variables and the underlying memory model
Week 4 Lecture: Control Flow 1: Branching
Lab: Conditionals and loops
Week 5 Lecture: Control Flow 2: continue; basics of program design process, documentation and style
Lab: Loop control and alternative iteration
Assessment Due: Practical Exam I
Week 6 Lecture: Addressable memory part 2. arrays, collections, Testing I
Lab: Defining and iterating arrays, collections of objects
Assessment Due: Assignment I
Week 7 Lecture: Methods
Lab: Use and definition of methods
Week 8 Lecture: File input/output and Testing II
Lab: Input and output with files. Creating, running and tracing tests
Assessment Due: *Quiz I
Week 9 Lecture: Programming idioms
Lab: Searching collections and error handling
Week 10 Lecture: Building programs from specification. Testing and Debugging
Lab: Test driven development and debugging
Week 11 Lecture: Recursion
Lab: Reading, writing and tracing recursive code
Assessment Due: Practical Exam II
Week 12 Lecture: Writing large programs. Structure and organisation
Lab: Working with the specification. Team based development
Assessment Due: *Quiz II
Week 13 Lecture: Course review. Final examination overview
Lab: Revision
Assessment Due: Assignment II
Exam Period Assessment Due: Final Examination

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Bachelor of Advanced Computing/Bachelor of Commerce 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science (Health) 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science (Medical Science) 2018, 2019
Bachelor of Advanced Computing (Computational Data Science) 2018, 2019
Bachelor of Advanced Computing (Computer Science Major) 2018, 2019
Bachelor of Advanced Computing (Information Systems Major) 2018, 2019
Bachelor of Advanced Computing (Software Development) 2018, 2019
Electrical Mid-Year 2018, 2019
Electrical 2018, 2019
Electrical / Arts 2018, 2019
Electrical / Commerce 2018, 2019
Electrical / Project Management 2018, 2019
Electrical / Science 2018, 2019
Electrical/Science (Health) 2018, 2019
Electrical / Law 2018, 2019
Software Mid-Year 2018, 2019
Software 2018, 2019
Software / Arts 2018, 2019
Software / Commerce 2018, 2019
Software / Project Management 2018, 2019
Software / Science 2018, 2019
Software/Science (Health) 2018, 2019
Software / Law 2018, 2019
Bachelor of Project Management (Software) Mid-Year 2018, 2019
Bachelor of Project Management (Software) 2018
Electrical/Science (Medical Science Stream) 2018, 2019
Software/Science (Medical Science Stream) 2018, 2019
Bachelor of Computer Science & Tech. Mid-Year 2016, 2017
Biomedical - Chemical and Biomolecular Major 2018, 2018
Biomedical Mid-Year 2018, 2019
Biomedical 2018, 2019
Biomedical - Mechanical Major 2018
Bachelor of Computer Science and Technology 2016, 2017
Bachelor of Computer Science and Technology (Advanced) 2016, 2017
Bachelor of Information Technology 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Arts 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Commerce 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Medical Science 2016, 2017
Bachelor of Information Technology/Bachelor of Science 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Laws 2015, 2016, 2017

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
Communication (Level 1) Yes 0%
Information Seeking (Level 1) Yes 0%
Maths/Science Methods and Tools (Level 1) No 0%
Engineering/IT Specialisation (Level 1) Yes 90%
Design (Level 2) Yes 0%

These goals are selected from Engineering & IT Graduate Outcomes Table which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.