======Object Oriented Programming - Lectures 2019/2020====== This page contains materials for the first half of lectures for [[https://is.cuni.cz/studium/rozvrhng/roz_predmet_macro.php?tid=2&skr=2019&sem=1&ustav=32-KSVI&predmet=NMIN201&fak=11320|Object Oriented Programming (NMIN201)]] course that is being/has been taught during winter semester 2019/2020 at [[http://www.mff.cuni.cz/|Charles University]] in [[http://www.praha.eu/jnp/cz/home/magistrat/index.html|Prague]], Czech Republic. The first half will be dedicated to C language and we will tenderly touch C++. These lectures will be given by me ([[https://is.cuni.cz/studium/rozvrhng/roz_ucitel_macro.php?skr=2019&sem=1&fak=11320&ustav_mode=text&ustav=32-KSVI&ucitel=13860&zobraz=Zobraz|Jakub Gemrot]]). Slides we will be using are based and/or were completely created by Martin Pergel. The second half of lectures (about C# language) will be led by Martin Pergel. Permalink: [[http://bit.ly/mff-uk-oop-lecture-2019]] History: [[http://bit.ly/mff-uk-oop-lecture-2018|2018]], [[http://bit.ly/mff-uk-oop-lecture-2017|2017]], [[http://bit.ly/mff-uk-oop-lecture-2016|2016]] ------------------------------- ======Dates====== Wednesday's lecture, 17:20, [[https://is.cuni.cz/studium/rozvrhng/roz_ucebna_macro.php?ucebna=K3&skr=2019&sem=1&fak=11320|K3]]. You can contact me at any time: [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]] ------------------------------- ======Lectures====== **Topic: C Part 5 - Conclusions** Details: * preprocessor as the way to work around limitations of C language * [[https://www.tutorialspoint.com/cprogramming/c_preprocessors.htm|Macros in a nutshell]] * [[https://stackoverflow.com/questions/277258/how-do-i-see-a-c-c-source-file-after-preprocessing-in-visual-studio|Have MS Visual Studio output preprocessed files]] Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTNzRNSEpnSGtxejA|PDF 3]] (courtesy of Martin Pergel) * slides 7++ VS2017 Solution from the lecture: * [[https://drive.google.com/open?id=1BGN-v9nmRYMls8erQZyUOnN3tBeTdCUj|SLN]] =====L04 - 23.10.2019===== **Topic: Introduction to C Part 4** Details: * typedefs, structs, unions, files Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTRmFpZERfY2dRN00|PDF 3]] (courtesy of Martin Pergel) * slides 1-6 **Topic: Introduction to C Part 3** Details: * dynamic allocations, custom "safe string" Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTNzRNSEpnSGtxejA|PDF 2]] (courtesy of Martin Pergel) * slides 24+ VS2017 Solution from the lecture: * [[https://drive.google.com/open?id=1tOkHwMglvRh40_yuXMmC0vVOkB3utUja|SLN]] =====L02 - 9.10.2019===== **Topic: Introduction to C Part 2** Slides: [[https://drive.google.com/open?id=0B49ID9s3-zhTNzRNSEpnSGtxejA|PDF 2]] (courtesy of Martin Pergel) * We briefly touch the topic of pointers, arrays and "strings" VS2017 Solution from the lecture: * [[https://drive.google.com/open?id=1Zn1e4uEFvJ4qhJIf5Y7ln5RD2-hW8OBq|SLN]] =====L01 - 2.10.2019===== **Topic: Introduction to C Part 1** Slides: [[https://drive.google.com/open?id=0B49ID9s3-zhTMFlSR09jV1dCLWM|PDF 1]] (courtesy of Martin Pergel) * History of language C, Pascal vs. C (types, comments, procedures and functions, operators, return), if, for, while, switch * We will briefly touch the topic of pointers, arrays and "strings" VS2017 Solution from the lecture: * [[https://drive.google.com/open?id=1WV1lKOoaw43GOHnpQYzWs2Rf-AlsivtY|SLN]] Useful: * [[http://www.cs.gordon.edu/courses/cs320/handouts/C_C++_Syntax_vs_Pascal.html|Comparison of syntax Pascal vs. C/C++]] * Turned into handouts that compare Pascal and (ANSI) C syntax * [[https://drive.google.com/open?id=0B49ID9s3-zhTNTFPX0RNVVRZU2M|Handout 1]] - Constants, Variables, Types, Pointers * [[https://drive.google.com/open?id=0B49ID9s3-zhTeF85akFJcGtISmM|Handout 2]] - Procedures, Functions, Program * [[https://drive.google.com/open?id=0B49ID9s3-zhTMFVVRWpmRExWaEk|Handout 3]] - Operators and Expressions * [[https://drive.google.com/open?id=0B49ID9s3-zhTRUJINnl5VVA2Vms|Handout 4]] - Executables and Statements * [[https://www.programiz.com/c-programming/examples|Very simple C programs]] containing their in-depth explanations * [[https://3.bp.blogspot.com/-HSQTjkw0djk/WcpnMonIX9I/AAAAAAAAAXY/oxbpvKw8mXkKvuGJxBpSVxherKEy37pSACLcBGAs/w1200-h630-p-k-no-nu/ASCII-Table.png|ASCII Table]]