|
|
Main menu for Browse IS/STAG
Course info
KIV / PC
:
Course description
Department/Unit / Abbreviation
|
KIV
/
PC
|
Academic Year
|
2023/2024
|
Academic Year
|
2023/2024
|
Title
|
Programming in C
|
Form of course completion
|
Exam
|
Form of course completion
|
Exam
|
Accredited / Credits
|
Yes,
6
Cred.
|
Type of completion
|
Oral
|
Type of completion
|
Oral
|
Time requirements
|
Lecture
3
[Hours/Week]
Tutorial
2
[Hours/Week]
|
Course credit prior to examination
|
Yes
|
Course credit prior to examination
|
Yes
|
Automatic acceptance of credit before examination
|
No
|
Included in study average
|
YES
|
Language of instruction
|
Czech
|
Occ/max
|
|
|
|
Automatic acceptance of credit before examination
|
No
|
Summer semester
|
0 / -
|
0 / -
|
0 / -
|
Included in study average
|
YES
|
Winter semester
|
84 / -
|
1 / -
|
0 / 5
|
Repeated registration
|
NO
|
Repeated registration
|
NO
|
Timetable
|
Yes
|
Semester taught
|
Winter semester
|
Semester taught
|
Winter semester
|
Minimum (B + C) students
|
10
|
Optional course |
Yes
|
Optional course
|
Yes
|
Language of instruction
|
Czech
|
Internship duration
|
0
|
No. of hours of on-premise lessons |
|
Evaluation scale |
1|2|3|4 |
Periodicity |
každý rok
|
Evaluation scale for credit before examination |
S|N |
Periodicita upřesnění |
|
Fundamental theoretical course |
No
|
Fundamental course |
Yes
|
Fundamental theoretical course |
No
|
Evaluation scale |
1|2|3|4 |
Evaluation scale for credit before examination |
S|N |
Substituted course
|
None
|
Preclusive courses
|
N/A
|
Prerequisite courses
|
N/A
|
Informally recommended courses
|
KIV/PPA and KIV/ADT and KIV/PT and KIV/TI and KIV/PCT
|
Courses depending on this Course
|
N/A
|
Histogram of students' grades over the years:
Graphic PNG
,
XLS
|
Course objectives:
|
To issue necessary knowledge and skills to students so that they are self-containedly and effectively able to use the ANSI C programming language and to solve the whole range of problems for which the ANSI C language is today primarily used. The ability to produce a highly structured, high-quality and legible source code is emphasised in order to enable other members of a prospective development team to co-work on it. Attention is also paid to creation of multiplatform applications especially for operating systems of the Win32 platform and UNIX/Linux.
|
Requirements on student
|
A student obtains accreditation iff he or she hands in his/her seminar work according to preselected assignment in due time and the work is assessed (both program and document) by at least 21 points. Maximum is 70 points per the seminar work. In the case of an exceptional performance of the student (excellent work, original solution of an assigned task, outstanding activity, etc.) the teacher can reward him/her during the semester with additional points that are included into the final result.
The exam is held in a computer lab - students are assigned to create or modify a simple ANSI C program solving a particular problem and demonstrate its perfect functionality. They can obtain maximum of 30 points according to quality of the presented work (understanding of the problem, legibility of the code, compliance to the C code culture, solution effectivity and correct language usage is judged).
For detailed information see the web site of the subject at http://amos.fav.zcu.cz/pc.
|
Content
|
The below itemized topics represent radii of the subject matter went through, they do not exactly correspond to scheduled lectures:
(1) Introductory information, organization of the subject, recommended literature, fundamental historical information and frame of the C language, brief introduction into vocabulary and syntax, the simplest programs, program-operation environment binding.
(2) Closer look onto the C language syntax, keywords, control statements (if - else, return, break, continue), loops (for, while, do).
(3) Variable declaration, simple data types and their definitions, arrays, pointers, enumerations, structures, bit array, union, function data type, definition of a custom data type, definition of constants, definition of functions, assignment, input-output operations, empty statement, and unconditional jump.
(4) Expressions, operators, function calls, passing arguments to functions, typecasting or explicit type conversion, conditional expression, substitution expression and substitution operators, comma expression.
(5) Preprocessor of the C language, lexical convention of preprocessor, preprocessor macro definition and macros with parameters, macro recursion, predefined macros in ANSI C, including header files, conditional compilation, passing information to compiler via the pragma macro.
(6) Script-driven and automatised compilation - make, preparation of makefiles, comments, rule writing, explicit and implicit rules, goal definitions, symbolic goals, macros in makefiles, operating system commands in makefiles.
(7) Input-output operations, files and streams, standard streams, file operations, formatted input and output, file errors, detection and handling, advanced file operations.
(8) Memory management, basic memory operations - allocation and freeing, reallocation of blocks, dynamic arrays, arrays as function arguments, character strings, string functions.
(9) Character and string constants, character processing, math functions, random generator.
(10) Date and time, program execution time, calendar functions, difference of time stamps. Control functions and diagnostics, debugging macros, OS command processor, forced program termination, termination functions, signals.
(11) Standard ANSI C extension, error handling, working with operation environment variables, bisection searching, QuickSort sorting. Functions with variable number of arguments.
(12) Linking external binary modules - linker, writing external modules in assembler, segments and segment registers of processor, assembler compilation, passing arguments to assembler subroutines.
(13) Introduction to the object-oriented C++ language. Changes against the ANSI C. New syntactic elements - constant definitions, inline functions, passing arguments to function by reference, reference as return type of functions, declaration statement, type system and classes, bool data type. Overloading. Creating and freeing of object instances - new and delete operators. Name spaces.
(14) Objects in C++, class definitions, object declarations. Access specifiers to object items, member functions or methods, method modifiers. Constructor and destructor. Dynamic instances of objects. Overloading operators.
(15) Class inheritance, inheritance specifiers, sense and use of specifiers. Polymorphism. Abstract methods. Multiple inheritance, possible collisions.
(16) Programmer's model of processor. Registers. Data types, processor endian. Interrupts. Subroutine calls. Memory models.
(17) Multiplatform library for graphical user interface creating - Qt. Qt architecture. Getting, installation and particularities of program compilation using Qt. Minimalistic Qt application. Adding visual components - widgets. Event-driven application paradigm, signals and slots. Qt Designer.
|
Activities
|
|
Fields of study
|
|
Guarantors and lecturers
|
-
Guarantors:
Ing. Kamil Ekštein, Ph.D. (100%),
-
Lecturer:
Ing. Kamil Ekštein, Ph.D. (100%),
-
Tutorial lecturer:
Ing. Kamil Ekštein, Ph.D. (100%),
Ing. Vojtěch Frič (100%),
Ing. František Pártl (100%),
Ing. Jakub Sido (100%),
Ing. Jan Strnádek (100%),
|
Literature
|
-
Basic:
Materiály, studijní pomůcky, podpůrný SW
(Ekštein, Kamil)
-
Basic:
Herout, Pavel. Učebnice jazyka C. 1. díl. 6. vyd. České Budějovice : Kopp, 2009. ISBN 978-80-7232-383-8.
-
Extending:
Kernighan, Brian W.; Ritchie, Dennis M. Programovací jazyk C. 2. vyd. Bratislava : Alfa, 1989. ISBN 80-05-00154-1.
-
Recommended:
Salus, Peter H. Imperative Programming Languages. Macmillan Technical Pub, 1998. ISBN 978-1578700097.
-
Recommended:
Virius, Miroslav. Jazyky C a C++ : kompletní průvodce. 2., aktualiz. vyd. Praha : Grada, 2011. ISBN 978-80-247-3917-5.
-
Recommended:
Herbison, S.P., Steele, G.L. Referenční příručka jazyka C. Science, 1996. ISBN 80-901475-50.
-
Recommended:
Kernighan, Brian W.; Ritchie, Dennis M. The C Programming Language. 2. vyd. Prentice Hall, 1988. ISBN 978-0131103627.
-
On-line library catalogues
|
Time requirements
|
All forms of study
|
Activities
|
Time requirements for activity [h]
|
Individual project (40)
|
40
|
Practical training (number of hours)
|
30
|
Preparation for an examination (30-60)
|
30
|
Contact hours
|
65
|
Total
|
165
|
|
Prerequisites
|
Knowledge - students are expected to possess the following knowledge before the course commences to finish it successfully: |
prakticky využívat nabyté znalosti z předmětů Počítače a programování 1 a Počítače a programování 2 |
samostatně psát jednoduché programy v libovolném strukturovaném imperativním nebo objektově orientovaném programovacím jazyce (např. Java, Pascal, C#, PHP, BASIC, apod.) |
rozumět a aplikovat základní poznatky z oblasti teoretické informatiky (algoritmická složitost, množství informace, apod.) |
číst a porozumět anglicky psané dokumentaci, referenční příručce |
Skills - students are expected to possess the following skills before the course commences to finish it successfully: |
algoritmizovat jednoduché až středně obtížné problémy |
provádět elementární analýzu a dekompozici předloženého problému, navrhnout jeho algoritmické řešení |
spolehlivě ovládat základní vývojářské nástroje (programátorský textový editor, terminál/příkazový procesor OS, 2-panelový souborový manažer, atp.), má zkušenost s libovolným integrovaným vývojovým prostředím (např. Eclipse, apod.) |
Competences - students are expected to possess the following competences before the course commences to finish it successfully: |
N/A |
N/A |
|
Learning outcomes
|
Knowledge - knowledge resulting from the course: |
programovacího jazyka ANSI C a základní znalost objektově orientovaného rozšíření C++ (v rozsahu pro uvedení do samostatného dalšího studia) |
obecné principy imperativních programovacích jazyků se zvláštním zřetelem na nízkoúrovňové programování |
uspořádání běhového prostředí procesů z hlediska programátora (uspořádání paměti, činnost CPU, atp.) |
Skills - skills resulting from the course: |
psát komplexní programy v jazyce ANSI C pro všechny podporované platformy |
psát multiplatformní software, zná problémy a nástrahy tvorby software nezávislého na běhovém prostředí |
orientovat se v cizím zdrojovém kódu nebo kódu tvořeném v týmu |
Competences - competences resulting from the course: |
N/A |
|
Assessment methods
|
Knowledge - knowledge achieved by taking this course are verified by the following means: |
Practical exam |
Skills demonstration during practicum |
Seminar work |
Skills - skills achieved by taking this course are verified by the following means: |
Practical exam |
Seminar work |
Skills demonstration during practicum |
Competences - competence achieved by taking this course are verified by the following means: |
Continuous assessment |
|
Teaching methods
|
Knowledge - the following training methods are used to achieve the required knowledge: |
Lecture |
Lecture with visual aids |
Lecture supplemented with a discussion |
Laboratory work |
E-learning |
Task-based study method |
Collaborative instruction |
Self-study of literature |
Individual study |
Interactive lecture |
Discussion |
Skills - the following training methods are used to achieve the required skills: |
Lecture |
Lecture with visual aids |
Lecture supplemented with a discussion |
Laboratory work |
E-learning |
Task-based study method |
Collaborative instruction |
Self-study of literature |
Individual study |
Interactive lecture |
Discussion |
Competences - the following training methods are used to achieve the required competences: |
Self-study of literature |
|
|
|
|