Programming Microcontrollers in C++

Grigoryeva Svetlana Vladimirovna

The instructor profile

Description: This course studies the fundamentals of structured and modular programming in C++, the program structure for ATmega microcontrollers, the use of modern integrated development environments (IDEs), and the Arduino IDE for developing and uploading code to Arduino-compatible boards. The course is designed to provide students with practical skills in microcontroller programming and embedded systems development using C++ and Arduino tools.

Amount of credits: 5

Пререквизиты:

  • Mathematics 1

Course Workload:

Types of classes hours
Lectures 15
Practical works
Laboratory works 30
SAWTG (Student Autonomous Work under Teacher Guidance) 30
SAW (Student autonomous work) 75
Form of final control Exam
Final assessment method written exam

Component: University component

Cycle: Base disciplines

Goal
  • formation of theoretical knowledge and practical skills in the field of programming in C++ language of electronic devices of automated control systems based on microprocessor controllers.
Objective
  • studying programming languages, software design technologies;
  • mastering the basics of structured and modular programming in C++;
  • mastering modern integrated software development environments;
  • acquisition of software development skills for microcontrollers of the ATmega family;
  • developing skills in software control of electronic devices of automation systems made on the basis of microcontroller boards.
Learning outcome: knowledge and understanding
  • select instrumental and debugging tools for development and simulation when creating software for electronic devices and automation systems based on microprocessor controllers;
Learning outcome: applying knowledge and understanding
  • apply structured and modular programming technologies in C++ language when developing software for microprocessor controllers of control systems
Learning outcome: formation of judgments
  • organize the process of developing and implementing software systems for automated control systems for various production facilities;
Learning outcome: communicative abilities
  • formulate problems and presentations of the proposed design solution in the field of organizing work on the development and operation of microprocessor complexes in automation systems, both for specialists and non-specialists;
Learning outcome: learning skills or learning abilities
  • be proficient in the C++ programming language for developing and operating software for automated control systems.
Teaching methods

interactive lecture (use of the following active forms of learning: guided (controlled) discussion or conversation; moderation; demonstration of slides or educational films; motivational speech);

information and communication (classes in a computer class using professional software packages);

search and research (independent research activities of students during the learning process).

Assessment of the student's knowledge

Teacher oversees various tasks related to ongoing assessment and determines students' current performance twice during each academic period. Ratings 1 and 2 are formulated based on the outcomes of this ongoing assessment. The student's learning achievements are assessed using a 100-point scale, and the final grades P1 and P2 are calculated as the average of their ongoing performance evaluations. The teacher evaluates the student's work throughout the academic period in alignment with the assignment submission schedule for the discipline. The assessment system may incorporate a mix of written and oral, group and individual formats.

Period Type of task Total
1  rating Practical task "Introduction to programming in C++" 0-100
Practical task "Structured programming"
Practical task "Selection operators"
Practical task "Cycles"
Practical task "File input-output"
Practical task "One-dimensional arrays"
Practical task "Two-dimensional arrays"
Practical task "User functions"
Boundary control 1
2  rating Practical task "Arduino and analog sensors" 0-100
Practical task "Arduino and digital sensors"
Practical task "Data input/output"
Practical task "Using Arduino as a controller of actuators"
Practical task "Smart home system"
Boundary control 2
Total control Exam 0-100
The evaluating policy of learning outcomes by work type
Type of task 90-100 70-89 50-69 0-49
Excellent Good Satisfactory Unsatisfactory
Interview on control questions Demonstrates systemic theoretical knowledge, is proficient in terminology, logically and consistently explains the essence of phenomena and processes, makes reasoned conclusions and generalizations, gives examples, demonstrates free command of monologue speech and the ability to quickly respond to clarifying questions Demonstrates solid theoretical knowledge, is proficient in terminology, logically and consistently explains the essence of phenomena and processes, makes reasoned conclusions and generalizations, gives examples, demonstrates fluency in monologue speech, but at the same time makes minor mistakes that are corrected independently or with minor correction from the teacher. Demonstrates shallow theoretical knowledge, shows poorly developed skills in analyzing phenomena and processes, insufficient ability to make reasoned conclusions and give examples, demonstrates insufficiently fluent monologue speech, terminology, logicality and consistency of presentation, makes mistakes that he can correct only with correction by the teacher. Demonstrates systemic theoretical knowledge, is proficient in terminology, logically and consistently explains the essence of phenomena and processes, makes reasoned conclusions and generalizations, gives examples, demonstrates free command of monologue speech and the ability to quickly respond to clarifying questions
Work in practical classes Completed the work in full, observing the required sequence of actions; the report is drawn up in accordance with the requirements; correctly analyzes errors. When answering questions, correctly understands the essence of the question, gives an accurate definition and interpretation of the main concepts; provides new examples when answering questions, can apply knowledge in a new situation, can establish connections between the material being studied and previously studied material, as well as with material learned in other disciplines. Completed the work according to the requirement for a grade of "5", but made 2-3 mistakes. The student's answer to the questions meets the basic requirements for an answer of 5, but is given without applying knowledge in a new situation, without using connections with previously studied material and material learned in other disciplines; one mistake or no more than two mistakes were made, the student can correct them independently or with a little help from the teacher. Did not complete the work, but at least 50% of the volume, which allows obtaining correct results and conclusions; mistakes were made during the work. When answering the questions, the student correctly understands the essence of the question, but the answer contains individual problems in learning the course questions that do not interfere with further learning of the program material; no more than one gross mistake and two mistakes were made. Completed the work in full, observing the required sequence of actions; the report is drawn up in accordance with the requirements; correctly analyzes errors. When answering questions, correctly understands the essence of the question, gives an accurate definition and interpretation of the main concepts; provides new examples when answering questions, can apply knowledge in a new situation, can establish connections between the material being studied and previously studied material, as well as with material learned in other disciplines.
Boundary control test: 18-20 points – knowledge demonstrated at a high level test: 14-17 points – knowledge demonstrated at a basic level test: 13-10 points – knowledge demonstrated at a satisfactory level test: 18-20 points – knowledge demonstrated at a high level
Evaluation form

