Lectures
For students who have signed up to take notes, please use this LaTeX template in overleaf for the notes (zip version also available here). You can either edit in overleaf or download MikTeX and TeXStudio on your computer. I recommend the latter. Please make sure you edit what is needed in main.tex and session.tex. Please remove any image/codefile/… you are not using. When you are done, please share your notes through an overleaf project, or send me a zipped version of the TeX files along with the PDF.
- Lecture notes can be found here (last update 8/05/2020)
-
-
-
-
-
-
Lecture 24 - Task<>, async/await, Multi-Threading, Thread-Synchronization
Note Taker: زهرا مومنینژاد
-
Lecture 23 - C++ Delegate Capture Clause, Closure, Asynchronous Pattern, Task<>, async/await
Note Taker: پارمیدا مجمع صنایع
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Lecture 9 - Object Oriented Design - Statics
tl;dr: We refactored our Student/Course File example to use a more object oriented design and approach. We also introduced static functions and variables.
Note Taker: محمد جواد مهدی تبار
-
Lecture 8 - Working with Files in C#
tl;dr: We worked through an example of how to use files in C#. We also troubleshooted template functions, template parameter packs and fold expressions in C++.
Note Taker: بابک بهکام
-
Lecture 7 - Value/Reference Type + Objects/Classes in Java
tl;dr: We started by explaining how value types and reference types differ by examples in C# and C++. Next we developed an object oriented approach to a Student-Course-Instructor problem. The wo
Note Taker: امیرحسین سماوات
-
Lecture 6 - Dynamic/Static Arrays, Classes in C++
tl;dr: We started the class by explaining statically and dynamically allocated arrays. We then introduced static vs. dynamic (growing) arrays in all 4 languages. We introduced the Java ArrayList<>, C++ std::vector<>, Python list [] and C# List<>. We then introduced the C++ class definition syntax in .hpp files in addition to an example where a class has an object member variable.
Note Taker: نیکی نزاکتی
-
-
Lecture 4 - Variadic and Template/Generic Methods
tl;dr: We reviewed parameter passing features of static method/function related features of C#, Java, C++ and python. We discussed C#/Java generic functions and C++ template functions.
Note Taker: مهدی جاوید
-
Lab 1 - Build/Setup/Debug/VSCode/Pipeline in Java/C#/Python/C++
tl;dr: We distributed a version of vscode with required extnsions and tools (jdk, gradle, dotnet, mingw, python). We then went through the 4 languages 1 by 1 to get vscode to support building and debuging code and unit tests. We then coded the question in TA session. Students were expected to finish coding the same question in all 4 languges. Finally, we explained how to create build pipelines to have the project build on azure devops.
[video] -
Lecture 3 - Functions and parameters continued
tl;dr: We continued parameter passing discussion by examining the memory in C, brief look at how the STL vector class is used and saw ref/out parameters in C# in addition to Java.
Note Taker: نیوشا یقینی
-
Lecture 2 - Functions and parameters
tl;dr: We discussed top-down design, functions, parameter passing, passing by reference and passing by value in C, C++ and C#.
Note Taker: پریا فصاحت
-
Lecture 1 - Introduction + GIT
tl;dr: We went over the syllabus, some logistics and software installations needed. We also explained what git is and discussed how some common problems can be addressed.