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 characteristics, structure and operation of a basic 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, debug, 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 structure and operation of a basic computer system, focussing on the microprocessor , 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 assignment 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 four 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.

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 Set
(start)
Week Due
(end)
Continuous Assessment (40%)
Assignment 1Assembly Language Basics and ASCIILO2, LO34%Week 2Week 4
Assignment 2Flow ControlLO36%Week 4Week 6
Mid-Term TestMultiple-choice and short-answer test. The test will take place during a scheduled lab session.LO1, LO2, LO320%Week 7Week 7
Assignment 3 MemoryLO2, LO3, LO46%Week 7Week 8
Assignment 4Bit manipulationLO2, LO3, LO44%Week 9Week 10
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:26 hours
Lecture18 hours
Labs9 hours
Independent Study (outside scheduled contact hours), broken down by:84 hours
Viewing re-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 Hours110 hours

Recommended Reading List

The following are suggested reading but are not required reading.

  • 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)