Sie sind auf Seite 1von 11

PF-UCP-2018 Home PF-Course Outline

Programming Fundamentals and


Building Educational Games

Other related course:

ITC: https://sites.google.com/view/itc-ucp-2017

DSA: https://sites.google.com/view/dsa-ucp2017

DM: https://sites.google.com/view/ds-ucp-2017/home

Algo: https://sites.google.com/view/algo-ucp-2017/home

Reference Books: BOOKS LINK (Schaum Series, Deitel and Deitel and DS. Malik)

Lecture 1 (Arrays: Revision I)


Evoting

Revision of arrays and filing

Sorting (Bubble Sorting)

Reading the file of Votes.txt

Counting the Votes (through Counting-Sort method)

MainFlow of EVoting

Its functional level details.

Lecture 1 (Videos)

(Class Notes)

(Slides)
Lecture 2 (Arrays: Revision II)
SelectionSort

CountSort

RangeSearch

Merging the Sorted the Arrays

Assignment 0/1 Discussion

Lecture 2 (Videos)

(Class Notes)

ASSIGNMENT # 1 (part 1)

Lab 1: (Using Visual Studio 2013/13 and The Power of Debugging)


First we covered How to use Visual Studio 2013/17

What Build Does

Exercise: Implementing Sorting

We discussed Finding All Unique Values and their Frequencies and then Sorting based on
Frequencies.

Debugging: We took one erroneous code of E-Voting and learnt the art of debugging to remove all
the Bugs.

Lab 1 (Playlist)

EVoting File CPP and Votes.txt File

ASSIGNMENT # 1 (part 1)

Lecture 3: Revision of Two Dimensional Arrays


Window Searching from a Matrix

Matrices Operations

Addition/Subtraction

Multiplication

Transpose

Lecture 3 (Playlist)

Notes

ASSIGNMENT # 1 (part 2)
Lecture 4: Beginning of Pointers (The Power of C)
Review of References

Address (&) Operator

Pointer Variable and Memory Map

Arithematic of Pointers Addition/Subtraction

Connection with Arrays

Array name holds the address of the array: Or actually a constant pointer

A[offset] => *(A+offset) how the two statements are equal?

SwappingWithPointers Function

Scanf function and how it works using pointers

Growable arrays

Lecture 4 (Playlist)

