Course description
The subject is a logical continuation of the Introduction to computer programming although it can be regarded as an independent unit as well. It is sectioned into three main topics:
-Introduction to C programming with emphasis on differences between C and JavaScript:
-script languages and compilers
-operating systems
-operators
-data types
-objects and variables
-C programming language
-data structures
-programming techniques
-low-level operations
-Learning board Arduino
-basics of embedded systems
-connecting and control of peripheral devices
-multitasking and real-time systems
-basic interrupt mechanism
Course is carried out on study programme
Electrical engineering 1st level
Objectives and competences
Students will have basic knowledge of C programming language. They will learn basic microcontroller principles, device connecting and basic real time systems principles.
Learning and teaching methods
Lectures, practical demonstrations, laboratory work, individual work with advanced students, web technologies, homeworks
Intended learning outcomes
After successful completion of the course, students should be able to:
-list and describe basic components of a microcomputer system
-explain the role of the basic computer components and how they work
-explain disturbing physical phenomena that can be solved using programmatic solutions
-identify the challenges that come with embedded, multitasking, and real-time systems
-develop a simple embedded system
-evaluate the significance of time and memory efficiency of a program solution
-build a reliable real-time system
-evaluate the efficiency of a specific solution in terms of the usage of resources, market price, reliability and maintainability
Reference nosilca
- KUNAVER, Matevž, BÜRMEN, Arpad, FAJFAR, Iztok. Automatic grammatical evolution-based optimization of matrix factorization algorithm, Mathematics. Apr.-1 2022, iss. 7, 1139, str. 1-22
- ŽIC, Mark, SUBOTIĆ, Vanja, PEREVERZYEV, Sergei, FAJFAR, Iztok. Solving CNLS problems using Levenberg-Marquardt algorithm : a new fitting strategy combining limits and a symbolic Jacobian matrix. Journal of electroanalytical chemistry. 1 Jun. 2020, vol. 866, 114171, str. 1-9
- BÜRMEN, Arpad, TUMA, Tadej, FAJFAR, Iztok. Meta-optimisation on a high-performance computing system. Elektrotehniški vestnik, ISSN 2232-3228. [English print ed.], 2012, vol. 79, no. 5, str. 231-236
- FAJFAR, Iztok, TUMA, Tadej, PUHAN, Janez, OLENŠEK, Jernej, BÜRMEN, Arpad. Towards smaller populations in differential evolution = K manjšim populacijam v diferencialni evoluciji. Informacije MIDEM, ISSN 0352-9045, sep. 2012, letn. 42, št. 3, str. 152-163
- FAJFAR, Iztok, PUHAN, Janez, TOMAŽIČ, Sašo, BÜRMEN, Arpad. On selection in differential evolution. Elektrotehniški vestnik, ISSN 2232-3228. [English print ed.], 2011, vol. 78, no. 5, str. 275-280
- PUHAN, Janez, BÜRMEN, Arpad, TUMA, Tadej, FAJFAR, Iztok. Teaching assembly and C language concurrently. International journal of electrical engineering education, ISSN 0020-7209, Apr. 2010, vol. 47, no. 2, str. 120-131
Study materials
1. I. Fajfar, J. Olenšek: Osvojimo C – C89, C99 in primeri programiranja mikrokrmilnikov, Založba FE, 2020
2. S. G. Kochan: Programming in C (4th Edition), 2014
3. K. N. King: C Programming – A Modern Approach, 2008
4. H. Schildt: Teach Yourself C, McGraw-Hill, 1997
5. R. P. Halpern: C for Yourself: Learning C Using Experiments, Oxford University Press, 1997
5. How C Programming Works (www.howstuffworks.com)
6. Spletna stran, www.cprogramming.com