======Object Oriented Programming - Lectures 2017/2018====== This page contains materials for the first half of lectures for [[https://is.cuni.cz/studium/rozvrhng/roz_predmet_gl.php?gl=16aNMIN201p1&fak=11320&skr=2017&sem=1|Object Oriented Programming (NMIN201)]] course that is being/has been taught during winter semester 2017/2018 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 ([[http://gamedev.cuni.cz/contacts/|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 Tomáš Holan and corresponding web page should have been found [[http://ksvi.mff.cuni.cz/~holan/|here]]. Permalink: [[http://bit.ly/mff-uk-oop-lecture-2017|http://bit.ly/mff-uk-oop-lecture-2017]] History: [[http://bit.ly/mff-uk-oop-lecture-2016|http://bit.ly/mff-uk-oop-lecture-2016]] ------------------------------- ======Dates====== Thursday's lecture, 15:40, [[https://is.cuni.cz/studium/rozvrhng/roz_budova_macro.php?skr=2017&sem=1&fak=11320&budova=NKAR&den=4|K11]]. You can contact me at any time: [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]] ------------------------------- ======Lectures====== =====L07 - 7.12.2017===== **Topic: Introduction to C++ Part 2** Details: * Virtual methods, overriding, statics, friends, operators, exceptions, templates, namespaces, streams Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTenlkS1g0TGFyWVE|PDF 5]] (courtesy of Martin Pergel) * [[https://drive.google.com/open?id=0B49ID9s3-zhTS21nVG1ETW4wOVU|PDF 6]] (courtesy of Martin Pergel) =====L06 - 9.11.2017===== **Topic: Introduction to C++ Part 1** Details: * Classes, methods, constructors, destructors Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTRGFoLXliOXM5cDg|PDF 4]] (courtesy of Martin Pergel) =====L05 - 2.11.2017===== **Topic: Introduction to C Part 5** Details: * Pointer arithmetic, structs, unions, preprocessor Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTRmFpZERfY2dRN00|PDF 3]] (courtesy of Martin Pergel) =====L04 - 26.10.2017===== **Topic: Introduction to C Part 4** Details: * Dynamic allocations, struct + linked list, files, string functions Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTNzRNSEpnSGtxejA|PDF 2]] (courtesy of Martin Pergel) * slides 25+ =====L03 - 19.10.2017===== **Topic: Introduction to C Part 3** Details: * We revisited "arrays" again and talked about passing by value and "reference" Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTNzRNSEpnSGtxejA|PDF 2]] (courtesy of Martin Pergel) * slides 01-24 =====L02 - 12.10.2017===== **Topic: Introduction to C Part 2** Details: * We get to "arrays" and the magic of casts :) Slides: * [[https://drive.google.com/open?id=0B49ID9s3-zhTMFlSR09jV1dCLWM|PDF 1]] (courtesy of Martin Pergel) * slides 34-39 * [[https://drive.google.com/open?id=0B49ID9s3-zhTNzRNSEpnSGtxejA|PDF 2]] (courtesy of Martin Pergel) * slides 01-18 =====L01 - 5.10.2017===== **Topic: Introduction to C Part 1** Details: * History of language C, Pascal vs. C (types, comments, procedures and functions, operators, return) Slides: [[https://drive.google.com/open?id=0B49ID9s3-zhTMFlSR09jV1dCLWM|PDF 1]] (courtesy of Martin Pergel) * We've been through slides 1-33 * History of language C, Pascal vs. C (types, comments, procedures and functions, operators, return), if, for 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