Iye Faith Brima
Assignment
Q2. Software development paradigms are approaches or methodologies used to design, structure, and implement software systems. Here are the major paradigms:
---
1. Imperative Programming Paradigm
The program describes how a computation is performed, step by step.
Types:
Procedural Programming
Uses procedures or functions to break down a problem into smaller parts.
Examples: C, Pascal, Fortran
Object-Oriented Programming (OOP)
Organizes code into objects containing both data (attributes) and methods (functions).
Examples: Java, C++, Python, C#
---
2. Declarative Programming Paradigm
Specifies what should be done rather than how to do it.
Types:
Functional Programming
Based on mathematical functions without side effects.
Examples: Haskell, Lisp, Scala, Elixir
Logic Programming
Uses facts and rules to derive conclusions.
Examples: Prolog, Datalog
Constraint-Based Programming
Solutions are found by defining constraints rather than explicit instructions.
Examples: MiniZinc, Gecode
---
3. Event-Driven Programming Paradigm
Execution is driven by events such as user actions or messages.
Common in Graphical User Interfaces (GUIs) and game development.
Examples: JavaScript (DOM events), C# (Windows Forms), Node.js
---
4. Reactive Programming Paradigm
Deals with asynchronous data streams and changes over time.
Used in modern web and mobile apps.
Examples: RxJS, ReactiveX, Flutter (Dart)
---
5. Concurrent & Parallel Programming Paradigm
Concurrent Programming: Multiple tasks execute independently but share resources.
Parallel Programming: Tasks run simultaneously to improve performance.
Examples: Java (Threads), Go (Goroutines), Python (multiprocessing)
---
6. Component-Based Development (CBD)
Builds software using reusable components or modules.
Used in enterprise applications and web development.
Examples: JavaBeans, .NET Framework, Angular (web components)
---
7. Model-Driven Development (MDD)
Uses high-level models to generate code automatically.
Examples: UML-based software design, Model-Driven Architecture (MDA)
---
8. Aspect-Oriented Programming (AOP)
Separates cross-cutting concerns (e.g., logging, security) from core logic.
Examples: AspectJ (Java), Spring AOP
---
9. Service-Oriented Architecture (SOA) & Microservices
SOA: Uses services for modular software architecture (e.g., SOAP-based web services).
Microservices: Breaks applications into small, independent services communicating via APIs (e.g., REST, gRPC).
Examples: Spring Boot, Kubernetes, Docker
---
10. Cloud-Native & Serverless Computing
Cloud-Native: Applications designed for scalability and resilience in the cloud.
Serverless: Runs code without managing servers (pay-per-execution).
Examples: AWS Lambda, Azure Functions, Google Cloud Functions
---
Each paradigm has its strengths and is chosen based on the project’s requirements, scalability, and maintainability
Q2.
The milestones of computing and programming languages span several centuries and have shaped modern technology. Here’s a timeline highlighting key developments:
Pre-20th Century: The Foundations
1801 – Joseph Marie Jacquard invents the Jacquard Loom, an early mechanical device using punched cards to control weaving patterns.
1837 – Charles Babbage designs the Analytical Engine, a mechanical general-purpose computer, with Ada Lovelace writing what is considered the first algorithm.
1890 – Herman Hollerith develops a tabulating machine using punched cards for the U.S. Census.
Early 20th Century: The Birth of Computing
1936 – Alan Turing introduces the concept of a universal machine (Turing Machine), laying the foundation for modern computing.
1937–1941 – Konrad Zuse builds the Z3, the first programmable digital computer.
1943–1944 – The Colossus computer, designed by Alan Turing and colleagues, is used for WWII codebreaking.
1946 – The ENIAC, one of the first general-purpose electronic computers, is completed.
1950s: The Rise of Programming Languages
1951 – Grace Hopper develops the A-0 System, an early compiler.
1957 – IBM releases FORTRAN (Formula Translation), the first high-level programming language.
1958 – LISP, the first functional programming language, is created by John McCarthy.
1959 – COBOL (Common Business-Oriented Language) is designed for business applications.
1960s: Expansion of Languages and Operating Systems
1960 – ALGOL, a key influence on many later languages, is introduced.
1964 – BASIC (Beginner’s All-purpose Symbolic Instruction Code) is created for education.
1969 – UNIX is developed, introducing concepts like the shell and file system.
1970s: The Modern Programming Paradigm Emerges
1970 – Pascal, a language emphasizing structured programming, is introduced.
1972 – Dennis Ritchie develops C, which becomes the foundation for operating systems and software.
1973 – The Xerox Alto, a precursor to modern personal computers, is developed.
1979 – C++, an extension of C with object-oriented features, is created by Bjarne Stroustrup.
1980s: Personal Computing and AI Growth
1981 – IBM introduces the IBM PC, making computers widely accessible.
1983 – The first version of Microsoft Windows is announced.
1983 – Objective-C, combining C and Smalltalk, is introduced.
1987 – Perl, a powerful scripting language, is created.
1990s: The Internet Revolution
1991 – Python, emphasizing readability, is created by Guido van Rossum.
1991 – Linux, an open-source operating system, is released.
1995 – Java, a platform-independent language, is introduced.
1995 – JavaScript, for web interactivity, is developed.
1995 – PHP, a server-side scripting language, is introduced.
2000s: Open Source and Web Expansion
2003 – C#, a Microsoft language similar to Java, is released.
2004 – Ruby on Rails, a framework for web applications, is introduced.
2009 – Go (Golang) is developed by Google for efficiency in system programming.
2010s–Present: AI, Cloud, and Quantum Computing
2011 – Swift, Apple’s programming language, is launched.
2014 – Kotlin, an alternative to Java for Android, gains popularity.
2015 – TensorFlow, an AI framework, is introduced by Google.
2020s – Quantum computing advances with IBM and Google making breakthroughs.
These milestones mark significant steps in computing, shaping modern software, hardware, and artificial intelligence.
Comments
Post a Comment