1. | Course Title | Programming Embedded Systems in “C” | |||||||||||||||
2. | Code | 4ФЕИТ05022A | |||||||||||||||
3. | Study program | Dedicated Embedded Computer Systems and Internet of Things | |||||||||||||||
4. | Organizer of the study program (unit, institute, department) | Faculty of Electrical Engineering and Information Technologies
Ss. Cyril and Methodius University in Skopje |
|||||||||||||||
5. | Degree (first, second, third cycle) | Second cycle | |||||||||||||||
6. | Academic year/semester | Year | 1 | Semester | 1 | ||||||||||||
7. | Workload measured by number of ECTS credits | 6 | |||||||||||||||
8. | Lecturer (In case of several lecturers to note the responsible one) | Dr. Zoran Ivanovski | |||||||||||||||
9. | Language of teaching | Macedonian and English | |||||||||||||||
10. | Course Prerequisites | None | |||||||||||||||
11. |
Course Goals (acquired competencies) and study results: By completing the course, the student acquired knowledge and understanding of programming concepts and techniques necessary for optimal and efficient programming of embedded systems. The acquired knowledge enables him to design software for embedded systems, its implementation, testing and deployment. The course is also the basis for following some of the other courses in the field of software for embedded systems. |
||||||||||||||||
12. | Course Syllabus (with Chapters) and study results for each chapter:
1. Embedded systems development environments. Being familiar with installation, configuring and utilization of development environments. 2. Basic programming techniques: program flow control, arrays, functions. 3. Memory management: pointers, arrays of pointers, function pointers, advanced pointer techniques, structures and unions. 4. Data structures: temporal analysis and memory utilization; linked lists, stacks and ques. Up to this point the student will understand the basics of code implementation and optimization for Embedded platforms. 5. Conditional compilation, preprocessing directives, operations with files. Acquiring knowledge and experience with code control and compiler optimization. 6. Functions with variable arguments, command-line arguments. Introduction to processes. 7. Introduction to system calls. The student will know how to efficiently utilize system calls for building optimal software implementations. 8. Advanced compiler and linker features. The student will be able of using advanced compiler and linker features for fast and easy software development management. |
||||||||||||||||
13. |
Interconnection of Courses: The course is a base for other advanced courses in the Program, like Dedicated and contemporary computer networks, IoT Standards and Protocols, Design of Smart IoT Devices and others. Most of the programing in the other courses in the Study Program, as well as in Embedded systems in general, is implemented in C; Hence, knowledge of optimal C programming is step 1 for other activities in the Program. |
||||||||||||||||
14. |
Detailed description of teaching and work methods: Lecturing, consultations, project works and presentations
|
||||||||||||||||
15. | Total number of course hours | 180 | |||||||||||||||
16.
|
Forms of teaching
|
16.1 | Lectures-theoretical teaching | 45 hours
|
|||||||||||||
16.2 | Exercises (laboratory, practice classes), seminars, teamwork | 45 hours
|
|||||||||||||||
16.3 | Practical work (hours): | 25 hours | |||||||||||||||
17.
|
Other course activities
|
17.1 | Projects, seminar papers | 20 hours | |||||||||||||
17.2 | Individual tasks | 0 hours | |||||||||||||||
17.3 | Homework and self-learning | 45 hours | |||||||||||||||
18. | Conditions for acquiring teacher’s signature and for taking final exam: 60% of all required course activities | ||||||||||||||||
19. | Grading | ||||||||||||||||
19.1 | Quizzes | 0 points | |||||||||||||||
19.2 | Seminar work/project (presentation: written and oral) | 50 points | |||||||||||||||
19.3 | Final Exam | 50 points | |||||||||||||||
20. | Grading criteria (points) | up to 50 points | 5 (five) (F) | ||||||||||||||
from 51 to 60 points | 6 (six) (E) | ||||||||||||||||
from 61 to 70 points | 7 (seven) (D) | ||||||||||||||||
from 71 to 80 points | 8 (eight) (C) | ||||||||||||||||
from 81 to 90 points | 9 (nine) (B) | ||||||||||||||||
from 91 to 100 points | 10 (ten) (A) | ||||||||||||||||
21. | Method of monitoring of teaching quality | Self-evaluation and student surveys | |||||||||||||||
22. | Literature | ||||||||||||||||
22.1. | Required Literature | ||||||||||||||||
No. | Author | Title | Publisher | Year | |||||||||||||
1. | A.N.Sloss, D.Symes and C. Wright | ARM System Developer’s Guide: Designing and Optimizing System Software | Elsevier Inc. | 2004 | |||||||||||||
22.2. | Additional Literature | ||||||||||||||||
No. | Author | Title | Publisher | Year | |||||||||||||
1. | Jonathan W. Valvano | Developing Embedded Software in C Using ICC11/ICC12/Metrowerks | University of Texas | 2006 | |||||||||||||
2. | Elecia White | Making embedded systems: design patterns for great software | O’Reilly Media | 2011 |