Introduction to Programming Concepts, SDLC, and PDC
Module Overview and Assessment Breakdown
Focus: Beginner-level course utilizing a structured programming approach covering sequence, selection, repetition, and basic data types (one-dimensional arrays and lists).
Target Languages: Python and C.
Class Structure:
\,hour lecture
\,hours tutorial
\,hours lab (\,hour supervised by tutor, \,hours unsupervised facilitated by a technologist)
Assessment Breakdown:
Theory Test #1:
Lab Test #1:
Lab Test #2:
Theory Test #2:
Continuous Assessment:
Group Project:
Final Exam:
Fundamentals of Programming
Program: An organized list of instructions that, when executed, causes a computer to behave in a predetermined manner.
Programming: The process of instructing a computer to accomplish a task using a programming language. Executed instructions are converted into machine language.
Programming Paradigm: A style or way of programming (e.g., structured paradigm, object-oriented paradigm).
Levels of Programming Languages
Low-Level Languages:
Machine Language: Collection of binary digits (s and s) directly read and interpreted by the computer; machine-dependent.

Assembly Language: Uses mnemonics or abbreviations corresponding to machine code instructions (e.g., LDA, STA, ADD, SUB, MOV); machine-dependent.

High-Level Languages:
Third Generation (3GL): Machine-independent and programmer-friendly; uses English-like statements and mathematical notations (e.g., C, Python, C++, C#, JAVA, BASIC4, PASCAL, Visual Basic).

Fourth Generation (4GL): Non-procedural and machine-independent; processes data for report generators and query languages (e.g., SQL queries).
Fifth Generation (5GL): Involves Artificial Intelligence and voice recognition systems (e.g., Siri, Alexa, Cortana, Google).
Software Development Life Cycle (SDLC)
Definition: A series of well-defined steps followed when creating or modifying a system.
Phases:
Analyze the current system: Gather, understand, and document business requirements with end users and IT specialists.
Design the new system: Create a blueprint of how the proposed system works (High Level and Low Level Design).
Develop the new system: Transform design documents into an actual software system.
Implement the new system: Distribute and deploy the system to users.
Maintain the system: Monitor and support the system to ensure it meets ongoing business goals.
Program Development Cycle (PDC)
Definition: A set of steps used to develop a program in any programming language, overlapping all phases of the SDLC.
Steps:
Identify Input, Processing, Output, and Storage (IPOS) requirements.
Develop program logic using an algorithm (a finite sequence of instructions providing a solution).
Test logic correctness using a trace table (predicts step-by-step execution to catch logic errors).
Write the program using a programming language.
Test and debug the program.
Complete program documentation:
Internal Documentation: Comments written inside the code.
External Documentation: Diagrams/charts outside the code (e.g., flowcharts, pseudocode, IPO charts).
Languages Overview: Python and C
Python: A general-purpose, high-level programming and scripting language used to build applications, web pages, and software systems.
C: A general-purpose, machine-independent, structured programming language used to construct operating systems (such as Windows), databases (such as Oracle), version control systems (such as Git), and language interpreters (such as the Python interpreter).