
- Define what an embedded system is and list its key characteristics
- Distinguish microcontrollers (MCUs) from microprocessors (CPUs) in practical terms.
- Interpret a simple block diagram and identify key functional units in an MCU.
- Describe the role of common peripherals (GPIO, timers, ADCs, communication interfaces).
- Understand trade-offs in MCU-based system design and recognize real-world application domains.
- Describe the key components and registers of the Cortex-M4 core.
- Explain the processor's memory model and its interaction with peripherals.
- Understand exception types and how the processor handles interrupts.
- Utilize the floating-point unit and CMSIS interface in simple programs.
- Interpret core behavior in debugging scenarios (e.g., stack frames, interrupt flow).
- Interpret STM32F412 datasheet and pinout information
- Use STM32CubeMX to configure peripherals and generate code
- Build, flash, and debug simple embedded applications with STM32CubeIDE
- Describe the alternate function model and how peripherals connect to pins
- Follow safe lab and prototyping practices in real hardware work

After finishing the unit students will be able to:
- know the basic principles of the course
- identify what their interests and areas of ignorance are
- understand and can point out what distinguishes digital business from traditional business

Learning outcomes:
Understand the basics of Python, including syntax, variables, operators, and control structures
Work with data structures such as lists, dictionaries, and nested lists
Apply modular programming principles using functions in Python
Debug and optimize code according to best programming practices
Develop small practical projects to consolidate acquired knowledge

The aim of the course is to teachers the knowledge to design engaging, inclusive, and technology-driven learning practices.

