2 - Lectures Note Week3
2 - Lectures Note Week3
2
Introduction to Programming
❑ Overview of Programming Language
❑ Problem Solving Strategy
▪ Software Development Life Cycle (SDLC)
3
Design of Algorithms
A person must translate an algorithm into a computer
program.
4
Overview of Programming
❑ A language is a system of communication. Humans communicate
with one another in some language, like English, German or in
many other languages.
❑ In order to make computers work for us, some sort of
instructions must be stored in a some kind of language.
And that language is called a Programming Language.
5
Programming
❑ To tell a computer to do something
▪ Programming is writing computer code to create a
program, to solve a problem.
▪ Programs consist of a series of instructions to tell a
computer exactly what to do and how to do it.
▪ Programs are created to implement algorithms.
Algorithms can be represented as pseudocode or
a flowchart, and programming is the translation of these
into a computer program.
Just as words are put together to form a sentence, a program puts one or more
6
statements together to form an instruction.
Generations
❑ Programming Languages
▪ Used to develop new systems
▪ Multiple generations:
classification was used to indicate increasing power
of programming
• Fast
development
• Assembly • Use developer
• Similar to
• Machine Code Language environments
spoken
7
Programming Language
1st GL- Machine Languages (ML): Use binary coded instructions
4th GL- 4GL are also known as very high level languages. They
2GL:
➢ The second-generation program language is assembly
language.
➢ The main problem of assembly language is that it
requires extensive knowledge of programming and
consumes a lot of time when writing a big program.
➢ The program codes are not also machined independent. 9
Generations
3GL:
➢ The third-generation language is called “high-level"
programming language.
➢ Third-generation programming languages brought
many programmer-friendly features to code such as
loops, conditionals, classes etc.
This means that one line of 3GL generation code can
produce many lines of object (machine) code, saving a
lot of time when writing programs.
➢ Third generation languages can be platform
independent, meaning that code written for one
system will work on another.
➢ To convert a third generation program into machine
language requires a Compiler or an Interpreter. 10
Generations
4GL:
➢ The fourth-generation language is designed to be closer
to natural human language than other high-level
languages.
➢ They are accessible to people without formal training as
programmers.
➢ They allow multiple common operations to be performed
with a single programmer-entered command.
➢ They are intended to be easier for users.
➢ All 4GLs are designed to reduce programming effort,
the time it takes to develop software, and the cost of
software development.
➢ Some 4G languages are: FoxPro, LINC, FOCUS etc. 4G
languages also use Complier or an Interpreter to
translate the language into machine code. 11
Generations
5GL:
➢ Natural Languages represent the next step in the
development of programming languages, i.e fifth
generation languages.
➢ The text of a natural language statement very closely
resembles human speech.
➢ The use of natural language touches on expert systems,
computerized collection of the knowledge of many human
experts in a given field, and artificial intelligence,
independently smart computer systems
12
Generations
5GL:
➢ Natural Languages represent
Expert Systems
Vision Systems
Speech/Voice recognition
Handwriting recognition
Robotics - Intelligent robots
Machine Learning & sub-fields
Neural networks, deep-learning
13
Generations
1st 4th
➢ Machine Code ➢ Fast development
➢ Zeros and Ones ➢ Use developer environments that help
➢ Machine dependent generate the code
2nd ➢ Machine independent
➢ Assembly Language ➢ High Level Language
➢ Used some English like User friendly, Similar to natural languages
phrases Platform independent
➢ Machine dependent Easy to write or remember
3rd Easy to learn and work
➢ Similar to spoken While execution: translated into assembly
languages language then to machine language.
➢ Machine independent Slow in execution but is efficient for
developing programs.
Ex: C, C++, Python, Java etc. 14
Programming Language
❑ A programming language is a set of written symbols that
precisely.
Programming Language
❑ The language is made up of series of statements that fit
16
Programming Language
❑ There are many different programming languages, some more
complicated and complex than others.
Among the most popular languages are:
▪ Python
▪ Java
▪ C++
▪ BASIC
▪ Scratch
17
Programming Language Cont’d
❑ Different languages work in different ways.
For example, in Python all instructions are written in
lowercase, but in BASIC they tend to be written in
uppercase.
❑ Programming languages are designed to be easy for a
human to understand and write in. However, a computer
cannot run programs written in these languages directly.
❑ Most programming languages must be translated
into machine code before the computer can execute the
instructions.
18
Fundamentals
❑ Programming involves activities such as
❑ analysis,
❑ developing
❑ understanding,
❑ generating algorithms,
❑ verification of requirements of algorithms including
their correctness and resources consumption, and
❑ implementation (commonly referred to as coding) of
algorithms in a target programming language
19
Basic Elements
❑ There are five basic programming elements:
▪ Input-Output Instruction
▪ Arithmetic Instruction
▪ Conditional Instruction , and
▪ Looping Instruction
20
Program
❑ Program s a sequence of instructions that a computer follows
to solve a problem. A program is written in a computer
language.
Most of the languages have been created to fit particular
classes of problems.
The process of collecting requirements, analyzing a problem
and designing its solution as well as writing and maintaining
a computer program is called software development
❑ Programs are made up of statements that the programming
language knows and understands.
Each statement tells the computer to perform a specific task,
21
and the instructions tell a computer what to do
Statements
❑ Different programming languages use different statements.
A few of these are listed in this table:
22
Software Development
❑ Programming: Needed to take ideas or business solutions
life cycles.
infrastructure.
25
Phases of SDLC
❑ SDLC is a systematic approach which explicitly breaks down the work
into phases that are required to implement either new or modified
System. It is used by analysts to develop a system.
❑ Phases:-
1. Preliminary Analysis
2. Systems Analysis
3. Systems Design
4. Programming
5. Testing
6. Implementation
7. Maintenance
❑ Some project managers will combine, split, or omit steps, depending on
the project’s scope.
❑ These are the core components recommended for all software
26
development projects.
Phases of SDLC
27
SDLC Phases
1. Preliminary Analysis:– requests are reviewed
Deliverable - feasibility analysis document
2. Systems Analysis – if approved, determine the system requirements
for new system
Deliverable – systems requirement document
3. Systems Design:– converts system analysis requirements into system
design document deliverable
4. Programming:– coding commences using design documents
5. Testing:– ensures that the code functions according to requirements
6. Implementation:- converting from old system to new system
Training, documenting functions, and data conversion
28
7. Maintenance:– support for reporting prioritizing, and fixing bugs
SDLC Models
❑ A framework that describes the activities performed at
each stage of a software development project.
❑ SDLC models specify and design, which are followed during
the software development phase.
❑ These models are also called "Software Development
Process Models."
Each process model follows a series of phase unique to its
type to ensure success in the step of software
development.
29
SDLC Models
❑ Here, are some important phases of SDLC life cycle:
▪ Waterfall Model
▪ RAD Model
▪ Spiral Model
▪ V-Model
▪ Incremental Model
▪ Agile Model
▪ Iterative Model
▪ Big bang Model
▪ Prototype Model 30
Further Study
❑Study the following:
▪ SDLC Phases
▪ SDLC Models: Advantages and Disadvantages,
and Applications
31
Python
❑ Python is a Scripting programming language known for both its
simplicity and wide breadth of applications. For this reason it is
considered one of the best languages for beginners.
❑ Python is a powerful and flexible programming language.
It uses concise and easy-to-learn syntax which enables
programmers to write more codes and develop more complex
programs in a much shorter time.
❑ Used for everything from Web Development to Scientific
Computing
❑ Python is referred to as a “general purpose” language by the
greater programming community.
32
Python
❑ Python is an object-oriented programming language created
by Guido Rossum in 1989.
It is ideally designed for rapid prototyping of complex
applications. It has interfaces to many OS system calls and
libraries and is extensible to C or C++.
Many large companies use the Python programming language,
including NASA, Google, YouTube, BitTorrent, etc.
33
Next Lecture: Week4
❑ Concept & properties of Algorithm, Role of
Algorithm in problem solving process, Design of
Algorithms, Pseudocode, Flowcharting
34
Waterfall Model
Requirements – defines
needed information, function,
behavior, performance and
interfaces.
Design – data structures,
software architecture,
interface representations,
algorithmic details.
Implementation – source
code, database, user
documentation, testing.
Waterfall Strengths
Easy to understand, easy to use
Technology is understood
Architecture or High-Level
Design – defines how Integration and Testing –
software functions fulfill the check that modules
design interconnect correctly
http://www.nebulon.com/articles/index.html
Dynamic Systems Development Method (DSDM)
Applies a framework for RAD and short time
frames