0% found this document useful (0 votes)
4 views

00 Introduction To Computer Programming 2024

Uploaded by

frehiwotsenay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

00 Introduction To Computer Programming 2024

Uploaded by

frehiwotsenay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

CS 1012

Fundamentals of Programming
Dr Budditha Hettige
Department of Computer Engineering
CS1012:
Fundamentals of Programming
• Lectures
– 30 Hours
• Practicals /Tutorials
– 30 hours
• Assignment (30%)
– Practical Test (10 marks)
– Quizzes 4 (Get maximum 2 ) (10 x2 = 20 marks )
– Total 30%
• Final Examination (70 %)
– 4 Questions (3 hours) (70%)
• Reference:
– https://budditha.wordpress.com/fundamentals-of-programming-c/
2/01/2021 Dr Budditha Hettige 2
Course Structure
• Introduction
• Computer Programming
• Introduction to C++
• Input and output
• Variables
• Selections (if, switch)
• Loops (for, while, do-while)
• Arrays (1D, 2D)
• Console application
• Menu driven programming
• Steps to application development
2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 3
Why people use machines?

2/01/2021 Dr Budditha Hettige 4


Machines
• Café Machine make a tea
• ATM machine money transaction
• Calculator solve equation

• Each Machine has …


– Input
– Output
– Process input Process Output

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 5
Café Machine

• Input Input
– Sugar
– Water
Process
– Coffee
– Milk
• Output Output

– Tea
• Process
– ????

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 6
ATM machine
• Input
– ???
• Output
– ???
• Process
– ???

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 7
Calculator

• Input
– ???
• Output
– ???
• Process
– ???

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 8
Process of a Machine
• Work through the instructions given to it
– Read
– Write
– Do some calculations
– Go to next instruction
• The sequence of instructions is call a
Program

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 9
What is a Programming?

• Programming is the way to give


instructions
• Each program has
– Start
– Some work
– End
• Program is given/execute through the
machine understood language

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 10
A Computer

• Machine that can solve problems for


people by carrying out instructions given
to it
• The sequence of instructions is called
Program
• The language machine can understand is
called machine language

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 11
Machine Language

• Machine language is a set of instructions


executed directly by a computer's central
processing unit (CPU)

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 12
Machine Language contd..
• Advantages
– Machine can directly access (Electronic circuit)
– High Speed
• Disadvantages
– Human cannot identify
– Machine depended
(Hardware depended)

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 13
Computer Language(s)
• Artificial Languages
• Human readable Programming Language(Ln)

• Ex: C/C++, Java


Translator/
Interpreter

Machine Language (L0)

Program
Machine
ming
Language Machine
Language
(L0)
(Ln)

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 14
Interpretation

• Each instruction in L1 can execute


through the relevant L0 instructions
directly
• Program is call interpreter

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 15
Translator (L1 → L0)
1. Replace each instruction written in L1 in to LO
2. Program now execute new program
3. Program is called compiler/ translator

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 16
Compilers
• Translate high-level language to machine
language
• Input (Source code)
– The original program in a high level language
• Output (Object code/ Machine Code)
– The translated version in machine language
• Example
– C++ compiler, JAVA Compiler etc.

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 17
Programming steps
• Compilers. A compiler translates the
source code to target code
• Preprocessor—adds to or modifies
the contents of the source file before
the compiler begins processing the
code
• Linker—combines the compiler-
generated machine code with
precompiled library code or
compiled code from other sources to
make a complete executable program
2/01/2021 Dr Budditha Hettige 18
Programming language
generations
This classification is used to indicate increasing power of
programming styles
1. First-generation programming languages
2. Second-generation programming languages
3. Third-generation programming languages
4. Fourth-generation programming languages
5. Fifth-generation programming languages

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 19
First-generation programming
language (1GL)
• Is a machine-level programming language
• Translator isn’t used to compile
• The instructions in 1GL are made of binary
numbers, represented by 1s and 0s
• Advantage
– The code can run very fast and very efficiently
because the instructions are executed directly
by the CPU
• Disadvantage
– When an error occurs, the code is not as easy
to fix
2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 20
Second-generation
programming language(2GL)
• Assembly language.
• Properties
– The code can be read and written by a programmer
– The language is specific to a particular processor
family and environment
• Used in kernels and device drivers

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 21
Third-generation programming
languages (3GL)
• Languages are more programmer-friendly
• Example
– C, C++, C#, Java, BASIC and Pascal
• Support structured programming.
• Must be translated into machine language by a
compiler or interpreter
• Advantages
– Easier to read, write, and maintain

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 22
Fourth-generation programming
languages(4GL)
• Designed to reduce programming effort
• Consist of
– Set of libraries
– CRUD generators
– Report generators
– DBMS
– Visual design tool and integration API

• Different types of 4GLs


