Timeline and Key Concepts in Programming History
Detailed Timeline
- 1960s: IBM develops HIPO (Hierarchy plus Input Process Output), a method for planning and
documenting program logic using hierarchy charts and IPO pieces.
- 1979: Bjarne Stroustrup begins development of C++ at Bell Labs as an extension of the C
language.
- 1991: Guido van Rossum creates and first releases Python.
- 1995: James Gosling develops Java at Sun Microsystems, and it is released.
- 1998: The C++ programming language is initially standardised.
- Around 2000: Microsoft develops C# within its .NET initiative.
- 2005: Linus Torvalds creates Git for the development of the Linux kernel.
- Undated: The Systems Development Life Cycle (SDLC) is described as a process for planning,
creating, testing, and deploying information systems, with various models like waterfall, spiral, Agile,
rapid prototyping, and incremental being implemented.
- Undated: Program quality attributes like usability and portability are discussed.
- Undated: Concepts of pseudocode and flowcharts are used for program design and logic
documentation.
- Undated: Software testing methods like code checking and model checking are employed.
- Undated: Integrated Development Environments (IDEs) are used by programmers for software
development, typically containing source code editors, build automation tools, and debuggers.
- Undated: Version control systems, such as Git, are used for managing changes to files and
coordinating work, allowing tracking, recording, experimenting with, and merging revisions.
- Undated: The "Hello World" program is used as a fundamental example in various programming
languages (C++, C#, Java, JavaScript, Python, Swift) to demonstrate basic output.
- Undated: Programming fundamentals concepts including data and operators, constants and
variables, identifier names, various data types (integer, floating-point, string, Boolean, nothing),
order of operations, assignment, arithmetic operators (addition, subtraction, multiplication, division,
modulus), integer division, modulus, unary operations (positive and negative), Lvalue and Rvalue
concepts, and data type conversions (implicit and explicit, promotion and demotion) are discussed
and demonstrated.
- Undated: The Input-Process-Output (IPO) model is used to illustrate program structure.
- Undated: Modular programming and the concept of functions (also known as sub-programs,
macros, sub-routines, procedures, or modules) are introduced as a way to break down large
programs into smaller, manageable pieces. Function calls, definitions, and prototypes are
mentioned.