|Module Name||Introduction to Computing I|
|ECTS Weighting||5 credits|
|Semester taught||Semester 1|
|Module Coordinator/s||Jonathan Dukes|
Module Learning Outcomes
On successful completion of this module, students will be able to:
- Describe the basic characteristics, structure and operation of a 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, 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;
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 Component||Brief Description||Learning Outcomes Addressed||% of total||Week set||Week due|
|Exercise 1||Basic Assembly Language||LO1, LO3||3%||2||3|
|Exercise 2||Flow Control 1||LO1, LO3||3%||3||4|
|Exercise 3||ASCII||LO2, LO3||4%||4||6|
|Test 1||Multiple-choice or short-answer test||LO1, LO2, LO3||15%||7||7|
|Exercise 4||Flow Control 2||LO3||4%||7||8|
|Exercise 5||Memory 1||LO2, LO3, LO4||4%||8||9|
|Exercise 6||Memory 2||LO2, LO3, LO4||4%||9||10|
|Exercise 7||Bit Manipulation||LO2, LO3||4%||10||11|
|Exercise 8||Programming Challenge||LO3, LO4||4%||11||12|
|Test 2||Multiple-choice or short-answer test||LO1, LO2, LO3, LO5||15%||12||12|
|Take-Home Examination||A take-home examination that will take you approximately three hours to complete.||LO1, LO2, LO3, LO4, LO5||40%||end of semester||end of semester|
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:
|Independent Study (outside scheduled contact hours),|
broken down by:
|preparation for classes and review of material|
(including preparation for examination, if applicable)
|completion of assessments (including examination, if applicable)||30 hours|
|Total Hours||112 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]
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.)