Module Code | CSU11022 |
Module Name | Introduction to Computing II |
ECTS Weighting [1] | 5 ECTS |
Semester Taught | Semester 2 |
Module Coordinator/s | Dr 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, debug, 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 using memory-mapped I/O and interrupts.
Module Content
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, debugging, 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.
Weekly lectures will summarise the topics introduced in the videos 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 five programming assignments 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.
An online multiple-choice and short-answer test after study week will contribute to the module result and give students an early opportunity to assess their progress. The final assessment for the module will be a three-hour examination that will combine a multiple-choice and short-answer test and a practical programming exercise.
Assessment Details
Assessment Component | Brief Description | Learning Outcomes Addressed | % of Total | Week Set | Week Due |
Continuous Assessment (40%) | |||||
Assignment 1 | Memory and Arrays I | LO1, LO2 | 4% | Week 2 | Week 4 |
Assignment 2 | Memory and Arrays II | LO1, LO2, LO3 | 4% | Week 4 | Week 6 |
Mid-Term Test | Multiple-choice and short-answer test | LO1, LO2 | 20% | Week 6 | Week 6 |
Assignment 3 | Subroutines | LO1, LO2, LO3 | 4% | Week 6 | Week 8 |
Assignment 4 | Floating Point | LO1, LO2, LO3 | 4% | Week 8 | Week 10 |
Assignment 5 | I/O Team Challenge | LO1, LO2, LO4 | 4% | Week 10 | Week 12 |
Examination (60%) | |||||
Examination | A three-hour examination in a computer lab. The examination will include a multiple-choice/short-answer test and a practical programming exercise. The format will be the same as the 2023/2024 academic year. | LO1, LO2, LO3, LO4, LO5 | 60% | End of Semester | End of Semester |
Students who do not complete and submit the mid-term test, the examination and at least two of the four assignments may be required to complete missed assessments for a mark capped at 40% in order to pass the module.
Reassessment Details
A three-hour examination that includes a multiple-choice/short-answer test and a practical programming exercise (100%).
Contact Hours and Indicative Student Workload
Contact Hours (scheduled hours per student over full module), broken down by: | 29 hours |
Lecture | 20 hours |
Labs | 9 hours |
Independent Study (outside scheduled contact hours), broken down by: | 84 hours |
Viewing Recorded Lectures | 30 hours |
Preparation for classes, review of material, completion of practice exercises and preparation for examination | 30 hours |
Completion of assessments (including assignments, mid-term test and examination, if applicable) | 24 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]
Module Pre-requisites
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.
Module Co-requisites
N/A
Module Website
Blackboard (https://mymodule.tcd.ie)
Submitty (https://submit.scss.tcd.ie)