Microcontrollers and Microprocessors (Microcontrolere și Microprocesoare)

Level: Bachelor · Lecturer: Tiberiu Cociaș

Course on microcontroller-based systems: internal architecture, programming, I/O ports, the interrupt system, timer modules, analog-to-digital conversion, serial communication (UART/USART, RS-232/RS-485), and the design of complete embedded applications, illustrated through the GT Robot project.

Course book

Lecture Materials

  1. Introduction to Microcontroller Systems in English - What a microcontroller is, embedded-system design criteria, microcontroller anatomy, and the ATmega328P/Arduino platform. PDF
  2. Architecture of a Microcontroller in English - Bits, bytes and special function registers, memory types (SRAM/Flash/EEPROM), the ALU and instruction set, the ATmega328P architecture, oscillator and power supply. PDF
  3. Programming a Microcontroller in English - The toolchain from source to hex file, the Intel HEX format, bootloaders and ISP programming, ASM vs. C vs. C++, and hardware debugging. PDF
  4. Input and Output Ports in English - Digital pin internal structure, the DDRx/PORTx/PINx registers, sampling and metastability, pull-up resistors and pin protection circuits. PDF
  5. The Interrupt System in English - Polling vs. interrupts, the interrupt vector table, priorities, shared variables and race conditions, and debouncing with interrupts. PDF
  6. Timer Modules in English - Timer/counter modes, prescaling, PWM generation, and input capture, illustrated with an ultrasonic distance measurement. PDF
  7. The Analog-to-Digital Converter in English - Sampling and aliasing, quantization error, reference voltage, conversion architectures, and the ATmega328P ADC module. PDF
  8. Asynchronous Serial Communication in English - UART framing, the baud rate error budget, interrupt-driven reception with a circular buffer, and RS-232/RS-485. PDF
  9. Synchronous Buses: SPI and I²C in English - I2C open-drain addressing and transactions, SPI shift-register mechanism and clock modes, and the ATmega328P SPI/TWI modules. PDF
  10. Designing and Testing Microcontroller Applications in English - Why embedded projects fail, requirements engineering, system partitioning, finite state machines, and systematic testing and debugging. PDF
  11. Case Study: The GT Robot in English - A complete line-following robot: resource budgeting, motor control, encoder odometry, and the field-testing lessons learned. PDF

Laboratory Sessions

  1. Introduction - the C language, the Arduino IDE, Arduino hardware in English PDF
  2. 1B. Embedded programming - working with bits and registers in English PDF preparatory session
  3. The digital input/output port in English PDF
  4. The interrupt system in English PDF
  5. The timer module in English PDF
  6. The analogue-to-digital converter (ADC) in English PDF
  7. Serial communication in English PDF
  8. Practical applications - weather station, DC motor control, wireless, distance measurement in English PDF

Complete Lab Guide

Computer Programming and Programming Languages (Programarea Calculatoarelor și Limbaje de Programare)

Level: Bachelor · Lecturer: Tiberiu Cociaș

Introduction to object-oriented programming, taught as a practical parallel between C++ and Python: classes and objects, inheritance, polymorphism, encapsulation, abstraction, templates/generics, and common design patterns (Singleton, Factory, Builder, Adapter, Decorator, Observer, Strategy, and more), closing with good coding and debugging practices.

Course Textbook

Chapters

  1. Introduction to Object-Oriented Programming (Introducere în Programarea Orientată pe Obiecte)
  2. C++ Fundamentals (Fundamentele C++)
  3. Python Fundamentals (Fundamentele Python)
  4. Classes and Objects (Clase și obiecte)
  5. Inheritance (Conceptul de moștenire)
  6. Polymorphism (Conceptul de polimorfism)
  7. Encapsulation (Conceptul de încapsulare)
  8. Abstraction (Conceptul de abstractizare)
  9. Design Patterns (Concepte de design patterns)
  10. Common Programming Practices (Practici uzuale în programare)

