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:

    • 11\,hour lecture

    • 22\,hours tutorial

    • 33\,hours lab (11\,hour supervised by tutor, 22\,hours unsupervised facilitated by a technologist)

  • Assessment Breakdown:

    • Theory Test #1: 10%10\%

    • Lab Test #1: 10%10\%

    • Lab Test #2: 15%15\%

    • Theory Test #2: 15%15\%

    • Continuous Assessment: 10%10\%

    • Group Project: 10%10\%

    • Final Exam: 30%30\%

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 (00s and 11s) directly read and interpreted by the computer; machine-dependent.     

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

      Assembly Language
  • 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).     

      C Code Example
    • 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 55 well-defined steps followed when creating or modifying a system.

  • Phases:

    1. Analyze the current system: Gather, understand, and document business requirements with end users and IT specialists.

    2. Design the new system: Create a blueprint of how the proposed system works (High Level and Low Level Design).

    3. Develop the new system: Transform design documents into an actual software system.

    4. Implement the new system: Distribute and deploy the system to users.

    5. 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:

    1. Identify Input, Processing, Output, and Storage (IPOS) requirements.

    2. Develop program logic using an algorithm (a finite sequence of instructions providing a solution).

    3. Test logic correctness using a trace table (predicts step-by-step execution to catch logic errors).

    4. Write the program using a programming language.

    5. Test and debug the program.

    6. 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).