Faculty of Smart Devices Engineer - course RUB 264,780. from GeekBrains, training 20 months, Date: June 10, 2023.
Miscellaneous / / November 28, 2023
Who is the course suitable for?
For beginners
Learn to develop devices based on microcontrollers. You can create a network of smart gadgets yourself.
Specialists from other IT fields
Master engineering skills and specialize in IoT. Move into a promising direction and increase your income level.
Engineers and repair specialists
Supplement your knowledge: master C, software development and debugging. You will improve your professional skills and be able to develop a career in IoT.
Training courses
You will begin to master the technical basics of the profession: information search and basic file operations. Learn to create and optimize complex queries.
Courses
Git. Basic course
— Introduction to Git
— Installation and configuration of Git
— Basic terminal commands
— Working with repositories in Git
— Repository file management
— History of changes
— Publishing the repository
— History of changes
— Branch mergers
— Version management
— Creating a pull request
— Complex operations
— Working with fork repositories
Basics of programming
- Introduction
— Concept of algorithm, variables, data types
— Analysis of the practical task
- Branching. Cycles. Analysis of a practical task
— Arrays and functions
— Analysis of the practical task
— Website layout: introduction to HTML and CSS
— Analysis of the practical task
— Review of modern programming languages
— Analysis of the practical task
I quarter
General principles of microelectronics and programming
In the first quarter you will master C programming. Learn to work with assembly equipment (PCBs, soldering iron, resistors) and develop your first electronic device. You will also begin your acquaintance with microcontrollers using easy-to-learn devices from the Italian brand Arduino.
Courses
Meeting of the dean of the faculty with students
— About the program: logic of courses, projects, breaks
— Meeting classmates and the dean
— Recommendations for training and employment while studying
— Motivation and progress
- Answers on questions
Introduction to the profession
— Who is an embedded systems developer?
— Stages of device development
— Basic knowledge of physics
— Introduction to the soldering method
— Introduction to the soldering method. Part 2
Linux. Work station
— Introduction. OS installation
— Setup and familiarization with the command line interface
— Users. Managing Users and Groups
— OS loading and processes
— Linux file system device. Concept of File and Directory
— Introduction to Bash scripts. crontab and at task schedulers
— Package and repository management. Network Security Basics
— Introduction to Docker
Programming in C. A basic level of
— Introduction to the C language
— Binary and hexadecimal number systems
— Constants. Data Types, Part 1
— Operators and expressions of the C language. Functions (announcement, call)
- Variables. Data types (primitive types, strings, structures)
— Control operators
- Functions. Working with memory
— Data types, part 2. Fundamentals of an object-oriented approach to programming.
- Custom data types
— Program structure in C language
— Preprocessor
— IDE and development tools
— Standard libraries of the C language. Course project. Software utility for the interface for calculating temperature conditions in the house
Electronics Basics
- Circuit design. Introduction to Basic Components and Tools
— Calculations of various connections. Theory and practice
- Transistors. Theory and practice
— Connection and control of various loads
- Current. Power supplies and filters. Galvanic isolation
— Linear converters. Modern LDOs. PWM
- Operational amplifier. Logical elements. Part 1
— Logic elements. Part 2
— Consolidation of theory and practice
- Course work. Random number generator on seven-segment indicators
Arduino. Device design
— Introduction to Arduino
— Overview of available sensors. ADC. Reading data. Obtaining data from a potentiometer and estimating the angle of rotation of its handle. Simple filtering
— Overview of available display means (LEDs, LED matrices, displays)
— Dynamic display
— I2C interface using the example of working with a humidity and temperature sensor
— Character 16x2 display. Displaying data
- Interrupts
- Course work. Desktop weather station
II quarter
Working with industrial microcontrollers and interfaces
In the first two courses of the quarter, you will learn the ARM architecture and complete 2 projects: on the Nucleo board and based on STM32 microcontrollers. In the third year, you will study the principles of operation of technologies that enable devices to communicate with each other.
Courses
Microcontrollers. Introductory course
— Introduction to microcontrollers
— Interrupts, stack, timers
— Interfaces and data input and output buses
— I2C bus
— SPI interface
— Analog-to-digital converters (ADC)
— Digital-to-analog converters (DAC)
- Course work. Receiving data from a weather station on Arduino via SPI interface
Microcontrollers ARM (STM32)
— Microcontrollers STM32
— Loading and debugging STM32
— Features of working with Flash memory
— Watchdog timers and control transfer
— Special timers HRTIM and LPTIM
— Power consumption modes of STM32 microcontrollers
- DMA STM32
— CRC, RNG, HASH, CRYP
- COMP and OAMP in STM32
— Hardware implementation features using STM32 microcontrollers
- SD card and file system
— Analysis of coursework
Basic electronics technology
— Bluetooth (basic lecture)
— TCP/IP protocol as the basic Internet protocol. IP addressing. Subnet mask. Gateway. Wi-Fi modules. Basics
— LoRa Basic lecture. Basics of use
— Applicability of wireless solutions. Basic concepts of data transfer speed. Communication range
— Hardware solutions
— Voltage and current measurement: hardware and software solutions
— Basics of building power supplies
— Galvanic isolation of digital interfaces. Transceivers RS-232/485, CAN
— FPGA/ASIC: overview
- Course work. Creating a Web Server Using Nucleo and an ESP32 Chip
III quarter
Advanced level of microcontroller programming
You will master the C language at an advanced level. You will be able to apply the acquired knowledge in the development of embedded systems. Learn to work with real-time operating systems and continue to study Internet of Things technologies for connecting devices on a home network.
Courses
Programming in C. Advanced level
— Pointers. Pointers to structures. Practical examples. Programmer errors when working with pointers
— S language libraries. Feature overview. Disadvantages of Basic Libraries
— Code optimization issues
— Algorithms
— Compilation and compilers
- Multithreading in C
— Features of C for IoT
— Preparation for course work
RTOS (Real-Time Operating System)
— Review lecture on operating systems. Work principles. Resources. Sharing resources
- Tasks. Task management. Memory allocation and management models
- Queues. Specific examples and tasks. PID controller
- Semaphores. How Semaphores Can Reduce CPU Usage
— Debugging features. Debugging mechanisms. Stack and heap evaluation
— Mechanism of interaction between tasks
- Multitasking RTOS and interrupts
— Preparation for course work
Connection
— Device interaction protocols
- Wi-Fi (low protocol level)
— BLE/Bluetooth (low protocol level)
— Low-level interaction between devices (channel layer)
- HASH and checksums
— Common encryption and authorization methods
— Data redundancy in communication protocols
- Course work. Interaction with the MQTT server
IV quarter
Thesis and interview preparation
You will gain experience in developing fault-tolerant distributed devices, complete a final project, take a course on how to prepare for interviews and be able to take the first step into the profession for a position junior
Courses
Distributed networks / Thesis
— Introductory lesson, introduction to the distributed network
— Master/Slave operating mode of the device, construction methods
— Network fault tolerance, changing the role of the device
— Task brokers, broadcast tasks
— Failure modeling
— Building a network prototype
— Stability testing
- Graduate work. Distributed network of devices
What to prepare for at an interview
— Preparing a resume
— Communication skills and other soft skills
— Technical interview, types and options #1
— Technical interview, problem solving #2
— Technical interview, test project #3
— What questions to ask a recruiter
— Consent to the offer
— Review of resumes
Courses outside the quarter
Elective
Legal individual entrepreneurship and freelancing
The program was prepared by experts from Tochka Bank, a Russian digital bank for entrepreneurs. Part of the Otkritie Financial Group, the largest private financial group in the Russian Federation.