Run by School of Computer Science and Electronic Engineering
20 Credits or 10 ECTS Credits
Semester 1 & 2
Organiser: Dr David Evans
Overall aims and purpose
To introduce the student to fundamental topics of computer science. Students are introduced to a broad range of computing topics – including architecture, data storage, operating systems, pseudo-code, programming and languages in general, and graphics.
Data Storage – main memory, secondary storage, bits, hex, representing information as bits, binary, two’s complement, compression, communication errors.
Data Manipulation – computer architectures, machine language, program execution, communicating with devices.
Operating Systems – history, components, boot strapping, processes and their coordination, deadlock, security.
Algorithms – what an algorithm is and how one is deduced, pseudo code in depth (including if, while/repeat loops, procedures, and recursion), efficiency, and verification.
Programming Languages – the different generations, the different types (OO, procedural, functional etc).
Software Engineering – the life cycle, some methodologies, including mention of UML, testing, documentation, HCI, legal aspects.
Graphics – modeling (polygonal meshes, describing shapes, surfaces, realism, scene graph), rendering (light, clipping, scan conversion, shading), rendering-pipeline hardware, very basics of animation.
Learning outcomes mapped to assessment criteria
Appreciate the history of computer science
|Knows the origins of Computing Machines, from the early days to today.||Can define some of the main terminology used in computer science.||Be able to discuss social repercussions of the use of computers.|
Discuss and understand data storage.
|Represent positive integers in binary; discuss disadvantages and advantages of various secondary storage; apply parity bits.||Decode messages encoded using adaptive dictionary encoding.||Be able to fully understand and apply hamming distances.|
Understand how the computer manipulates data and executes programs
|Understand and reproduce layout of basic CPU and main memory architecture||Be able to understand a short machine code program; understands how the architecture executes an instruction.||Understand the principles of pipelining; given a short machine code program, can explain exactly how it would be executed by the CPU.|
Discuss how an operating system controls a computer.
|Can name and describe the basic components of an OS||Can take the 3 deadlock conditions and apply them to different situations; understands how the different OS components relate to each other.||Can explain in detail the workings of the dispatcher and scheduler.|
Understand and write simple algorithms.
|Can understand a simple algorithm and explain what the output would be.||Can write an algorithm to solve a simple problem; appreciates the concept of efficiency.||Can write an algorithm to solve a moderately difficult problem; Understands recursion; can understand efficiency of algorithms and compare the efficiency of two.|
Discuss how programming languages have evolved over the years.
|Can describe the basics of each generation.||Can describe in some detail each generation and each type of language.||Can compare the generations, provide examples of each, and fully understands the benefits of each new generation; can discuss in detail the different types of languages.|
Discuss the various stages of software development.
|Can describe the basic software cycle.||Understands the shortcomings of testing and legal aspects.||Can discuss in detail the problems with requirements specifications and verification; can understand a simple UML use case and class diagram.|
Discuss the basics of computer graphics
|Can discuss how 3D scenes are rendered.||Can describe how shapes are modelled.||Understand the 3D graphics paradigm.|
Research and discuss topics of interest about computer science
|History of Computer Science, Number Systems and Simple Algorithms||10|
|Digital Circuits, Logic, Algorithms and Software Development||10|
Teaching and Learning Strategy
24 hours per Semester over 12 weeks
- Numeracy - Proficiency in using numbers at appropriate levels of accuracy
- Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
- Information retrieval - Able to access different and multiple sources of information
- Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
- Presentation - Able to clearly present information and explanations to an audience. Through the written or oral mode of communication accurately and concisely.
- Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team
Subject specific skills
- Knowledge and understanding of facts, concepts, principles & theories
- Problem solving strategies
- Analyse if/how a system meets current and future requirements
- Recognise legal, social, ethical & professional issues
- Development of general transferable skills
- Knowledge of systems architecture
Pre- and Co-requisite Modules
Courses including this module
Compulsory in courses:
- I110: BSc Computer Information Systems year 1 (BSC/CIS)
- I11B: BSc Computer Information Systems (4 year with Incorp Found) year 1 (BSC/CIS1)
- IN00: BSc Computer Information Systems for Business year 1 (BSC/CISB)
- IN0B: BSc Computer Information Sys for Bus (4 year w Incorp Found) year 1 (BSC/CISB1)