{{indexmenu_n>2}} ====== Lectures ====== Supporting materials for the lectures of the academic year 2023/2024. The materials are slides, also available in printer-safe version as handouts with 2x2 and 3x3 slides on a single page. **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.**, which is the main course textbook. 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. ^ #TWeek ^ Week ^ Topic ^ Wednesday \\ 9:15-10:45 \\ KN:E-311 ^ | 01 | 39. |[[#Course information, Introduction to C programming|Lecture 01 - Course information, Introduction to C programming]]\\ K. N. King: chapters 1, 2, and 3 | 27.09. | | 02 | 40. |[[#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 | 04.10. | | 03 | 41. |[[#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 | 11.10. | | 04 | 42. |[[#Arrays, strings, and pointers|Lecture 04 - Arrays, strings, and pointers]]\\ K. N. King: chapters 8, 11, 12, 13, and 17 | 18.10. | | 05 | 43. |[[#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 | 25.10. | | 06 | 44. |[[#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 | 01.11. | | 07 | 45. | [[#Test|Implementation test]] | 08.11. | | 08 | 46. |[[#Implementation test summary|Lecture 07 - Implementation test summary]] | 15.11. | | 09 | 47. |[[#Parallel programming, parallel processing, and synchronizations primitives (semaphores, messages, shared memory)|Lecture 08 - Parallel programming, parallel processing, and synchronizations primitives (semaphores, messages, shared memory)]] | 22.11. | | 10 | 48. |[[#Multithreading programming, application models, POSIX threads and C11 threads|Lecture 09 - Multi-threading programming, application models, POSIX threads and C11 threads]] | 29.11. | | 11 | 49. |[[#Version Control Systems (VCSs)|Lecture 10 - Version Control Systems (VCSs) ]]| 06.12. | | 12 | 50. |[[#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.12. | | 13 | 51. | [[#Object oriented programming in C++: classes, objects, inheritance and polymorphism | Lecture 12 - Object-oriented programming in C++: classes, objects, inheritance and polymorphism]] | 20.12. | | 14 | 02. | Finalization, evaluation, and defence of homework | 10.01. | ===== 1. Course Information, Introduction to C Programming ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-handout.pdf|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec01-handout-3x3.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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec02-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec02-handout-3x3.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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec03-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec03-handout-3x3.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. Arrays, strings, and pointers ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec04-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec04-handout.pdf|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec03-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec04-handout-3x3.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 ===== 5. 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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec05-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec05-handout-3x3.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec05-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:54// ===== 6. 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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec06-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec06-handout-3x3.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// ===== Test ===== * task: {{courses:be5b99cpl:lectures:cpl_mid-term_test.pdf|}} * supplementary files: {{courses:be5b99cpl:lectures:test_cpl_2023.zip|}} * book: {{courses:be5b99cpl:lectures:book.pdf|}} * aftertest: {{courses:be5b99cpl:lectures:query.c.txt|}} ===== 8. 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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec07-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec07-handout-3x3.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// ===== 9. Multithreading programming, application models, POSIX threads and C11 threads ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec08-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec08-handout.pdf|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec08-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec08-handout-3x3.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec08-codes.zip|}} * video lecture: [[https://youtu.be/87Tm6DpH9aw|Youtube video]] --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/11/15 08:32// ===== 10. Version Control Systems (VCSs) ===== * slides: {{courses:be5b99cpl:lectures:be5b99cpl-lec09-slides.pdf|}} * slides - handout: {{courses:be5b99cpl:lectures:be5b99cpl-lec09-handout.pdf|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec09-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec09-handout-3x3.pdf|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:58// ===== 11. 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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec10-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec10-handout-3x3.pdf|}} * demo codes: {{courses:be5b99cpl:lectures:be5b99cpl-lec10-codes.zip|}} --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/08/11 14:59// ===== 12. 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|}} * slides - handout 2x2: {{courses:be5b99cpl:lectures:be5b99cpl-lec11-handout-2x2.pdf|}} * slides - handout 3x3: {{courses:be5b99cpl:lectures:be5b99cpl-lec11-handout-3x3.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]] --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/20/12 21:18// Sources from the lecture on 2017/12/20 - : {{:courses:be5b99cpl:lectures:be5b99cpl-lec11-sources-2017-12-20.zip|}}