Information on this page, including unit offerings, is from the 2019 academic year.
Principles of Computer Science (ICT167)
|School||School of Engineering and Information Technology|
|Availability||MURDOCH: S2-internal, S2-external
DUBAI-ISC: TJD-internal, TMD-internal, TSD-internal
KAPLAN-SGP: TJA-internal, TMA-internal, TSA-internal
|Teaching Timetables||Murdoch S2
|Description||This unit is designed to develop the skills of problem solving and program design using an Object Oriented programming language. Major topics: algorithm design; procedural abstractions; the use of libraries as collection of black-box code modules; the concepts of pre- and post- conditions; strings, arrays, introduction to object-oriented concepts including data abstraction, encapsulation, classes and object references, inheritance; introduction to recursion; streams and file input and output; the definition and use of common classes - lists, stack and queues.|
|Unit Learning Outcomes|| On successful completion of the unit you should be able to:
1. Design, implement, test and document solutions to problems using the sequence, selection and iteration constructs of structured programming. (ULO 1)
2. Explain the object-oriented programming paradigm. (ULO 2)
3. Use the object-oriented programming approach to design, implement, test and document solutions to problems. (ULO 3)
4. Demonstrate understanding of the mechanics of parameter passing in the context of object-oriented programming. (ULO 4)
5. Explain how class mechanism supports encapsulation and information hiding. ((ULO 5)
6. Design and implement appropriate classes for modelling a given problem. (ULO 6)
7. Explain the need for range checking and error handling and be able to write robust programs that implement these features. (ULO 7)
8. Design, implement and test the implementation of hierarchical relationship among objects using a simple class hierarchy and inheritance. (ULO 8)
9. Explain event-driven programming and be able to describe the behaviour of simple GUI programs. (ULO 9)
10. Write object-oriented programs that use each of the following: arrays, strings, files, lists, stacks and queues. (ULO 10)
11. Explain algorithm complexity and the need for selecting appropriate algorithms and structures for a given problem. (ULO 11)
12. Implement searching and sorting algorithms in a programming language. (ULO 12)
13. Explain the concept of recursion and be able to write recursive solutions for simple to intermediate problems. (ULO 13)
|Timetabled Learning Activities||Lectures: 1 x 2 hours per week; computer laboratories: 1 x 2 hours per week.
All offerings of this unit include the equivalent of 30 hours of structured learning.
|Unit Learning Experiences||Students learn through lectures, laboratory work, assignment work and self-study. In each of the 12 teaching weeks, there is one 2-hour lecture and one 2-hour laboratory session. Each lecture usually covers one topic. There are also two assignments that the students need to complete over the period of the semester. The purpose of the assignments is to demonstrate a larger subset of the learning outcomes and to ensure that students can integrate the knowledge that they have acquired. Most of the materials and resources for students to complete the practical exercises and the two assignments will be available through LMS. Students are expected to spend approximately 10 hours per week (approximately 150 hours for the semester) on studying this unit.|
|Other Learning Experiences||The companion tutorial/lab session will consist of small programming exercises and/or other tasks that the students need to complete to enforce their understanding of the concepts covered in the topic and to master the relevant design and programming techniques. These small exercises are also designed to provide incremental help for the two assignments. In order to assess a small subset of the learning outcomes, each laboratory exercise will require the development of a solution for a small problem.|
|Assessment||Students demonstrate their learning through lab work, problem-based assignments (involving solution design, implementation, testing and documentation) and final examination.
Students are assessed on the basis of weekly lab work (10%), two assignments (20% each) and a final examination (50%).
The final grade for the unit will be reported as a letter grade and a mark. In order to pass the unit student must:
1) have an aggregate score for the combined assessment of 50% or better, and
2) achieve a satisfactory performance in the supervised component, which is the final examination. A satisfactory performance is normally considered to be 50% or higher.
|Prerequisites||ICT159 Foundations of Computer Programming or ICT102 Introduction to Computer Science.|
|Exclusions||Students who have completed ICT104 Principles of Computer Science may not enrol in this unit for credit.|
|Notes||Each student is expected to spend on average three hours per teaching week reading the lecture notes, books chapters and other recommended materials relevant to the topic covered in that week and spend a similar amount of time working on the lab exercises for that week. In addition, each student is required to complete two assignments and sit the final examination.|
|Appears in these Courses/Majors:
see individual structures for context
|Internet Access Requirements||Murdoch units normally include an online component comprising materials, discussions, lecture recordings and assessment activities. All students, regardless of their location or mode of study, need to have access to and be able to use computing devices with browsing capability and a connection to the Internet via Broadband (Cable, ADSL or Mobile) or Wireless. The Internet connection should be readily available and allow large amounts of data to be streamed or downloaded (approximately 100MB per lecture recording). Students also need to be able to enter into online discussions and submit assignments online.|