Introduction to Computer Science PDF Download – OpenStax (Franchitti, 2024) BSCS BSIT

Introduction to Computer Science is the OpenStax textbook for a first course in the subject, written for computer science majors and non-majors alike. Jean-Claude Franchitti of the NYU Courant Institute led the author team, and OpenStax published the book on November 13, 2024. Its 14 chapters and one appendix move from computational thinking, algorithms and data structures to hardware, operating systems, programming languages, databases, software engineering, web and cloud development, and cybersecurity.

BSCS and BSIT students can use it as the course book for Introduction to Computing, or as a map of the whole degree before choosing electives. Because it is a survey, each chapter gives you vocabulary you will meet again in later courses. This page adds a plain summary, key points, a tip, a common mistake and two practice questions for every chapter, plus a study plan, so you know what to read first. You can download the free PDF from the official OpenStax site.

Book Overview

CourseIntroduction to Computer Science (introductory computing course)
Degree ProgramsBSCS, BSIT
LevelUniversity, introductory level; written for both majors and non-majors
AuthorsJean-Claude Franchitti (senior contributing author), with contributing authors Amal Alhosban, Mark Buckler, Joanna Gilberti, Scott Gray, Matthew Hertz, Andrew Hurd, Kevin Lin, Sai Mukkavilli, Phuc (Brian) Nguyen, Shahab Tayeb, Zdeněk Troníček, Kevin Wortman and Mohamed Zahran
PublisherOpenStax, Rice University
PublishedNovember 13, 2024
Structure14 chapters in five parts, plus Appendix A (Network Design Application of Algorithms); this page gives one block per chapter and one for the appendix
ExercisesEvery chapter ends with key terms, a summary, multiple-choice review questions, conceptual questions, practice exercises, problem sets, thought provokers and labs; answers are in the Instructor Answer Guide, not in the student book
LanguageEnglish
LicenseCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
FormatFree PDF and free online (web view) edition on OpenStax

Chapter List

Chapter 1: Introduction to Computer Science

Difficulty: Easy · Key topics: algorithms, hardware, software and theory perspectives, data science, computational science, information science, neural networks, social good

The opening chapter asks what computer science actually is. It describes the field as the study of computing built around algorithms, seen through hardware, software and theoretical perspectives, and it points out that the field has also served goals such as learning tools and global development. It then shows how data science, computational science and information science borrow its tools, and it ends with three ways the field shapes society: building foundational technologies, studying their harms, and designing for social good.

Key Points:

  • Algorithms, the step-by-step instructions behind all computing, are the core subject of computer science.
  • Three common perspectives on the field are hardware, software and theory.
  • Data science manages data and extracts information from it; computational science uses models and simulations to advance research.
  • Information science studies information technology in relation to people, organizations and society, so it overlaps with computer science but stresses social value.
  • Neural networks learn from big data, so they can copy the social patterns hidden in that data.

Memory Tip: Pick one app you use daily, such as a maps app, and look at it through all three lenses: the hardware it runs on, the software that builds it and the algorithm behind its main feature.

Common Mistake: Treating computer science as another word for programming. The chapter presents programming as one tool inside a wider field that includes theory, hardware and effects on society.

Important Questions:

  • What are the three main perspectives on computer science? The hardware, software and theoretical perspectives, although the chapter says other perspectives exist too.
  • How does information science differ from computer science? Information science studies information technologies and systems in relation to people, organizations and society, while computer science has historically stressed algorithms and computation.

Chapter 2: Computational Thinking and Design Reusability

Difficulty: Medium · Key topics: computational thinking, abstraction, decomposition, layering, enterprise architecture, MVC, adaptive design reuse, microservices

This chapter starts with computational thinking: break a complicated problem into smaller parts, look for patterns, ignore irrelevant detail, write precise steps and then test and debug them. It next turns to architecture, showing how layering, user experience, monolithic design, enterprise architecture and data models organize a business solution. The last section joins bottom-up thinking with top-down design reuse, using the MVC pattern, Web 2.0 and 3.0, blockchain, microservices and legacy migration as examples.

Key Points:

  • The “three As” of computational thinking are abstraction, automation and analysis.
  • Decomposition splits a complex system into smaller subproblems that are easier to solve.
  • Abstraction keeps the important information and hides the irrelevant detail.
  • Layering separates concerns into abstract layers; the presentation layer holds the user interface.
  • Model-View-Controller (MVC) is an architectural pattern for organizing interactive applications.
  • A monolithic architecture ties all components into one unit, while microservices build software from small independent services.

