1. Course Title | Programming and Аlgorithms | |||||||
2. Code | 4ФЕИТ07З019 | |||||||
3. Study program | ЕАОИЕ,ЕЕПМ,ЕЕС,КТИ,КСИАР,КХИЕ,ТКИИ | |||||||
4. Organizer of the study program (unit, institute, department) | Faculty of Electrical Engineering and Information Technologies | |||||||
5. Degree (first, second, third cycle) | First cycle | |||||||
6. Academic year/semester | I/1 | 7. Number of ECTS credits | 7 | |||||
8. Lecturer | D-r Goran Jakimovski, D-r Tomislav Shuminoski, D-r Hristijan Gjoreski, D-r Slavche Pejoski | |||||||
9. Course Prerequisites | ||||||||
10. Course Goals (acquired competencies): Introduction to programming. Concepts of programming and algorithms. After finishing the course the student will be able to write simple and more complex programmes in C programming language. – Modeling software solutions and implementing them in C programming language – Profound understanding of data variables, code branching and programming cycles – Understanding arrays and matrixes, programming with multi-dimensional variables – Programming recursive functions and writing code to work with text files |
||||||||
11. Course Syllabus: Introduction to computer systems, components and organisation: processor, registers, memory. Programming. Programming languages. Syntax and semantics. Structure of a C program. Data types. Constants. Variables and types of variables. Operators. Logical and relational operations. Expressions. Basin input/output expressions. Commands for execution control of a program: branching statements (if-else, switch), repeating statements (for, while). Functions. Recursive functions. Complex program structures. Arrays. Pointers and pointer operations. Matrix. Concepts of searching through complex data structures. Ways of sorting. Textual arrays. Arguments in main() function. File concepts and structure. | ||||||||
12. Learning methods: Lectures, exercises and laboratory exercises | ||||||||
13. Total number of course hours | 2 + 2 + 2 + 0 | |||||||
14. Distribution of course hours | 180 | |||||||
15. Forms of teaching | 15.1. Lectures-theoretical teaching | 30 | ||||||
15.2. Exercises (laboratory, practice classes), seminars, teamwork | 45 | |||||||
16. Other course activities | 16.1. Projects, seminar papers | 0 | ||||||
16.2. Individual tasks | 45 | |||||||
16.3. Homework and self-learning | 60 | |||||||
17. Grading | 17.1. Exams | 12 | ||||||
17.2. Seminar work/project (presentation: written and oral) | 8 | |||||||
17.3. Activity and participation | 0 | |||||||
17.4. Final exam | 80 | |||||||
18. Grading criteria (points) | up to 50 points | 5 (five) (F) | ||||||
from 51to 60 points | 6 (six) (E) | |||||||
from 61to 70 points | 7 (seven) (D) | |||||||
from 71to 80 points | 8 (eight) (C) | |||||||
from 81to 90 points | 9 (nine) (B) | |||||||
from 91to 100 points | 10 (ten) (A) | |||||||
19. Conditions for acquiring teacher’s signature and for taking final exam | Laboratory exercises | |||||||
20. Forms of assessment | During the semester, two partial (or one full) exams are scheduled, along with two tests. The passing of the exam is based on passing the two partial (or one full) exam, where students are required to write small software solutions in C programming language. The tests are taken one week before the partial exams and are consisted of short questions from the curriculum. The partial/full exams take up to 80% of the grade, whereas the tests take up to 12% of the grade. The remaining 8% are from the laboratory exercises. | |||||||
21. Language | Macedonian and English | |||||||
22. Method of monitoring of teaching quality | Internal evaluation and survey | |||||||
23. Literature | ||||||||
23.1. Required Literature | ||||||||
No. | Author | Title | Publisher | Year | ||||
1 | K. Loudon | Mastering Algorithms with C | O’Reilly | 1999 | ||||
2 | Kochan C. | Programming in ANSI C | SAMS Publishing | 2005 | ||||
3 | B. Kernighan, D. Ritchie | C Programming language | Pearson | 1998 | ||||
23.2. Additional Literature | ||||||||
No. | Author | Title | Publisher | Year | ||||
1 | Thomas H. Cormen, et. al. | Introduction to Algorithms, (2nd Edition) | MIT PRESS | 2001 |