Note: This unit version is currently under review and is subject to change!

INFO1910: Introduction to Programming (Advanced) (2019 - Semester 1)

Download UoS Outline

Unit: INFO1910: Introduction to Programming (Advanced) (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Junior
Faculty/School: School of Computer Science
Unit Coordinator/s: Dr Stavrakakis, John
Session options: Semester 1, Semester 2
Versions for this Unit:
Site(s) for this Unit: https://canvas.sydney.edu.au
https://edstem.org
Campus: Camperdown/Darlington
Pre-Requisites: [ATAR sufficient to enter Dalyell program] OR [Passing an online programming knowledge test, which will be administered during the O-week prior to the commencement of the the semester]. ATAR sufficient to enter Dalyell program, or passing an online programming knowledge test, which will be administered during the O-week prior to the commencement of the the semester.
Prohibitions: INFO1110 OR INFO1103 OR INFO1903 OR INFO1105 OR INFO1905.
Brief Handbook Description: The focus of this unit will cover the ground up programming components necessary for study in the computer science discipline. Students will engage with procedural programming using two related programming languages. Students will further their understanding of internal operations as well as reasoning about processing, memory model and conventional programming practices.

As an advanced offering, all the course contents of INFO1110 will be covered and there will be additional teaching materials and assessments.
Assumed Knowledge: None.
Department Permission Department permission is required for enrollment in this session.
Lecturer/s: Dr Stavrakakis, John
Tutor/s: Jonathan Loi Du (TA)

Takuya-john Kojima (TA)

Ty Hermawan (TA)

Tyson Thomas

Alan Robertson
Timetable: INFO1910 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 1.00 1 13
2 E-Learning 1.00 1 12
3 Laboratory 2.00 1 13
4 Independent Study 7.00 13
5 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

Additional lecture and tutorial materials

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.

(6) Communication and Inquiry/ Research (Level 1)
1. Employ programming style conventions for writing consistently readable code
(3) Problem Solving and Inventiveness (Level 2)
2. Design and construct new functionality to existing procedural program or function.
3. Compose a structured algorithmic design to solve the descriptive problem specification
4. Compose an entire procedural program from descriptive problem specification
5. Translate general programming problems between two distinctly differing procedural programming languages
(2) Engineering/ IT Specialisation (Level 1)
6. Demonstration of programming principles. Data types, variables and operators. Control-flow: simple statement, sequence, if-then-else, while. Functions. Stack. Input/Output. Reference memory model
7. Compose, analyse and trace procedural code. Scoping/variable lifetime, memory of the stack, references and globals, data types, operations on data types
8. Construct code cliches for input and manipulating arrays, including maximum, minimum, search or traverse, with actions on each element for counting or summation
9. Construct and assess code for recursively-defined numerical functions, and for recursively described array manipulations
10. Apply testing methods and assess programs through debugging. Ability to write a set of tests for a small program or function
11. Explain compilation process and debugging mechanism
12. Use standard library functions
13. Explain processing, memory and internal operations of procedural programming
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Weekly task No 10.00 Multiple Weeks 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2 *Quiz 1 No 5.00 Week 4 1, 2, 3, 4, 6, 7, 8, 12,
3 Assignment I No 0.00 Week 5 1, 2, 4, 6, 7, 12,
4 Computer Exam 1 No 5.00 Week 5 (Saturday) 2, 3, 4, 6, 7, 8, 10, 11, 12,
5 *Quiz 2 No 5.00 Week 10 (During your timetabled class) 2, 3, 4, 5, 6, 7, 8, 9, 10, 13,
6 Computer Examination No 10.00 Week 11 (Saturday) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
7 Assignment 2 No 15.00 Week 12 1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13,
8 Final Examination No 50.00 Exam Period 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13,
Assessment Description: Weekly task

- Complete a programming activity based on the tutors direction

- Attendance required during tutorial

- To be completed using standard laboratory computer

Quiz

- Test both knowledge and skills of course materials in the semester thus far.

- Attendance during tutorial

- Duration is 30 - 60 minutes

- Pen and paper, no computers to be used

Assignments

- Demonstrating programming ability from a given problem description

- Produce a set of test cases for a given problem description

Practical Computer Exam

- Develop and/or debug a computer program from a description with examples

- To be completed using standard laboratory computer

- See timetable for time and location of event

- The grading process will use a similar, yet different, set of test data for evaluating the correctness.

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 questions/tasks may vary from the original.

Late penalty is consistent with Clause 7A of the Assessment procedure. 5% per day.

Non-attendance for in lab assessment tasks, such as manual marking, or exercises, will award zero marks, unless special consideration is granted.

The pass requirement for this course is:

at least 50% in the written examination to qualify for a pass in this course, AND

at least 40% in all other assessments that are not the final examination, AND

at least 50% final mark overall
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.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of Computer Science may reproduce it entirely, may provide a copy to another member of faculty, and/or to an external plagiarism checking service or in-house computer program and may also maintain a copy of the assignment for future checking purposes and/or allow an external service to do so.

Other policies

See the policies page of the faculty website at http://sydney.edu.au/engineering/student-policies/ for information regarding university policies and local provisions and procedures within the Faculty of Engineering and Information Technologies.
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.
Online Course Content: https://canvas.sydney.edu.au

https://edstem.org

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp

Week Description
Week 1 Lecture: Introduction to the unit, fundamental concepts, first program
Lab: Programming basics
Week 2 Lab: Data types, expressions and variables
Lecture: Data types; Variables, operators and expressions
Lecture/Tutorial: Adv. Fundamental types and their operations
Week 3 Lecture: Control Flow: Branching and loops
Lab: Conditionals and loops
Lecture/Tutorial: Adv. flow control
Week 4 Lecture: Addressable memory. arrays, collections, Testing
Lab: Defining and iterating arrays, collections of objects
Lecture/Tutorial: Adv. data structures I
Assessment Due: *Quiz 1
Week 5 Lecture: Functions, Basics of program design process, documentation and style
Lab: Functions
Lecture/Tutorial: Adv. stack memory
Assessment Due: Assignment I
Assessment Due: Computer Exam 1
Week 6 Lecture: Files and basic input/output, Exception handling
Lab: Working with file input and output, Exceptions
Lecture/Tutorial: Adv. data structures II
Week 7 Lecture: Testing, Software design process
Lab: Writing tests and testing programs
Lecture/Tutorial: Adv. exception
Week 8 Lecture: Programming idioms
Lab: Searching collections and error handling
Lecture/Tutorial: Adv. memory model translation
Week 9 Lecture: Modular programming, Defining datatypes using aggregate structures
Lab: Creating and working with aggregate data structures and their operations
Lecture/Tutorial: Adv. debugging
Week 10 Lecture: Idioms II. Testing and Debugging
Lab: Test driven development and debugging
Lecture/Tutorial: Adv. testing
Assessment Due: *Quiz 2
Week 11 Lecture: Recursion
Lab: Reading, writing and tracing recursive code
Lecture/Tutorial: Adv. limits of recursion
Assessment Due: Computer Examination
Week 12 Lecture: Data types and multidimensional arrays
Lab: Defining and application of multidimensional arrays
Lecture/Tutorial: Adv. custom traversals for multidimensional arrays
Assessment Due: Assignment 2
Week 13 Lecture: Course review. Final examination overview
Lab: Revision
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
Unit has not been added to any courses yet.

Course Goals

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

Attribute Practiced Assessed
(5) Interdisciplinary, Inclusiveness, Influence (Level 2) No 0%
(6) Communication and Inquiry/ Research (Level 1) No 6%
(4) Design (Level 2) No 0%
(3) Problem Solving and Inventiveness (Level 2) No 30.25%
(2) Engineering/ IT Specialisation (Level 1) No 63.75%
(1) Maths/ Science Methods and Tools (Level 1) No 0%

These goals are selected from Engineering & IT Graduate Outcomes Table 2018 which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table 2018 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.