- UCAS course code
- H600
- UCAS institution code
- M20
Bachelor of Engineering (BEng)
BEng Electrical and Electronic Engineering
*This course is now closed for applications for 2025 entry.
- Typical A-level offer: AAA including specific subjects
- Typical contextual A-level offer: AAB including specific subjects
- Refugee/care-experienced offer: ABB including specific subjects
- Typical International Baccalaureate offer: 36 points overall with 6,6,6 at HL, including specific requirements
Course unit details:
Programming and Software Engineering
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
- https://blackwells.co.uk/bookshop/product/Python-Distilled-by-David-M-Beazley/9780134173276
- https://blackwells.co.uk/bookshop/product/Automate-the-Boring-Stuff-With-Python-by-Al-Sweigart/9781593279929
- https://blackwells.co.uk/bookshop/product/Python-Crash-Course-by-Eric-Matthes/9781718502703
- https://blackwells.co.uk/bookshop/product/Programming-Rust-by-Jim-Blandy-Jason-Orendorff-Leonora-F-S-Tindall-Jim-Blandy/9781492052593
- https://blackwells.co.uk/bookshop/product/The-Rust-Programming-Language-by-Steve-Klabnik-Carol-Nichols/9781718503106
- https://blackwells.co.uk/bookshop/product/Rust-for-Rustaceans-by-Jon-Gjengset/9781718501850
- D. Thomas and A. Hunt, "The pragmatic programmer," 2nd edition, Addison-Wesley, Boston, 2019.
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 |