Computer Fundamentals and Programming 1

Module aims

This module aims to:

Instil the principles of digital logic design and computer fundamentals.
Provide a basis for you to understand what happens inside digital computers and how they communicate with the real world
Illustrate how both digital computers and complex medical instrumentation are built up from simple logic circuit elements.
Relate logic and digital systems to the fundamentals of computer programming
Provide the basic skills of programming in the ANSI C language and Matlab to 
To convey a sense of the professionalism required of programmers in order to write reliable C code for safety-critical applications, such as medicine.

Learning outcomes

 At the end of this module you will be able to:

1) Explain principles of digital logic, Boolean algebra and logic circuit design and describe how these principles relate to the key elements of a digital computer 
2) Analyse the functions of simple digital systems using understanding of digital logic principles
3) Develop and test logic designs using appropriate engineering tools
4) Apply problem decomposition to be able to break down problems and express solutions as precise concrete actions
5) Write well structured code to solve typical data handling problems 
6) Use programming languages in a professional integrated development environment to be able to solve a complex Bioengineering problem

Module syllabus

This module will cover the following topics:

Digital combinational logic.
Digital sequential logic.
The relationship between high-level compilers, assemblers and native machine code programs.
Computer fundamentals.
The C language, its types, expressions, standard functions and stacks.
Comparison between C and other languages.
Arrays, pointers and string library functions.
Program design and strategies.
An introduction to Matlab.

Teaching methods

Students will be taught over three terms using a combination of lectures, electronics labs and computer labs. Lecture sessions will be made available on Panopto for review and supplemented with technologies to promote active engagement during the lecture such as 'learning catalytics'. Labs will be based on taught content from lectures to reinforce these topics and allow students to test their understanding. 

Feedback : General feedback on formative assessments such as class polls and online quizzes will be given either orally in lectures and study groups or electronically as an email or announcement on Blackboard. For summative coursework general feedback will be provided within 10 working days of submission. A date for feedback of individual grades of coursework assignments will be published to all students with the aim that this should be within 10 working days of submission. Numerical results for the final examination will be communicated after the examiners board meeting.


 The module will be assessed by two exams and two courseworks. The programming exam is a live test of your understanding of the programming principles and your ability to apply these principles and will test learning outcomes 4,5&6. A multiple choice exam will test your understanding of the digital logical principles and application testing learning outcomes 1, 2 & 3. One coursework will be a progress test, from which you will get feedback to inform your future learning and the second coursework will test understanding of Matlab through application in a mini project testing learning outcome 4,5&6.