Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

Module Descriptor School of Computer Science and Statistics

Module CodeCS1022
Module NameIntroduction to Computing II
Module Short Title
Semester Taught
Contact HoursLecture Hours: 22, Lab Hours:11, Tutorial Hours:11
Module PersonnelDr Adam Taylor
Learning Outcomes

When students have successfully completed this module they should be able to:

  • Describe the characteristics, structure and operation of a 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.
Learning Aims

This module continues directly from CS1021 (which is a prerequisite) 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, exceptions, interrupts and basic I/O at the machine level.

The relationship between high-level programming language constructs and their realisation as executed instructions is explored further by developing pseudo-code solutions to programming problems in the first instance, before translating those solutions into assembly language programs. Particular attention is paid to the implementation of subroutines, the system stack and parameter passing conventions.

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.

Module Content

Specific topics addressed in this module include:

  • Stacks;
  • Subroutines;
  • Parameter passing conventions;
  • Single- and multi-dimensional arrays;
  • Floating-point number representation;
  • Exceptions and interrupts;
  • Basic I/O using memory-mapped peripherals.
Recommended Reading List

There is no required text for this module. The following are suggested additional reading:

  1. William Hohl, “ARM Assembly Language: Fundamentals and Techniques”, CRC Press, 2009.
  2. Steve Furber, “ARM System-on-Chip Architecture”, 2nd edition, Addison-Wesley Professional, 2000.
  3. Andrew Sloss, Dominic Symes and Chris Wright, “ARM System Developer's Guide: Designing and Optimizing System Software”, Morgan Kaufmann, 2004.
Module PrerequisitesCS1021 (Introduction to Computing I)
Assessment Details

Assessment is by written examination (70%) and continuous assessment (30%). Continuous assessment usually consists of a single assignment and four smaller lab exercises, although this is subject to change.

Academic Year of Data