Memory Tip: Remember the routine as split, spot, hide, write, test: split the problem, spot the patterns, hide the detail, write the steps, test them. Try it on a daily task such as planning a trip and write one line for each stage.

Common Mistake: Mixing up abstraction and decomposition. Decomposition cuts a problem into parts, while abstraction hides detail inside each part.

Important Questions:

  • What is decomposition in computational thinking? It is splitting a complex system or problem into manageable subproblems, each of which can be solved and tested on its own.
  • What is adaptive design reuse? It means reusing existing design solutions to build new systems; the chapter combines this top-down idea with bottom-up computational thinking.

Chapter 3: Data Structures and Algorithms

Difficulty: Hard · Key topics: abstract data types, trees, graphs, searching, Big O, divide and conquer, greedy algorithms, sorting, hashing, shortest paths, P versus NP

Chapter 3 is the main algorithms chapter. It starts with data structures grouped by abstract data type (lists, sets, maps, priority queues and graphs), with trees and heaps as faster options. It then covers designing and analyzing algorithms: modeling a problem, searching, correctness, and time and space complexity in Big O notation. Four paradigms follow (divide and conquer, brute force, greedy, reduction), together with sample algorithms for sorting, hashing, graph traversal, spanning trees and shortest paths. The last section introduces Turing machines, NP-complete problems and the P versus NP question.

Key Points:

  • Abstract data types (ADTs) group data structures by function: lists, sets, maps, priority queues and graphs.
  • Big O notation expresses how running time grows with input size; common targets are O(N), O(log N) and O(1), and quadratic time is often the practical ceiling.
  • Binary search is divide and conquer with one subproblem; merge sort divides the problem into two.
  • A greedy algorithm applies a simple rule repeatedly and is not always optimal; Kruskal’s and Prim’s algorithms are proven correct for minimum spanning trees.
  • Breadth-first search finds shortest paths in unweighted graphs, while Dijkstra’s algorithm handles weighted graphs.
  • NP-complete problems, such as the traveling salesperson problem, are the hardest problems in NP, and whether they can be solved in polynomial time is still open.

Practice Tip: In any language you know, time a sequential search and a binary search on a sorted list of one million numbers. The gap shows why growth rate matters more than machine speed.

Common Mistake: Believing that a faster computer can rescue a slow algorithm. The chapter shows that inefficient algorithms still fail beyond a few thousand elements, whatever the hardware.

Important Questions:

  • What is the difference between P and NP? P problems can be solved in polynomial time by a deterministic algorithm, NP problems can be solved in polynomial time by a nondeterministic one, and every P problem is also in NP.
  • When does a greedy algorithm fail? When its simple rule does not lead to the best overall answer; for example, always choosing the shortest interval fails in interval scheduling, while the greedy rule is proven correct for minimum spanning trees.

Chapter 4: Linguistic Realization of Algorithms: Low-Level Programming Languages

Difficulty: Hard · Key topics: models of computation, low-, middle- and high-level languages, paradigms, C, pointers, GCC, linking, libraries, version control, parallel programming

Chapter 4 explains how algorithms are written for machines with limited speed and memory, such as embedded devices. It defines models of computation and compares low-, middle- and high-level languages and the main programming paradigms. A full section on C covers its data model, pointers, the compile, link and run cycle with GCC, libraries and version control. The chapter then introduces parallel programming models (shared memory, threads and message passing) and closes with uses of C and Rust on Arduino and Raspberry Pi.

Key Points:

  • Low-level code runs directly on the CPU and is fast but laborious; high-level code is easier for people but can run slower.
  • The main paradigms are imperative, declarative, functional, structured, procedural and object-oriented.
  • C gives direct memory access through pointers and runs about as fast as assembly; array, struct and union build collections.
  • A C program goes through design, writing, compiling, linking and running; GCC bundles gcc, ar and ld for these tasks.
  • Linking combines object files into one library or executable, and libraries can be static, dynamic or shared.
  • Parallel code must be written deliberately; common models are shared memory, threads and message passing.

Practice Tip: Write a four-line C program, compile it to an object file with gcc -c, then link it with a second command. You will see compiling and linking as two separate steps.

Common Mistake: Assuming that more cores make a program faster automatically. The chapter stresses that parallelism is not automatic and the programmer has to write code that uses the cores.

Important Questions:

  • Why is C still important for embedded systems? It runs about as fast as assembly, gives direct memory access through pointers, and is portable and modular, which suits firmware, kernels and low-power devices.
  • What is the difference between compiling and linking? Compiling turns source code into object files, while linking combines object files and libraries into one executable or library.

