CSU11021 – Introduction to Computing I

Module CodeCSU11021
Module NameIntroduction to Computing I
ECTS Weighting5 credits
Semester taught Semester 1
Module Coordinator/s  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 tutorial session will provide an opportunity to 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 take-home examination based on a practical programming problem.

Assessment Details

Assessment ComponentBrief DescriptionLearning Outcomes Addressed% of totalWeek setWeek due
Exercise 1Basic Assembly LanguageLO1, LO33%23
Exercise 2Flow Control 1LO1, LO33%34
Exercise 3ASCIILO2, LO34%46
Test 1Multiple-choice or short-answer testLO1, LO2, LO315%77
Exercise 4Flow Control 2LO34%78
Exercise 5Memory 1LO2, LO3, LO44%89
Exercise 6Memory 2LO2, LO3, LO44%910
Exercise 7Bit ManipulationLO2, LO34%1011
Exercise 8Programming ChallengeLO3, LO44%1112
Test 2Multiple-choice or short-answer testLO1, LO2, LO3, LO515%1212
Take-Home ExaminationA take-home examination that will take you approximately three hours to complete.LO1, LO2, LO3, LO4, LO540%end of semesterend of semester

Reassessment Details

A take-home examination that will take you approximately three hours to complete (100%).

Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module),
broken down by:
37 hours
lecture15 hours
tutorial11 hours
labs11 hours
Independent Study (outside scheduled contact hours),
broken down by:
75 hours
preparation for classes and review of material
(including preparation for examination, if applicable)
45 hours
completion of assessments (including examination, if applicable) 30 hours
Total Hours112 hours

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.

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: None

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)