CAI115 Introduction to Computer Sciences - Comprehensive Study Guide

Course Overview & Academic Leadership

  • Course Title: CAI115: Introduction to Computer Sciences

  • Academic Institution: Faculty of Computers & Artificial Intelligence, May University in Cairo (MUC)

  • Academic Year: 2026–2027

  • Course Professor: Prof. Dr. Rania El-Gohary (Dean of the Faculty of Computers and AI)

  • Academic Leadership Profile — Prof. Dr. Rania El-Gohary:

    • Professor of Artificial Intelligence at the Faculty of Computers and Information, Ain Shams University.

    • Served as Dean of the Faculty of Information Technology at Misr University for Science and Technology (MUST).

    • Director of the Artificial Intelligence Technology Center (AITC) at Misr University for Science and Technology (MUST).

    • Academic Director of the Presidential Digitalization Initiative.

    • CEO of the International Certificate of Artificial Intelligence (ICAIL).

    • Extensive contributions to national and international initiatives in artificial intelligence, digital transformation, technology development, and capacity building.

    • Active research profile with multiple awards and academic recognitions.

    • Vision for the Faculty: Building a strong connection between education, innovation, scientific research, practical application, entrepreneurship, and the labor market ("From First Year to Future Career").

Teaching Staff Profiles

  • Dr. Ghada Wahby:

    • Academic Degrees:

    • B.Sc. in Electrical Engineering, Helwan University (20042004).

    • M.Sc. in Electrical Engineering, Cairo University (20112011).

    • Ph.D. in Electrical Engineering, Minia University (20252025).

    • Academic Experience:

    • Over 18 years18\text{ years} of academic teaching experience across leading Egyptian institutions.

    • Full-time role at Modern Academy.

    • Full-time role at Giza Institute.

    • Part-time role at Tiba Academy (Taiba Institute).

    • Teaching role at Misr University for Science and Technology (MUST).

    • Quality Assurance & Professional Contributions:

    • Served in the Quality Assurance unit at Giza Engineering Institute.

    • Quality Coordinator for the Communications & Electronics Department during quality evaluation visits.

    • Developed course files, quality-related documents, course development plans, engineering legislation, professional ethics, and program criteria (20162016 and 20202020) for Communications & Electronics, incorporating Outcome-Based Education (OBE).

    • Reviewed senior graduation projects on June 29, 2026, including AI solar-powered counter-UAV systems, secure bank data centers, AI sign-language translation, smart health monitoring watches, and GEI smart campus cloud integration.

    • Fields of Teaching: Computer Science, Information Technology, Computing & Information Systems, Communication & Electronics.

  • Dr. Yasser Ali Zenhom:

    • Academic Degrees:

    • B.Sc. in Electronics and Communications Engineering, Modern Academy for Engineering and Technology (20132013).

    • M.Sc. in Electronics and Communications Engineering, Shoubra Faculty of Engineering, Benha University (20202020).

    • Ph.D. in Electronics and Communications Engineering, Aswan University (20252025).

    • Academic Experience:

    • Full-time faculty member at the Faculty of Computers and Artificial Intelligence, May University in Cairo.

    • Previous academic positions at Modern Academy for Engineering and Technology, Giza Institute, and MUST.

    • Research & Professional Contributions:

    • Active researcher with 88 international peer-reviewed papers published in Q1 journals (Elsevier, Springer).

    • Peer reviewer for international Q1 academic journals.

    • Educational content developer for the Digilians Nanodegree Program under the Ministry of Communications and Information Technology (MCIT), focusing on Data Analytics and Applied Technologies.

    • Instructor at the National Research Centre (AI, Power BI, Python Programming).

    • Graduation project supervisor in Artificial Intelligence, Computer Vision, Embedded Systems, Internet of Things (IoT), Healthcare Applications, and Data-Driven Technologies.

    • Fields of Teaching: Artificial Intelligence, Machine Learning, Python Programming, Data Structures, Computer Networks, Digital Communications, Internet of Things (IoT), Electronics.

