Bachelor of Engineering (BEng)

BEng Electrical and Electronic Engineering

*This course is now closed for applications for 2025 entry.

  • Duration: 3 years
  • Year of entry: 2025
  • UCAS course code: H600 / Institution code: M20
  • Key features:
  • Scholarships available
  • Accredited course

Full entry requirementsHow to apply

Course unit details:
Programming and Software Engineering

Course unit fact file
Unit code EEEN11202
Credit rating 20
Unit level Level 1
Teaching period(s) Semester 2
Available as a free choice unit? No

Overview

This unit will cover the following:

1. Introduction and motivation (including considering factors such as sustainability, risk, security, and equality/diversity/inclusion in programming).

2. Overview of major operating systems (e.g. Windows, macOS, Linux, RTOS).

3. Software engineering techniques (e.g. integrated development environments, version control, software lifecycle, debugging, unit testing).

4. General automation of computer tasks (e.g. shell scripting).

5. Core programming concepts (e.g. variables, if statements, loops; illustrated in Python).

6. Computer hardware and software concepts for programmers (e.g. memory addressing, heap and stack memory, data types, number formats, ASCII and UFT-8).

7. Practice using interpreted languages, including using standard packages and performing data visualization (e.g. via Python, Numpy, Scipy, Pandas, Matplotlib).

8. Practice using compiled high-performance languages (e.g. Rust).

9. Awareness of other compiled high-performance languages (e.g. C/C++).

10. Overview of coding for problem solving: common algorithms and high performance computing concepts.

Aims

This unit aims to provide students with an introduction to programming computer systems. It will provide an understanding of software development tools, and hands of experience of coding simple programs to build practical skills. This will give awareness of different types of programming approach (interpreted, procedural, and object orientated languages), and an introduction to coding for problem solving and creating algorithms. The unit focuses on the programming of desktop/laptop class devices, with some consideration of high performance computing (whether for high-spec computers, or embedded/single-board computer systems).

Learning outcomes

On the successful completion of the course, students will be able to:

ILO 1: Explain the need for, and importance of, programming, including why higher performance code may be needed and how this can be achieved. This includes an awareness of factors such as sustainability and security which may affect program design and implementation. (Developed and Assessed)

ILO 2: Demonstrate an awareness of the hardware and software in a computer system and how to program a desktop/laptop type device. (Developed and Assessed)

ILO 3: Explain the software development process, from requirements capture to long-term support, including the importance of documentation. (Developed and Assessed)

ILO 4: Use standard development tools (e.g. integrated development environments and version control) for writing and debugging software. (Developed and Assessed)

ILO 5: Apply standard programming techniques (e.g. if statements, loops) in different programming languages. (Developed and Assessed)

ILO 6: Test developed software to give evidence that the code is working and is functionally correct. (Developed and Assessed)

ILO 7: Perform data visualization using standard libraries. (Developed and Assessed)

ILO 8: Work individually to translate a given descriptive problem or algorithm into program code using appropriate programming elements, techniques and data structures. (Developed and Assessed)

Teaching and learning methods

Large group two-hour lectures are held weekly to cover key concepts and worked examples. Lecture material is provided electronically via the web (web page based lecture notes).

Additional brief e-learning videos are provided to support the understanding of key concepts.

Two two-hour laboratory sessions are conducted during most of the teaching weeks (10 out of 12) in a computer cluster, with the support of Teaching Assistants.

Assessment methods

Method Weight
Written exam 50%
Report 50%

Feedback methods

Invigilated Closed-Book Online Exam: Standard exam feedback provided after the exam board.

Lab-based Coursework: Live in-lab feedback by teaching assistants. Automated feedback from students uploading code samples to an online marking system. 10 assignments in total, one per week but with a single overall deadline. Feedback is provided immediately upon submission of work. 

Recommended reading

Study hours

Scheduled activity hours
Lectures 26
Practical classes & workshops 40
Independent study hours
Independent study 134

Teaching staff

Staff member Role
Alex Casson Unit coordinator

Return to course details