Computer programming Assignment.

INSTITUTE OF PUBLIC ADMINISTRATION AND MANAGEMENT (IPAM)

 Computer Programming.

MODULE CODE: DIT111.                    
DEPARTMENT: Information System.
YEAR One 
LECTURER: Mr Kanu.             
NAME OF STUDENT: Abdulraman Vandi.
          

ASSIGNMENT


Topics
1. Milestones of computing and

2. The various software development
paradigms


1. Milestones of computing and programming languages

The milestones of computing show a clear evolution from manual calculation to intelligent systems, while programming languages evolved from machine-dependent binary code to human-friendly, powerful languages that drive today’s digital world.

The figure below shows how different programming languages evolved from the first generation which was machine- dependent to human- friendly.
Generation of programming languages


PROGRAMMING LANGUAGES 

   Low- Level Language 
The low level language is subdivided into two, namely:
  1. Machine Language (First Generation)
  2. Assembly Language (Second Generation)
           A. First Generation Milestone
During the early stage of computing, the ENIAC was the first electronic device that perform general purpose computing. The ENIAC was invented in 1945. 
   
  •     The ENIAC  relied main of vacuum tubes as there main electronic components.
  • The ENIAC use the machine Language 

Note: During the first generation other computation were also operational with:
  • IBM _701 
  • UNIVAC
  • EDSAC
But they all uses the same language.

  1. Machine Language: Machine Language was the first generation language and the only language a computer understands. It is made up of binary digits (0s and 1s). This language was came into existence in the 1940s.
     SETBACK OF MACHINE LANGUAGE
  • Difficult to program use this language. 
  • High rate of errors.
  • They are hardware dependent.

     B. Second Generation Milestone 
The introduction of transistor were made and the size of the computer was also reduced as compare to the first generation.
 The Second Generation computers uses a little advance language known as the ASSEMBLY LANGUAGE which the computer cannot literally understand, but an assembler convert the instructions to machine language.

    2.Assembly Language: this refers to shorter codes, such as add, sub to solve problems or perform specific tasks.


The assembler read each mnemonic code and convert it to machine language.
The Assembler is like a bridge between the programer and the machine Language .

C. Third Generation Milestone 
This was invented roughly around 1964s they were the early computer that uses high level language, during this period integrated circuit (Ics) or silicon chips where invented, these inventions add more accuracy and time conservation to the computing system, which make them perform complex tasks at faster rate than the second and third generation.
 
   There was significant turning point that took place at this stage. Some remarkable inventions that occurs were are
  • Introduction of operating system (OS)
The support of operating system (OS) enhance the computer in various ways, for instance 
  • This inventions added multi-tasking to the computers.
  • It allow multiple users to use the same system at the same time simultaneously 
  • This improve the efficient of CPU and system resources.

  • Improve input and output:
  1.  Introduction of keyboards for input instead of punch card.
  2. Improve interaction between user and the computer.
The high level languages used by the 3rd generation computer are:
  1. FORTRAN
  2. COBOL
  3. BASIC
The high level languages uses two medium to communicate with the computer:
  1. Compiler 
  2. Interpreter 
The medium use by the programer to communicate with the computer is depends on the programer's preference 

1. Compiler
The compiler translate all high-level instructions (codes) to machine language making it executable by computers.

Role of the Compiler
  • Converts the entire source program at once into machine code.
  • Checks the program for syntax and semantic errors.
  • Produces an object (machine) code file.
  • Enables fast execution after successful compilation.

Advantages of a Compiler
  1. Faster execution speed
  2. Efficient for large programs
  3. Detects many errors at once
  4. Produces reusable object code

Disadvantages of a Compiler
  1. Errors are shown after compilation, not line by line
  2. Requires recompilation after every program change
INTERPRETER 
This process entails translating the source program each time it is run. The program performing this kind of interpretation is called an interpreter. It interprets the code every time it is intended to be executed. This also means that you cannot just distribute the source code as-is, because the end-user also needs the interpreter to execute it.

ADVANTAGES OF INTERPRETATION
  • You can run the code as soon as you complete it – there are no additional phases of translation.
  • The code is stored using programming language, not machine language - this means that it can
  • be run on computers using different machine languages; you don't compile your code
  • separately for each different architecture.
Disadvantages
  • Don't expect interpretation to ramp up your code to high speed - your code will share the computer's power with the interpreter, so it can't be fast.
  • Both you and the end user must have the interpreter of the program to run your code.

Fourth Generation Computers
 (1971–Present)
Technology: Microprocessors
Milestone: Personal computers (PCs)
Graphical User Interfaces (GUI)

Programming languages:
The fourth generation computer also uses high level languages examples:
C, C++
Java
Python
Pascal
SQL

The various software development
paradigms
Every program’s development goes through a paradigm and all of the software development paradigms consists of the following stages or processes:

  • Gathering of requirements
  • Definition of the problem
  • System design
  • Implementation/Coding
  • Testing
  • Documentation
  • Training and Support
  • Maintenance
1. Gathering of requirements: System developers gather client requirements to understand the problem that needs to be solved.
An understanding of the business domain for which the solution is being developed can help in thoroughly understanding the problem. 
As users may not be too clear of the problem, some probing questions can help in requirements
gathering.
  • What is being done currently?
  • How is it being done?
  • What is the frequency of a task?
  • What is the volume of decisions or transactions?
  • What are the problems being encountered?
Techniques like interviews, questionnaires, studying existing systems, analysis of business data, etc.
Can help with requirements understanding.

2. Definition of the problem: The definition of a problem should unambiguously state what problem or problems that the program should solve.
 Having a clear problem statement is necessary to:
  • Define the scope of the project.
  • Keep the development team focused.
  • Keep the project on track.
  • Helps to validate the desired outcome was achieved at the end of the project.
3. System Design: This stage focuses on how the system will work.

  • Design of system architecture
  • Database design
  • User interface design
  • Flowcharts and data flow diagrams
Purpose: To provide a blueprint for developers.

4. Implementation / Coding: The system design is translated into program code.
Programmers write code using suitable programming languages
Follows coding standards and best practices
Produces the actual working software

Purpose: To build the system.

5. Testing: The developed software is tested to ensure it works correctly.

  • Types: unit testing, integration testing, system testing 
  • Identifies and fixes errors (bugs)
  •  ensures the system meets requirements
Purpose: To ensure quality and reliability.

6. Documentation: All information about the system is properly recorded.
  • User manuals
  • Technical documentation
  • Maintenance guides
Purpose: To support users and future developers.

7. Training and Support: Users are trained on how to use the new system effectively.
  • User training sessions
  • Help desks and support services
  • Guidance on system operation
Purpose: To ensure smooth adoption of the system.

8. Maintenance: This is the final and continuous stage after deployment.
  • Fixing errors
  • Updating the system
  • Improving performance
  • Adapting to new requirements
Purpose: To keep the system efficient and relevant.

Comments