Table of Contents
• BEGIN PROGRAMING FUNDAMENTALS (PF) ................................................................................................................ 2
• Learn in this order for Pseudocodes: .................................................................................................................. 2
• IMPORTANT LINKS FOR COMPILER .............................................................................................................................. 2
• Roadmap to Learn a Programming Language .............................................................................................................. 3
• SIMPLE PROBLEMS TO START with for Practice ........................................................................................................... 5
Page 1 of 5
BEGIN PROGRAMING FUNDAMENTALS (PF)
To begin learning programming fundamentals (PF) for students with no computer background, it is
advisable to start with pseudocode and flowchart to develop logic-building skills. I recommend
watching the provided video as an initial step. These videos will introduce you to the basics of
pseudocode and flowchart, which are essential tools for designing algorithms and solving problems.
1. Click to Play Video 1
2. Click to Play Video 2
3. Click to Play Video 3
After watching the video, enhance your understanding by exploring additional educational
resources available on YouTube. Look for more videos related to pseudocode, flowchart, and logic
building to reinforce your learning. After watching these Videos also, you can follow the slides and
then can practice from the Assignments and Lab Tasks.
After you have learnt pseudocodes and flowchart than you can implement that problem in code.
Some Questions are given at the end to start with for practice for pseudocodes and coding (for more
see Assignments folder).
Learn in this order for Pseudocodes:
• if/else
• nested if/else
• while loop
• for loop
• do while loop.
• Do sum dry runs of pseudocodes if you want to make your logic strong (watch Trace table
videos on YouTube)
• Flowchart (use can also learn flowchart side by side with pseudocode)
Remember to take it step by step, and don't be discouraged by the initial challenges. Learning
programming fundamentals is a gradual process, and with practice, you will gradually become more
proficient in problem-solving and algorithm development. Best of luck on your learning journey!
Better to learn C++ because it is the best language to start learning, or if not C++ than C.
• Click to view Programming Fundamentals Google Drive Folder
The following three are the sub folder of above folder.
Click to view PF Slides Folder
Click to view PF Assignments
Click to view Lab Tasks
IMPORTANT LINKS FOR COMPILER
• Click to Download Visual Studio from Microsoft Website (download Visual Studio Community)
• Click to Open Google Drive Folder with Dev and Visual Studio Setup (it may give you warning
for harmful file because you are downloading it from google drive, but it is OK.)
• Click to Download Dev C++
Page 2 of 5
If you are new, you should download Dev C++, it is easy, then after some time you can move towards
Visual Studio. But it is up to you to use any compiler.
If you don’t have laptop/PC than you can also use online complier Click to open online Compiler
AFTER YOU HAVE LEARNED PROBLEM SOLVING, PSEUDOCODES,
FLOWCHARTS THAN START LEARNING THE SYNTAX OF THE
PROGRAMMING LANGUAGE STEP BY STEP
After you have learned pseudocode, you might have learned till loops so when learning to code you
will just need to learn the syntax. If you don’t think of completing the course (of course it is too much),
do as much as you can, at least try to cover till nested loops and some basic Arrays. If you want to
learn C++, all the material is available in these slides in the correct order.
Roadmap to Learn a Programming Language
These are not long topics, some of the topics are too small, but as it is detailed roadmap, that’s why
it is looking long. As you are covering the topics after each topic you can solve practice problem
from the internet, or you can also solve the assignments (Folder Link) and Lab Tasks (Lab Tasks
Folder).
• Simple Data types (int, float, double, bool, long, char, short)
• Arithmetic Operators and Operator Precedence
o Learn about arithmetic operators (+, -, *, /, %) and how operator precedence affects
the order of operations.
• Math Operator Rules
• Escape Sequences and Formatting Output (\n, \t, etc.)
• Relational Operators and Simple Data Types
• Constant variable
• Type Conversion
• if/else structure
o understanding parenthesis {} in if else statements
o Equality and Relational Operators (=, ==, <, >, <=, >=, !=)
o Logical (Boolean) Operators and Logical Expressions (!, ||, &&)
o Order of Precedence
o Short Circuit Analysis C++
o if/elseif/else
o nested if/else
• Conditional Operator (?:)
• Switch structure
• Loops
o while loop
o counter control loops while loops, sentinel control while loop, flag control while loop
o Break and continue in loops.
o for loop
o do loop
o nested loops (loop within a loop)
o Do sum dry runs of code if you want to make your logic strong (watch Trace table
videos on YouTube)
Page 3 of 5
• Arrays (Do practice array with loops to make concepts strong) (First start with 1D array than 2D
array follow same process for both types of arrays)
o Defining and initializing Array
o Accessing array components
o Editing Array
o Input/Output in Array
o Searching in arrays
o Sorting arrays
o Bubble Sort/Selection Sort
• String Data Type
o Basic String Functions (length, size, find, substring)
o Accessing element of string as Array
o Array of string
• Character String/Character Array
• (void, int, char, float, bool, string) Functions
o Defining a function
o Returning a value from function
o Parameter of functions
o Actual Parameter Vs Formal Parameter
o Default arguments in function parameters
o Passing an Array to function
o Reference Variable
o Returning more than one value through a function (by reference)
o Function Overloading (defining multiple functions with the same name but
different parameter lists)
• Local and Global Variable
• Lifetime of a variable, scope of a variable concepts
• Static variable
• Simple Recursion
o Factorial
o Sum of Array
o Fibonacci
• File Handling (See some basic file handling in C++ from here. Click to view it)
o Writing in File
o Reading from File
o Simple editing in File
• Pointers (The slides of this topic in 2nd Semester folder. Click to view it)
o Pointers and Functions
o Dynamic Memory Allocation
• Object Oriented Programing
• Data Structures
You can skip the Week_04_Lec_02_Updated slide if you don’t understand it by yourself or else ask
help from a senior. You can skip topics such as Memory Concept, Asset Function (because they
will be taught in class) but try to have at least some basic knowledge on it from YouTube. For OOP
and Data Structure roadmap you can search on google. As for your 1st semester you will be taught
till File Handling or Pointers.
Page 4 of 5
SIMPLE PROBLEMS TO START with for Practice
After you have written the Pseudocodes of the following problems you can also use write these
problems in code. After finishing these problems here are some more problems, and dry runs with
solutions (Click to view it). After that you can refer to the Labs or Assignment from the already
provided Links.
Write a program/pseudocode that:
• takes two numbers as input and calculates their sum. *
• takes three numbers as input and finds the maximum among them. *
• takes the length and width of a rectangle as input and calculates its area. *
• takes a number as input and checks if it is even or odd. *
• to calculate the factorial of a given number. ** ^
• takes a number as input and calculates the sum of its digits. ** ^
• takes a base and exponent as input and calculates the power of the number. ** ^
• to series up to a given number of terms. ** ^
• finds all prime numbers up to a given limit. ** ^
• checks if a given number is a palindrome or not. ** ^
• takes the radius of a circle as input and calculates its area. *
• takes a number as input and displays its multiplication table. ** ^
* Easy
** Medium
^ This means that you need understanding of loops to solve this problem
These problems are relatively simple and are great for starting to learn C++ using pseudocode and
flowcharts. As you gain confidence and understanding, you can gradually move on to more complex
problems and coding in C++. Solve Labs Tasks.
BEST OF LUCK ON YOUR LEARNING JOURNEY!
Regards,
Management
Any Error or Confused? Just Email
F223277@cfd.nu.edu.pk
Page 5 of 5