Chapter 5: Hardware Realizations of Algorithms: Computer Systems Design

Difficulty: Hard · Key topics: processor and memory, levels of abstraction, ISA, number representation, CISC and RISC, assembly, memory hierarchy, multicore

This chapter follows an algorithm down to the machine. It lists the main parts of a computer (processor, memory, disk and input and output devices) and the levels of abstraction from problem to algorithm to program to hardware, including newer ideas such as quantum and neuromorphic computing. It then covers how numbers and characters are stored in binary, how assembly language relates to CISC and RISC instruction sets such as x86-64, ARM and RISC-V, why memory is built as a hierarchy, and how processors moved from single-cycle designs to multicore, heterogeneous systems.

Key Points:

  • A phone and a data-center server share the same basic organization: processor, main memory, disk and I/O devices.
  • Integers are signed or unsigned, floating point stores fractions, and an n-bit number has a fixed range of values.
  • A compiler translates a high-level program into assembly language, and an assembler converts that into binary machine code.
  • CISC processors such as x86-64 use complex instructions; RISC designs such as ARM and RISC-V use simpler ones.
  • The memory hierarchy puts small, fast, expensive memory at the top and large, slow, cheap memory below, and programs run faster when they use locality of access.
  • A heterogeneous system pairs a multicore processor with one or more accelerator chips.

Memory Tip: Picture the memory hierarchy as a desk, a bookshelf and a library: the closer to you, the faster and smaller it is. Registers and cache sit on the desk, main memory on the shelf and disk in the library.

Common Mistake: Thinking a bigger memory is always a faster one. Fast memory is expensive, so real systems combine several levels instead of using a single technology.

Important Questions:

  • What is the difference between CISC and RISC? CISC combines many operations into complex instructions (for example x86-64), while RISC uses simpler instructions (for example ARM and RISC-V).
  • Why do computers use a memory hierarchy? No single memory technology is fast, large and cheap at once, so systems combine several, and programmers can improve speed by taking advantage of locality.

Chapter 6: Infrastructure Abstraction Layer: Operating Systems

Difficulty: Hard · Key topics: mechanism and policy, virtualization, processes and threads, kernel mode, scheduling, virtual memory, file systems, authentication, access control

Chapter 6 introduces the operating system as the layer between applications and hardware. It explains mechanism and policy, virtualization and hypervisors, processes and threads, user and kernel mode, and the main OS designs: monolithic, layered and microkernel. Later sections cover scheduling and synchronization of concurrent processes, memory management and virtual memory, file systems with inodes and distributed storage, and finally reliability and security through authentication, authorization, access control lists and logging.

Key Points:

  • Mechanism is what the system can do; policy is how it should use that ability in a given situation.
  • A process has an address space, one or more threads and system state; a PID identifies it and the PCB tracks it.
  • Dual mode separates user mode from kernel mode so that ordinary programs cannot touch protected resources.
  • Four simple scheduling algorithms are FCFS, RR, STCF and SRPT.
  • Virtual memory gives every process its own view of memory, which keeps processes isolated; fragmentation means enough free memory exists but not in one contiguous block.
  • Security rests on authentication, authorization and access enforcement; an ACL lists who may use an object, while a capability list records each user’s rights.

Memory Tip: A bus has doors (mechanism) and a rule about who boards first (policy). The operating system provides the doors, and the policy decides how they are used.

Common Mistake: Confusing a program with a process. A program is code stored on disk, while a process is a running program with its own address space, threads and state.

Important Questions:

  • What is the difference between a monolithic kernel and a microkernel? In a monolithic design the entire operating system runs in kernel space, while a microkernel keeps a minimal core and adds other features around it.
  • What are the three aspects of operating system protection? Authentication (who you are), authorization (what you may do) and access enforcement (making sure the rules are applied).

Chapter 7: High-Level Programming Languages

Difficulty: Medium · Key topics: language selection criteria, data types, control flow, functions, call stack, exceptions, functional and object-oriented models, compilers, interpreters, virtual machines

Chapter 7 treats high-level languages as tools that must be chosen with care. It lists selection criteria such as scalability, cost, portability and maintainability, then the building blocks found in most languages: data types, operators, variables, control flow, functions, the call stack and exception handling. It compares functional, object-oriented, concurrent, parallel and scripting models, and closes with how languages are implemented through compilers, interpreters, linkers, runtime systems and virtual machines.

