Skip to content

Latest commit

 

History

History
161 lines (148 loc) · 5.04 KB

File metadata and controls

161 lines (148 loc) · 5.04 KB

Introduction to Programming -- CS 200 - Dr. Waqar Ahmed SBASSE

Professor Email: waqar.ahmad@lums.edu.pk

- Teaching Assistant(s):

- Badar Shaban (Head TA)
- Hassnain
- Abdullah Somroo
- Talha
- Farrukh
- Usman Haider
- Saad Mehmoon

In this course we will expand upon the concepts learned in CS100

This GitHub repository serves as class notes and contains code from almost every concept taught in class, written in class.

Please refer to it, and try to run the code too. If you find any errors, feel free to change them and make a pull request. I will approve the pull request once I am able to review the code.

- Week 1 (Revision and Basic Concepts)

    - Class 1
        - Pointers
        - 2D Arrays
        - File Handling
    - Class 2
        - Activation Frame
            - Function call
                - Call by Ref, Call by Val

- Week 2 (Recursion and Iteration)

    - Class 3
        - Iteration
        - Recursion
    - Class 4
        - Recursive Binary Search
    - Lab 2
        - Recursive Fibonacci Sequence
        - Prime Numbers from 2 to N
        - 2D Array Matrix Multiplication 
    - Practice Notes
        - Variable pass by reference
        - Variable pass by value

- Week 3 (Classes and Structs)

    - Class 5
        - Structs
        - Classes
    - Class 6
        - Classes
            - Scope Resolution operator
            - Constructors
            - Destructors
    - Practice Notes
        - Command Line Arguments

- Week 4 (Dynamic Memory allocation -- Classes)

    - Lecture 7
        - Pointers -> Dynamic Memory allocation
        - Dynamic Memory allocation for arrays
    - Lecture 8
        - Data structure - Stack - Class
        - Quiz
            - Recursion

- Week 5 (Further on Classes - Operator Overloading)

    - Lecture 9
        - Friend Functions
        - Operator Overloading
    - Lecture 10
        - Operator Overloading
        - Further on Classes
    - Pre Lab 5
        - Integer Class -> Operator Overloading
    - Assignment 2
        - Vector Class -> make a vector class with all the necessary operators overloaded

- Week 6 (Copy Constructor, Assignment Operator, and Inheritance)

    - Lecture 11
        - Copy Constructor
        - Assignment Operator
    - Lecture 12
        - Dynamic 2D Array
        - Inheritance
    - Pre Lab 6
        - Matrix Class -> All the operators overloaded

- Week 7 (Inheritance and Polymorphism)

    - Lecture 13
        - Inheritance
        - Static Variables - shared by all objects of a class
    - Lecture 14
        - Class Aggregation
        - Singleton Pattern
    - Assignment 3
        - Classes
        - Dynamic Memory Allocation
        - RPG Game

- Week 8 (Inheritance and Polymorphism)

    - Lecture 15
        - Polymorphism
        - Virtual Functions
    - Lecture 16
        - Virtual Functions
        - Abstract Classes
    - Assignment 4
        - Classes
        - Inheritance
        - Polymorphism
        - Virtual Functions
        - Abstract Classes
        - RPG Game
    - Pre Lab 8
        - Classes
        - Inheritance
        - Polymorphism
        - Virtual Functions
        - Abstract Classes
        - Date Class -> Complete the Date class with all the necessary operators overloaded

- Week 9

    - Lecture 16
        - Polymorphism
        - Virtual Functions
    - Lecture 17
        - Virtual Functions
        - Abstract Classes
        - Canvas Class -> Shape Class -> Derived Shapes
            - Rectangle
            - Circle
            - Triangle
            --- Allows for drawing on the console

- Week 10

    - Lecture 18
        - File Handling
            - fstream
            - ifstream
            - ofstream
    - Lecture 19
        - File Handling
            - fstream
            - ifstream
            - ofstream
            - Binary Files
            --- NOTES TO ADD: Complete all cases of file handling
                - ios::in -> opens file for input
                - ios::out -> opens file for output
                - ios::app -> opens file for appending
                - ios::ate -> opens file for appending at the end -> the file pointer is at the end of the file
                - ios::binary -> opens file in binary mode -> the file is opened in binary mode
                - ios::trunc -> opens file and truncates it to 0 length -> it deletes all the contents of the file

- Week 11

    - Lecture 20
        - Exception Handling
            - try
            - catch
            - throw
    - Lecture 21
        - Exception Handling
            - try
            - catch
            - throw