Foundations of Computer Science

  • Definition of Computer Science (CS):

    • Computer Science is the systematic study of how computers and computational systems work, and how algorithms, software, and data are designed and applied to solve complex problems efficiently.

  • Major Areas within Computer Science:

    • Programming: Writing structured instructions that computer hardware can interpret and execute.

    • Algorithms: Designing efficient, step-by-step procedures and computational logic to solve specific problems.

    • Data Structures: Organizing, managing, and storing data formats to enable efficient access and modification.

    • Artificial Intelligence (AI): Building hardware and software systems capable of performing tasks that typically require human intelligent behavior.

    • Machine Learning (ML): Developing algorithmic models that allow systems to learn patterns and infer decisions directly from data.

    • Databases: Structuring systems to store, organize, query, and retrieve large volumes of digital data securely.

    • Computer Networks: Studying physical hardware and software protocols that enable computers to exchange data and communicate.

    • Operating Systems: Designing core software layers that manage computer hardware resources and provide services for applications.

    • Cybersecurity: Protecting computing hardware, software systems, and network data from unauthorized access, attacks, and corruption.

    • Software Engineering: Applying rigorous engineering principles to construct, deploy, and maintain large-scale software applications.

    • Computer Architecture: Designing internal physical hardware structures, CPU registers, buses, and logic execution units.

    • Computer Graphics: Generating, rendering, and manipulating images, animations, and visual information digitally.

Course Objectives & Core Curriculum Outlines

  • Primary Course Objectives:

    1. Computer System Architecture: Understand the functional roles of the CPU, primary memory, secondary storage, and input/output (I/O) peripherals, while exploring hardware-software interaction through operating systems.

    2. Data Representation & Logic Gates: Master binary number systems, numerical conversions, binary arithmetic, character encoding standards, and foundational logic gates with corresponding truth tables.

    3. Computational Thinking: Develop logical problem-solving techniques, design step-by-step algorithms, and decompose complex tasks into executable programmatic components.

    4. C++ Programming: Gain proficiency in program execution structure, variable declaration, console I/O, arithmetic and logical operators, conditional branching, iteration loops, user-defined functions, user-defined structures (structs), arrays, and memory pointers.

  • Strategic Importance of the Course:

    • Solid Engineering Foundation: Acts as a central structural hub connecting physical hardware components directly to computer logic and program code.

    • Bridging Theory & Practice: Merges theoretical hardware principles (such as Logic Design) with practical implementation languages (C++).

    • Path to Advanced Specializations: Establishes prerequisite knowledge for advanced computing tracks, including AI, Data Structures, and Software Engineering.

    • Empowering Technical Readiness: Develops core engineering problem-solving capabilities across diverse systems.

  • Seven Progressive Topics (Course Outlines):

    1. Topic 1: Introduction to Computing and Computer Science

    2. Topic 2: Computer Hardware and Components

    3. Topic 3: Data Representation and Number Systems

    4. Topic 4: Logic Gates and Truth Tables

    5. Topic 5: Computer Software and Operating Systems

    6. Topic 6: Algorithms and Problem Solving

    7. Topic 7: Introduction to C++ Programming

Grading Policy & Course Administration

  • Course Administration Logistics:

    • Credit Hours: 3 Credit Hours3\text{ Credit Hours}

    • Weekly Lecture Hours: 2 Hours2\text{ Hours}

    • Weekly Lab Hours: 2 Hours2\text{ Hours}

    • Course Prerequisites: None

  • Assessment & Mark Distribution (Total: 150 Marks150\text{ Marks}):

    • Student Activities: 22.5 marks22.5\text{ marks} (Continuous assessment evaluated throughout the semester)

    • Midterm Examination: 22.5 marks22.5\text{ marks} (Administered during Week 77)

    • Practical Examination: 30 marks30\text{ marks} (Administered during Week 1414)

    • Final Examination: 75 marks75\text{ marks} (Administered starting Week 1515)

    • Project Submission: Mandatory course project due prior to sitting the Practical Examination.

  • Attendance Policy:

    • Attendance is strictly monitored across lectures and laboratory sessions.

    • Any student whose cumulative absences exceed 25×10−225\times 10^{-2} (25BA25BA) of total scheduled sessions will be legally barred from taking any final examinations.

