CSU11022 – Introduction to Computing II

Module CodeCSU11022
Module NameIntroduction to Computing II
ECTS Weighting [1]5 ECTS
Semester TaughtSemester 2
Module Coordinator/s  Dr Jonathan Dukes

Module Learning Outcomes

On successful completion of this module, students will be able to:

  1. 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;
  2. Translate between high-level programming language constructs, including fundamental data structures and subroutines, and their assembly language equivalents;
  3. 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;
  4. Construct assembly language programs that can interact with simple external devices.

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, 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 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 three-hour examination in the form of a practical programming exercise.

Assessment Details

Assessment ComponentBrief DescriptionLearning Outcomes Addressed% of TotalWeek SetWeek Due
Exercise 1Addressing Modes and ArraysLO1, LO23%Week 2Week 3
Exercise 22D ArraysLO1, LO2, LO33%Week 3Week 4
Exercise 3StacksLO1, LO2, LO35%Week 4Week 5
Exercise 4SubroutinesLO1, LO2, LO33%Week 5Week 6
Test 1Multiple-choice or short-answer testLO1, LO2, LO315%Week 6Week 6
Exercise 5RecursionLO2, LO3, LO43%Week 6Week 8
Exercise 6Floating Point 1LO2, LO3, LO43%Week 8Week 9
Exercise 7Floating Point 2LO2, LO35%Week 9Week 10
Exercise 8I/O and InterruptsLO3, LO45%Week 10Week 12
Test 2Multiple-choice or short-answer testLO1, LO2, LO3, LO515%Week 12Week 12
Examination *A three-hour examination in the form of a practical programming exercise.LO1, LO2, LO3, LO4, LO540%End of SemesterEnd of Semester

* The final examination may be online or in-person and this will be advised during the semester.

Students who do not complete and submit both tests, 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.

Reassessment Details

A three-hour examination in the form of a practical programming exercise (100%).

Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module), broken down by:37 hours
Lecture15 hours
Online Q&A7 hours
On-campus tutorial8 hours
Online labs7 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 Hours113 hours
The above contact hours assume online delivery of the module with occasional face-to-face sessions.

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


Module Website

Blackboard (https://mymodule.tcd.ie)

Submitty (https://submit.scss.tcd.ie)