{{indexmenu_n>2}} ====== Lectures ====== Supporting materials for the lectures. **These supportive materials are not intended as a replacement for your own notes from the lectures. They are rather provided to help you to understand the studied problems.** Most of the lectures are covered in the book: **K. N. King: C Programming A Modern Approach, Second Edition. W. W. Norton & Company, Inc., 2008.** ([[https://archive.org/details/k.-n.-king-c-programming-a-modern-approach-second-edition-2008|pdf version]]) The source codes presented in the lectures are attached in the particular ''.zip'' archive. It is highly recommended to become familiar with programs, implement complex programs by yourself and use the provided sources as a source of inspiration/receipt. \\ \\ \\ **Wednesday 9:15-10:45 KN:A-420** ^No ^Date ^ Topic ^^ | 01 | 24.09. | [[#Course information, Introduction to C programming|Lecture 01 - Course information, Introduction to C programming]]\\ K. N. King: chapters 1, 2, and 3 | | 02 | 01.10. | [[#Writing your program in C, expressions, control structures (loops)|Lecture 02 - Writing your program in C, expressions, control structures (loops)]]\\ K. N. King: chapters 4, 5, 6, and 20 | | 03 | 08.10. | [[#Data types, arrays, pointer, memory storage classes, function call|Lecture 03 - Data types, arrays, pointer, memory storage classes, function call]] \\ K. N. King: chapters 7, 8, 9, 10, 11, and 18 | | 04 | 15.10. | [[#Arrays and pointers|Lecture 04 - Arrays and pointers]]\\ K. N. King: chapters 8, 11, 12, 13, and 17 | | 05 | 22.10. | [[#Arrays and strings|Lecture 05 - Arrays and strings]]\\ K. N. King: chapters 8, 11, 12, 13, and 17 | | 06 | 29.10. | [[#Data types: Struct, Union, Enum, Bit fields. Preprocessor and Building Programs.|Lecture 05 - Data types: Struct, Union, Enum, Bit fields. Preprocessor and Building Programs.]] \\ K. K. King: chapters 10, 14, 15, 16, and 20 | | 07 | 05.11. | [[#6. Data types: Input/Output and Standard C Library|Lecture 06 - Input/Output and Standard C Library]] \\ K. N. King: chapters 21, 22, 23, 24, 26, and 27 | | 08 | 12.11. | [[#Test|Lecture 07 - Selected topics from previous lectures]] | | 09 | 19.11. | [[#Test|Implementation test]] | | 10 | 26.11. | [[#Parallel programming, parallel processing, and synchronizations primitives (semaphores, messages, shared memory)|Lecture 08 - Parallel programming, parallel processing, and synchronizations primitives (semaphores, messages, shared memory)]] | | 11 | 04.11. | [[#Multithreading programming, application models, POSIX threads and C11 threads|Lecture 09 - Multi-threading programming, application models, POSIX threads and C11 threads]] | | 12 | 11.12. | [[#ANSI C, C99, C11, and differences between C and C++. Introduction to object-oriented programming in C++ |Lecture 11 - ANSI C, C99, C11, and differences between C and C++. Introduction to object-oriented programming in C++]] | | 13 | 18.12. | [[#Object oriented programming in C++: classes, objects, inheritance and polymorphism | Lecture 12 - Object-oriented programming in C++: classes, objects, inheritance and polymorphism]] | | 14 | 07.01. | Concluding lecture, early exam | | ===== 1. Course Information, Introduction to C Programming ===== * course organisation: {{courses:be5b99cpl:lectures:be5b99cpl-lec00-slides.pdf|}} * lecture slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/10/03 21:40// ===== 2. Writing your program in C, expressions, control structures (loops) ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec02-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec02-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec02-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/10/03 21:41// ===== 3. Data types, arrays, pointer, memory storage classes, function call ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec03-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec03-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec03-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/10/25 09:10// --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/10/26 09:45// **Update**: FIX typos and formatting ===== 4-5. Arrays, strings, and pointers ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec04-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec04-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec04-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:53// --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/10/26 09:45// **Update**: FIX typos and formatting ===== 6. Data types: Struct, Union, Enum, Bit fields. Preprocessor and Building Programs ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec05-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec05-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec05-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:54// ===== 8. Data types: Input/Output and Standard C Library ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec06-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec06-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec06-codes.zip|}} * demo codes 2023: {{courses:be5b99cpl:lectures:main.c.txt|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:55// ===== 9. Selected topics ===== * We will reiterate some of the previous topics based on the results of the micro-tests and student feedback ===== 8. Implementation test ===== * A mid-term test with a maximum of 15 points. Threshold is 5 points. ===== 11. Parallel programming, parallel processing, and synchronizations primitives (semaphores, messages, shared memory) ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec07-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec07-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec07-codes.zip|}} * video lecture: [[https://youtu.be/zIuaAenBB2o|Youtube video]] --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/11/15 08:32// ===== 12. ANSI C, C99, C11, and differences between C and C++. Introduction to object oriented programming in C++ ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec10-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec10-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec10-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:59// ===== 13. Object oriented programming in C++: classes, objects, inheritance and polymorphism ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec11-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec11-handout.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec11-codes.zip|}} * video of the year 2021 lecture (part I): [[https://youtu.be/sJ5SwK1nR0Q|Youtube video]] * video of the year 2021 lecture (part II): [[https://youtu.be/AynG-xtTC90|Youtube video]] ===== 14. Concluding lecture, early exam =====