Historical Evolution of Computing

  • Definition & Core Characteristic of a Computer:

    • A computer is defined as a programmable, electronic device that accepts raw input data, performs arithmetic and logical operations on that data, displays or presents processed outputs, and stores results for future use.

    • Programmability: The capability of a machine to follow a flexible, changeable sequence of instructions (a program)—doing precisely what it is instructed to do, nothing more and nothing less. This flexibility differentiates computers from fixed-function electronic devices.

  • Historical Pioneers & Contributions:

    • 1. Ismail al-Jazari (12061206) — Mechanical Automation:

    • Designed sophisticated, automated mechanical systems and water clocks.

    • Demonstrated mechanical devices capable of executing fixed sequences of predefined actions.

    • Introduced early concepts of mechanical automation and procedural execution.

    • 2. Ada Lovelace (1840s1840\text{s}) — Algorithms & Programming:

    • Worked alongside Charles Babbage on his proposed mechanical computer, the Analytical Engine.

    • Authored an algorithm designed to compute Bernoulli numbers on the machine.

    • Recognized as the writer of one of the first published computer programs, establishing the relationship: Computer+Instructions→Programmable Computer\text{Computer} + \text{Instructions} \rightarrow \text{Programmable Computer}.          

      Ada Lovelace portrait
    • 3. George Boole (1850s1850\text{s}) — Boolean Logic:

    • Formulated Boolean algebra and formal logical operations in his work (including The Laws of Thought, published in 18541854).

    • Established a formal system operating on binary logical values (TRUE/FALSE\text{TRUE} / \text{FALSE} or 1/01 / 0) using core operators (AND\text{AND}, OR\text{OR}, NOT\text{NOT}).

    • Provided the mathematical foundation for modern digital electronic circuit design and switching logic.          

      George Boole and Boolean Logic concepts
    • 4. Alan Turing (1930s1930\text{s}) — Theory of Computation:

    • Formulated fundamental mathematical theories underlying computation.

    • Introduced the concept of the Turing Machine as a universal mathematical model of step-by-step computation.

    • Defined the theoretical boundary of what machines can compute, laying the foundation for modern theoretical computer science and computability theory.          

      Alan Turing and early computational machinery

Early Electronic Digital Computers: ENIAC & ABC

  • ENIAC (Electronic Numerical Integrator and Computer):

    • Developed in the United States during World War II and officially announced in 19461946

    • Designed and constructed by John Mauchly and J. Presper Eckert at the Moore School of Electrical Engineering, University of Pennsylvania.

    • Recognized as one of the earliest general-purpose, large-scale electronic digital computers.

    • Constructed using approximately 18,00018{,}000 vacuum tubes.

    • Required an entire specialized room, weighed heavily, and consumed high amounts of electrical power.

    • Primary purpose: Conducting high-speed numerical calculations, such as military artillery firing tables.      

      ENIAC, the world's first large-scale electronic digital computer
  • ABC (Atanasoff–Berry Computer):

    • Designed and built between 19371937 (conceived) / 19391939 (construction) and 19421942 at Iowa State College (now Iowa State University) by Physics Professor John Vincent Atanasoff and graduate student Clifford E. Berry.

    • Constructed specifically as a special-purpose electronic machine to solve systems of up to 2929 simultaneous linear equations in 2929 unknowns.

    • Incorporated approximately 300300 vacuum tubes within its mathematical processing circuits.

    • Implemented binary base-two arithmetic rather than decimal arithmetic.

    • Used regenerative electronic memory consisting of electrical capacitors embedded on two rotating memory drums to store binary charges.

    • Difference from ENIAC: ABC was a non-programmable, special-purpose calculator, whereas ENIAC was general-purpose and programmable.

    • Historical Legacy: The ABC introduced three core technical principles fundamental to all modern electronic computers: Electronic Computation+Binary Arithmetic+Electronic Memory\text{Electronic Computation} + \text{Binary Arithmetic} + \text{Electronic Memory}.      

      Atanasoff-Berry Computer display exhibit