Key Points:

  • Language selection criteria include scalability, cost, flexibility, efficiency, portability and maintainability.
  • An implementation can be compiled, interpreted or hybrid; a compiler has a front end, an optional middle end and a back end.
  • Functional programming is declarative and builds programs by composing functions; object-oriented programming uses classes and objects.
  • Encapsulation, inheritance and polymorphism show how object-oriented a language is.
  • Concurrency gives the appearance of simultaneous execution, while parallelism runs code at the same time on multiple cores or processors.
  • A runtime system manages garbage collection, exceptions and concurrency, and a virtual machine emulates a computer architecture.

Practice Tip: In a language you know, solve one small task, such as summing a list, once with a loop and once in a function style. Compare which version is easier to read and to test.

Common Mistake: Treating concurrency and parallelism as the same thing. Concurrency only gives the appearance of running together, while parallelism really runs code at once and needs several cores.

Important Questions:

  • How is a compiler different from an interpreter? Both translate source code, but at different times: a compiler translates the program before it runs, while an interpreter translates it as it runs.
  • Which three features show that a language is object-oriented? Encapsulation, inheritance and polymorphism.

Chapter 8: Data Management

Difficulty: Medium · Key topics: data life cycle, metadata, DBMS, relational model, SQL, normalization, NoSQL, data warehouses, data lakes, big data, informatics

Chapter 8 follows data through its whole life cycle. It separates data, information and knowledge, covers metadata, quality and governance, and then explains what a database management system does and which architectures it can have. Two sections cover relational databases (tables, SQL, normalization, indexing, concurrency and recovery) and nonrelational stores such as XML, key-value, document, column and graph databases. The last sections cover data warehouses, data lakes and business intelligence, data for machine learning with the five Vs of big data, and informatics.

Key Points:

  • Data is formatted and converted into information for decisions, and metadata is data about data.
  • A DBMS stores, retrieves, edits and maintains data; logical models include hierarchical, network, relational, object-oriented, XML and NoSQL.
  • A relational database keeps related data in row-based tables, uses SQL, and applies normalization to reduce redundancy.
  • Nonrelational stores include key-value, document, column-oriented and graph databases.
  • Warehouses use star, snowflake or fact constellation schemas and are loaded by ETL (extract, transform, load); a data lake keeps raw data with no predefined schema.
  • The five Vs of big data are volume, velocity, variety, veracity and value.

Memory Tip: Think of ETL as a kitchen: take the ingredients out (extract), prepare them (transform) and put them on the shelf ready to serve (load).

Common Mistake: Treating a data lake as just a bigger data warehouse. A warehouse stores processed data in a relational form, while a lake stores raw data without a fixed schema.

Important Questions:

  • What does normalization do in a relational database? It organizes tables to reduce redundancy and improve data integrity.
  • What are the five Vs of big data? Volume, velocity, variety, veracity and value.

Chapter 9: Software Engineering

Difficulty: Medium · Key topics: functional and nonfunctional requirements, SDLC, waterfall, Agile, Scrum, DevOps, testing, test-driven development, refactoring, licensing, code of ethics

Chapter 9 explains how software is built by teams. It separates software engineering from computer science, defines functional and nonfunctional requirements, and names three software categories: application, system and embedded. It then walks through process models, from waterfall, V-model and spiral to Agile methods such as Scrum and DevOps, and the activities that run across them, such as risk, quality and security. Special topics cover testing levels, test-driven development, tools, design patterns, refactoring, open source, licensing and the software engineering code of ethics.

Key Points:

  • Solutions must meet functional requirements (what the software does) and nonfunctional requirements (how well it does it).
  • Common SDLC phases are inception, elaboration, construction and deployment.
  • Models to know include waterfall, V-model, incremental, prototyping, spiral, Unified Process and Agile models such as Scrum and DevOps.
  • Testing levels are unit, integration and system, and acceptance testing by the customer or end user usually comes after system testing.
  • Test-driven development means writing unit tests before the code.
  • Refactoring restructures code without changing what it does.

Memory Tip: Order the testing levels from small to big: unit, integration, system, acceptance. Think brick, wall, building, handover.

Common Mistake: Describing refactoring as a way to add features. It changes only the structure of the code, and the behavior must stay the same.

Important Questions:

  • How do traditional and Agile process models differ? Traditional models are prescriptive and sequential, while Agile models are less rigid, allow activities to be skipped or sped up, and bring in user input early.
  • What is test-driven development? It is writing unit tests before the code, which clarifies requirements, catches bugs early and improves design.

