CSU11021 – Introduction to Computing I

Module CodeCSU11021
Module NameIntroduction to Computing I
ECTS Weighting5 ECTS
Semester Taught Semester 1
Module Coordinator/s  Dr Jonathan Dukes

Module Learning Outcomes

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

  1. Describe the basic characteristics, structure and operation of a computer system;
  2. Represent and interpret basic information (integers, text) in binary form;
  3. Translate between simple high-level programming language constructs and their assembly language equivalents;
  4. Design, construct, document and test small-scale assembly language programs to solve simple problems;
  5. Reason about the cost of executing instructions and the efficiency of simple programs.

Module Content

This module provides students with an introduction to the basic structure and operation of a computer system, focussing on the processor (CPU), memory and the execution of software.

Students gain an insight into the execution of programs on a computer system by designing, implementing and executing simple assembly language programs. Students are also introduced to concepts that are fundamental to the study of Computer Science, including the binary numeral system and the representation of basic information such as signed integers and strings (text). 

Students are encouraged to consider the relationship between high-level programming language constructs – from simple assignments and arithmetic expressions to conditional (if, else) and iterative (while, for, do) execution – and the realisation of these constructs as sequences of machine instructions. Students are also given opportunities to develop their problem solving, programming and written communication skills by designing solutions to programming problems, implementing those solutions, first in the form of high-level pseudo-code programs and then as assembly language programs, which they must document and test.

Teaching and Learning Methods

Pre-recorded video lectures will be used to introduce key concepts and provide worked examples.

A weekly lecture will recap lecture material and explore worked examples. Students will be able to ask questions or seek clarification during these sessions.

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 online short-answer quizzes 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 1Basic Assembly LanguageLO1, LO33%Week 1Week 2
Exercise 2ASCIILO1, LO33%Week 2Week 3
Exercise 3Flow ControlLO2, LO33%Week 3Week 4
Exercise 4Flow Control 2LO35%Week 4Week 6
Test 1Multiple-choice or short-answer testLO1, LO2, LO315%Week 6Week 6
Exercise 5Memory 1LO2, LO3, LO43%Week 6Week 7
Exercise 6Memory 2LO2, LO3, LO45%Week 7Week 8
Exercise 7Programming ChallengeLO2, LO35%Week 8Week 9
Exercise 8Bit ManipulationLO3, LO43%Week 9Week 10
Test 2Multiple-choice or short-answer testLO1, LO2, LO3, LO515%Week 10Week 10
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:19 hours
Lecture10 hours
Labs9 hours
Independent Study (outside scheduled contact hours), broken down by:92 hours
Viewing re-recorded lectures30 hours
Preparation for classes and review of material (including preparation for examination, if applicable)30 hours
Completion of assessments (including examination, if applicable) 32 hours
Total Hours111 hours

Recommended Reading List

  • William Hohl, “ARM Assembly Language: Fundamentals and Techniques”, CRC Press, 2009. [Suggested]
  • Steve Furber, “ARM System-on-Chip Architecture”, 2nd edition, Addison-Wesley Professional, 2000. [Suggested]
  • Andrew Sloss, Dominic Symes and Chris Wright, “ARM System Developer’s Guide: Designing and Optimizing System Software”, Morgan Kaufmann, 2004. [Suggested]

Module Pre-requisites

Prerequisite modules: N/A

Other/alternative non-module prerequisites: Some familiarity with at least one high level programming language. (May be achieved by concurrently taking an introductory programming module.)

Module Website

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

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