Laboratory Sessions

  1. Introduction to C/C++ in English PDF
  2. Constants. Variables. in English PDF
  3. Console input/output operations in English PDF
  4. Operators and expressions in English PDF
  5. Statements (1) - algorithms and decisions in English PDF
  6. Statements (2) - loops in English PDF
  7. Arrays in English PDF
  8. Pointer variables. Reference variables. in English PDF
  9. Dynamic memory allocation in English PDF
  10. Functions in C/C++ in English PDF
  11. User-defined data types in English PDF
  12. Input/output operations. Files. in English PDF
  13. I/O operations in C++. Classes and objects. in English PDF

Local Area Networks (Rețele Locale)

Level: Bachelor · Lecturer: Tiberiu Cociaș

Local area networks, from physical transmission to network security. The course is delivered as twelve interactive lecture pages written for this site, each with its own diagrams, worked examples and self-check questions, plus seven laboratory sessions that run either in the browser, on a network emulator built for this site, or in Cisco Packet Tracer.

Course book

  • Local Area Networks - Lecture Notes and Laboratory Work (Rețele Locale - note de curs și lucrări de laborator) (Cociaș, 2026) - 252 pages, B5, typeset from the online material: twelve lecture chapters, seven laboratory sessions, a 165-entry glossary and an appendix with worked answers.

Lecture Pages

  1. Analogue and Digital Transmission in English - Networks and protocols, the OSI and TCP/IP stacks, the physical layer, line coding and modulation. PDF
  2. Transmission Media in English - Copper, fibre and wireless media, structured cabling, multiplexing and link performance. PDF
  3. The Data Link Layer in English - The Ethernet frame, MAC addressing, CSMA/CD, collision and broadcast domains, switching. PDF
  4. Optimizing Local Area Networks in English - VLANs, 802.1Q trunking, inter-VLAN routing, Spanning Tree and EtherChannel. PDF
  5. The IP Protocol in English - The IPv4 header, subnetting, VLSM, private addressing, ARP and DHCP. PDF
  6. Routing in English - The routing table, longest prefix match, administrative distance, static routes and summarisation. PDF
  7. Access Control Lists in English - Standard and extended ACLs, wildcard masks, placement rules, named and reflexive lists. PDF
  8. Securing the Network in English - The transport layer, firewalls, packet filtering with iptables, and the cryptography behind SSH. PDF
  9. NAT and Tunnelling in English - Static NAT, dynamic NAT and PAT, GRE and SSH tunnels, IPv6 addressing and 6to4. PDF
  10. Dynamic Routing in English - Link-state protocols, Dijkstra in practice, OSPF single-area and multi-area. PDF
  11. Wireless Networks in English - The 802.11 family, spreading and modulation, medium access with CSMA/CA, WPA2 and WPA3. PDF
  12. LAN Security and Network Attacks in English - CAM overflow, ARP poisoning, VLAN hopping, STP attacks - and the configurations that stop them. PDF

Laboratory Sessions

Seven two-hour sessions, each building on the previous one. Every page includes the equipment list, the topology, the full IOS configuration with the expected output of each command, assignments, a challenge and self-check questions - plus an embedded workbench with simulated routers and switches, so the whole lab can be done in the browser with nothing to install.

  1. First steps: topology, addressing and the first ping in English PDF no install needed lectures 1–3
  2. LAN switching: the MAC table, ARP, domains in English PDF no install needed lecture 3
  3. VLANs, trunks and inter-VLAN routing in English PDF no install needed lecture 4
  4. Designing the addresses: VLSM and DHCP in English PDF no install needed lecture 5
  5. Routing: static, floating routes and OSPF in English PDF no install needed lectures 6 and 10
  6. Access lists and NAT in English PDF no install needed lectures 7 and 9
  7. Access network and wireless security in English PDF no install needed lectures 8, 11 and 12

Interactive Tools

The lecture and laboratory pages embed calculators and simulators built for this course: a line coding waveform generator, an IPv4 subnet and VLSM calculator, a switch MAC-table simulator, a routing-table lookup, an access-list evaluator, a wildcard mask tester, a PAT table, an IPv6 address converter, Dijkstra on an editable topology and a Spanning Tree calculator.