Chapter 10: Enterprise and Solution Architectures Management

Difficulty: Hard · Key topics: patterns, architectural styles, design patterns, enterprise architecture, TOGAF, blueprints, solution architecture, software stack

Chapter 10 moves from single programs to whole organizations. It defines a pattern as a recurring problem paired with a solution, and separates design-centric patterns (architectural styles, architectural patterns, design patterns) from implementation-centric ones. It then covers enterprise architecture management, which aligns business and technology strategy through frameworks such as TOGAF and Zachman and through blueprints at conceptual, logical and physical levels, and solution architecture management for specific business problems, using subsystems, frameworks, software stacks and design patterns.

Key Points:

  • A pattern pairs a recurring problem with a solution inside a context.
  • An architectural style is a named set of architectural decisions that fits a context and tends to give desirable qualities.
  • Enterprise architecture aligns business and technology strategy; frameworks include TOGAF, Gartner, C4ISR, CORBA, FEA and Zachman.
  • The TOGAF Architecture Development Method (ADM) has nine iterative phases.
  • An enterprise architecture produces a blueprint of the desired future state and a roadmap for reaching it.
  • A software stack is a set of layered components, such as the operating system, protocols and databases, that together support an application.

Memory Tip: Think in zoom levels: enterprise architecture is the city map, solution architecture is the building plan for one project, and design patterns are the standard room layouts reused inside it.

Common Mistake: Treating enterprise architecture as only an IT diagram. The chapter says its purpose is to align business and technology strategies so that IT supports the business vision.

Important Questions:

  • What is a pattern catalog? It organizes patterns by their characteristics and defines the relationships between them.
  • What does enterprise architecture produce? A blueprint of the organization’s desired future state and a roadmap that shows how to reach it.

Chapter 11: Web Applications Development

Difficulty: Medium · Key topics: Web 1.0, 2.0 and 3.0, MVC, responsive design, single-page applications, REST, Django, React, Node, native apps, Ethereum smart contracts

Chapter 11 compares web architectures and then builds the same To-do app in several ways. It begins with Web 1.0, 2.0 and 3.0, server-rendered pages with MVC, responsive design, single-page applications that call REST APIs, and native mobile apps. The worked examples use Bootstrap with Django, React with Node, Express and MongoDB, React with Django, React Native for mobile, and finally an Ethereum smart-contract version written in Solidity.

Key Points:

  • Web 1.0 is for reading content, Web 2.0 for social interaction and Web 3.0 for an open, decentralized, trusted web.
  • A single-page application loads one page and fetches data from a REST API with JavaScript AJAX calls.
  • Responsive apps display well on any screen size or orientation; native apps are fast and use device features but do not run across platforms.
  • The examples pair a front end (Bootstrap or React) with a back end (Django, or Node with Express and Mongoose).
  • Ethereum smart contracts act as secure digital agreements on a peer-to-peer network; Solidity writes them and Truffle helps develop them.
  • The book pins older tool versions, for example React 17.0.2, Node 14.17.5 and Django 4.0.1.

Practice Tip: Before you build anything, draw the To-do app as three boxes (browser interface, REST API, database) and label which tool fills each box in each example.

Common Mistake: Following the steps with the latest Node, React or Django and expecting every command to work unchanged. The book pins specific versions, so install those or be ready to adjust the code.

Important Questions:

  • What is a single-page application? A web app that loads one page and then fetches data through REST APIs using JavaScript AJAX calls, instead of loading a new page for each request.
  • What does a responsive web application do? It adjusts its layout so that it displays well on any device screen and in any orientation.

Chapter 12: Cloud-Native Applications Development

Difficulty: Medium · Key topics: cloud-native, microservices, containers, Docker, Kubernetes, DevOps, CI/CD, IaaS, PaaS, SaaS, serverless, FaaS

Chapter 12 explains what makes an application cloud-native rather than just cloud-hosted. It covers microservices, containers, APIs, orchestration, DevOps and CI/CD, with Docker and Kubernetes as the main tools. It then compares the IaaS, PaaS and SaaS service models and the public, private, community and hybrid deployment models, along with bare metal, virtual machines, unikernels, containers and serverless. The last section deploys sample applications on PaaS and FaaS platforms on Microsoft Azure and AWS.

