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, 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;
  4. 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 ComponentBrief DescriptionLearning Outcomes Addressed% of TotalWeek SetWeek Due
Continuous Assessment (40%)
Assignment 1Memory and Arrays ILO1, LO24%Week 2Week 4
Assignment 2Memory and Arrays IILO1, LO2, LO34%Week 4Week 6
Mid-Term TestMultiple-choice and short-answer testLO1, LO220%Week 6Week 6
Assignment 3SubroutinesLO1, LO2, LO34%Week 6Week 8
Assignment 4Floating PointLO1, LO2, LO34%Week 8Week 10
Assignment 5I/O Team ChallengeLO1, LO2, LO44%Week 10Week 12
Examination (60%)
ExaminationA 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, LO560%End of SemesterEnd 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
Lecture20 hours
Labs9 hours
Independent Study (outside scheduled contact hours), broken down by:84 hours
Viewing Recorded Lectures30 hours
Preparation for classes, review of material, completion of practice exercises and preparation for examination30 hours
Completion of assessments (including assignments, mid-term test and examination, if applicable)24 hours
Total Hours113 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)