|Module Name||Introduction to Computing II|
|ECTS Weighting ||5 ECTS|
|Semester Taught||Semester 2|
|Module Coordinator/s||Professor Jonathan Dukes|
Module Learning Outcomes
On successful completion of this module, students will be able to:
- Describe the characteristics, structure and operation of a basic computer system, including the execution of subroutines and the interface between the processor and external devices;
- Translate between high-level programming language constructs, including fundamental data structures and subroutines, and their assembly language equivalents;
- Design, construct, document and test assembly language programs to solve small-scale problems of moderate complexity by decomposing the problems into smaller parts and implementing solutions consisting of one or more assembly language subroutines;
- Construct assembly language programs that can interact with simple external devices.
This module continues directly from CSU11021 and examines the structure and behaviour of computer systems in greater depth. In particular, this module introduces students to the implementation of simple data structures (stacks, multi-dimensional arrays, composite data types), subroutines (including parameter passing conventions), exceptions, interrupts and basic I/O at the machine level.
Students are given opportunities throughout the module to reinforce their problem solving, programming and written communication skills by designing, implementing, documenting and testing solutions to programming problems of increasing complexity. Problem decomposition is strongly encouraged.
Teaching and Learning Methods
Pre-recorded video lectures will be used to introduce key concepts and provide worked examples.
Tutorial sessions will summarise the topics introduced in the lectures and invite students to ask questions. The Q&A sessions will also be used to present worked examples and give students the opportunity to develop their own solutions to problems.
Students will be given eight programming exercises to complete during the semester, with each one contributing to the overall module result. These exercises will be supported by weekly lab sessions. Solutions to the exercises will be submitted online to be automatically graded for rapid feedback. Selected exercises will also be graded by demonstrators, following a review of the program and/or a brief interview with the student.
Two multiple choice or short-answer tests at the mid-point and end of the semester will contribute to the module result and give students an opportunity to assess their progress. The final assessment for the module will be a take-home examination.
|Assessment Component||Brief Description||Learning Outcomes Addressed||% of Total||Week Set||Week Due|
|Exercise 1||Addressing Modes and Arrays||LO1, LO2||3%||Week 2||Week 3|
|Exercise 2||2D Arrays||LO1, LO2, LO3||3%||Week 3||Week 4|
|Exercise 3||Stacks||LO1, LO2, LO3||5%||Week 4||Week 5|
|Exercise 4||Subroutines||LO1, LO2, LO3||3%||Week 5||Week 6|
|Test 1||Multiple-choice or short-answer test||LO1, LO2, LO3||15%||Week 6||Week 6|
|Exercise 5||Recursion||LO2, LO3, LO4||3%||Week 6||Week 8|
|Exercise 6||Floating Point 1||LO2, LO3, LO4||3%||Week 8||Week 9|
|Exercise 7||Floating Point 2||LO2, LO3||5%||Week 9||Week 10|
|Exercise 8||I/O and Interrupts||LO3, LO4||5%||Week 10||Week 12|
|Test 2||Multiple-choice or short-answer test||LO1, LO2, LO3, LO5||15%||Week 12||Week 12|
|Take-Home Examination||A take-home examination that will take you approximately three hours to complete.||LO1, LO2, LO3, LO4, LO5||40%||End of Semester||End of Semester|
Students who do not complete and submit both quizzes, the final examination and at least 5 out of 8 exercises may be required to submit missed assessments for a mark capped at 40% in order to pass the module.
Examination (2 hours, 100%).
Contact Hours and Indicative Student Workload
|Contact Hours (scheduled hours per student over full module), broken down by:||37 hours|
|Online Q&A||7 hours|
|On-campus tutorial||8 hours|
|Online labs||7 hours|
|Independent Study (outside scheduled contact hours), broken down by:||76 hours|
|Preparation for classes and review of material (including preparation for examination, if applicable)||66 hours|
|Completion of assessments (including examination, if applicable)||10 hours|
|Total Hours||113 hours|
Recommended Reading List
- William Hohl, “ARM Assembly Language: Fundamentals and Techniques”, CRC Press, 2009.
- Steve Furber, “ARM System-on-Chip Architecture”, 2nd edition, Addison-Wesley Professional, 2000. [suggested further reading]
- Andrew Sloss, Dominic Symes and Chris Wright, “ARM System Developer’s Guide: Designing and Optimizing System Software”, Morgan Kaufmann, 2004. [suggested further reading]
Prerequisite modules: CSU11021
Other/alternative non-module prerequisites:
A basic working knowledge of the ARM instruction set and some familiarity with at least one high level programming language.