– Table-driven (codeless) programming
• PowerBuilder
– Data management
• SAS, SPSS
– Report-generator programming languages
• Oracle Developer Suite
2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 23
Fifth-generation programming
language(5GL)
• Based on solving problems using constraints given to
the program, rather than using an algorithm written by a
programmer
• Use mainly in Artificial Intelligence research
• Example
– Prolog, OPS5, and Mercury

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 24
Selecting a suitable Computer
Language
• Readability
• How easy to write the program in this particular
language?
• Reliability
• How much would it cost to develop using a
given language?
• How complicated the syntax going to be?
• Does the language have standards for greater
readability?

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 25
Example
• Assembly Language Program
– Device drivers, Virus
• C / C++ Program
– Device drivers , DLLs
• JAVA / Visual C++ Program
– Desktop applications, Web Applications
• Prolog
– AI based applications, Games, Translators

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 26
Exercise
• To solve the following problems, identify the input,
output and the process
− Find the area of a room
− Search a place of a city
− Calculate grade for the given mark
− Get some amount from ATM machine

input Process Output

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 27
2/01/2021 Dr Budditha Hettige 28
Stages of Computer
Programming
1. Planning
2. Analysis
3. Design
4. Implementation
5. Testing
6. Deployment
7. Maintenance and update

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 29
Planning
• Identify scope of the project
• Estimate the work involved
• Create a project schedule
• Begins with requirements that define the software to be
developed.
• The project plan can be used to describe the task

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 30
Analysis
• Is a complete description of the behavior of a
system
• Consist of
– Functional requirements
– Non-functional requirements
• Methods
– Interview
– Questionnaires
– Observation etc.

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 31
Software Design
• Software design is a process of problem-
solving and planning for a software solution
• Types
– Top down
– Bottom up
– Module design
• Use to describe
– Algorithm
– Flowchart
– Pseudo code

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 32
Design process

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 33
Design cont.…
• Flowchart:
– is a type of diagram that
represents an algorithm or
process
– Gives diagrammatic
representation solution to a
given problem
– Use in analyzing, designing,
documenting or managing a
process or program

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 34
Flowchart- building blocks

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 35
Flowchart-building blocks
contd...

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 36
Example

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 37
Example
• Draw a flow chart to display total of the two
numbers

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 38
Example

• Draw a flow chart to identify correct login


for the following interface

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 39
Implementation
• Is a realization of a technical specification or
algorithm as a program, software component
through computer programming
• May exist for a given specification or standard
– Example World Wide Web Consortium-recommended
specifications
• After implement
– Source code, together with documentation to make
the code more readable.

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 40
Program Testing
• is an investigation conducted to provide
information about the quality of the product
• A primary purpose of testing is to detect
software failures
• Test
– White box test
– Black box test

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 41
Deployment Maintenance and
Update
• Is the modification of a software product after
delivery to correct faults
• Maintenance may span for 20 years, whereas
development may be 1-2 year
• User guide, Maintenance manual need to provides
• Example
– Windows XP (Development few years, Maintenance ….)
– Provides set of software updates patches etc.

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 42
Waterfall Model

2/01/2021 Dr Budditha Hettige 43


The V Model

2/01/2021 Dr Budditha Hettige 44


Agile Model

2/01/2021 Dr Budditha Hettige 45


Spiral Model

2/01/2021 Dr Budditha Hettige 46


The Characteristics of a Good
Computer Program
Reliability:
The program should provide correct results at all times and should be
free from errors.
Maintainability:
The existing program should be able to change or modify to meet new
requirements.
Portability:
The program should be able to transfer to a different computer system.
Readability:
The program must be readable and understandable with the help of
documentation.
Performance:
The program should handle the task more quickly and efficiently.
Storage saving:
The program should be written with the least number of instructions

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 47
Steps to Computer programming
• Identify Input, Output and process
• Make a design
• Use suitable programming language and
implement your system
• Test your program

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 48
Tools & Tips for programming
• Source code Editor
– TextPad, Notepad
• Compiler
– JAVA Compiler, C++ compiler
• Language Knowledge
• Logical thinking ability

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 49
Programming with IDE
• IDE : integrated design environment
• consists of
– source code editor
– compiler and/or an interpreter
– build automation tools
– Debugger
– Construction of a GUI
– Class browser
– Object inspector
– Etc.
2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 50
Programming IDEs
• Eclipse
Eclipse is a multi-language software development environment
http://www.eclipse.org/
• Code:blocks
http://www.codeblocks.org/
• Netbeans
http://netbeans.org/
• Microsoft Visual Studio
http://www.microsoft.com/visualstudio/en-us

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 51
Exercise
• Download code:block IDE and install it
• Download:
http://www.codeblocks.org/

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 52
Summary
• What is a machine?
• Computer program
• Programming languages
• Design
• Characteristics of a good computer
program
• Tools & Tips for computer programming

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 53
Next
• Introduction to C++ Programming

2/01/2021 Dr Budditha
Budditha Hettige Hettige
([email protected]) 54
2/01/2021 Dr Budditha Hettige 55
2/01/2021 Dr Budditha Hettige 56

You might also like