C Programming - Review and Practice
- Introduction to basic I/O operations, variables, control flow, and functions.
- Work with arrays, pointers, and string manipulation.
- Understand dynamic memory allocation and data structures such as structs, unions, and enums.
- Handle file operations (text and binary) and perform basic unit testing.
- Use preprocessing directives, macros, and command-line arguments.
- Explore bitwise operations and function pointers for efficient low-level programming.
- Using AI tools to write code effectively, debug and optimize it.
- Accessing AI services from your C program through REST API.
Data Structures – A Quick Review
- Learn about Abstract Data Types (ADT), algorithmic complexity, and dynamic data structures.
- Implement and use dynamic vectors, stacks, queues, and make utility for project automation.
- Work with single and double linked lists, binary search trees (BST), heap, and hash tables.
Operating Systems, Focus on Linux
- Understand the fundamentals of processes and threads.
- Learn memory management and allocation techniques.
- Study inter-process communication (IPC) and deadlocks.
- Use system calls and explore file systems.
- Implement and work with static and dynamic libraries, and implement signaling, pipes, and message queues.
Networking
- Understand the OSI model layers, physical and data link layers, and Ethernet fundamentals.
- Explore transport protocols such as UDP and TCP, including client-server architectures.
- Solve TCP server blocking and multi-threading challenges.
- Configure and manage DNS, DHCP, and Network Address Translation (NAT).
Project 1: C and Networking on Linux
- Define project settings and High-Level Design (HLD).
- Conduct detailed design (DD).
- Collaborate effectively in small teams using version control systems (Git).
- Present and document the completed project implementation and outcomes.
Bare Metal Programming
- Introduction to ARM architecture and STM32 microcontrollers.
- Develop main loop applications and apply basic debugging techniques.
- Implement bit operations, GPIO control, and hardware register mapping.
- Manage interrupts and use timers for multitasking.
- Implement UART communication (polling and interrupt modes).
- Build CLI-based communication with a PC for monitoring and control.
FreeRTOS and Real-Time Concepts
- Learn FreeRTOS fundamentals, including task creation and context switching.
- Manage threads, queues, semaphores, and synchronization mechanisms.
- Apply tracing and debugging tools.
- Work with software timers, direct task notifications, mutexes, and critical sections.
- Handle interrupt management and learn and used I2C, DMA, PWM, ADC, DAC).
- Study RTC, watchdogs, linker scripts, flash memory, and EEPROM.
- Implement SPI communication and FATFS-based file storage systems.
C++ Programming
- Master object-oriented concepts: constructors, destructors, and operator overloading.
- Explore inheritance, polymorphism, and encapsulation.
- Apply templates, STL containers, and smart pointers for modern C++ design.
- Understand exceptions, design patterns, and advanced features of C++11, C++14, and C++17.
Project 2: Embedded System Integration (C on RTOS, Microcontroller, Hardware Interfaces, Electronic Components, C++ on PC)
- Define project scope, architecture, and high-level design.
- Conduct debugging, integration, and issue resolution.
- Design and implement a fully functional embedded system using a microcontroller, sensors, and actuators.
- Ensure proper integration between hardware, software, and real-time components.
- Present and demonstrate the final working embedded system, supported by technical reports and performance analysis.
Introduction to AI and GenAI
- AI, Gen AI and Machine Learning concepts; Main Gen AI models; LLMs, LMMs and how they work.
- Using generative AI to summarize content, learn and understand, develop and visualize ideas.
- Principles for effective learning with AI assistance.
- Prompt engineering and human-in-the-loop approach with Gen AI.
- Using Gemini with integration in Gmail, Docs and other tools; learning with NotebookLM.
- Social impact of AI, AI risks and Responsible AI.
*The syllabus is subject to change
