ICT Chapter 9
Programming
Problem Solving
Programming is a process of problem solving
Problem solving techniques
◦ Analyze the problem
◦ Outline the problem requirements
◦ Design steps to solve the problem
Problem solving process
Understanding the problem
Defining the problems and boundaries
Planning the solution
Check the solutions and select the best one
Modularization
breaking a large program into modules
Advantages of Modularization
- lack of bugs
- easy troubleshoot
- several developers can work in each part separately
- can use the developed part of software wherever needed
Disadvantages
o same variable usage in the code can be a problem
Top-down Design and Stepwise Refinement
Computer programmers use a divide and conquer approach to problem solving:
◦ a problem is broken into parts
◦ those parts are solved individually
◦ the smaller solutions are assembled into a big solution
◦ These techniques are known as top-down design and modular development
Structure Chart
shows the breakdown of the system into its lowest manageable levels by dividing bigger
complex system into small units.
◦ Model represents the process or the task of the system
Student Registration
◦ Arrow line used to show the connection between the models
Algorithms
A set of well-defined instructions in sequence to solve a problem
It is also a representation of solution to a problem
There are 2 ways:
◦ Flow chart
◦ Pseudo codes
Flow charts
A graphical representation of the sequence of operations in a program
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
It shows the sequence of instruction in a single program or a subroutine
Subroutine
Rules of Flow charts
All boxes should be connected with arrows
No lines only arrows
Decision box has 2 output points
Formulate the main line of logic and then incorporate the details
Maintain consistency
No deeper details
Use common statements
Use suitable variable names
Keep simple as possible
Use connectors if flowchart is drawn to another page
Pseudocodes
An informal way to express the design of a computer program
Provides idea to programmer on how to build the software step by step
Written in simple English terms so even a non-programmer can understand
Can be converted into any programming language
Component of pseudocode:
◦ Variables used to identify the memory location with the value
◦ Assignment place a value to the variable
◦ Input/output get input from the user and print the result
◦ Control structure control statements based on conditions
▪ Sequence
▪ Selection
▪ Repetition
Advantages of pseudocodes
Readable and understandable
Explains each line
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
Bridge between programmer and program
Helps to document everything
Evolution of Programming Languages
1st programmer – Madam Ada Augusta Lovelace
She prepared it for Analytical Engine created by Charles Babbage (Father of Computer)
Generations of Computer Languages
1. First Generation
Machine language – 0 and 1
Instructions given through front panel switches directly to CPU
No translators
Machine dependent
High speed as no translations needed
2. Second Generation
Assembly language – Symbols were used to minimize complexity of binary
Short words called mnemonics were used
Assemblers were used for the translation
3. Third Generation
As in 2GL many instructions were given for a simple task they had to reduce it, so they
introduced high level languages
Codes can be used without having to be rewritten unlike assembly language
Machine independent
Compiler and interpreter used to convert from high level to machine language
Ex: C, C++, Java, JavaScript, Visual Basic
4. Fourth Generation
Can be prepared easily than 3GL
Machine independent
Compiler and interpreter used to convert from high level to machine language
Ex: Perl, PHP, Python, SQL
Programming Paradigms
Imperative Languages
Giving step by step procedure to solve a problem
Controlling the steps of instructions in action and keeping track of step-by-step changes in
variables and instances
Ex: C++, C, Java, PHP, Python
Declarative Languages
Giving instructions prioritizing the output
Ex: SQL, Prolog
Object Oriented Languages
All instructions are given in a single file so it was difficult to find any error, if any
Addition of new instructions was also difficult
OOL was used to identify the tasks and separate them in different files
Characteristics of high-level languages
Easy to learn
Easy to detect errors
Machine independent
Availability of liberty functions
Shorter program
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
Well defined syntax and standard
Other programmers also can understand code
Need of Program Translators
To convert high level to low level languages, translators like compilers and interpreters are
used
Source program
Set of instructions written by a programmer using computer language.
Readable to human but cannot be executed by the CPU
Object program
Both compiler and interpreter work differently
Compilers reads the source code and creates a file by compiling the code into machine
language called as object program.
If any errors are found then the error report will be displayed without translating the code
Program translators
There are 3 types of translators
◦ Compiler
◦ Interpreter
◦ Assembler
Interpreters
Translates line by line
No precompiled program like compilers
Slower than compiler
When error found, it will stop in that line and display the error message
Advantages of interpreter
- Troubleshooting is easy
Disadvantages of interpreter
- Slow as it converts line by line
- Every time you run it, interpreter will have to translate again and again
Compiler
Compilers reads the source code and creates a file by compiling the code into machine
language
If any errors are found then the error report will be displayed without translating the code
Advantages of compiler
- Compiler compiles only once
- Low memory used as it is compiled only once
Compiler Interpreter
Faster Slower
More memory needed for object code No extra space needed
Debugging is hard as the errors are Displays error quickly as it finds the
displayed after checking the entire error
program
Assemblers
Assemblers convert assembly language to machine language
Linkers
A program that takes one or more object files generated by the compiler and combine them
as a single executable program
A computer program consists of number of modules.
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
Several files are generated when converting program into object program so all these files
should be operated linking together. This task is done by the linkers
Features of IDE
Code editor Debugger
Translator Execute
Python
Comment
#This is a comment
Advantages of comment
Easy to understand the code
Can refer the codes
Another programmer can understand the code easily
Constants and Variables
Variable –the name given to a memory space allocated in RAM to store the values of the
program which can change during execution of the program
Constant –the name given to a memory space allocated in RAM to store the values of the
program which do not change during execution of the program
Rules for variables
No reserved word
Cannot start with a number
No space
No symbols except _
Local variable and global variable
Local variable – a variable inside a function. This cannot be used in another function.
Global variable – it can be used at any place of any function
Primitive data type
Numbers
◦ Intwhole numbers Ex: 25, 500, -1024
◦ Longlarge numbers Ex: 841981619848
◦ Floatdecimal numbers Ex: 45.3, -855.33
◦ Complexvarious types of numbers Ex: 65.9J, 900.6J
String
List
Tuple
Dictionary
Operators
Arithmetical operators
+ * ** %
- / //
Relational Operators
< <= ==
> >= != or <>
Assignment Operators
And
Or
Not
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
Bitwise Operators
Bitwise AND (&) Bitwise XOR (^) Right shift (>>)
Bitwise OR (|) Left shift (<<)
Operator precedence
()
**
*,/,**,//
+,-
<<,>>
&
^
|
Control structure
Sequence
Selection
o If
o If else
o If elif else
Iteration
o While
o For
Break
Condition inside a loop to stop the loop before completion
break
Continue
Condition inside a loop to repeat the loop after completion
continue
Sub Program
Functions help to break program into smaller parts
Types of functions
- Built in functions functions included in python by default
- User defined functions built by the programmers according to their requirements
def printword():
print(“hello world!”)
return()
Types of errors in Python
1. Syntax errorsviolation of python rules in coding
2. Runtime errorserrors occurring during execution
3. Logical errorserrors in the logical instruction of the code
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
To handle these errors, we use,
try:
statement
except:
statement
String
Checking functions
isnumeric()
islower()
isupper()
List
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
An array of data that can be used to store compound data (different types of data)
Ex:
Tuples
Collection of elements separated by commas
It is immutable can not be changed once created
Ex:
name = (“john”, “napier”, “newton”)
Dictionary
An unordered collection of items which has a key and a value for a single element
No duplicate key
Case sensitive
Any type for values
Ex:
File Handling
file_store = open(file_name,mode)
The modes
r = only read
r+ = read and write
w = only write / replace existing data
w+ = read and write / replace existing data
a = appends at end of file / if file not available then the file is created and data is added
a+ = read data and create file with append ability
file = open(“myfile.txt”, “w”)
file.write(“hello world\n”)
file.write(“this is the next line\n”)
file.close()
file = open(“myfile.txt”, “r”)
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
print(file.read())
print(file.readline())
print(file.readline(1))
file.close()
DBMS
Types of databases
- MySQL - Interbase
- Oracle - Sybase
- GadFly - Microsoft SQL Server 2000
- PostgreSQL - Informix
import mysql.connector
conn = mysql.connector.connect(user= “root”,password= “1234”,host= “localhost”,database=
“student_db”)
new = conn.cursor()
new.execute(“select * from student”)
print(new.fetchall())
conn.close()
Searching techniques
Sequential searchstep by step ahead in an array until the target is found
o Weakness – takes time if the number to be found is in the last (if more data then
efficiency is low, if less data, then efficiency is high)
Binary search-should be in order, compares the searched number with the middle number
and searches the list accordingly
Sorting techniques
Arranging an unordered list is called sorting
Selection sort-(Arranging in order) compares the 1 st block with the 2nd, if the 2nd data is small
then it swaps the data, then it checks 1st with 3rd and likewise arranges the whole set
Bubble sort compares the adjacent two blocks and swaps
IF statement
IF ELSE
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
IF ELIF ELSE
WHILE loop
FOR loop
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
Functions
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK
ICT Chapter 9
M. A. F. Rameeza B. Sc. (Hons.) in Computer Science and Software Engineering - UK