• S3:E4 Assembly Language: Fundamentals and Addressing Modes
    Sep 1 2025

    This episode, titled "Assembly language," offers an introductory guide to low-level programming It explains that assembly language utilizes mnemonics to represent machine code instructions, which are then translated by an assembler into machine code for execution. The document outlines various addressing modesimmediate, direct, indirect, and indexed—and illustrates these concepts using the Little Man Computer (LMC), an imaginary model with a limited instruction set designed to simplify understanding of how computers process data and instructions. Finally, it highlights the differences between programming in the early days, referred to as "coding," and modern high-level languages, while detailing how machine code instructions are structured.

    Show More Show Less
    16 mins
  • S3:E3 Programming Paradigms and Software Development
    Aug 25 2025

    This episode offers an overview of programming paradigms, explaining the need for different styles of programming. It differentiates between procedural, object-oriented, and declarative languages, providing examples and characteristics for each. Key concepts in object-oriented programming like classes, objects, methods, attributes, inheritance, encapsulation, and polymorphism are defined and illustrated. The episode also explores declarative programming in detail through Prolog, showcasing facts, rules, variables, and the concept of backtracking, alongside its applications in expert systems.


    Show More Show Less
    17 mins
  • S3:E2 Algorithmic Foundations of Software Development
    Aug 18 2025

    This Episode "Writing and following algorithms," focuses on fundamental concepts in computer science related to algorithms. It begins by defining an algorithm as a finite set of instructions to solve a problem and provides real-world examples of their application, such as routing and data encryption. The document then outlines the characteristics of an effective algorithm, emphasizing clarity, correctness, efficiency, and understandability. It introduces pseudocode as a language-agnostic tool for algorithm design and explains common sorting and searching algorithms, including bubble sort, linear search, and binary search. Finally, the episode offers advice on writing "good" programs through documentation and modularity, and introduces trace tables as a method for evaluating and debugging algorithms.

    Show More Show Less
    22 mins
  • S3:E1 Software Development Systems Analysis Methods and Models
    Aug 11 2025

    This Episode outlines systems analysis methods within software development, starting with a fundamental definition of software and the stages of its creation: analysis, design, implementation, evaluation, and maintenance. It explains key testing strategies like black box, white box, alpha, and beta testing, followed by an overview of prominent software development lifecycle models. These models include the waterfall model, emphasizing sequential stages; the spiral model, which iteratively refines prototypes; and agile methodologies, focusing on rapid, incremental development. Finally, the episode introduces extreme programming as a type of agile development and rapid application development (RAD), highlighting their respective advantages, disadvantages, and appropriate use cases.

    Show More Show Less
    16 mins
  • S2E4: Programming Language Translators Explained
    Aug 4 2025

    This episode provides an overview of programming language translators, covering the fundamental concepts of how code written by humans is converted into instructions computers can understand. It explains the roles of assemblers, compilers, and interpreters, distinguishing between their methods of translation and suitable applications. The episode also details the stages of compilation, including lexical and syntax analysis, code generation, and optimization. Furthermore, it addresses the use of intermediate languages like bytecode and describes the crucial functions of linkers and loaders in preparing programs for execution, often leveraging pre-written code libraries.

    Show More Show Less
    17 mins
  • S2E3: Software Applications and System Utilities
    Jul 28 2025

    This episode offers an educational overview of computer software categories, distinguishing between systems software and applications software. It explains that systems software controls hardware and runs applications, encompassing elements like operating systems, utilities, libraries, and translators. The Episode further details utility programs, providing examples such as disk defragmenters, automatic backup tools, and virus checkers, and then contrasts open-source and closed-source software based on source code access and licensing. Finally, the material addresses criteria for selecting suitable applications, considering factors like functionality, hardware compatibility, cost, and reliability.

    Show More Show Less
    18 mins
  • S2E2: Types and Functions of Operating Systems
    Jul 21 2025

    In this episode we describes various types of operating systems (OS), including distributed, embedded, multi-tasking, multi-user, and real-time systems. It explains how these different OS types function and their typical applications, such as mobile OS for smartphones or embedded OS for household appliances. Furthermore, the essential software components like the BIOS for booting computers, device drivers for hardware interaction, and virtual machines for emulating other systems. We look at examples like the Therac-25 case study to illustrate the critical importance of real-time OS reliability in safety-critical environments.

    Show More Show Less
    12 mins
  • S2E1: Operating Systems Unpacked – Functions & Management
    Jul 14 2025

    New Episode Every Monday

    In this Episode we focuses on the functions of an operating system, a critical piece of software that manages computer hardware and provides interfaces. Key areas discussed include memory management, detailing methods like paging, which divides memory into fixed-size chunks, and segmentation, which uses variable-length parts related to program structure. The concept of virtual memory is also explained, where a portion of the hard drive is used to extend available RAM, though frequent swapping can lead to performance issues known as disk thrashing. Furthermore, the document covers interrupt handling, outlining how the CPU responds to signals from hardware, software, or the internal clock using an interrupt service routine and a stack to manage priorities. Finally, processor scheduling is described, illustrating how the OS allocates CPU time to multiple applications to create the illusion of multi-tasking, and various scheduling algorithms are introduced, such as round robin, first come first served, shortest job first, shortest remaining time, and multi-level feedback queues.

    Show More Show Less
    18 mins