Readings: Chapter 7 (SCHAUM's Series by Hubbard)

ASSIGNMENT # 2 (part 1)

Lab 2: Pointers Lab


Types of Pointers

Heaps and Stacks Memory Management

Arithematic of Pointers Addition/Subtraction

Writing a function to Swapping Pointers

Creating Heap Array

Lab 2: Pointers Lab (Playlist)

Readings: Chapter 7 (SCHAUM's Series by Hubbard)

ASSIGNMENT # 2 (part 1)
Lecture 5: Pointers III
Dynamic Memory Allocation (Code for reading from file through Dynamically allocation is here)

How to Use Allocate Memory (using by reference pointers passing and by pointer returning)

How to delete the space allocated on Heap through new (Using delete operator)

Grow-able (Resize-able) arrays(Code is here)

Double pointer and 2 Dimensional Array Allocation (Matrix allocation code is here) + Tutorial

Lecture 05 (Playlist)

Readings: Chapter 7 (SCHAUM's Series by Hubbard)

ASSIGNMENT # 2 (part 2)

Lecture 6: Pointers IV
Double pointer and 2 Dimensional Array Allocation (Matrix allocation code is here) + Tutorial

Multiple directions of pointers

pointers to integers, pointers to pointers

Discussion on Assignment # 3

Lecture 06 (Playlist)

Readings: Chapter 7 (SCHAUM's Series by Hubbard)

ASSIGNMENT # 3

Project 1(by Sarim Baig): Simulating Josephus Permutation with Dynamic Arrays

Lecture 7: Pointers V
Function Pointers

Sorting (Ascending and Descending Using Function Pointers)

Summation Series - Using Function Pointers

C-Struct

Discussion on Assignment # 4

Lecture 07 (Playlist)

Readings: Chapter 7, Function Pointers: Link1, How to Program C++ (Deitel 5.11 ), STRUCT: Link1, Link
2, Link 3

ASSIGNMENT # 4
Lecture 8: Structs and Strings and Sorting using function pointers
Structs

Strings and how structs are allocated in memory

Structs array

composition of structs

Discussion on Assignment # 4 (Question 1): Function pointers and Student Record Sorting.

Lecture 08 (Playlist)

Readings: Chapter 7, Function Pointers: Link1, How to Program C++ (Deitel 5.11 ), STRUCT: Link1, Link
2, Link 3

ASSIGNMENT # 4

Lecture 8.2: CHAPTER 5 - READING


Chapter 5 Reading - PointersLecture 08 (Playlist)

How to Program C++ (Deitel and Deitel) Chapter 5

Lecture 8.2 (Playlist)

Lecture 9: Deleting 3-Dimensional world + Debugging and Project 2


Deleting 3-Dimensional world

Debugging the pointers programs

TEXT-EDITOR

PROJECT 3

Lecture 09 (Playlist)

Project 2: TEXT EDITOR


Lecture 10: The Paradigm shift: Object Oriented Programming
The Story of OOP

Introduction to Classes and Objects

Abstraction

Classes vs Structs

Objects, Properties and behaviours

The First Example: The Complex Numbers

Constructors, Member Functions

Lecture 10 (Playlist)

Assignment # 5

Lab - 5: The Paradigm shift: Object Oriented Programming


OOP - Function overloading Multiple constructors

Getters and Setters

Their Need

Utility/Helper Function

The second Example: The Fraction

Constructors, Member Functions

Lab 5 (Playlist)

Assignment # 5

Lecture 11: Chapter 9 (Deitel and Deitel - How to Program) - Review


Constructors and Destructors

Static Data Members

Maintaining Count of Total Objects declared

Static/Global/Local Objects creation and destruction

Common Programming Errors

Member by Member Assignment - Shallow Copy

Lecture 11 (Playlist)

Quiz - Constructors and Destructors

Assignment # 5
Lecture 12: MyString class, Shallow and Deep Copy
String and its many constructors

Deep Copy./Shallow Copy

Lecture 12 (Playlist)

Assignment # 5(c)

Lecture 12.2: OPERATOR OVERLOADING...!!!


Complex Numbers and its all operations with operator overloading revisited

Cascading Effect in Getters

Fraction Numbers and its usage using operator overloading.

Lecture 12.2 (Playlist)

Assignment # 6

Lecture 13: Static Attributes and Static Functions + Operator Overloading...!!!


Static functions and their connection with classes

Why static functions cannot access the class/objects/non-static attributes

Matrix Class (Given Main) figuring out the possible operators

Matrix Basic Public functions

Copy constructor

Matrix Determinant

Lecture 13.1 (Playlist)

Lecture 13.2 (Playlist)

Quiz - Constructors and Destructors

Assignment # 6

Lecture 14.1: Growable-String (without wastage) - the usage of cin.get and


huge Integers
Growable Strings

Huge INTEGERS (Addition+Subtraction+Multiplication/Division)

Lecture 14.1 (Playlist)

Quiz - Constructors and Destructors

Project 3
Lecture 14.2: Composition, Association, Inheritance-Polymorphism
Objects Relations

Composition/Aggregations "Has a relation"

Association ("associated/knows a")

Inheritance ("Is a relation")

Base/Drive classes relations

Polymorphism

Lecture 14.2 (Playlist)

Assignment - Shape Hierarchy

Project 3

Lab 7: Shapes Hierarchy


Class Hierarchy

Shapes Class

Drived classes

SingleDimensional Shapes

Lines

Segment

Ray

Two Dimensional Shapes

Circle

Quardriletral

Rectangle

Square

Triangle

ThreeDimensional Shapes

Cube

Sphere

Cylinder

Cone

Polymorphism : how to use base class pointer to access drived classes virtual function

PF-Lab 7 (Playlist)

Assignment 7 - Shape Hierarchy


Lecture 15: Using Graphics.h Library (Intro To Graphics in C++) and Chapter
Review
Graphics.h

Polymorphism : How to extend the Shape Hiararchy to add on Graphical library

PF-Lecture 15.1 (Playlist)

Assignment - Shape Hierarchy

Review of Chapter Inheritance

Deitel's Book

PF-Lecture 15.2 (Playlist)

Lecture 16: Pointers Quiz and Its discussion


Pointers Quiz and Discussion

PF-Lecture 16 - Pointers Quiz

Lecture 17: Beginning of C# (Making Calculator)


Windows Form

Connection with Inheritance

Adding Buttons

Text Boxes

Playing with Strings

Parsing to Integers

Adding Events

Click Event

PF-Lecture 17 - Basics C# and Windows Form

Lecture 18: Making Minesweeper


Adding Dynamic WindowsForm Buttons

FlowLayout Panel

Adding Buttons

Adding Events dynamically

Generating Mines

The Main Flow of MineSweeper

PF-Lecture 18 - Making Minesweeper


Lab 8: The Game of CHESS
The Class diagram of CHESS

Hiararchy of Chess

Piece

Abstract Class and its abstract functions

Utility Functions

IsHorizontal, IsVertical, IsDiagonal

PathClear (vertical and horizontal), and DiagonalPathclear

Drived classes Pawn, King, Knight, Queen, Bishop, Rook

virtual functions implementations of isLegal

Owned Pieces Selection

Enumeration

PFX-Lab 8 - The Game of Chess

Lecture 19:
Phase 2 of Chess

Highlight

CHECK

SELFCHECK based legality moves

PawnPromotion

Castling

CHECKMATE

Starting UNITY

Lecture 19 - CHESS (Phase 2 and Hello world of Unity)

Lecture 20: UNITY (Game Development - Buildig HAT-Trick Game)


UNITY BASIC GAME

HAT-TRICK (exporting Assets)

Adding Script

Adding movement to Hat

Adding Movement to Balls/Bombs

Lecture 20 - UNITY (HAT-Trick Game)


Lecture 20b:
UNITY BASIC GAME

1. Spawning

2. Colliders -

triggered and non-triggered - to guide ball inside or outside, and to detect bomb
"DestroyPoint"

3. Coroutines

4. Explosion sound

5. DataManager to maintain score.

6. Display the score

7. UI elements

8. End the game

9. Start the game

Homework -

1. Adding Restart functionality

2. Game Over and Score Display

3. Add highest Score.

Lecture 20b - UNITY (HAT-Trick Game) [conti...]

Lab 9: Building Our First 3D-Game (Space Invader)


Playing with controls of the ship

Playing with aesthetics of the ship movement

Adding Bullets and their movements and adding Asteroids

Adding Explosions

Lab 9 - Building First 3D Game - Space Invader

Lecture 21: Flappy Plane


How to do slicing to make your own sprites

Adding different multiple backgrounds for movement effects, for nearness and farness
together

Adding points and multiple similar effects (as we done before)

Lecture 21 - Flappy Plane

Das könnte Ihnen auch gefallen