Software needed. All laboratory work runs in Cisco Packet Tracer 8.2 or newer, available free with a Cisco Networking Academy account. No hardware is required.

Embedded Systems (Sisteme Încorporate)

Level: Bachelor · Lecturer: Tiberiu Cociaș

A complete course on embedded systems: from computer architecture and ARM processors to energy consumption, energy optimization techniques, real-time execution and RTOS, reconfigurable hardware, energy harvesting, and the Internet of Things.

Course Textbook

Chapters

  1. Introduction to Embedded Systems in English - What an embedded system is, its defining characteristics, application domains, design constraints, classification and IoT trends. PDF
  2. Computer Architecture in English - Instruction set architecture, addressing modes, CISC vs. RISC, and the processor performance equation. PDF
  3. Memory Architecture and ARM Processors in English - von Neumann vs. Harvard, the ARM family, registers, the pipeline and execution modes. PDF
  4. Energy Consumption in Embedded Systems in English - Power, energy, the consumption profile, DVFS and hardware techniques for reducing consumption. PDF
  5. Energy Optimization Techniques in English - Parallelism and Amdahl's law, VLIW, accelerators and dynamic power management. PDF
  6. Software Power Management and Software-Level Energy Optimization in English - Algorithm- and memory-level optimization, and software energy management policies. PDF
  7. Execution Models and Scheduling in Real-Time Embedded Systems in English - Temporal correctness, task states, Rate Monotonic Scheduling and Earliest Deadline First. PDF
  8. Synchronization, Kernel Architectures and RTOS for Embedded Systems in English - Mutexes and semaphores, priority inversion, kernel architectures and choosing an RTOS. PDF
  9. Reconfigurable Systems and Hardware Acceleration for Embedded Applications in English - FPGA architecture, look-up tables, the hardware design flow and hardware/software partitioning. PDF
  10. Energy Harvesting and Energy-Autonomous Embedded Systems in English - Photovoltaic, thermoelectric, vibration and RF sources, power management and storage sizing. PDF
  11. Internet of Things and Smart Device Networks in English - IoT architecture, network topologies, communication technologies, MQTT/CoAP and device security. PDF

Laboratory sessions

Five hands-on sessions, each built around a project that actually works at the end. Every page includes the theory, the wiring, complete code, interactive simulators, assignments and self-check questions.

  1. Energy test bench on Raspberry Pi 5 or Pi 3 in English PDF Raspberry Pi 5 / Pi 3 + LCD ch. 4–6
  2. Power states and battery life of an ESP32-C6 node in English PDF ESP32-C6 ch. 4, 5, 10
  3. Real-time operating systems: firmware on an open source watch in English PDF PineTime + InfiniTime ch. 7–8
  4. A complete IoT node: from sensor to dashboard in English PDF ESP32-C6 + Pi 5 ch. 11
  5. Hardware acceleration: the same algorithm, ten times faster in English PDF Raspberry Pi 5 · ARM NEON ch. 9

Shopping list

Consolidated list for all five sessions. One set covers a group working in teams.

ItemQtyNeedUsed in
Raspberry Pi 5 (4 or 8 GB) + 27 W power supply + active cooler1requiredsessions 1, 4 and 5
ESP32-C6-DevKitC-12requiredsessions 2 and 4 - two units, so a real network can be demonstrated
PineTime (sealed version)1requiredsession 3 - updated over Bluetooth, no programmer needed
INA219 or INA226 module (I²C)2requiredconsumption measurement in sessions 1, 2 and 5
16×2 LCD display with I²C adapter1requiredyou already have one; sessions 1 and 4
BME280 sensor (I²C)2requiredsessions 2 and 4
32 GB microSD card, class A21requiredthe operating system for the Pi 5
Breadboard + jumper wire set2requiredall sessions
Tactile button + 10 kΩ resistors4requiredpin wake-up, session 2
2×AA holder or 1000 mAh LiPo battery2optionalbattery-powered node, session 2
Spare magnetic cable for the PineTime1optionalthe bundled one is easy to lose
Oscilloscope or inexpensive logic analyser1optionalviewing Wi-Fi current spikes

Additional material