Title: Embedded and Real-Time System Development Course Syllabus - Google Reichman AI Tech School

URL Source: https://graitechschool.co.il/embedded-and-real-time-system-development-course-syllabus

Markdown Content:
![Image 1](https://www.graitechschool.co.il/wp-content/uploads/2022/12/Mask-Group-9042.png)

![Image 2](https://www.graitechschool.co.il/wp-content/uploads/2022/12/Gilad-Kavalerchik__221220_130.jpg)

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.

![Image 3](https://www.graitechschool.co.il/wp-content/uploads/2022/12/Gilad-Kavalerchik__221220_146-e1671960198187.jpg)

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 m ake utility for project automation.
*   Work with single and double linked lists, binary search trees (BST), heap, and hash tables.

![Image 4](https://www.graitechschool.co.il/wp-content/uploads/2023/07/%D7%99%D7%96%D7%99%D7%93--scaled.jpg)

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 w ork with static and dynamic libraries, and implement signaling, pipes, and message queues.

![Image 5](https://www.graitechschool.co.il/wp-content/uploads/2022/12/Gilad-Kavalerchik__221220_200-e1671975249252.jpg)

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).

![Image 6](https://www.graitechschool.co.il/wp-content/uploads/2022/12/%D7%92%D7%9C-%D7%95%D7%90%D7%93%D7%99%D7%A1%D7%9C%D7%90%D7%9D-scaled.jpg)

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.

![Image 7](https://www.graitechschool.co.il/wp-content/uploads/2023/07/%D7%A2%D7%99%D7%A0%D7%AA-%D7%95%D7%93%D7%A0%D7%99%D7%90%D7%9C-2-scaled.jpg)

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.

![Image 8](https://www.graitechschool.co.il/wp-content/uploads/2022/12/Gilad-Kavalerchik__221220_20-e1673086560324.jpg)

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.

![Image 9](https://www.graitechschool.co.il/wp-content/uploads/2022/12/Gilad-Kavalerchik__221220_67.jpg)

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.

![Image 10](https://www.graitechschool.co.il/wp-content/uploads/2022/12/%D7%90%D7%95%D7%A8%D7%94-scaled.jpg)

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.

![Image 11](https://www.graitechschool.co.il/wp-content/uploads/2022/12/AI-2.jpg)

Introduction to AI and GenAI

*   AI, Gen AI and Machine Learning concepts; M ain 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 t ools; learning with NotebookLM.
*   Social impact of AI, AI risks and Responsible AI.

*The syllabus is subject to change
