Education
BEng Computer Engineering • Final Year
University of Pretoria
Pretoria, South Africa
Expected Graduation: 2028 - Currently Taking A Gap Year
3rd & 4th Year – Key Learnings & Technical Depth
As a final-year student, I focused on building strong foundations in core computer engineering topics with extensions into the computer science field. Below are the modules where I gained the deepest understanding — with clear explanations of key concepts and how I applied them.
Computer Architecture & Systems
Year: 4 • University of Pretoria
Gained knowledge on advanced topics in computer architecture and systems, with a strong focus on parallelism, performance optimisation, and hierarchical memory systems. The 3 main practicals covered hardware implementation of a UART, an 8x8x1 RAM module, and a processor instruction set — all using Verilog HDL on an Intel Quartus FPGA.
Multiprocessors & Parallelism
Real-world relevance: Directly applicable to modern multi-core CPUs, GPUs, and cloud-scale distributed systems.
Performance Measurement, Speedup & Efficiency
Key takeaway: Understanding these metrics is essential when designing or optimising any high-performance application.
Scheduling & Data Routing Mechanisms
Applied in: Understanding how modern operating systems and cloud orchestration tools schedule workloads.
Hierarchical Memory Technology
Real-world relevance: Critical knowledge for low-level optimisation, embedded systems, and high-frequency trading applications.
Linear & Non-Linear Pipelines
Key insight: The same principles apply to CPU design, GPU shaders, and data processing pipelines in big data systems.
e-Business and Network Security 410 (EHN 410)
Year: 4 • University of Pretoria
Mastered the core principles of computer and network security: threats posed by adversaries, the security services users require, and the cryptographic mechanisms that protect systems. Implemented 3 practical assignments entirely in low-level Python (no external packages) to build real cryptographic primitives from scratch.
Threats, Security Services & Mechanisms
Key takeaway: A solid threat model is the foundation of every secure system.
Symmetric Cryptography (Block & Stream Ciphers)
Key takeaway: Built functional block and stream ciphers that could encrypt/decrypt data entirely through manual implementation.
Public-Key Cryptography & RSA
Key takeaway: Forms the backbone of secure key exchange in TLS/SSL and modern e-business platforms.
Cryptographic Hash Functions, MACs & Digital Signatures
Key takeaway: Essential for secure e-business transactions, software updates, and blockchain-style trust systems.
Network Security Protocols & Cloud Security
Key takeaway: The Python practicals reinforced how these protocols are built at the algorithmic level.
DSP Programming and Application 411 (ESP 411)
Year: 4 • University of Pretoria
Gained deep hands-on expertise in Digital Signal Processing — from theoretical foundations (transforms, filters, convolution) to real-time implementation on DSP hardware. Completed practical work in C (simulation) and deployed algorithms on actual DSP processors.
Discrete Transforms (DFT, FFT, Z-Transform)
Key takeaway: FFT reduces computational complexity from O(N²) to O(N log N) — critical for real-time systems.
Correlation, Convolution & Their Applications
Key takeaway: Implemented convolution-based filters entirely in C during practical sessions.
Digital Filter Design (FIR & IIR)
Key takeaway: Used in audio processing, noise cancellation, biomedical signal analysis, and communications.
DSP Hardware Architecture & Algorithm Mapping
Key takeaway: Understanding hardware constraints is essential for writing optimised real-time code.
Real-Time Implementation & C Simulation
Key takeaway: 9 hours of practical work + real-time implementation of selected signal processing algorithms on DSP processors.
Software Engineering 321 (EPE 321) (2024)
Year: 3 • University of Pretoria
Learned how to apply rigorous engineering principles to build and maintain high-quality, reliable software systems. Covered the complete software development life cycle, group collaboration, version control, UML modelling, and professional testing/debugging practices.
Software Development Life Cycle (SDLC) & Methodologies
Key takeaway: A structured process dramatically reduces bugs and maintenance costs in real-world projects.
Requirements Engineering & UML Modelling
Key takeaway: Group projects where clear modelling prevented scope creep and miscommunication.
Software Design & Construction Principles
Key takeaway: Clean architecture reduces long-term technical debt significantly.
Testing, Debugging & Quality Assurance
Key takeaway: Directly transferable to industry code reviews and CI/CD pipelines.
Group Work, Configuration Management & Version Control
Key takeaway: 9 hours of practical work focused on building software as a team — exactly what employers expect from graduates.
Microprocessors 310 (EMK 310) (2024)
Year: 3 • University of Pretoria
Hands-on, project-based introduction to embedded systems design. Mastered microprocessor architecture, firmware development, real-world interfacing, and peripheral integration using actual microcontroller development boards and IDEs.
Microprocessor Architecture & Firmware Development
Key takeaway: Understanding the hardware-software boundary is essential for efficient embedded systems.
Memory Organisation & Address Decoding
Key takeaway: Correct memory configuration is critical for stable embedded firmware.
Input/Output, Interfacing & Peripheral Devices
Key takeaway: 9 hours of lab work connecting hardware peripherals to a development board.
Embedded Design Tools & Development Workflow
Key takeaway: Project-based learning that mirrored industry embedded development practices.
Current Trends in the Microcontroller Industry
Key takeaway: Directly applicable to careers in embedded software, IoT, robotics, and firmware engineering.
Intelligent Systems 320 (EAI 320) (2024)
Year: 3 • University of Pretoria
Introduction to problem-solving and pattern recognition using intelligent systems. Gained hands-on experience implementing core AI and ML techniques including search, genetic algorithms, neural networks, probabilistic reasoning, and supervised learning.
Search Algorithms & Problem Solving
Key takeaway: Efficient search is the backbone of pathfinding, planning, and game AI.
Genetic Algorithms & Evolutionary Computing
Key takeaway: Used in scheduling, route optimisation, and hyperparameter tuning.
Neural Networks & Deep Learning Basics
Key takeaway: Foundation for modern computer vision, NLP, and predictive systems.
Probabilistic Reasoning & Uncertainty
Key takeaway: Probabilistic models power recommendation engines, medical diagnosis systems, and autonomous vehicles.
Supervised Learning & Pattern Recognition
Key takeaway: 9 hours of practical work applying ML techniques to real datasets — directly transferable to industry AI projects.
Data Structures and Algorithms 212 (COS 212) (2023)
Year: 2 • University of Pretoria
Mastered advanced data abstraction and the design of correct, efficient software. Explored classical data structures (trees, hash tables, heaps, graphs) and the algorithms that manipulate them, with a strong emphasis on implementation trade-offs and performance analysis.
Advanced Data Structures
Key takeaway: Choosing the right data structure is often more important than the algorithm itself.
Algorithm Efficiency & Analysis
Key takeaway: Multiple implementations of the same problem to understand real-world efficiency differences.
Sorting & Searching Algorithms
Key takeaway: These are the most common interview topics in software engineering.
Graph Algorithms & Traversal
Key takeaway: Graphs model almost every complex real-world relationship.
Problem Solving & Comparative Implementation
Key takeaway: These foundations are used daily in software engineering interviews, system design, and high-performance application development.
Operating Systems 122 (COS 122) (2023)
Year: 1 • University of Pretoria
Explored the fundamental structure and mechanisms of modern operating systems. Developed a solid understanding of real-time, multimedia, and multi-processor systems while gaining practical experience implementing core OS concepts on both Windows and Linux.
OS Structure & Modern Design Issues
Key takeaway: OS design decisions directly affect every application running on top of them.
Process Management, Deadlock & Concurrency Control
Key takeaway: Concurrency is one of the most critical and challenging aspects of modern software.
Memory Management
Key takeaway: Memory management knowledge is essential for writing efficient low-level software.
Input/Output, File Systems & Device Management
Key takeaway: Every application ultimately reads and writes files — understanding this layer is invaluable.
OS Security & Real-Time/Multimedia Systems
Key takeaway: Multiple practical assignments that bridged theory with real operating system behaviour.
Earlier Years – Foundational Knowledge
- COS 110
Program Design: Introduction
Object-oriented programming, inheritance, polymorphism, basic data structures
- COS 122
Operating Systems
Process management, memory, file systems, concurrency, hands-on Windows & Linux
- COS 132
Imperative Programming
Core programming concepts, algorithms, and problem-solving fundamentals
- EBN 111
Electricity & Electronics
Circuit analysis, Kirchhoff's laws, Thevenin/Norton, op-amps
- WTW 158/164
Calculus & Mathematics
Advanced calculus, linear algebra, vectors, and engineering mathematics
- COS 212
Data Structures & Algorithms
Trees, graphs, hash tables, heaps, sorting/searching algorithms & efficiency analysis
- ELI 220
Linear Systems
Signals, Fourier/Laplace transforms, filters, stability, and control theory
- ERS 220
Digital Systems
Combinational & sequential logic, datapath design, hardware description language
- EIR 211
Electrical Engineering
AC circuits, three-phase systems, transformers, and induction machines
- BES 220
Engineering Statistics
Probability, statistical inference, regression, and data analysis for engineers