The student's final grade in the course is calculated on a 100 point grading scale, it includes:

  • 40% of the examination result;
  • 60% of current control result.

The final grade is calculated by the formula:

FG = 0,6 MT1+MT2 +0,4E
2

 

Where Midterm 1, Midterm 2are digital equivalents of the grades of Midterm 1 and 2;

E is a digital equivalent of the exam grade.

Final alphabetical grade and its equivalent in points:

The letter grading system for students' academic achievements, corresponding to the numerical equivalent on a four-point scale:

Alphabetical grade Numerical value Points (%) Traditional grade
A 4.0 95-100 Excellent
A- 3.67 90-94
B+ 3.33 85-89 Good
B 3.0 80-84
B- 2.67 75-79
C+ 2.33 70-74
C 2.0 65-69 Satisfactory
C- 1.67 60-64
D+ 1.33 55-59
D 1.0 50-54
FX 0.5 25-49 Unsatisfactory
F 0 0-24
Topics of lectures
  • Introduction to programming in C++
  • Conditional structures
  • Repetition structures
  • Streams and files
  • Arrays
  • Sorting algorithms
  • Functions
  • Addresses and pointers
  • Design of measurement and control systems based on a microcontroller
  • ATmega microcontrollers based on the Arduino board
  • Programming the ATmega microcontroller based on the Arduino board
  • Basic functions of the Arduino board
  • Basic functions of the Arduino board (continued)
  • Programming and debugging an application for microcontrollers
  • Modern microcontrollers
Key reading
  • Konova E.A., G.A. Pollak. Algoritmy i programmy. YAzyk S++: uchebnoe posobie. – 4-e izd., ster. – Sankt-Peterburg: Lan', 2019. – 384 s.
  • SHildt G. C++. Bazovyj kurs. – 3-e izd. – Moskva: Vil'yams, 2019. – 624 s.
  • Orlenko P.A., Evdokimov P.V. C++ na primerah. Praktika, praktika i tol'ko praktika. – SPb.: Nauka i Tekhnika, 2019 god. – 288 s.
  • Belov A.B. Programmirovanie ARDUINO. Sozdaem prakticheskie ustrojstva.- SPb.: Nauka i Tekhnika, 2018. - 272 s.
  • Simon Monk. Programming Arduino. Getting Started with Scetches. 2-е изд. – СПб.: Питер, 2017. – 208с.
Further reading
  • Straustrup B. YAzyk programmirovaniya C++. Special'noe izdanie. – Moskva: Binom, 2017. – 1136 s.
  • Pavlovskaya T. A. C/C++. Programmirovanie na yazyke vysokogo urovnya: dlya magistrov i bakalavrov. - Sankt-Peterburg, 2017. - 460 s.
  • Osnovy programmirovaniya na yazykah Si i C++ dlya nachinayushchih. Rezhim dostupa: http://cppstudio.com/
  • Programmirovanie na S i S++. Rezhim dostupa: http://www.c-cpp.ru/