Classification of Computer Systems

  • Computer systems are broadly categorized into six functional classes according to physical volume, computational throughput, hardware capacity, and cost structure:

    1. Supercomputers: The most computationally powerful systems, designed with massive parallel processing capabilities. Used for large-scale scientific modeling, global climate simulations, molecular dynamics, and nuclear physics.

    2. Mainframes: High-capacity enterprise servers engineered for fault tolerance and high I/O throughput. Employed by banking institutions, government agencies, and airlines for high-volume batch processing and transaction handling.

    3. Minicomputers: Mid-range multi-user systems positioned structurally between mainframes and personal microcomputers, frequently serving as enterprise department servers.

    4. Microcomputers: Individual user systems (such as desktop PCs and laptops) built around a single microprocessor, widely deployed in offices, home settings, and education.

    5. Mobile Devices: Highly portable, battery-powered computing platforms (smartphones, tablets, smartwatches) featuring wireless radios and touch-screen user interfaces.

    6. Embedded Computers: Specialized microcontrollers or system-on-chip (SoC) platforms embedded directly inside non-computing products (household appliances, automotive control units, industrial machinery, IoT devices) to execute dedicated control routines.

Computer System Architecture & Operations

  • The Four Basic Computer Operations (Data Processing Cycle):

    • 1. Input: The acquisition of raw data, user commands, or external physical measurements via peripheral input hardware.

    • 2. Processing: The manipulation, mathematical transformation, and logical evaluation of input data, executed directly by the Central Processing Unit (CPU).

    • 3. Output: The presentation of processed information back to human operators or downstream systems in an accessible format.

    • 4. Storage: The non-volatile retention of digital data, compiled system instructions, and execution outputs on physical storage media for immediate or long-term retrieval.

  • Hardware Component Functional Architecture:

    • Input Unit: Peripherals designed to digitize human inputs or environmental signals (keyboards, computer mice, game joysticks, document scanners, webcams, microphones).

    • Central Processing Unit (CPU): The central execution chip containing:

    • Arithmetic Logic Unit (ALU): Executes binary mathematical calculations (++, −-, ×\times, \frac{}{}) and boolean logic evaluations (AND\text{AND}, OR\text{OR}, NOT\text{NOT}).

    • Control Unit (CU): Decodes software instructions, coordinates data movement across internal registers, and generates control timing signals.

    • Interface / Bus Unit: Manages communication buses linking the processor to system RAM and peripheral controllers.

    • Output Unit: Peripherals designed to render processed data into physical form (high-resolution display monitors, audio speakers, document printers, projectors, VR headsets).

    • Storage Unit: Hardware systems divided into:

    • Primary Memory: Fast, volatile system memory (RAM\text{RAM}) that stores currently active program instructions and dynamic execution data, complemented by non-volatile system startup ROM.

    • Secondary Storage: High-capacity, non-volatile storage mediums (Hard Disk Drives [3.5” HDDs3.5\text{'' HDDs}], Solid State Drives [SSDs\text{SSDs}], M.2 NVMe modules, Network-Attached Storage [NAS\text{NAS}], optical discs, USB flash drives, legacy floppy disks).

Data Processing & Information Transformation

  • Data vs. Information:

    • Raw Facts & Observations (Data): Unorganized, unstructured symbols, figures, readings, or raw values. On its own, raw data possesses minimal contextual utility.

    • Information Transformation: The processing stage where raw data inputs are sorted, filtered, calculated, structured, and contextualized into meaningful outputs useful for decision-making.

    • Storage & Retrieval: Processed information is maintained securely in structured database tables or file systems to ensure rapid, indexable retrieval and automated generation of analytical reports.