Key Points:

  • Cloud-based apps run on a cloud platform without using its traits; cloud-native apps are built around them.
  • Cloud-native apps are microservices-based, container-based, API-based and dynamically orchestrated.
  • DevOps combines Agile development with IT operations, and CI/CD automates the build, package, test, deploy and release steps.
  • Docker creates and manages containers, while Kubernetes orchestrates their deployment, scaling and health.
  • The service models are IaaS, PaaS and SaaS, and the deployment models are public, private, community and hybrid.
  • In serverless computing the developer does not provision or scale servers; selection factors include cost, performance, compliance, elasticity and vendor lock-in.

Memory Tip: Docker packs and Kubernetes manages. Think of Docker as the shipping container and Kubernetes as the port crane and timetable that moves many containers.

Common Mistake: Calling every application on a cloud server cloud-native. The chapter separates cloud-based apps from cloud-native apps that use microservices, containers and orchestration.

Important Questions:

  • What are the three cloud service models? Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS), ranging from high effort and investment to low effort and investment.
  • What does CI/CD do? It automates the build, package, test, deploy and release steps so that software can be released securely and often.

Chapter 13: Hybrid Multicloud Digital Solutions Development

Difficulty: Medium · Key topics: hybrid cloud, multicloud, cloud mashups, edge deployment, IaaS and PaaS services, IoT protocols, machine learning, blockchain, VR and AR, metaverse

Chapter 13 looks at using several clouds together. It defines hybrid cloud, multicloud, cloud mashups and edge deployment, then surveys typical IaaS services of the big cloud vendors (storage, compute, CDN, containers and managed databases) and PaaS services such as IoT protocols, machine learning, blockchain, virtual and augmented reality and 3-D printing. It ends with a forward-looking section on intelligent autonomous networked super systems, the metaverse, neuroinformatics, cognitive robotics and quantum computers.

Key Points:

  • A hybrid cloud combines on-premises systems with cloud services, while multicloud uses several cloud vendors at once.
  • Edge deployment runs applications near the user or device to cut latency, which helps IoT and real-time services.
  • Typical IaaS services include file, object and block storage, virtual and spot compute, CDNs and managed databases.
  • IoT telemetry and telecommand use protocols such as MQTT, AMQP, CoAP, XMPP and STOMP, because HTTP is unsuitable.
  • Virtual reality immerses the user in a 3-D virtual environment, while augmented reality adds virtual objects to the real world.
  • The chapter notes that limits on artificial general intelligence make intelligent autonomous networked super systems hard to use in practice.

Memory Tip: Hybrid is a mix of places (your own servers and the cloud), and multicloud is a mix of vendors (several cloud providers).

Common Mistake: Using ordinary web (HTTP) thinking for every connected device. The chapter explains that IoT systems rely on lightweight protocols such as MQTT and CoAP.

Important Questions:

  • Why would a company choose a multicloud design? To avoid depending on a single vendor, to reduce security and availability risk, and to pick the most cost-effective service from each provider.
  • What is the difference between VR and AR? Virtual reality places the user in a fully virtual 3-D environment, while augmented reality adds virtual objects to the real world.

Chapter 14: Cyber Resources Qualities and Cyber Computing Governance

Difficulty: Medium · Key topics: cyber resource qualities, TOGAF, ISO/IEC 25010, cybersecurity threats, cryptography, MAC, DAC and RBAC, cyber economics, responsible computing

The final chapter asks how to keep digital systems secure, reliable and responsible. It defines cyber resources and their qualities (security, safety, performance, usability, reliability and autonomy) and frameworks such as TOGAF, SOA and ISO/IEC 25010. A cybersecurity section covers threats such as malware, ransomware, phishing and DDoS attacks, defenses such as identity and access management, SIEM and cryptography, and the MAC, DAC and RBAC access control models. The chapter closes with cyber economics, national cyber strategies and the six pillars of responsible computing.

Key Points:

  • The qualities of cyber resources are security, safety, performance, usability, reliability and autonomy.
  • Cybersecurity combines policies, technology and people across networks, applications, infrastructure, IoT and cloud.
  • Threats include malicious insiders, human error, malware, ransomware, phishing, DDoS and man-in-the-middle attacks.
  • Access control models are MAC, DAC and RBAC, and security should be built into software from the design stage.
  • Three priority risks that call for policy and legislation are identity theft, industrial espionage and threats to critical infrastructure.
  • The six pillars of responsible computing are responsible data centers, infrastructure, code, data usage, systems and impact.

Memory Tip: Say the six pillars in pairs: data centers and infrastructure, code and data usage, systems and impact. Attach one real example to each pair, such as green energy or bias-aware systems.

