Module Code | CSU11021 |
Module Name | Introduction to Computing I |
ECTS Weighting | 5 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:
- Describe the characteristics, structure and operation of a basic computer system;
- Represent and interpret basic information (integers, text) in binary form;
- Translate between simple high-level programming language constructs and their assembly language equivalents;
- Design, construct, debug, document and test small-scale assembly language programs to solve simple problems;
- 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 Component | Brief Description | Learning Outcomes Addressed | % of Total | Week Set (start) | Week Due (end) |
Continuous Assessment (40%) | |||||
Assignment 1 | Assembly Language Basics and ASCII | LO2, LO3 | 4% | Week 2 | Week 4 |
Assignment 2 | Flow Control | LO3 | 6% | Week 4 | Week 6 |
Mid-Term Test | Multiple-choice and short-answer test. The test will take place during a scheduled lab session. | LO1, LO2, LO3 | 20% | Week 7 | Week 7 |
Assignment 3 | Memory | LO2, LO3, LO4 | 6% | Week 7 | Week 8 |
Assignment 4 | Bit manipulation | LO2, LO3, LO4 | 4% | Week 9 | Week 10 |
Examination (60%) | |||||
Examination | A 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, LO5 | 60% | End of Semester | End 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 |
Lecture | 18 hours |
Labs | 9 hours |
Independent Study (outside scheduled contact hours), broken down by: | 84 hours |
Viewing re-recorded lectures | 30 hours |
Preparation for classes, review of material, completion of practice exercises and preparation for examination | 30 hours |
Completion of assessments (including assignments, mid-term test and examination, if applicable) | 24 hours |
Total Hours | 110 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)