Imperative Programming Foundations
Run by School of Computer Science and Electronic Engineering
10.000 Credits or 5.000 ECTS Credits
Organiser: Dr David Edward Perkins
Overall aims and purpose
To provide an introduction to the fundamental concepts and techniques of programming including: algorithms and computer programs, physical and virtual machines, language processors, data types; control structures; methods; stepwise refinement; arrays; systematic documentation; input/output and file handling.
Indicative content includes:
Types of programming languages and their features; interpretation and compilation; applications; programming environment and library use.
Use of variables; variable names; primitive data types; arithmetic operators; relational operators; boolean operators; evaluation of arithmetic and boolean expressions; assignment of values to variables; strings; arrays; array algorithms.
Concept of an algorithm; basic control structures - sequencing, selection and iteration; code blocks; if and switch statements; use of for, do and while loops; loop conditions; nested loops; basic input/output facilities pseudo-code as a design and documentation aid.
White box and black box view of program modules; method components header and body; method signatures; parameters; solving problems using stepwise refinement; block structure and variable scope; recursion and recursive methods.
Permanent and volatile storage; the concept of a file; structure of a text file; methods for file I/O; binary data and files; formatting output.
Correct use of code indentation; use of comments; choice of variable, class and method names; capitalization.
Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.
Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.
Equivalent to 40%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.
Design and build application/s using a range of programming techniques, including iteration.
Use the basic structure and features of a programming language
Write programs which adhere to style and documentation guidelines.
Design algorithms to solve a range of computational problems; use standard control structures together with I/O facilities to implement algorithms.
A series of lab based practice exercises building to assessed programs.
|CLASS TEST||In class tests 1||
Multiple choice in class test.
|In class test 2||13.33|
|In class test 3||13.33|
Teaching and Learning Strategy
Traditional lecture (2hrs x 12 weeks).
Practical laboratories (2hrs x 12 weeks) including exercises.
Private study including individual assessments
Additional sessions to support the teaching and assessment strategy
- Computer Literacy - Proficiency in using a varied range of computer software
- 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
- Exploring - Able to investigate, research and consider alternatives
- 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.
- Argument - Able to put forward, debate and justify an opinion or a course of action, with an individual or in a wider group setting
Subject specific skills
- Use of such knowledge in modelling and design
- Problem solving strategies
- Deploy theory in design, implementation and evaluation of systems
- Specify, design or construct computer-based systems
- Deploy tools effectively
- Development of general transferable skills
- Knowledge of systems architecture
- Defining problems, managing design process and evaluating outcomes
- Knowledge and understanding of computational modelling
- Principles of appropriate supporting engineering and scientific disciplines
Courses including this module
Compulsory in courses:
- H612: BEng Computer Systs Eng (3 yrs) year 1 (BENG/CSE)
- H61B: BEng Computer Sys Engineering (4yr with Incorp Foundation) year 1 (BENG/CSE1)
- H610: BENG Electronic Engineering (3 yrs) year 1 (BENG/ELE)
- H62B: BEng Electronic Engineering (4yr with Incorp Foundation) year 1 (BENG/ELE1)
- H61F: BEng Electronic Engineering year 1 (BENG/ELEF)
- H621: BEng Electronic Engineering with International Experience year 1 (BENG/ELEIE)
- N109: BSc Bus Analytics w Financial Tech year 1 (BSC/BAFT)
- N312: BSc Banking with Financial Tech year 1 (BSC/BKFT)
- 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)
- IN02: BSc Computer Information Systems for Business (Franchised) year 1 (BSC/CISBF)
- I111: BSc Computer Information Systems with International Exp year 1 (BSC/CISIE)
- I11P: BSc Computer Information Systems with Industrial Placement year 1 (BSC/CISP)
- G400: BSC Computer Science year 1 (BSC/CS)
- G40B: BSc Computer Science (4 year with Incorporated Foundation) year 1 (BSC/CS1)
- G40F: BSc Computer Science year 1 (BSC/CSF)
- I103: BSc Computer Science with Game Design year 1 (BSC/CSGD)
- I102: BSc Computer Science (with International Experience) year 1 (BSC/CSIE)
- G40P: BSc Computer Science with Industrial Placement year 1 (BSC/CSIP)
- GW49: BSC Creative Technologies year 1 (BSC/CT)
- H118: BSc Data Science & Artificial Intelligencetellig year 1 (BSC/DSAI)
- H113: BSc Data Science and Machine Learning year 1 (BSC/DSML)
- H114: BSc Data Science and Visualisation year 1 (BSC/DSV)
- H611: BSc Electronic Engineering year 1 (BSC/ELE)
- H63B: BSc Electronic Engineering (4yr with Incorp Foundation) year 1 (BSC/ELE1)
- H622: BSc Electronic Engineering with International Experience year 1 (BSC/ELEIE)
- H117: MComp Computer Science year 1 (MCOMP/CS)
- H661: MEng Control and Instrumentation Engineering year 1 (MENG/CIE)
- H617: MEng Computer Systs Eng (4 yrs) year 1 (MENG/CSE)
- H619: MEng Computer Systems Engineering (with International Exper) year 1 (MENG/CSEIE)
- H61P: Computer Systems Engineering with Industrial Placement year 1 (MENG/CSEP)
- H601: MEng Electronic Engineering (4 yrs) year 1 (MENG/EE)