Software Categories & Network Communications

  • Software System Hierarchy:

    • System Software: Low-level programs that interface directly with physical hardware and manage low-level hardware resources:

    • Operating Systems (OS): Modern OS platforms (Windows 11, macOS Sonoma, Linux, Android 14, iOS) that coordinate memory allocation, process scheduling, file system access, and security policies.

    • Device Drivers: Specialized system software enabling operating systems to communicate with distinct hardware interfaces (graphics drivers, network interface drivers).

    • Firmware / BIOS / UEFI: Low-level code flashed onto non-volatile motherboard ROM chips to initialize system hardware during power-on boot procedures.

    • Utilities: System maintenance software tools (anti-virus utilities, disk managers).

    • Application Software: Higher-level software packages designed to enable end-users to perform specific tasks:

    • Word Processing: Microsoft Word, Google Docs, Apple Pages.

    • Spreadsheets: Microsoft Excel, Google Sheets, Apple Numbers.

    • Presentations: Microsoft PowerPoint, Keynote, Google Slides.

    • Communication: Slack, Zoom, Microsoft Teams, WhatsApp.

    • Graphics & Design: Adobe Photoshop, Adobe Illustrator, Adobe Premiere, Canva.

    • Web Browsers: Google Chrome, Mozilla Firefox, Apple Safari.

  • Communications & Network Layer:

    • Connects isolated computer hardware platforms across local and wide-area network infrastructures.

    • Global Connectivity: Integrates local networks with the global Internet and distributed cloud infrastructure through satellite links, fiber-optic lines, and wireless routers.

    • Protocol Standards: Utilizes standardized protocol stacks (e.g., Application layer [HTTP/DNS\text{HTTP}/\text{DNS}], Transport layer [TCP/UDP\text{TCP}/\text{UDP}], Network layer [IP\text{IP}], Link layer) to ensure reliable data packet exchange between client computers and remote servers.

    • Network Resource Sharing: Enables multiple networked workstations, laptops, and mobile devices to access shared network switches, database servers, and cloud resources.

Key Roles in Computing Systems

  • Software Engineers: Professional architects who design, plan, construct, and maintain large-scale, reliable software applications and computing systems.

  • Programmers: Developers who write, test, analyze, and debug executable source code across programming languages to power specific machine tasks.

  • System Analysts: Technical specialists who analyze organizational business requirements, evaluate IT infrastructures, and design tailored hardware and software solutions.

  • End Users: Non-technical operators or clients who interact with finished application software to perform daily workflows and task activities.

Academic References & Learning Resources

  • Core Textbooks:

    • Brookshear, J. G., & Brylow, D. (20202020). Computer Science: An Overview (13th ed.13\text{th ed.}). Pearson.

    • Deitel, P., & Deitel, H. (20202020). C++ How to Program (10th ed.10\text{th ed.}). Pearson.

  • Recommended Supplementary Books:

    • Mano, M. M., Kime, C. R., & Martin, T. (20152015). Logic and Computer Design Fundamentals (5th ed.5\text{th ed.}). Pearson.

    • Null, L., & Lobur, J. (20182018). The Essentials of Computer Organization and Architecture (5th ed.5\text{th ed.}). Jones & Bartlett Learning.

    • Silberschatz, A., Galvin, P. B., & Gagne, G. (20182018). Operating System Concepts (10th ed.10\text{th ed.}). Wiley.

    • Savitch, W. (20182018). Problem Solving with C++ (10th ed.10\text{th ed.}). Pearson.

  • Electronic & Online Learning Resources:

    • IEEE Computer Society Publications: https://www.computer.org

    • ACM Digital Library: https://dl.acm.org

    • W3Schools Web Tutorials: https://www.w3schools.com

    • GeeksforGeeks Portal: https://www.geeksforgeeks.org

    • C++ Reference Libraries: cplusplus.com / cppreference.com

    • CS50: Introduction to Computer Science (Harvard University)

    • Mahara-Tech (ITIDA): https://maharatech.gov.eg