Pre-requisite of :
Computing Fundamentals and Programming 2019
What is Computer?
What is Computation?
What is Algorithm?
Guessing Game
Introduction to Logarithm
Finding Heaviest ball problem
Sarim-Katrina Proposal story (the introduction to Cryptography)
Reading Material: Chapter 1 - Computational Thinking
Assignment # 1 (Logical and Computational Thinking)
Measuring Water Using Cans.
Counting Handshakes in class.
Gauss's proof of Arithmetic Series
Log_3 N: Generalization of searching the Heaviest Ball.
Calendar formation of a month using Two cubes
Logical reasoning (Given 5 white beans And 10 Black Beans And a drawing criteria which will be the last ball in the pot.
Reading Material: Chapter 1 - Computational Thinking
Assignment # 1 (Logical and Computational Thinking)
Lab Manual :Assignment # 1 (Logical and Computational Thinking)
Introducing the Microsoft Visual Studio
Creating new project in Visual Studio
What is an executable file?
What is the #include directive?
How a C++ program is compiled to machine code.
Data streams and how the program interacts with console.
Printing number table without loop
Introducing the variables and their importance.
Introducing the console and running .exe file on it.
printing number sequences using while loop.
Taking input and storing it in a variable in C++, using cin.
Printing table from the user input.
Lecture 3 part(a)-Video Lecture
Lecture 3 part(b)-Video Lecture
Reading Material: Chapter 3 - Introduction to C++ (Table Printing) Notes
Discussion of lab problems:
Calculating square of a number.
temperature conversion (from Celsius to Fahrenheit)
Swapping two numbers using a temporary variable.
Taking average of k numbers.
Introducing the 'float' datatype and it's significance.
Introduction to debugging
Debugging using watches (an important tool while debugging).
Checking values in variables.
Reading Material: Chapter 3 - Introduction to C++ (Table Printing) Notes
Lab 2: Lab 2 - problems (getting starting with C++)
Lab Manual : Lab 2 - problems (getting starting with C++)
Lab help - session (Video Lecture)
Data Type integers and arithmetic operators (+, -, /, *, %)
Number system
long long, char (ASCII characters), double, float, int
if Statement
Block statements
if else statement
checking divisibility (Using Modulus % operator)
Compound Statements (AND: && and OR: ||)
Finding maximum out of 3 numbers
using 3 ifs and 4 conditions.
using 3 else if... with one condition removed
using the efficient way of finding maximum (by maintaining max)
Character Data-Type
ASCII values
Capital or small letter
Introduction to the for loop
Shifting from while loop to for loop
Summing the digits of a number
without loop (using variables)
with for loop (efficient way)
Validating the input
Detecting the case of letter using ASCII table
Lower case
Upper case
Creating a user interactive main() i.e. if you want to continue or not
Assignment 2: Control-Structures and for loop
Lab Manual : Lab 3 - 10 CodeChef Problems (beginner level)
Introduction to procedural programming
theoretical and conceptual diagram of functional programming.
Explaining how functions are called
Introduction to function and functional programming
Declaring a function
Defining a function
Calling a function
Prototypes of functions in C++
return type + function name + parameters list
Difference between arguments and parameters
Debugging a function
how to get inside a function during debugging ( pressing F11 functional key)
Lab 3: 10 CodeChef problems (beginner level)
Lab Manual : Control Structures Revisited: with Functions
Unique method for calculating age
Subtraction of Dates (Left to right)
Date validation
Story of Leap year
Assignment 3: Age Calculator
Lab Manual : Debugging in Visual Studio (C++)
Lab help - session (Video Lecture)
Checking primality using three different techniques
Prime Factorization
Calculating Square root
Assignment 3: Age Calculator
Taking input from the stream; terminating by -1
Even and Odds AND Finding Maxima/Minima
Printing Triangle Numbers
Perfect Square Numbers
Digital Clock
Printing Pyramids
pyramids of numbers
pyramids of alphabets
Palindrome and Reverse and binary numbers
GCD
reducing the fraction using GCD
Assignment 3: Age Calculator
Lab Manual : Lab Manual(Lab-6), Extension of Assignment 4
introducing the library function "_getch()"
introducing the c++ time library
the function time(0)
how to get current time and date
Procedure for shape printing
Checking patterns row by row
Identifying the pattern from a given shape
Deducing a formula from the pattern
Printing the triangles
Printing the right angled triangle.
Printing upside down triangle.
Printing equilateral triangle
Printing Diamond
Printing hollow diamond
Printing filled diamond
Printing pajamas
Assignment 5: Shape Printing
Including your header file
Using the "gotoRowCol()" function
Setting the font of and font size of the console screen
getting coordinates of console screen
writing function of clear screen
using the library function system("cls")
Circle Printing
using the equation of circle (x^2 + y^2 = r^2)
using the parametric equations (x = r.cos(theta) , y = r.sin(theta))
Setting the error value (threshold) for adjusting the int coordinates.
Spiral printing
printing a hard coated spiral
spiral which touches the vertices of screen
taking the input of no. of arms of spiral
Assignment 5: Shape Printing
Lab Manual : Lab Manual(Lab-7) Printing star, tree and boat
Intro to Animations
Connection with mathematics and Physics
Basics of Graphics
Using functions gotoRowCol() and getRowColByLeftClick().
Turning laws of Physics into Algorithms
Creating different characters like StickMan for Animations
Animating dropping rocks off a cliff
Project # 1: Animations
How to draw a Sine Wave
Making a moving sine wave
Making a character with moving arms (Sine waves as arms)
Project # 1: Animations
Lab Manual : Project # 1 Animations
Introducing the idea of arrays
How arrays are kept in computer memory (RAM)
Why does array indexing start from 0 instead of 1.
Rules for allocating arrays (constant size known at compile-time)
How low level exploits worked in the early days using arrays.
Using arrays in code.
Showing that arrays are treated as memory addresses (pointers)
Initializing arrays using loops (multiples of 5)
Assignment 6 : Basics of Arrays
Functioins of arrays
Printing function
init fucntion
Assignment 6 : Basic of Arrays
Why finding the maximum and 2nd maximum using the previous method is not scalable to Kth largest number
Shifting in Arrays
Frequency based problems
Finding Unique and Distinct Element
Assignment 7: Arrays and Relatives
Lab Manual : Sets
Understanding and Coding different type of Coding Algorithms
Comparing the efficiency of Bubble, Insertion and Selection Sort
Sorting by even and odd indices and values
Sorting ascending and descending on alternating indices
Assignment 7b : Sorting variants and their applications
Introduction to 2D Arrays Memory allocation in 2D arrays.
Traversals through Nested Loops in 2D array.
Swapping and Sorting rows in a Matrix
Transpose of a Matrix
Rows , coloum and digonal sum
Assignment 8: Some practice with 2D arrays
Lab Manual : 2D arrays
TicTacToe - Main Flow
Memory usage of the game
Step by Step division of game's flow
Init Step and Printing
Project 2 : Gomuku Phase 1
IAnnotating the validity of the move of the player
Discussion on the implementation of how the game will be over in Win and Draw Conditions
Winning Conditions
Diagnol Win Horizontal and Vertical win ways.
Project 2: Gomuku phase 2
Random Numbers How to generate random numbers and characters with srand() and rand()
Generating random Prime Numbers
Generating random numbers in a range
Genaralized Formula of Generating Random numbers in any range
Lab Manual : Random number generation+ cross word puzzle
Rules of Game of Life
Disscusion on Different types
Implementation
Review of References Address (&)
Operator Pointer Variable and Memory Map
The arithmetic of Pointers Addition/Subtraction Connection with Arrays
Understanding Structs by making student Struct
Assignment 8: Some practice with 2D arrays
Lab Manual : Pointers+ structs
Understanding and Coding different type of Coding Algorithms
Comparing the efficiency of Bubble, Insertion and Selection Sort
Sorting by even and odd indices and values
Sorting asceding and descending on alternating indices
Project 4 : Snake Game
Introduction to 2D Arrays pointers
Memory allocation in dynamic arrays 2D arrays.
Difference between 2d static arrays and 2d dynamic array
Assignment 8: Some practice with 2D arrays
Lab Manual : 2D pointers
Discussing Mainflow
Memory Requirement
Discovering the ways to store pieces in the background
(as alphabets and showing pieces differently)
Initializing the Board
Displaying the Board in the form of a grid (8x8 grid)
Taking input coordinates by the player
Basic Validation
whether the selected piece is the piece of the player
whether a destination is legal
Updating Memory
Turn Change
Updating Mainflow with Movement Legality
Designing Six Utility Functions
IsHorizontalMove
IsVerticalMove
IsDiagonalMove
IsHorizontalPathClear
IsVericalPathClear
IsDiagonalPathClear
Designing the pieces' legal Moves under the abstraction of the Six utility functions
IsRookLegalMove
IsBishopLegalMove
IsQueenLegalMove
IsKingLegalMove
IsHorseMove
IsPawnLegalMove (including its special Move)
Incorporating these legal steps into one LEGALITYCHECK function
Pawn promotion
Saving each and every move
Save and Exit
Undoing a move
Replay of the game
Check
Checkmate
Stalemate
Illegal Moves:
An illegal move is any move which results in a check or
A move within check which isn’t able to remove check is also an illegal move