Common Mistake: Treating cybersecurity as a purely technical job. The chapter says it combines policies, technology and people, so training and human error matter as much as tools.

Important Questions:

  • What are MAC, DAC and RBAC? They are three access control models: mandatory, discretionary and role-based access control.
  • What is responsible computing? A systemic approach to computing challenges in sustainability, ethics and professionalism, built on six pillars from data centers to impact.

Appendix A: Network Design Application of Algorithms

Appendix · Difficulty: Medium · Key topics: Internet, TCP, IP and UDP, packet and circuit switching, routing, RIP, link-state routing, bandwidth and latency, OSI model, ARPANET

Appendix A is a compact introduction to data communications that applies the algorithm ideas of Chapter 3 to networks. It describes network components and links (copper, fiber and wireless), the Internet as a network of networks run on protocols such as TCP, IP and UDP, edge and core design, and packet versus circuit switching. Routing is treated as a graph problem, with RIP and link-state routing as examples. It also covers performance, security, the layered OSI model, encoding and compression, wireless and peer-to-peer systems, and the history of ARPANET and Ethernet.

Key Points:

  • The Internet is a network of networks governed by protocols such as TCP, IP and UDP.
  • Packet switching sends data as separate packets, while circuit switching reserves a path for the whole conversation.
  • Routing uses graph theory and algorithms, with RIP and link-state routing as examples.
  • Network performance is described by bandwidth and latency.
  • The OSI model splits network communication into layers.

Memory Tip: Bandwidth is how wide the road is, and latency is how long the trip takes. A wider road does not shorten the trip.

Common Mistake: Treating bandwidth and latency as the same measure. A link can carry a lot of data per second and still be slow to respond.

Important Questions:

  • What is the difference between packet switching and circuit switching? Packet switching breaks data into packets that travel independently and share links, while circuit switching sets up a dedicated path for the whole communication.
  • Why is routing called a graph problem? A network can be modeled as a graph of nodes and links, so routing algorithms such as RIP and link-state routing find paths through that graph.

Download Introduction to Computer Science PDF (Free)

Introduction to Computer Science is free from its official publisher, OpenStax. Click the button below to open the official OpenStax book page, where you can download the complete PDF or read every chapter online in your browser.

↓ Download PDF

How to Study This Book

Introduction to Computer Science has 14 chapters and one appendix, and this page gives one block for each. The preface says the book has five parts: problem solving and algorithms, realizations of algorithms, designing and developing software solutions, building modern end-to-end solutions, and human-centered responsible computing. The chapter pages do not label which chapter belongs to which part, so this page keeps the book’s own chapter order. It is a survey of the whole subject, so expect breadth rather than depth in every chapter.

Start with Chapters 1 to 3. Chapter 1 gives the map of the field, Chapter 2 teaches the habit of splitting a problem into parts, and Chapter 3 is the one to study slowly: abstract data types, Big O, divide and conquer, greedy algorithms, sorting, graph traversal and the P versus NP question appear again in later algorithm and data structure courses. If Big O is new to you, work through the growth-rate comparison in Section 3.3 before moving on.

Chapters 4 to 7 form a group on how algorithms become running programs: C and low-level languages in Chapter 4, hardware and number representation in Chapter 5, operating systems in Chapter 6 and high-level languages in Chapter 7. Read Chapter 5 before Chapter 6, because processes, memory and file systems make more sense once you know the memory hierarchy and the instruction set. Chapter 4 is the first place where you need to type and compile code, so keep a C compiler ready.

Chapters 8 and 9 cover databases and software engineering, and they map closely to the database and software engineering courses that come later in BSCS and BSIT. In Chapter 8, learn the relational model and SQL first, then the nonrelational stores, then warehouses and lakes. In Chapter 9, memorize the order of the process models and the testing levels, because these are the standard exam topics.

Chapters 10 to 14 are the most applied part and use the most vocabulary. Chapter 10 on architecture is full of framework names (TOGAF, Zachman and others), so make a one-line table with the name and its purpose. Chapters 11 to 13 are more hands-on: Chapter 11 walks through building the same To-do app with Django, React, Node, React Native and Ethereum, Chapter 12 explains containers, Docker, Kubernetes and DevOps, and Chapter 13 surveys hybrid and multicloud services. Chapter 14 on cybersecurity and responsible computing is a good chapter to finish with, because it reconnects security to everything before it.

Every chapter ends with the same set of study aids: key terms, a summary, multiple-choice review questions, conceptual questions, practice exercises, problem sets, thought provokers and labs. Chapter 14, for example, has 22 review questions, 15 conceptual questions, 13 practice exercises, 5 thought provokers and 3 labs. The book does not print student answers, and the preface says answers are in the Instructor Answer Guide, which needs a verified instructor account, so attempt each question on paper first and compare it with a classmate or your teacher.

Know what the book does not do. It does not teach one programming language from the first line; if you need that, learn Python or C from a dedicated book alongside it. The Chapter 11 examples use older versions, such as React 17, Node 14 and Django 4.0, and Node 14 is no longer supported, so read those sections for the architecture ideas and expect to adjust the commands if you install newer tools. The examples and company stories come from industry settings outside Pakistan, so add local examples when you write exam answers.


Used In These Programs

This book is used for the Introduction to Computing course in: BS Computer Science · BS Information Technology. Browse all Introduction to Computing books or all Computer Science books.

Who Should Read This

Introduction to Computer Science is written for first-course students: BSCS and BSIT students in their first semesters, and students of related programs such as BS Software Engineering and BS Data Science who want one book that explains the whole field. It also suits non-majors who need to understand how software, data and the cloud fit together. It is a good start before choosing electives, since each chapter introduces vocabulary you will meet again in later courses. It is not a replacement for a full course book in operating systems, databases or networks.

When a chapter makes you want more depth, pair it with a specialist book. Operating Systems: Three Easy Pieces goes much deeper than Chapter 6, Open Data Structures covers the structures of Chapter 3 in detail, and Computer Networking: Principles, Protocols and Practice continues where Appendix A stops. If you are new to coding, Think Python is a gentle way to get ready for the code in Chapters 4, 7 and 11.


Applicable Universities

This book is useful for students at Pakistani universities offering BS Computer Science, BS Information Technology and related programs, including Punjab University, Virtual University, COMSATS, FAST, UET, NUST, and other HEC-recognized institutions.

FAQs

Is Introduction to Computer Science by OpenStax free?

Yes. OpenStax publishes it under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) licence. You can read it online or download the PDF for free from openstax.org. You may share and adapt it for non-commercial use if you credit OpenStax and keep the same licence.

Which edition is this, and is it up to date?

OpenStax published the book on November 13, 2024, and its title carries no edition number. The core ideas are current, but some parts show their age. The web development examples in Chapter 11 use React 17, Node 14 and Django 4.0, and Node 14 is no longer supported, so check the OpenStax book page for the latest version and expect to adjust commands if you install newer tools.

Is this book good for BSCS and BSIT beginners?

Yes. It is written as a first course for both majors and non-majors and covers the whole field, from algorithms and hardware to databases, software engineering, the cloud and cybersecurity. It is a survey, so it gives breadth rather than depth, and some chapters, especially Chapters 3, 5 and 10, need slow reading.

How many chapters and exercises does it have?

The book has 14 chapters and Appendix A. Each chapter ends with key terms, a summary, multiple-choice review questions, conceptual questions, practice exercises, problem sets, thought provokers and labs. Chapter 14, for example, has 22 review questions, 15 conceptual questions, 13 practice exercises, 5 thought provokers and 3 labs.

Does it include solved exercises or answers?

Not for students. According to the preface, answers and sample answers are in the Instructor Answer Guide, which needs a verified instructor account. This page gives two practice questions with short answers for every chapter, and you should attempt the book’s own questions first and compare your answers with a classmate or teacher.

Does it teach programming?

It is a survey of computer science, not a full programming course. Chapter 4 introduces C and the compile and link cycle, Chapter 7 explains how high-level languages work, and Chapter 11 walks through web apps, but none of them teaches a language from the first line. If you are new to coding, learn Python or C from a dedicated book alongside it.

Related Books

Introduction to Computer Science gives BSCS and BSIT students a free, complete first look at the whole field, from algorithms and hardware to the cloud and responsible computing. Browse more Computer Science books or all University Books.

Introduction to Computer Science, by Jean-Claude Franchitti (senior contributing author) and contributing authors Amal Alhosban, Mark Buckler, Joanna Gilberti, Scott Gray, Matthew Hertz, Andrew Hurd, Kevin Lin, Sai Mukkavilli, Phuc (Brian) Nguyen, Shahab Tayeb, Zdeněk Troníček, Kevin Wortman and Mohamed Zahran. OpenStax, Rice University, 2024. Free under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International licence (CC BY-NC-SA 4.0). Access for free at https://openstax.org/details/books/introduction-computer-science

Leave a Comment