# migrations

dir: embeddings_queue
filename: 00001-embeddings.sqlite.sql
hash: d3755dfd232be8e8301f4d7fcfb3a486
sql:
CREATE TABLE embeddings_queue (
    seq_id INTEGER PRIMARY KEY,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    operation INTEGER NOT NULL,
    topic TEXT NOT NULL,
    id TEXT NOT NULL,
    vector BLOB,
    encoding TEXT,
    metadata TEXT
);


dir: sysdb
filename: 00001-collections.sqlite.sql
hash: 38352d725ad1c16074fac420b22b4633
sql:
CREATE TABLE collections (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    topic TEXT NOT NULL,
    UNIQUE (name)
);

CREATE TABLE collection_metadata (
    collection_id TEXT REFERENCES collections(id) ON DELETE CASCADE,
    key TEXT NOT NULL,
    str_value TEXT,
    int_value INTEGER,
    float_value REAL,
    PRIMARY KEY (collection_id, key)
);


dir: sysdb
filename: 00002-segments.sqlite.sql
hash: 2913cb6a503055a95f625448037e8912
sql:
CREATE TABLE segments (
    id TEXT PRIMARY KEY,
    type TEXT NOT NULL,
    scope TEXT NOT NULL,
    topic TEXT,
    collection TEXT REFERENCES collection(id)
);

CREATE TABLE segment_metadata (
    segment_id TEXT  REFERENCES segments(id) ON DELETE CASCADE,
    key TEXT NOT NULL,
    str_value TEXT,
    int_value INTEGER,
    float_value REAL,
    PRIMARY KEY (segment_id, key)
);


dir: sysdb
filename: 00004-tenants-databases.sqlite.sql
hash: 048867ce8fcdefe4023c7110e4433591
sql:
CREATE TABLE IF NOT EXISTS tenants (
    id TEXT PRIMARY KEY,
    UNIQUE (id)
);

CREATE TABLE IF NOT EXISTS databases (
    id TEXT PRIMARY KEY, -- unique globally
    name TEXT NOT NULL, -- unique per tenant
    tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
    UNIQUE (tenant_id, name) -- Ensure that a tenant has only one database with a given name
);

CREATE TABLE IF NOT EXISTS collections_tmp (
    id TEXT PRIMARY KEY, -- unique globally
    name TEXT NOT NULL, -- unique per database
    topic TEXT NOT NULL,
    dimension INTEGER,
    database_id TEXT NOT NULL REFERENCES databases(id) ON DELETE CASCADE,
    UNIQUE (name, database_id)
);

-- Create default tenant and database
INSERT OR REPLACE INTO tenants (id) VALUES ('default_tenant'); -- The default tenant id is 'default_tenant' others are UUIDs
INSERT OR REPLACE INTO databases (id, name, tenant_id) VALUES ('00000000-0000-0000-0000-000000000000', 'default_database', 'default_tenant');

INSERT OR REPLACE INTO collections_tmp (id, name, topic, dimension, database_id)
    SELECT id, name, topic, dimension, '00000000-0000-0000-0000-000000000000' FROM collections;
DROP TABLE collections;
ALTER TABLE collections_tmp RENAME TO collections;


dir: sysdb
filename: 00005-remove-topic.sqlite.sql
hash: b1367c826b8fba5f96f27befdc1d42d2
sql:
-- Remove the topic column from the Collections and Segments tables

ALTER TABLE collections DROP COLUMN topic;
ALTER TABLE segments DROP COLUMN topic;


dir: sysdb
filename: 00006-collection-segment-metadata.sqlite.sql
hash: 4eea7468935bf25d4604a0fed2366116
sql:
-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE collection_metadata ADD COLUMN bool_value INTEGER;
ALTER TABLE segment_metadata ADD COLUMN bool_value INTEGER;


dir: sysdb
filename: 00007-collection-config.sqlite.sql
hash: 1c7e63bba346a42a18b6ab7f1c989bed
sql:
-- Stores collection configuration dictionaries.
ALTER TABLE collections ADD COLUMN config_json_str TEXT;


dir: sysdb
filename: 00008-maintenance-log.sqlite.sql
hash: 0a0e7e93111a01789addf64961c6127c
sql:
-- Records when database maintenance operations are performed.
-- At time of creation, this table is only used to record vacuum operations.
CREATE TABLE maintenance_log (
  id INT PRIMARY KEY,
  timestamp INT NOT NULL,
  operation TEXT NOT NULL
);


dir: sysdb
filename: 00009-segment-collection-not-null.sqlite.sql
hash: 054355aef9e63702bf54ea29e61563f1
sql:
-- This makes segments.collection non-nullable.
CREATE TABLE segments_temp (
    id TEXT PRIMARY KEY,
    type TEXT NOT NULL,
    scope TEXT NOT NULL,
    collection TEXT REFERENCES collection(id) NOT NULL
);

INSERT INTO segments_temp SELECT * FROM segments;
DROP TABLE segments;
ALTER TABLE segments_temp RENAME TO segments;


dir: metadb
filename: 00001-embedding-metadata.sqlite.sql
hash: 2b4cf52c4bb2676e21d6860a4409f856
sql:
CREATE TABLE embeddings (
    id INTEGER PRIMARY KEY,
    segment_id TEXT NOT NULL,
    embedding_id TEXT NOT NULL,
    seq_id BLOB NOT NULL,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    UNIQUE (segment_id, embedding_id)
);

CREATE TABLE embedding_metadata (
    id INTEGER REFERENCES embeddings(id),
    key TEXT NOT NULL,
    string_value TEXT,
    int_value INTEGER,
    float_value REAL,
    PRIMARY KEY (id, key)
);

CREATE TABLE max_seq_id (
    segment_id TEXT PRIMARY KEY,
    seq_id BLOB NOT NULL
);

CREATE VIRTUAL TABLE embedding_fulltext USING fts5(id, string_value);


dir: metadb
filename: 00002-embedding-metadata.sqlite.sql
hash: 12a570f7121b3a8ce750a2a7c36da20f
sql:
-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE embedding_metadata ADD COLUMN bool_value INTEGER


dir: metadb
filename: 00003-full-text-tokenize.sqlite.sql
hash: f97ad6334aeaa8f419f01110b648b97a
sql:
CREATE VIRTUAL TABLE embedding_fulltext_search USING fts5(string_value, tokenize='trigram');
INSERT INTO embedding_fulltext_search (rowid, string_value) SELECT rowid, string_value FROM embedding_metadata;
DROP TABLE embedding_fulltext;


dir: metadb
filename: 00004-metadata-indices.sqlite.sql
hash: fb36603a45ee2cd0254cef3ef86585e8
sql:
CREATE INDEX IF NOT EXISTS embedding_metadata_int_value ON embedding_metadata (key, int_value) WHERE int_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_float_value ON embedding_metadata (key, float_value) WHERE float_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_string_value ON embedding_metadata (key, string_value) WHERE string_value IS NOT NULL;


# embeddings_queue

created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 89f1eac3-790b-4241-a99f-64104d72d1d9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 0, "chroma:document": "1\nWhat is a Computer?\na computer is a device that receives, stores, and processes information \ndifferent types of computers have different characteristics \n\u25fc supercomputers: powerful but expensive; used for complex computations (e.g., \nweather forecasting, engineering design and modeling)\n\u25fc desktop computers: less powerful but affordable; used for a variety of user \napplications (e.g., email, Web browsing, document processing)\n\u25fc laptop computers: similar functionality to desktops, but mobile\n\u25fc palmtop computers: portable, but limited applications and screen size\n\u25fc smartphones: portable, integrated with phone, camera"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 00d5508e-b679-4bfb-a00a-40b7a49003f2
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 1, "chroma:document": "2\nDesktop Specifications\npurchasing a computer can be confusing\n\u25fc sales materials contain highly technical information and computer jargon \nthe following specs describe two computer systems for sale in January 2020\n\u25fc Desktop 1 is a low-end system, inexpensive but with limited features\n\u25fc Desktop 2 is a high-end system, uses the latest technology so expensive"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7b17806e-51a2-4751-a0d8-98795df06282
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 2, "chroma:document": "3\nHardware vs. Software\nthe term hardware refers to the physical components of a computer system\n\u25fc e.g., monitor, keyboard, mouse, hard drive\nthe term software refers to the programs that execute on the computer\n\u25fc e.g., word processing program, Web browser"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2b9a6a73-3e86-4946-8c41-212e118cc924
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 3, "chroma:document": "4\nvon Neumann Architecture\nalthough specific components may vary, virtually all modern computers have \nthe same underlying structure\n\u25fc known as the von Neumann architecture \n\u25fc named after computer pioneer, John von Neumann, who popularized the design \nin the early 1950's\nthe von Neumann architecture identifies 3 essential components\n1. Input/Output Devices (I/O) allow the user to interact with the computer\n2. Memory stores information to be processed as well as programs (instructions \nspecifying the steps necessary to complete specific tasks)\n3. Central Processing Unit (CPU) carries out the instructions to process information"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8a213d3a-3c8b-4b67-9d18-60ac73ab6c27
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 4, "chroma:document": "5\nCentral Processing Unit (CPU)\nthe CPU is the \"brains\" of the computer, responsible for controlling its inner \nworkings\n\u25fc made of circuitry \u2013 electronic components wired together to control the flow of \nelectrical signals\n\u25fc the circuitry is embedded in a small silicon chip, 1-2 inches square\n\u25fc despite its small size, the CPU is the most complex part of a computer \n(CPU circuitry can have 100's of millions of individual components)\n\u25fc commercial examples: AMD Ryzen 5, Intel Core i5, and Intel Core i7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 32ac9061-d4bc-49c9-9f23-7fe5709aad95
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 5, "chroma:document": "6\nCPU (cont.)\nthe CPU works by repeatedly fetching a program instruction from memory \nand executing that instruction\n\u25fc individual instructions are very simple (e.g., add two numbers, or copy this data)\n\uf070 but they vary across CPUs, higher end can do more in a single instruction\n\u25fc complex behavior results from incredible speed\n\uf070 a 2.6 GHz AMD A6 processor can execute 2.6 billion instructions per second\n\uf070 a 3.3 GHz Intel i9 processor can execute  3.3 billion instructions per second\na dual-core processor contains \nthe circuitry of 2 processors, \npackaged on a single chip\n\u2022 in theory, can execute 2 \ninstructions simultaneously\na deca-core processor contains \nthe circuitry of 10 processors, \npackaged on a single chip\n\u2022 in theory, can execute 10 \ninstructions simultaneously"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e0c0afea-ec49-4033-83a2-120905d99731
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 6, "chroma:document": "7\nMemory\nmemory is the part of the computer  that stores data and programs\nmodern computers are digital devices, meaning they store and process \ninformation as binary digits (bits)\n\u25fc bits are commonly represented as either 0 or 1\n\u25fc bits are the building block of digital memory\nby grouping bits together, large ranges of values can be represented"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: bdfc0250-74f7-4c4b-aca3-a7eb46347a83
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 7, "chroma:document": "8\nMemory (cont.)\nmemory capacity is usually specified in bytes\n\u25fc a byte is a collection of 8 bits \u2013 so can represent a range of 28 = 256 values\n\u25fc large collections of bytes can be specified using prefixes\nsince a byte is sufficient to represent a single character, can think of memory \nin terms of text\n\u25fc a kilobyte can store a few paragraphs (roughly 1 thousand characters) \n\u25fc a megabyte can store a book (roughly 1 million characters)\n\u25fc a gigabyte can store a small library (roughly 1 billion characters)\n\u25fc a terabyte can store a book repository (roughly 1 trillion characters)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f488b4f8-3a0a-4b62-b46c-7e5e49123912
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 8, "chroma:document": "9\nMemory (cont.)\nmodern computers use a combination of memory types, each with its own \nperformance and cost characteristics\nmain memory (or primary memory) is fast and expensive\n\u25fc data is stored as electric signals in circuitry, used to store active data\n\u25fc memory is volatile \u2013 data is lost when the computer is turned off\n\u25fc examples: Random Access Memory (RAM), cache \nsecondary memory is slower but cheaper\n\u25fc use different technologies (magnetic signals on hard disk, reflective spots on CD)\n\u25fc memory is permanent \u2013 useful for storing long-term data\n\u25fc examples: hard disk, flash drive, compact disk (CD)\nRAM chips        hard drive         flash drive          CD/DVD"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2d806aab-87b1-4427-9f13-dde368a24614
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 9, "chroma:document": "10\nMemory (cont.)\nhigher-end computers tend to have \n\u25fc more main memory to allow for quick access to more data and programs\n\u25fc more secondary memory to allow for storing more long-term data"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 79101da7-2234-4af9-b844-73b6bc4fdf8b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 10, "chroma:document": "11\nInput/Output (I/O)\ninput devices allow the computer to receive data and instructions from \nexternal sources\n\u25fc examples: keyboard, mouse, track pad, touch screen, microphone, scanner\noutput devices allow the computer to display or broadcast its results\n\u25fc examples: monitor, speaker, printer"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9e7a2ede-5125-4e4f-8f72-a5e6c13feef4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 11, "chroma:document": "12\nSoftware\nrecall: hardware refers to the physical components of computers\n  software refers to the programs that execute on the hardware\na software program is a sequence of instructions for the computer (more \nspecifically, for the CPU) to carry out in order to complete some task\n\u25fc e.g., word processing (Microsoft Word, Corel WordPerfect)\n\u25fc e.g., image processing (Adobe Photoshop, Flash)\n\u25fc e.g., Web browsing (Microsoft Edge, Mozilla Firefox, Google Chrome, Safari)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 04ebf13d-78dd-4ba8-af48-7923298f75da
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 12, "chroma:document": "13\nOperating Systems\nthe Operating System (OS) is a collection of programs that controls how the             \nCPU, memory, and I/O devices work together\n\u25fc kernel: manages the CPU's operations, controls how data and instructions are \nloaded and executed by the CPU, coordinates other hardware components\n\u25fc file system: organizes and manages files and directories\n\u25fc graphical user interface (GUI): provides intuitive, visual elements for interacting \nwith the computer\n\uf070 GUI's utilize windows, icons, menus, and pointers"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e9dfac12-61b4-419c-b6fd-a91eb55fdce4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 13, "chroma:document": "HTML & Web Pages\na Web page is a text document that contains additional formatting \ninformation in the HyperText Markup Language (HTML)\n\u25fc HTML specifies formatting within a page using tags\n\u25fc in its simplest form, a tag is a word or symbol surrounded by brackets (<>)\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: da64e22b-0c9e-42d6-b0ff-8d5f810acdba
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 14, "chroma:document": "HTML Tags\nrequired tags in a Web page:\n\u25fc <!doctype html> tells the browser this is a Web page\n\u25fc <html> and </html> enclose the entire HTML document\n\u25fc the head section (enclosed between <head> and </head>) contains information \nthat the browser uses to control the look of the page\n\uf070 the head can contain a title for the browser window, enclosed between \n<title> and </title>\n\u25fc the body section (enclosed between <body> and </body>) contains the text that \nwill appear in the page\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ee012e21-f710-4d44-9a85-a1f6922d96ea
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 15, "chroma:document": "HTML Elements\ntags and the text they enclose form an HTML element\n<title> Title of the Page </title>   is a title element\n<head>\n  <title> Title of the Page </title>\n</head>\n   is a head element (which contains a nested title element)\nmost HTML elements have opening and closing tags, but not all\n<!-- simple.html      Dave Reed -->   is a comment element\n\u25fc a comment is ignored by the browser (it does not appear in the rendered page)\n\u25fc comments are used by the page developer to document page features\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ddedf83a-7720-4986-94df-b81c46222758
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 16, "chroma:document": "Text Layout & Formatting\nextra white space (spaces, tabs and blank lines) is ignored by the browser \n\u25fc this allows the browser to adjust the text to the window size\nyou can control some of the text layout using HTML elements\n\u25fc a paragraph element (<p>\u2026</p>) specifies text surrounded by blank lines\n\u25fc a break element (<br>) causes text to be displayed on a new line\n\u25fc the &nbsp; special symbol forces a space to appear in the text\nyou can specify some text formatting using other HTML elements\n\u25fc a b element (<b>\u2026</b>) specifies bold text\n\u25fc an i element (<i>\u2026</i>) specifies italicized text\n\u25fc a u element (<u>\u2026</u>) specifies underlined text\n\u25fc a sup element (<sup>\u2026</sup>) specifies superscripted text\n\u25fc a sub element ( <sub>\u2026</sub> ) specifies superscripted text\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c4ded6ea-af76-4883-87a1-228a31139813
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 18, "chroma:document": "Sections\nin a large document, it is useful to divide the text into sections and then \nprovide each with a heading describing the content that follows\n\u25fc <h1> \u2026 </h1> enclose a Top-level Heading \n\u25fc <h2> \u2026 </h2> enclose a Sub-heading \n.\n.\n.\n\u25fc <h6> \u2026 </h6> enclose a  Sub-sub-sub-sub-sub-heading\nthe horizontal-rule element <hr> draws a dividing line in the page\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1f42d48b-6636-4afd-877e-8835b220aead
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 20, "chroma:document": "Styling Elements\nWeb browsers rely on user preferences when displaying a page \n\u25fc each browser has a set of default (language, font, text size, color scheme), \nwhich can be reset by the user\n\u25fc can override some of these defaults by adding STYLE attributes\nan attribute is qualifier that can be added to an element in its opening tag\n\u25fc the style attribute can be used to set style properties for an element\nstyle=\"PROPERTY:VALUE\"\ne.g., can change the text color for an element by setting the color property\n<p style=\"color:red\"> Here is some red text. </p> \n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 06e6c594-14da-4b80-8fd9-8ae3798c4bbb
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 21, "chroma:document": "BODY Styling\nwhen a style property is assigned to the body element, it applies to all \nelements embedded in the page\n<body style=\"color:darkblue\"> \n  ENTIRE PAGE APPEARS IN DARK BLUE TEXT\n </body> \nthe background-color property can also be set for the entire page\n<body style=\"background-color:lightgray\"> \n  ENTIRE PAGE APPEARS WITH LIGHT GRAY BACKGROUND\n </body> \ncan set multiple properties in the same style attribute\n<body style=\"background-color:gray; color:white\"> \n  ENTIRE PAGE APPEARS WITH GRAY BACKGROUND, WHITE TEXT\n </body> \n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9599631d-80f9-406b-94fd-cb3437447e8c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 22, "chroma:document": "SPAN & DIV\nin addition to p, the span and div elements are useful for grouping text\n\u25fc span specifies a short span of text embedded in a paragraph\n\u25fc div specifies a page division which groups multiple elements together\nspan can be used to embedded colored words or phrases \n <p>Isn't this page <span style=\"color:red\">colorful</span>?</p>\ndiv can be used to group paragraphs and color them as one\n<div style=\"color:white\">\n  <p>   \n    You can format multiple paragraphs at once by placing them \n    inside a DIV and setting the STYLE attribute of the DIV. \n  </p>\n  <p>Both of these paragraphs will have white text.</p>\n</div>\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8de8b240-23da-41c0-bfff-6cb4e5589aad
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 24, "chroma:document": "Font Styling\nthe font-family property can override the default font typeface\n\u25fc must specify the font name and its family (as a backup)\n <p style=\"font-family:Helvetica, sans-serif\">\n   This text appears in Helvetica.\n </p>\n   <p style=\"font-family:Times, serif\">This text appears in Times.</p>\nthe font-size property can override the default size of the font\n\u25fc can be absolute (in pixels) or relative to the current size (as percentage)\n <span style=\"font-size:20px\">This text appears 20 pixels tall.</span>\n \n <p style=\"font-size:150%\">This text is 50% larger than normal.</p>\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ca7dcbe2-76cf-401b-91e2-2068a8a4bcba
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 26, "chroma:document": "Alignment Styling\nthe text-align property can set the alignment of text elements\n <h2 style=\"text-align:center\">Centered Heading</h2>\n <h2 style=\"text-align:right\">Right-Justified Heading</h2>\n <h2 style=\"text-align:justify\">Left- and Right-Justified Heading</h2>\nthe text-indent property indents the first line of a paragraph\n <p style=\"text-indent:10px\">A paragraph with the 1st line indented...</p> \nthe margin-left and margin-right properties indent the entire paragraph\n <p style=\"margin-left:10px\">A paragraph with all lines indented...</p>\n14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d7be12c0-1629-4a88-817f-8f9f08eb98ef
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 28, "chroma:document": "Web \u2260 Internet\npeople often confuse the Web and the Internet \u2013 they are not the same! \n\u25fc Internet was created in 1969; World Wide Web was created in 1990\n1\nthe Internet could exist without the Web \n\u25fc and did, in fact, for many years (applications included email and news groups)\nthe Web couldn't exist without the Internet\n\u25fc the Internet is the hardware that stores and executes the Web software"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 921acffe-355d-4849-8730-0619cd3a4d38
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 29, "chroma:document": "History of the Web\nCERN researchers were spread across Europe, but needed to collaborate\n\u25fc in 1989, Berners-Lee devised a system that would allow them to freely \nexchange data, regardless of location or computer type\nhis design integrated two key ideas\n1. hypertext (documents with interlinked text and media)\n\uf070 Web pages can contain images and links to other pages\n2. the distributed nature of the Internet\n\uf070 pages can be stored on machines all across the Internet\n\uf070 logical connections between pages are independent of physical locations 2\nWorld Wide Web was invented by \nTim Berners-Lee\n\u25fc researcher from 1984-1994 at \nthe European Laboratory for \nParticle Physics (CERN)\n\u25fc founded and serves as director of \nthe World Wide Web Consortium \n(W3C)\n\u25fc knighted by Queen Elizabeth in \n2004"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6028d1ab-173e-4143-923b-3392d539d869
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 30, "chroma:document": "Web Timeline\n1990: Berners-Lee produced working prototypes of a Web server and browser\n1991: Berners-Lee made his software available for free over the Internet\n1993: Marc Andreesen and Eric Bina at NCSA wrote the first graphical browser:  Mosaic\n\u25fc Mosaic integrated text, image & links, made browsing more intuitive\n1994: Andreesen founded Netscape, which marketed the Netscape Navigator \n1995: Microsoft released Internet Explorer \u2192 the browser wars begin! \n1999: Internet Explorer becomes the most popular browser (~90% of market in 2002) \n2021: Google Chrome has ~63% of market, then Safari at 19%, Mozilla Firefox at 4%\nin 2019, Google claimed to have \nindexed more than 130 trillion \npages\n \nothers estimate the number of \nWeb pages could be in the \nhundreds of quadrillions\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8b62b4e4-b66e-4a55-bad7-955bf1060935
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 31, "chroma:document": "Search Engines\nas the Web grew, it became difficult to find resources\n\u25fc in general, you needed to somehow know the address of a page to access it\nmanually generated index sites appeared in the early 1990s\n\u25fc provided lists of popular Web sites, organized by topic or alphabetically\n\u25fc these were not scalable as the Web exploded in size\nthe first Web search engines appeared in the mid 1990s\n\u25fc used software called Web crawlers, or spiders, to surf the Web, indexing pages\n\u25fc enabled users to search those indexed pages via search words or phrases\nunfortunately, the quality of early searches was not very good\n\u25fc the search for a word/phrase might return unrelated or unreliable pages\n4\nthe Google search engine began in 1996 as a \nresearch project by Stanford grad students \nLarry Page and Sergey Brin\n\u25fc their goal was to create an easy-to-use search \nengine that produced high-quality results\n\u25fc founded Google Inc. in 1998"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e8aed1be-1777-46bb-b984-4bd6633c36ad
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 32, "chroma:document": "Google\nat the heart of Google's performance is the PageRank algorithm\n\u25fc ranks pages based on their perceived value and trustworthiness\n\u25fc if a page is linked to by many other pages, that suggests that many people find \nits contents valuable and trustworthy\n\u25fc moreover, the more valued/trusted those linking pages are, the more impact \ntheir links will have \nBrin & Page also revolutionized how browsers made money\n\u25fc they sold targeted adds and charged based on clickthrough\n\u25fc e.g., a shoe store could purchase adds for when a user entered \"shoe\" or \n\"footwear\" as search terms, and would be charged based on how often users \nclicked on the ads\nBrin & Page donated the patent for the PageRank algorithm to Stanford\n\u25fc licensed its use back for $336 million in stock\n5\nGoogle dominates the search market\n\u25aa performed 5.6 billion searches in 2020\n\u25aa that's 63,000 searches per second!"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 62745c4b-cc85-4081-bea3-57cc9835e8b7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 33, "chroma:document": "Viewing a Web Page\na Web page is a text document that contains additional formatting \ninformation in a language called HTML (HyperText Markup Language)\na Web browser is a program that accesses a Web page, interprets its content, \nand displays the page\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d91dd5aa-a310-44ce-b4f5-6c7380bbfdaa
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 34, "chroma:document": "Web Server\na Web server is an Internet-enabled computer that executes software for \nproviding access to certain Web document \n\u25fc it stores Web pages and files (images, videos, \u2026) and sends them to browsers who \nrequest them\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 63fe989f-2cde-45da-8313-3e77e335938b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 35, "chroma:document": "Web Addresses\nWeb pages require uniform names to locate and identify them uniquely\n\u25fc each page is assigned a Uniform Resource Locator (URL) \n\u25fc URL's are commonly referred to as Web addresses\n\u25fc the different parts of the Web address provide information for locating the page\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 22e4b1a8-2a79-43ce-a633-51d1c703409e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 36, "chroma:document": "Viewing Local Web Pages\na Web browser can be used to view pages stored on the same computer\n\u25fc can go through the File menu to select the local page, or\n\u25fc can enter the File location in the address box (without the http prefix)\nthis feature is handy when developing Web pages\n\u25fc can create a Web page and view it in the browser before uploading to a server\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 125f254d-3e1f-4292-80fb-0661bba7770d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 37, "chroma:document": "Web Protocols: HTML\nHyperText Markup Language (HTML) utilizes tags to markup page contents\n\u25fc these tags tell the browser how to display the contents\n\u25fc HTML5 is the current standard, supported by all browsers\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 14b5ea23-3082-4409-b88d-89c291a67fd1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 38, "chroma:document": "Web Protocols: HTTP\nHyperText Transfer Protocol \n(HTTP) defines how messages \nbetween browsers and servers \nare formatted\n\u25fc the prefix http:// in a URL \nspecifies that the HTTP \nprotocol is to be used in \ncommunicating with the \nserver\n\u25fc the prefix https:// is \nsimilarly used for secure \n(encrypted) HTTP \ncommunications\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2f899f4c-43b9-452f-9e39-9b11235eba79
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 39, "chroma:document": "Browser caching\nfor efficiency reasons, browsers will sometimes cache pages/images\n\u25fc the browser reserves space (a cache folder) on the user's computer\n\u25fc to avoid redundant downloads, the browser will store a copy of a page/image in \nthat reserved space (along with a timestamp)\n\u25fc the next time the page/image is requested, browser will send a timestamp of the \ncached copy\n\uf070 the server compares that timestamp with one of the stored document\n\u25aa if cached copy is newer, then response says to use it\n\u25aa if server copy is newer, then response includes the new version\nin general, browsers are not allowed to access/modify user files\n\u25fc this is for safety \u2013 you don't want to visit a Web site and risk having your files \ncopied or damaged\n\u25fc caching is a loophole (can only access/modify files in cache folder)\nNOTE: caching still requires the browser to contact the server \n\u25aa but only have to download the page if it has changed since last cached\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ad9b003e-ea18-4961-a46e-f2a185680c7e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 40, "chroma:document": "Cookies\nanother loophole is cookies\na cookie is a small file that can be stored and accessed by a Web server\n\u25fc similar to caching, browsers reserve space (a cookie folder) on the user's \ncomputer\n\u25fc when the user visits a site, the Web server is allowed to store a small amount of \ndata in a cookie file (e.g., date & time of visit, items purchased)\n\u25fc when the user returns to that site, the Web server can retrieve any cookies it \npreviously stored\n\u25fc NOTE: only the site that stored the cookie is able to retrieve it\ncookies can improve the user's experience, but can also be intrusive\n\u25fc most browsers enable the user to control the use of cookies\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 17e23ebb-3981-45df-8dac-6a3e7d59509e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 41, "chroma:document": "Static vs. Dynamic Pages\nrecall: a Web page uses HTML tags to identify page content and formatting \ninformation\nHTML can produce only static pages \n\u25fc static pages look the same and behave in the same manner each time they are \nloaded into a browser\nin 1995, researchers at Netscape developed JavaScript, a language for creating \ndynamic pages\n\u25fc Web pages with JavaScript can change their appearance:\n\uf070 over time (e.g., a different image each time that a page is loaded), or \n\uf070 in response to a user\u2019s actions (e.g., typing, mouse clicks, and other input \nmethods)\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: bafce88b-d4a5-45db-8985-2f7b1ae44c21
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 42, "chroma:document": "Programming Languages\nJavaScript is a programming language\n\u25fc a programming language is a language for specifying instructions that a \ncomputer can execute\n\u25fc each statement in a programming language specifies a particular action that the \ncomputer is to carry out \n (e.g., changing an image or opening a window when a button is clicked)\nsome programming languages are general -purpose\n\u25fc popular languages include C++, Java, J#\nJavaScript was defined for a specific purpose: adding dynamic content to Web \npages\n\u25fc can associate JavaScript statements with certain HTML elements so that they \nreact to actions taken by the user (e.g., a button click)\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 24fb3532-d669-4f2c-ba87-e1bc7fd1f907
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 43, "chroma:document": "ID Attributes\nin order for an element to behave dynamically, it must have an ID attribute \n\u25fc ID is assigned a unique identifier by which that element can be accessed and \nchanged\n<img id=\"familyImg\" src=\"Images/beach.jpg\" alt=\"My Family\">\nan identifier should start with a lowercase letter, consist of letters and digits \n e.g., familyImg      mysteryImg      outputSpan      num1Box\nonce an element has an ID, it can be accessed and altered using dynamic \nattributes known as event handlers\n\u25fc the ONMOUSEOVER attribute specifies the action(s) to take place when the \nmouse is moved over the element\n\u25fc the ONMOUSEOUT attribute specifies specifies the action(s) to take place when \nthe mouse is moved off the element\n\u25fc the actions are encoded as statements in the JavaScript language\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d7e474db-9712-4455-817b-0e9699548ed1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 44, "chroma:document": "Event Handler Attributes\nfor example, can have an image that reacts to mouse movements:\n<img src=\"ADDRESS_OF_IMAGE\" alt=\"DESCRIPTIVE_TEXT\"\n     onmouseover=\"CODE_TO_EXECUTE_WHEN_MOUSE_GOES_OVER_IMAGE\"\n     onmouseout=\"CODE_TO_EXECUTE_WHEN_MOUSE_LEAVES_IMAGE\">\nthe simplest type of action is changing the value of an element's attribute\n\u25fc this is accomplished via a JavaScript assignment statement\nELEMENT_ID.ATTRIBUTE_NAME = NEW_ATTRIBUTE_VALUE;\nfor example, the following JavaScript assignment will change the SRC \nattribute of the element with ID mysteryImg \nmysteryImg.src='http://compsciconcepts.com/Images/happy.gif';\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a8f620d6-ba77-4d58-80d1-d958bddec9ce
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 45, "chroma:document": "Mystery Image Page\n\u25aa initially, the \nimage displays \na '?'\n\u25aa when mouse \nmoves over, \nSRC attribute \nis assigned to \nhappy face\n\u25aa when mouse \nleaves, SRC \nattribute is \nassigned back \nto '?'\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0c8f57ce-45c3-4b76-8dfa-61b40fc1b6c9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 46, "chroma:document": "Strings & Syntax Errors\na string literal (or just string) is a sequence of characters enclosed in quotes\n\u25fc to avoid confusion, we will always use double quotes for HTML strings; single \nquotes for JavaScript strings\n<img id=\"mysteryImg\" src=\"mystery.gif\" alt=\"Mystery image\"\n     onmouseover=\"mysteryImg.src='happy.gif';\"\n     onmouseout=\"mysteryImg.src='mystery.gif';\">\nsyntax errors are errors in the format of HTML or JavaScript statements\n\u25fc for example, misspelling an element ID in a JavaScript assignment:\n mysteryimg.src='http://compsciconcepts.com/Images/happy.gif';\nunlike HTML syntax errors (which are largely ignored by the browser, \nJavaScript syntax errors often just fail\n\u25fc browsers produce error messages that help to identify JavaScript errors\n\u25fc in Google Chrome, error messages appear in the JavaScript Console:\nView menu \u2192 Developer \u2192 JavaScript Console \n\u25fc when a page fails to behave as expected, CHECK THE ERROR MESSAGES!\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4814f52e-0817-4c79-83c7-e6fd4cc2b58b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 47, "chroma:document": "Multiple Actions\nJavaScript assignments can similarly change other element attributes\ne.g., can change an images height:  mysteryImg.height = 200;\nif desired, an event handler can perform multiple actions (separated by ;)\n\u25fc in this example, both the SRC and HEIGHT change on mouse events\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 286b2c32-7326-4709-b07b-89a6e46d4e68
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 48, "chroma:document": "Interaction via Buttons\na button is an HTML element that appears as a labeled rectangle or oval\n\u25fc usually associated with the ONCLICK event handler attribute, which specifies the \naction to take place when the button is clicked\ngeneral form:\n<button onclick=\"CODE_TO_BE_EXECUTED_WHEN_MOUSE_CLICKS_ON_BUTTON\">\n  BUTTON_LABEL\n</button>\ntypically, buttons are used to initiate actions on other elements\n\u25aa e.g., click on a button to change the src or height/width of an img\n<button onclick=\"mysteryImg.height=200;\">Expand the Image</button>\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4d43efca-1beb-4029-af93-3889ae0385c8
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 49, "chroma:document": "Button Example\nimage initially \ndisplays a \nquestion mark\nwhen Show \nImage button \nis clicked, the \nimage changes \nto \nwhen Hide \nImage button \nis clicked, it \nchanges back \nto ? \n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cde24445-caa1-4777-9ad9-79c555b1e231
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 50, "chroma:document": "Dynamic Text\nto display text within a page, there are 2 main options\n1. alert statement: will display a simple text message in a separate alert window\n2. innerHTML attribute: can display text directly in the page\ngeneral form of an alert statement: alert('MESSAGE'); \n\u25fc when executed, it opens a separate window displaying that message\n<button onclick=\"alert('Yeah, right.');\"> \n  Click for free money!\n</button>\n\u25fc alert statements are useful when you want to display a short (1-line) message\n\u25fc the messages are limited, in that they can't include any HTML tags\n\u25fc can be annoying to the user since the pop-up window must be manually closed\nnote: if a message contains an apostrophe, must use backslash (escape character) to \ndistinguish it from the ending quote:  alert('I\\'m happy you are here.');\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: eb3246bd-8707-4894-afce-ed02b179ccd4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 51, "chroma:document": "Help Page\nwhen the mouse clicks on \nthe image, an alert \nwindow is opened,\ndisplaying the message\nnote: the user must click \nOK to close the window\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 715fb802-ead3-4234-b9e5-afd9b42c8702
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 52, "chroma:document": "innerHTML\nbetter yet, embed the text directly in the page\ntext-based elements (p, span, div) have an innerHTML attribute\n\u25fc can be used to access or change the text within that element\n\u25fc be careful: the capitalization must be exact\n outputSpan.innerHTML = 'Hello';\n outputDiv.innerHTML = \n   '<p>You can write long messages that are embedded directly ' +\n   'in the page. You can even add <i>HTML formatting</i> to the ' +\n   'text. </p> <p>The contents of this dynamic DIV element is ' +\n   'being assigned multiple paragraphs.</p>';\n outputP.innerHTML = outputP.innerHTML + '!';\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 5e814b50-f2c7-4738-8571-e92a8c588899
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 53, "chroma:document": "Help Page\ninitially, outputSpan is blank\nwhen the mouse moves over \nthe image, a text message is \nassigned to \noutputSpan.innerHTML \n(showing the message)\nwhen the mouse moves off \nthe image, an empty string is \nassigned back to \noutputSpan.innerHTML\n(erasing the message)\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 096e1f50-72fd-4e63-95d1-877f9c57b24c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 54, "chroma:document": "Common Errors\ntwo types of errors are common when displaying complex messages\nBROKEN STRING: can't start a string on one line and continue on the next \n alert('This example is illegal because the \n                string is broken across lines');\n alert('This example is OK because the message ' + \n           'is broken into two distinct strings'); \nDISCONNECTED STRING: if message is broken into pieces, must have + \nbetween the pieces to connect them\n alert('This example is illegal because '\n                   'there is not a plus connecting the pieces');\n alert('This example is OK because the ' +\n                   'pieces are properly connected');\nerror messages in the JavaScript Console make identifying these types of \nmistakes much easier 14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8dd6b3f2-bff0-49a9-a6d2-9df76fc97085
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 55, "chroma:document": "Dynamic Style\nit is also possible to change the style attribute of an element\n\u25fc must specify the property to be changed:  style.PROPERTY\n\u25fc if the property contains a hyphen, instead use capitalization\ne.g., background-color \u2192 backgroundColor\n<p id=\"colorP\"\n   onmouseover=\"colorP.style.color='red';\" \n   onmouseout=\"colorP.style.color='black';\">\n    This text will turn red when the mouse moves over it.\n</p>\n<p>This is a really \n   <span id=\"colorSpan\n         onmouseover=\"colorSpan.style.backgroundColor='yellow';\"\n         onmouseout=\"colorSpan.style.backgroundColor='white';\">\n     important</span> point to note.\n</p>\n15"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 275cd8da-4825-4efd-b78a-21c9306cacb9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 56, "chroma:document": "Machine Learning\nMachine Learning (ML) is driving many powerful applications\n\u25fc ML utilizes algorithms to process (potentially large) data sets to improve \nproblem solving\n\u25fc historically, has been seen as a subdiscipline of Artificial Intelligence\n\u25fc the new discipline Data Science utilizes ML to process (potentially large) \ndata sets to discover patterns\n\u25fc this process is known as Data Mining\nMachine Learning relies heavily on supervised learning\n\u25fc algorithms are trained by providing sample inputs and classifications\n\u25fc the algorithms learn to recognize patterns and classify new inputs\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 206d2198-c6d4-4fb9-a3e1-bb2b5c124db7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 57, "chroma:document": "Example: OCR\nOptical Character Recognition is used by devices (e.g., phones, \ntablets, scanners) to extract text from images\n\u25fc when scanning printed text, each font has slight variations\n\u25fc handwriting can have extreme variations\n\u25fc programming every variation would be impossible\n\u25fc instead, provide numerous examples and have the program learn to identify\n\uf070 essentially, the program deduces which features are essential to each character\n\uf070 uses those features to classify new examples\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9b85f78f-0771-4be7-807e-af73ed0577b6
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 58, "chroma:document": "similarly, facial recognition software identifies facial features (e.g., \ndistance between eyes, ear size)\n\u25fc can then match those features against new images to identify people\n\u25fc since many features persist regardless of lighting or perspective, can be effective \nunder varying conditions\n\u25fc many smartphones utilize facial recognition for security\n\u25fc has been used by law enforcement, but false matches and biases have caused \nmany to rethink\nExample: facial recognition\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 87d2fda5-62bd-47e2-bbea-1c1d262f390a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 59, "chroma:document": "autonomous vehicles utilize cameras, radar, lidar (light detection) \nand even GPS sense their surroundings\n\u25fc they are programmed to react under specific circumstance, but learn to apply \nrules to new situations\n\u25fc they can improve over time as new circumstances are experienced\n\u25fc July-Oct 2022, 605 reported crashes by advanced driver assistance vehicles\nExample: self-driving cars\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4f55cc7e-cdcd-4116-801f-8652f89f5bc9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 60, "chroma:document": "ChatGPT (Chat Generative Pre-trained Transformer) was released in \nNov 2022 by OpenAI\n\u25fc was trained by providing recorded conversations and also utilized human trainers \nto provide feedback\n\u25fc in addition to carry on on a conversation, can write code, music, poems, \u2026\nExample: chatbots\n5\nhow will tools like this change \n\u2022 education \n\u2022 writing \n\u2022 software development\n\u2022 tech support\n\u2022 therapy"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1eabd4ef-91a6-4c69-8228-1d7d72a0149a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 61, "chroma:document": "Example: data mining\n6\nit was estimated that \n1.1 trillion MB of data \nwas generated every \nday in 2021\nData Science is a \ndiscipline that focuses \non extracting patterns \nand trends from data\n\u25fc relies on Machine \nLearning to process the \nmassive amounts of \ndata and learn what \nfeatures are significant"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a6698227-a285-496f-83ed-2630edd007e9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 62, "chroma:document": "Neural Networks\nat the core of most Machine Learning algorithms are neural networks\n\u25fc a neural network mimics the structure of the human brain\n\u25fc utilizes supervised learning to develop proficiency in recognizing patterns\nneural nets predate modern computers\n\u25fc first invented by McCulloch and Pitts in 1943\n7\ngeneral brain architecture:\nmany (relatively) slow neurons, \ninterconnected\ndendrites serve as input devices \n(receive electrical impulses from \nother neurons)\ncell body \"sums\" inputs from the \ndendrites (possibly inhibiting or \nexciting)\nif sum exceeds some threshold, \nthe neuron fires an output \nimpulse along axon"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: de42d0c4-c08d-4fa7-a06e-a9aea78f2396
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 63, "chroma:document": "Artificial Neurons\nMcCulloch & Pitts (1943) described an artificial neuron \n\u25fc inputs are binary: 0 (no input signal) or 1 (input signal)\n\u25fc each input has a weight associated with it\n\u25fc the activation function multiplies each input value by its weight\n\u25fc if the sum of the weighted inputs >= \uf071, \nthen the neuron fires (outputs 1), else doesn't fire (outputs 0)\n8\nneural networks are based on the brain metaphor\nlarge number of simple, neuron-like processing elements\nlarge number of weighted connections between neurons\nnote: the weights encode information, not symbols!\nparallel, distributed control\nemphasis on learning\nif \uf053wixi >= \uf071, output = 1\nif \uf053wixi < \uf071,   output = 0\n\uf071\nx1 xnx2\n. . .\nw1\nw2\nwn"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c897879d-4d55-4945-9ffa-87fbfeef90a9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 64, "chroma:document": "Computation via Neurons\ncan view an (artificial or not) neuron as a computational element\n\u25fc accepts or classifies an input if the output fires\n9\nINPUT:  x1 = 1, x2 = 1\n.75*1 + .75*1 = 1.5 >= 1  \u2794 OUTPUT: 1\nINPUT:  x1 = 1, x2 = 0\n.75*1 + .75*0 = .75 < 1  \u2794 OUTPUT: 0\nINPUT:  x1 = 0, x2 = 1\n.75*0 + .75*1 = .75 < 1  \u2794 OUTPUT: 0\nINPUT:  x1 = 0, x2 = 0\n.75*0 + .75*0 = 0 < 1 \u2794 OUTPUT: 0\n\uf031\nx1 x2\n.75 .75\nthis neuron computes the AND function"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2008a1f8-d4f2-49de-8251-0590b614b39c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 65, "chroma:document": "Learning Algorithm\nRosenblatt (1958) devised a learning algorithm for artificial neurons\n\u25fc start with a training set (example inputs & corresponding desired outputs)\n\u25fc train the network to recognize the examples in the training set (by adjusting the \nweights on the connections)\n\u25fc once trained, the network can be applied to new examples\nthis basic algorithm has been expanded to handle complex applications \n10\ne.g., OCR\n\u25fc inputs are pixels in a scanned image\n\u25fc a \"hidden\" layer identifies relevant \nfeatures (e.g., horizontal line near top, \ndiagonal in middle)\n\u25fc the combination of features discovered \nby the hidden layer identifies the \ncharacter"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: b510b9d8-1675-403a-a10c-27a72fefb883
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 66, "chroma:document": "11\nGeneralization problem\nthere is always a danger that the network will focus on specific \n(maybe unintentional) features as opposed to general patterns\n to avoid networks that are too specific, cross-validation can be used \n1. split training set into training & validation data\n2. after each generation, test the net on the validation data\n3. continue until performance on the validation data diminishes\n1 1 1 1\n2 2 2 2\nsuppose a network is trained to recognize digits:\n\u25aa training set for 1:\n\u25aa training set for 2:\n2\nwhen the network is asked to identify             it comes back with 1.  WHY?"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 695f9691-8759-4bf9-86be-597d122c47ca
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 67, "chroma:document": "Neural Net Applications\nAerospace: Aircraft component fault detectors and simulations, aircraft control systems\nAutomotive: Improved guidance systems, virtual sensors, warranty activity analyzers\nElectronics: Chip failure analysis, circuit chip layouts, machine vision, non-linear modeling, process control\nManufacturing: Machine diagnosis, product design and analysis, visual quality inspection systems\nRobotics: Forklift robots, manipulator controllers, trajectory control, and vision systems\nTelecommunications: Network monitoring, speech recognition, customer payment processing systems\nBanking: Credit card attrition, credit and loan application evaluation, fraud and risk evaluation\nBusiness Analytics: Customer behavior modeling, fraud propensity, market research\nFinancial: Corporate financial analysis, currency price prediction, loan advising, portfolio trading\nSecurities: Automatic bond rating, market analysis, and stock trading advisory systems"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 919f4501-31c5-4c58-b72f-7ab1ae07f753
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 67, "chroma:document": "Financial: Corporate financial analysis, currency price prediction, loan advising, portfolio trading\nSecurities: Automatic bond rating, market analysis, and stock trading advisory systems\nsource: https://www.smartsheet.com/neural-network-applications\n12\nmore than 9,000 companies (including credit cards) use FICO Falcon\n\u25fc uses neural nets to model customer behavior, identify fraud\n\u25fc claims improvement in credit card fraud detection of 30-70%"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 48f04bd8-b7f8-4da7-9b06-5f78e0701586
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 68, "chroma:document": "NN example\nsuppose we wanted to provide guidance on major selection\n\u25fc hypothesis: certain personality traits or life skills suggest certain majors\n\u25fc conduct a survey of students, asking them to self-assess their traits/skills on a \nscale of 0 to 1.0, along with their major\n\u25fc build a network of artificial neurons, with three inputs (corresponding to survey \nskills) and a single output (corresponding to major)\nHow \ncreative \nare you?\nGood at \nproblem \nsolving?\nHow \nextraverted \nare you?\nMajor\nstu1 0.85 0.75 0.9 GDE (0)\nstu2 0.9 0.7 1.0 GDE (0)\nstu3 0.8 0.9 0.6 GDE (0)\nstu4 0.2 0.9 0.2 CSC (1)\nstu5 0.6 0.8 0.4 CSC (1)\nstu6 0.8 0.8 0.8 CSC (1)\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1741de0d-9b20-49c5-86fd-1be0e927b6a3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 69, "chroma:document": "NN example\n\u25fc feed those inputs and outputs to the network and train it to recognize\n\u25fc once trained, it can be applied to new patterns to classify them (based on best fit)\nnote: this is a very small, non -scientific example\n\u25aa data scientists typically deal with massive amounts of data (e.g., hundreds or \nthousands of survey responses)\n\u25aa utilize analytical methods to ensure statistical significance\n14\nHow \ncreative \nare you?\nGood at \nproblem \nsolving?\nHow \nextraverted \nare you?\nMajor\nstu1 0.85 0.75 0.9 GDE (0)\nstu2 0.9 0.7 1.0 GDE (0)\nstu3 0.8 0.9 0.6 GDE (0)\nstu4 0.2 0.9 0.2 CSC (1)\nstu5 0.6 0.8 0.4 CSC (1)\nstu6 0.8 0.8 0.8 CSC (1)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6d00d196-266c-4de2-88cd-1325381fdde2
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 70, "chroma:document": "History of computing\ncalculating devices have been around for millennia (e.g., abacus ~3,000 B.C.)\nmodern \"computing technology\" traces its roots to the 16 -17th centuries\n\u25fc as part of the \"Scientific Revolution\", people like Kepler, Galileo, and Newton \nviewed the natural world as mechanistic and understandable\n\u25fc this led to technological advances & innovation\nfrom simple mechanical calculating devices to powerful modern computers, \ncomputing technology has evolved through technological breakthroughs\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: b6d4a1e4-40ab-4035-a233-64a7a6caa63e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 71, "chroma:document": "Generation 0: Mechanical Computers\n1642 \u2013 Pascal built a mechanical calculating machine\n\u25fc used mechanical gears, a hand-crank, dials and knobs\n\u25fc other similar machines followed\n1805 \u2013 the first programmable device was Jacquard's loom\n\u25fc the loom wove tapestries with elaborate, programmable patterns\n\u25fc a pattern was represented by metal punch-cards, fed into the \nloom\n\u25fc using the loom, it became possible to mass-produce tapestries, \nand even reprogram it to produce different patterns simply by \nchanging the cards\nmid 1800's \u2013 Babbage designed his \"analytical engine\"\n\u25fc its design expanded upon mechanical calculators, but was \nprogrammable via punch-cards (similar to Jacquard's loom)\n\u25fc Babbage's vision described the general layout of modern \ncomputers\n\u25fc Ada Lovelace developed instructions for the never-quite-finished \nAnalytical Engine \u2013 is considered the world's first programmer\n 2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a4388be7-7eaa-498b-b5b7-c227e9b15c2a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 72, "chroma:document": "Generation 0 (cont.)\n1930's \u2013 several engineers independently built \n\"computers\" using electromagnetic relays\n\u25fc an electromagnetic relay is physical switch, which can \nbe opened/closed via electrical current \n\u25fc relays were used extensively in early telephone \nexchanges \n\u25fc Zuse (Nazi Germany) \u2013 his machines were destroyed \nin WWII\n\u25fc Atanasoff (Iowa State) \u2013 built a partially-working \nmachine with his grad student\n\u25fc Stibitz (Bell Labs) \u2013 built the MARK I computer that \nfollowed the designs of Babbage\n\uf06f limited capabilities by modern standards: could \nstore only 72 numbers, required 1/10 sec to add, \n6 sec to multiply\n\uf06f still, 100 times faster than previous technology\n \n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2212a4ca-0a77-4395-8d1b-9c391beb924a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 73, "chroma:document": "Generation 1: Vacuum Tubes\nmid 1940's \u2013 vacuum tubes replaced relays\n\u25fc a vacuum tube is a light bulb containing  a \npartial vacuum to speed electron flow\n\u25fc vacuum tubes could control the flow of \nelectricity faster than relays since they had no \nmoving parts\n\u25fc invented by Lee de Forest in 1906\n1940's \u2013 hybrid computers using vacuum tubes \nand relays were built\nCOLOSSUS (1943)\n\u25fc first \"electronic computer\", built by the British govt. (based on designs by Alan Turing)\n\u25fc used to decode Nazi communications during \nthe war\n\u25fc the computer was top-secret, so did not \ninfluence other researchers\nENIAC (1946)\n\u25fc first publicly-acknowledged \"electronic \ncomputer\", built by Eckert & Mauchly (UPenn)\n\u25fc 18,000 vacuum tubes and 1,500 relays\n\u25fc weighed 30 tons, consumed 140 kwatts\n\u25fc \"programmed\" by women CS pioneers\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7971dfcb-341b-4070-813d-d5f4a8122d0f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 74, "chroma:document": "Generation 1 (cont.)\nCOLOSSUS and ENIAC were not general purpose computers\n\u25fc could enter input using dials & knobs, paper tape\n\u25fc but to perform a different computation, needed to reconfigure\nvon Neumann popularized the idea of a \"stored program\" computer\n\u25fc Memory stores both data and programs \n\u25fc Central Processing Unit (CPU) executes by loading program instructions from \nmemory and executing them in sequence\n\u25fc Input/Output devices allow for interaction with the user\nvirtually all modern machines follow this\nvon Neumann Architecture\n(note: same basic design as Babbage)\nprogramming was still difficult and tedious\n\u25fc each machine had its own machine language, 0's & 1's corresponding to the \nsettings of physical components\n\u25fc in 1950's, assembly languages replaced 0's & 1's with mnemonic names\n  e.g., ADD instead of 00101110\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e5f72a73-7de0-48d0-8445-dc84f780fcce
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 75, "chroma:document": "Generation 2: Transistors\nmid 1950's \u2013 transistors began to replace tubes\n\u25fc a transistor is a piece of silicon whose conductivity \ncan be turned on and off using an electric current\n\u25fc they performed the same switching function of \nvacuum tubes, but were smaller, faster, more \nreliable, and cheaper to mass produce\n\u25fc invented by Bardeen, Brattain, & Shockley in 1948 \n(earning them the 1956 Nobel Prize in physics)\nsome historians claim the transistor was the most \nimportant invention of the 20th century\nas the cost of computers dropped, high -level languages were designed \nto make programming more natural (& efficient)\n\uf070 FORTRAN (1957, Backus at IBM)\nPROGRAM add\nREAD *, a,b\ns = a + b\nPRINT *, ' The sum is ', s\nSTOP\nEND\n\uf070 LISP (1959, McCarthy at MIT)\n\uf070 COBOL (1960, Hopper at DOD)\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: b29af6c8-5de8-43df-9e86-5284a2f7327c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 76, "chroma:document": "Generation 3: Integrated Circuits\nmid 1960's - integrated circuits (IC) were produced\n\u25fc Noyce and Kilby independently developed techniques for \npackaging transistors and circuitry on a silicon chip (Kilby won \nthe 2000 Nobel Prize in physics)\n\u25fc was made possible by miniaturization & improved manufacturing\n\u25fc allowed for mass-producing useful circuitry\n1960's saw the rise of computing for business\n recall: an operating system is a collection of programs that manage \nperipheral devices and other resources \n\u25fc in the 60's, operating systems enabled time-sharing, where \nusers share a computer by swapping jobs in and out\n\u25fc specialized programming languages were developed, e.g., \nPascal (1971, Wirth),  C (1972, Ritchie)\n7\nU.S. space program was a driving force behind innovation\n\u25fc computers began to replace humans for complex \ncalculations (e.g., Katherine Johnson)\n\u25fc Margaret Hamilton at MIT led team that developed Apollo \nGuidance system"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 850c6c5c-9628-420d-b1e2-636141d20b95
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 77, "chroma:document": "Generation 4: Microprocessors\n1971 \u2013 Intel marketed the first microprocessor, the \n4004, a chip with all the circuitry for a calculator\n\u25fc by the late 1970's, manufacturing advances allowed \nfor the very large scale integration (VLSI) of hundreds \nof thousands of transistors w/ circuitry on a chip\n\u25fc this \"very large scale integration\" resulted in mass-\nproduced microprocessors and other useful IC's\n\u25fc since computers could be constructed by simply \nconnecting powerful IC's and peripheral devices, they \nwere easier to make and more affordable\n\u25fc Moore's Law (more of an observation, really)\u2013 \nthe number of transistors that could fit on a chip \ndoubled every 1-2 years\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: dde7f9fb-4b18-4169-99af-11c2c107aa8c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 78, "chroma:document": "Generation 4: Microprocessors\nwith microprocessors came personal computing\n\u25fc 1975 - Bill Gates & Paul Allen founded Microsoft \nGates wrote a BASIC interpreter for the first PC (Altair)\n\u25fc 1977 - Steve Wozniak & Steve Jobs founded Apple \nwent from Jobs' garage to $120 million in sales by 1980\n\u25fc 1980 - IBM introduced PC \nMicrosoft licensed the DOS operating system to IBM\n\u25fc 1984 - Apple countered with Macintosh \nintroduced the modern GUI-based OS (which was mostly \ndeveloped at Xerox)\n\u25fc 1985 - Microsoft countered with Windows \nin the 1980's\n\u25fc demand grew for networking computers together\n1982: 235 computers connected to ARPANet\n1989: 300,000 computers connected to Internet\n\u25fc object-oriented programming represented a new \napproach to program design which views a program \nas a collection of interacting software objects that \nmodel real-world entities\n 9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ad6c21eb-d1f5-40ca-987a-4b6ccff9863f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 79, "chroma:document": "Generation 5: ULSI\nthe latest generation of computers is still hotly debated\n\u25fc no new switching technologies, ultra large scale integration (ULSI) has changed \nhow computers are used\n1n 1989, the Intel 486 contained 1.2 million transistors\n\u25fc manufacturing improvements are more difficult to achieve as components get \nsmaller and smaller (Moore's Law in jeopardy?)\nworkarounds\n\u25aa multi-core processors increase the \nchip size by adding duplicate circuitry \nso that it can execute operations \nsimultaneously\n\u25aa parallel processing computers have \nmultiple independent processors that \ncan share the load (e.g., a Web \nserver)\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 153f50cd-acc1-4e57-bafa-1ec08dff1da4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 80, "chroma:document": "Generation 5: ULSI (cont.)\nWi-fi and wireless broadband have made computing mobile and pervasive\n\u25fc wi-fi utilizes radio waves over short distances to connect computers and devices\n\u25fc typical speed & range: 100-200 Mbits/sec, 150-300 feet\n1. user enters commands on computer/device\n2. command is translated into radio signal, broadcast to wi-fi router\n3. router carries out the command via Internet connection\n4. response is translated into radio signal, broadcast back to computer/device\n\u25fc a longer range alternative to wi-fi is cellular networking \n\u25fc 4G (15-25 Mbits/sec) & now 5G (50 Mbits/sec \u2013 1 Gbits/sec), nationwide coverage\n11\nArtificial Intelligence (AI) applications dominate the news\n\u25fc Apple's Siri (2011) and Amazon's Alexa (2014) can recognize voice commands \nand control smart home devices\n\u25fc facial recognition software is used by law enforcement and businesses\n\u25fc credit card companies model purchasing patterns to identify fraud"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0ced28b6-c5ed-4939-9567-8011bc8ed1af
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 80, "chroma:document": "and control smart home devices\n\u25fc facial recognition software is used by law enforcement and businesses\n\u25fc credit card companies model purchasing patterns to identify fraud\n\u25fc retailers like Amazon use your history to predict future purchases\n\u25fc Self-driving cars from Uber and Tesla use video processing and AI techniques \nto control vehicles on open roads"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cd2d5223-6a9d-434c-834e-b23cd24ce635
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 81, "chroma:document": "Speed matters\nENIAC (1946)\n\u25fc could perform 385 operations per \nsecond\n12\n75 years later\u2026\niPhone 13 (2021) \n\u25fc can perform 15.8 trillion operations per \nsecond\n\u25fc 41 billion times faster!\nit would take the ENIAC 1,301 years to do what your \niPhone can do in 1 second"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d7fa0027-75e8-4e5b-8e51-09df6968e940
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 82, "chroma:document": "Speed REALLY matters\nENIAC (1946)\n\u25fc could perform 385 operations per \nsecond\n13\nFugaku supercomputer (2021)\n\u25fc can perform 442 quadrillion operations \nper second\n\u25fc 1.1 quadrillion times faster!!!\nit would take the ENIAC 36.4 million years to do \nwhat the Fugaku can do in 1 second"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cd46f3a1-f1e3-40a3-b34b-03228dda8755
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 83, "chroma:document": "Computing entrepreneurs\nRichest People in the World\n(Forbes, 3/5/21)\n1. Jeff Bezos $177.0 billion Age: 57\n2. Elon Musk $151.0 billion Age: 50\n3. Bernard Arnault $150.0 billion Age: 72\n4. Bill Gates $124.0 billion Age: 65\n5. Mark Zuckerberg $97.0 billion Age: 36\n6. Warren Buffet $96.0 billion Age: 90\n7.  Larry Ellison $93.0 billion Age: 76\n8. Larry Page $91.5 billion Age: 47\n9. Sergey Brin $89.0 billion Age: 47\n10. Mukesh Ambani $84.5 billion Age: 63\n\u2026\n14. Steve Ballmer $68.7 billion Age: 64\n15. Ma Huatang $65.8 billion Age: 49\n14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 76d29a0d-2262-475e-9aa8-552e062b2d31
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 84, "chroma:document": "Text Boxes\nHTML event handlers enable the user to interact with the page\ne.g., move the mouse over an image to change it \ne.g., click on a button to display a text message in a page division \nfor greater control, the user must be able to enter information into the page\ne.g., enter words to complete a fill-in-the-blank story\ne.g., enter grades to calculate a course average\na text box is an HTML element that is embedded in the page\n     <input type=\"text\" id=\"BOX_ID\" size=NUM_CHARS value=\"INITIAL_CONTENTS\">\n\u25aa the user can enter text directly in the box\n\u25aa a JavaScript statement can then access the contents of the text box by accessing \nits VALUE attribute\nBOX_ID.value\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ee8f9415-0e98-4e67-8787-d16d2ba86d7d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 85, "chroma:document": "Greetings Page (v.1)\n\"Jody\" is the default \nvalue\nwhen button is \nclicked, an alert \nwindow displays 'Hi \nJody'\nthe user can enter \nhis/her name in the \ntext box\nnote: userBox.value does not \nhave quotes around it\nwhat would happen if it did?\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 83af1afc-d952-4099-9be5-e06fd2856d14
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 86, "chroma:document": "Greetings Page (v.2)\nalternatively, could \ndisplay the greeting \nin a dynamic \nparagraph\ninitially, outputP is \nempty\nwhen button is \nclicked, the greeting \nis assigned to its \nINNERHTML attribute\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a60eba37-4ce6-4d1a-8613-e52cdcd5cee4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 87, "chroma:document": "Form Letter Example\nnote: each box must have a unique ID\nthis page has 3 text \nboxes, uses \ncontents to generate \na custom form letter\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 61c34f98-fa6f-48fa-8cdf-e2d1bbd8da1c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 88, "chroma:document": "Simplifying Pages\nwe should be able to glance at the body of a page and visualize its contents\n\u25fc consider the body of the form generator page\n\u25fc the onclick code has nothing to do with the look of the page but its size and \ncomplexity clutter the body\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 819cc2fc-7731-43cc-826e-57b3723b9d89
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 89, "chroma:document": "User-defined Functions\ncan simplify the body by moving the JavaScript statements to the head\n\u25fc define a function that encapsulates those statements; then call from onclick\nmathematically speaking, a function is a mapping from inputs to an output\n9 \u2192 3  |-2| \u2192 2  max(5, 2) \u2192 5\nto a developer, a function is a unit of computational abstraction\n\u25fc a function encapsulates statement(s) under a name; to execute, only need to know \nthe name (i.e., call the function)\nfunction definition:   function call:\nfunction FUNCTION_NAME() {\n    STATEMENTS_TO_BE_EXECUTED    FUNCTION_NAME();\n}\n\u25fc function definitions are place in the head of a page, in a script element 6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 053437a6-5bd1-4a84-9a4c-8f8de841e863
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 90, "chroma:document": "Function Example\nthis page behaves \nthe same as \nform1.html\nthe action of the \nbutton is \nencapsulated in the \nGenerateLetter \nfunction in the HEAD \n(in SCRIPT tags)\nthe BODY is \nsimplified, since the \nONCLICK just \ncontains a call to the \nfunction\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4ea08389-1ffd-40e4-a1fc-4f9483e16857
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 91, "chroma:document": "Another Example\nAnimal Gallery: contains \n\u25aa image of an animal\n\u25aa a text box where the user can enter \nan animal name\n\u25aa a button for changing the image\nnote how simple \nthe BODY is 8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 820491db-01f2-4f56-a748-1aa152f9b698
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 92, "chroma:document": "Another Example\neach button has its own \ncorresponding function\nwhen clicked, the function \nis called to display a \nquotation in the page\nnote how simple \nthe BODY is\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: beabbc88-cf57-4f5f-be8c-eea530b64c61
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 93, "chroma:document": "Design Guidelines\n\u2713 be conservative in your use of color\n\u2713 be consistent in your use of formatting\n\u2713 avoid overriding the browser defaults unless it is necessary\n\u2713 don't center paragraphs\n\u2713 label interactive elements (buttons, text boxes) clearly\n\u2713 document the source code in case anyone views it\ninclude a comment block at top with your name, file name, and brief description\n\u2713 use descriptive id names\nconvention: descriptor + elementType, e.g., vacationImg, outputP\n\u2713 when defining a complex action, place in function definition in the head \nand call the function from the event handler\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: bc3f050a-1259-4fd2-824f-9c30b9c24c2d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 94, "chroma:document": "Errors and Debugging\nin computer jargon, the term bug refers to an error in a program\n\u25fc the process of systematically locating and fixing errors is debugging\nthree types of errors can occur\n1. syntax errors: typographic errors\n\uf070 e.g., omitting a quote or misspelling a function name\n\uf070 since the browser catches these, they are usually \"easy\" to identify and fix\n CHECK THE JAVASCRIPT CONSOLE FOR ERROR MESSAGES!\n2. run-time errors: occur when operations are applied to illegal values\n\uf070 e.g., attempting to multiply a string or divide by zero\n\uf070 also caught by the browser, which either produces an error message or else returns a \nspecial value (string multiplication produces NaN, division by zero produces Infinity)\n AGAIN, CHECK THE JAVASCRIPT CONSOLE!\n1. logic errors: flaws in the design or implementation of a program\n\uf070 whenever your program produces the wrong result\n\uf070 since they are not caught by the browser (the program is legal, just not what you"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 86fb8aa0-0540-49ba-887c-3aecb827432f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 94, "chroma:document": "\uf070 whenever your program produces the wrong result\n\uf070 since they are not caught by the browser (the program is legal, just not what you \nwanted), logic errors are hardest to identify\nuseful technique for identifying logic errors: diagnostic alert statements\n\u25fc at various intervals in the code, display the values of key variables using alert\n\u25fc you can then isolate at what point the program is going wrong\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 280af86a-9b42-4eda-91e4-9d04c17c8fbe
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 95, "chroma:document": "Early science\nscience: a system of knowledge covering general truths or the operation of \ngeneral laws especially as obtained and tested through scientific method \n(Merriam-Webster dictionary)\nmodern science traces its roots back to the Greek \nnatural philosophers \n\u25fc Thales (6 c B.C.) was first to break from mythology\n\uf070 observed and devised theories about nature \n\u25fc Plato (4 c B.C.) proposed a grand theory of cosmology\n\uf070 claimed heavenly bodies move uniformly in circles, because \nof their divine, geometric perfection \n\uf070 believed observation was confused and impure, truth was \nfound through contemplation\n\u25fc Aristotle (4 c B.C.) proposed a common-sense vision of \nthe natural world that stood for 2,000 years\n\uf070 studied and wrote on a cosmology, physics, biology, \nanatomy, logic, \u2026\n\uf070 placed greater emphasis on observation than Plato, but still \nnot experimental\nGreek natural philosophy is \"pre-scientific\", since it relied on \ncontemplation/observation, but not experimentation"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ae0f595a-ed6a-4ec3-9240-631d1f5d8b15
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 95, "chroma:document": "\uf070 placed greater emphasis on observation than Plato, but still \nnot experimental\nGreek natural philosophy is \"pre-scientific\", since it relied on \ncontemplation/observation, but not experimentation\nscience is important in our daily lives because:\n\u25fc it advances our understanding of the world and our place in it\n\u25fc scientific advances can lead to practical applications (e.g., technology, medicine, \u2026)\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4d597392-9ce3-4f5c-a21a-b9a77a3ca762
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 96, "chroma:document": "Roman times \u2192 Middle Ages\nRoman civilization built upon the tradition of Greek natural philosophy\n\u25fc the Romans are better known for engineering than theoretical science  \n\u25fc Pliny (1 c.) categorized plants, animals and minerals\n\u25fc Galen (2nd century) studied human anatomy and physiology\nthe fall of Rome (in 476) led to a discontinuity in western civilization\n\u25fc in western Europe, population dropped, literacy virtually disappeared, and Greek \nknowledge was lost\n\u25fc in eastern Europe, Greek knowledge was suppressed by orthodox Christianity in \nthe Byzantine Empire (which finally fell in 1453)\nduring Europe's \"Dark Age,\" medieval Islam became the \nprincipal heir to Greek science\n\u25fc in the 7th-14th centuries, the Islamic Empire covered \nparts of Europe, northern Africa, the Middle East, and \nwestern Asia\n\u25fc Greek writings were preserved and advanced by Arab \nscholars\n\u25fc the term \"algorithm\" is named after Persian scholar \nMuhammad ibn Musa al-Khwarismi 2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: efbe0bec-bf4e-4dd7-a235-1294fe863517
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 97, "chroma:document": "Scientific Revolution\nthe Renaissance (15th-16th centuries) was instigated by the \nrediscovery of Greek science\n\u25fc Greek knowledge was rediscovered by Crusaders to the Middle East; \nretrieved from medieval monasteries\n\u25fc Leonardo da Vinci (1452-1519) was artist, astronomer, geometer, \nengineer, \u2026\n\u25fc Gutenberg's printing press made the broad dissemination of \nknowledge possible\nthe Scientific Revolution (16th -17th centuries) was brought about \nby a period of intellectual upheaval in Europe\n\u25fc the Protestant Reformation, new world exploration, \u2026\n\u25fc the cultural environment allowed for questioning religious and \nscientific dogma \u2013 the universe was viewed as a complex machine \nthat could be understood through observation and experimentation\n\u25fc Copernicus proposed a sun-centered cosmology (1543)\n\uf070 Kepler refined the heliocentric model, using elliptical orbits (1609)\n\u25fc Galileo pioneered the use of experimentation to validate observational \ntheories"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ed3ff062-588e-49d9-90a4-077f524905d3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 97, "chroma:document": "\uf070 Kepler refined the heliocentric model, using elliptical orbits (1609)\n\u25fc Galileo pioneered the use of experimentation to validate observational \ntheories\n\uf070 father of modern science (as well as modern physics and astronomy)\n\u25fc Newton described universal gravitation, laws of motion (1687) 3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 29eda3a7-81cb-408a-96c3-f5bfebf2cda2
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 98, "chroma:document": "Modern Science\nthe Scientific Revolution established science as the preeminent source for \nthe growth of knowledge\n\u25fc biology: Pasteur, Watson & Crick, \u2026\n\u25fc chemistry: Dalton, Mendeleev, Curie, \u2026\n\u25fc physics: Maxwell, Curie, Einstein, \u2026\n4\nthe scientific method provides the common \nprocess by which modern science is conducted\n1. Observe a phenomenon\n2. Hypothesize how it works\n3. Design an experiment to test it\n4. Experiment to confirm/deny\n5. Analyze the results\n6. Revise or refine the hypothesis\ngenerally, the process repeats since the results may \nlead to revisions to the hypothesis or experiment"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 71d5ca4c-70f6-4700-b0d7-d6d9321d5b29
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 99, "chroma:document": "Scientific Method\nEXAMPLE: understanding planetary motion\n1. Observe that some lights in the night sky move different, faster than others.\n2. Hypothesize that those lights (planets) are closer to the earth.\n3. Develop a model of motion (say, Copernicus' circular orbits around the sun).\n4. Conduct the experiment to see telescopic observations match the model.\n5. Analyze the results and see that the observations are close but not exact \u2013 \nrevise the model to use Kepler's elliptical orbits and repeat.\n5\nthe scientific method can be applied to real -world situations as well\n\u25fc EXAMPLE: an auto mechanic observes a misfiring engine, hypothesizes that the cause \nis a bad spark plug and designs an experiment (replace it) to test\n\u25fc EXAMPLE: a programmer observes a program that doesn't work, hypothesizes the \ncause if a malformed statement and designs an experiment (bug fix) to test\nreproducibility is essential to the scientific method"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cf91eb03-4f4b-4187-bf24-de1048b464d6
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 99, "chroma:document": "cause if a malformed statement and designs an experiment (bug fix) to test\nreproducibility is essential to the scientific method\n\u25fc the same experiment, under the same conditions, should produce the same result\n\u25fc if a scientific discovery is not reproducible, it will not be accepted\nconsistency is a measure of how close the results are each time you conduct the experiment\naccuracy is a measure of how close the results are to the correct (or expected) value"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8d271ad7-cec8-4deb-aa16-2a58311cccbc
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 100, "chroma:document": "Computational Thinking\nthe scientific method is designed for understanding a phenomenon\n\u25fc may not be directly applicable to real-world problems solving\ncomputational thinking is a problem-solving approach that involves \nexpressing problems and their solutions in ways that a computer could \nexecute \n\u25fc first coined by Papert in 1980, made popular by Jeannette Wing in 2006\n\u25fc computational thinking has been recognized by many as an essential 21st century \nskill (along with critical thinking, communication, collaboration, and creativity)\n6\nhigh-level characteristics of computational thinking\n\u25fc DECOMPOSITION \u2013 breaking a large, complex problem into smaller, more \nmanageable problems\n\u25fc PATTERN MATCHING \u2013 recognizing how solutions to similar problems can be applied \nto new problems \n\u25fc ABSTRACTION \u2013 focusing on important details while ignoring irrelevant information\n\u25fc ALGORITHMS \u2013 designing and implementing the solution in the form of an algorithm\nreal-world example: assembling a bookcase"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: dc646de0-0a4c-4aa9-8f03-31ea7eaee9a0
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 101, "chroma:document": "CT Example\nconsider the task of finding the oldest person in a room\n\u25fc there are a number of issues to consider, different approaches you could take\nDECOMPOSITION\n\uf070 tasks that will need to be performed:\n\u2713 systematically process each person\n\u2713 be able to determine a person's age\n\u2713 record the names/ages so that will know the oldest at the end\n \nPATTERN MATCHING\n\uf070 learn from past experiences that were similar\n\u2713 lining the people up will make it easier to cover everyone\n\u2713 pencil & paper are effective for simple tasks like these\nABSTRACTION\n\uf070 there are a lot of characteristics we don't care about (hair color, middle initial)\n\u2713 if born on the same day, we will consider the same age\n\u2713 if more than one \"oldest\" person, any one will do\nALGORITHMS\n\uf070 can now devise an algorithm, step-by-step sequence of instructions, to solve this\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0149e0ef-ad8d-4c78-ba31-bdbf11cd0c31
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 102, "chroma:document": "Algorithm 1\nFinding the oldest person (algorithm 1)\n1. line up all the people along one wall\n2. ask the first person to state his or her name and birthday, then write this \ninformation down on a piece of paper\n3. for each successive person in line:\ni. ask the person for his or her name and birthday\nii. if the stated birthday is earlier than the birthday on the paper, cross out \nold information and write down the name and birthday of this person\nwhen you reach the end of the line, the name and birthday of the oldest person will \nbe written on the paper\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 10dac230-fdab-4b68-9da4-be103d58bdd6
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 103, "chroma:document": "Algorithm 1 Analysis\n9\nalgorithm 1 works, since the oldest person will eventually be found & recorded\n\u25fc the amount of time to find the oldest person is proportional to the number of \npeople\n\u25fc if you double the amount of people, the time needed to find the oldest person will \nalso double\nfor example, assume it takes 10 seconds to compare birthdays\n\uf070 8 people \u2192 10*8 = 80 seconds (1.33 minutes)\n\uf070 16 people \u2192 10*16 = 160 seconds (2.67 minutes)\n\uf070 32 people \u2192 10*32 = 320 seconds (5.33 minutes)\n . . .\n\uf070 100 people \u2192 10*100 = 1,000 seconds (16.67 minutes)\n . . .\n\uf070 400 people \u2192 10*400 = 4,000 seconds (1 hour & 6.67 minutes)\nthis algorithm works, but it does not scale well if the number of people gets big\n\u25fc consider a more complex but also more efficient algorithm"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9065aad5-779a-4950-a3c5-16c707a4a760
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 104, "chroma:document": "Algorithm 2\nFinding the oldest person (algorithm 2)\n1. line up all the people along one wall\n2. as long as there is more than one person in the line, repeatedly\ni. have the people pair up (1st with 2nd, 3rd with 4th, etc) \u2013 if there is an odd \nnumber of people, the last person will be without a partner\nii. ask each pair of people to compare their birthdays\niii. request that the younger of the two leave the line\nwhen there is only one person left in line, that person is the oldest\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a13f0ff7-2a1d-4c79-8c2b-e4bf7a737a83
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 105, "chroma:document": "Algorithm 2 Analysis\n11\nalgorithm 2 works, since the oldest person in a pair never sits and the process \neventually reduces down to that oldest person\n\u25fc the time needed to find the oldest person is proportional to the number of rounds it \ntakes to shrink the line down to one person (since all pair comparisons in a round \ntake place simultaneously)\n\uf070 the number of rounds is the number of times the people can repeatedly be \ndivided in half (mathematically speaking, the log2 of the number of people)\n\u25fc if you double the amount of people, the time needed to find the oldest person \nincreases by the cost of one more comparison\nfor example, assume it takes 10 seconds to compare birthdays\n\uf070 8 people \u2192 10* \uf0e9log2 8\uf0f9 = 10*3 = 30 seconds (0.5 minutes)\n\uf070 16 people \u2192 10* \uf0e9log2 16\uf0f9 = 10*4 = 40 seconds (0.67 minutes)\n\uf070 32 people \u2192 10 * \uf0e9log2 32\uf0f9 = 10*5 = 50 seconds (0.83 minutes)\n . . .\n\uf070 100 people \u2192 10 * \uf0e9log2 100\uf0f9 = 10*7 = 70 seconds (1.16 minutes)\n . . ."}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 70e9a207-1255-44a1-a613-6b36262ce220
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 105, "chroma:document": "\uf070 32 people \u2192 10 * \uf0e9log2 32\uf0f9 = 10*5 = 50 seconds (0.83 minutes)\n . . .\n\uf070 100 people \u2192 10 * \uf0e9log2 100\uf0f9 = 10*7 = 70 seconds (1.16 minutes)\n . . .\n\uf070 400 people \u2192 10 * \uf0e9log2 400\uf0f9 = 10*9 = 90 seconds (1.5 minutes)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9565acd0-fe93-4f3f-9e60-4246353a40d5
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 106, "chroma:document": "Multiple Solutions\nmany real-world problems can be solved in multiple ways\n\u25fc when presented with this problem, most people would devise a solution similar to \nAlgorithm 1 (with many different variations possible)\n\uf070 it is simple to describe and understand\n\uf070 it is reasonably fast for small numbers of people\n\u25fc developing Algorithm 2 requires considerable experience solving similar problems\n\uf070 must be able to ABSRACT the relevant features of this problem, PATTERN MATCH with \npast solutions to similar problems, and DECOMPOSE the solution to fit this new problem.\nlike most endeavors, the more computational thinking you do, they better you \nbecome at it\n12\n# of people time for Algorithm 1 time for Algorithm 2\n8 80 sec 30 sec\n16 160 sec 40 sec\n32 320 sec 50 sec\n\u2026\n100 1,000 sec 70 sec\n\u2026\n400 4,000 sec 90 sec"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0881e14b-29dd-414e-85b6-a01968ef7b41
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 107, "chroma:document": "Data Types\neach unit of information processed by a computer belongs to a general \ncategory or data type\n\u25fc JavaScript has three predefined data types\n1. string for representing text values (e.g., 'abcd', 'two words')\n2. number for representing numeric values (e.g. 12, 3.99)\n3. Boolean for representing logical values (trueor false)  LATER\neach data type is associated with a specific set of predefined operators that \nmay be used by programmers to manipulate values of that type\n\u25fc e.g., we have seen string concatenation via +\n\u25fc similarly, standard operators are predefined for numbers\naddition (+), subtraction (-), multiplication (*), division (/)\ntext boxes allow the user to enter strings and access those entries\n\u25fc there is an equivalent element for numbers: number box\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2c1774ad-9bb1-42bb-a01d-159936384729
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 108, "chroma:document": "Number Box\na number box is an input element (similar to text box)\n\u25aa type attribute is assigned \"number\" (instead of \"text\")\n\u25aa optional value attribute is same as for text box \u2013 specifies \ndefault value that appears in the box\n\u25aa instead of size attribute, number boxes specify min and max \nvalues \u2013 the size is adjusted to fit that range\n<input type=\"number\" id=\"numBox\" min=0 max=100 value=50>\n2\nto access the number in a number box, use valueAsNumber attribute\n numBox.valueAsNumber"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 169cfb6a-5549-4ef6-b303-389fa528558f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 109, "chroma:document": "Tip Calculator\nhere, the user enters a check \namount and tip percentage \n(default is 15%)\nwhen button is clicked, \naccesses those numbers, \ncalculates & displays tip\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 25736689-061f-4df4-9aae-f6b6f9ff42fd
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 110, "chroma:document": "valueAsNumber vs. value\nsimilar to text boxes, number boxes have a value attribute\n\u25aa the value attribute always returns the contents of the box as a string\n\u25aa this is NOT what you normally want when accessing a number box\n e.g., suppose the user enters 12 in a number box named numBox\nnumBox.value  evaluates to '12'\n(numBox.value + 1) evaluates to '121'  ???\nrecall, when + is applied to 2 numbers, addition:     1 + 2 = 3\n when + is applied to 2 strings, concatenation:    'a' + 'b' = 'ab'\n when + is applied to a string and a number, it converts the number to a \n     string and concatenates:      '12' + 1 = '12' + '1' = '121'\nBE CAREFUL TO ALWAYS USE valueAsNumber TO ACCESS NUMBER BOX CONTENTS\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a6b9b6d8-3b32-42d4-86f0-6bd1d2558bd0
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 111, "chroma:document": "Variables\na variable is a name used to symbolize a dynamic (changeable) value\n\u25aa as before, assign a value using '=':  \nVARIABLE = VALUE;\nvariables are commonly used to simplify code by:\n1. storing number values from boxes\namount = amountBox.valueAsNumber;\npercent = percentBox.valueAsNumber;\n2. or, storing the results of computations\ntip =  amount * (percent/100); \n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: acfc182d-264a-47c8-b311-42f4c953377a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 112, "chroma:document": "Tip Calculator\ncode is simplified by use of \nvariables\ntip.toFixed(2) rounds the tip  \nto 2 decimal places\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e8f1f8a5-dcc7-4d3d-98db-2076a815f326
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 113, "chroma:document": "Variable Names\na variable name should start with a lowercase letter, consist of letters & digits\n\u25fc a variable name should be chosen to be descriptive of its purpose\n\u25fc e.g., mysteryImg, outputSpan\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a64e6b85-5cdc-4aff-8636-1c771be76f9b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 114, "chroma:document": "Variables & Assignments\nvariables can be assigned various types of values, including numbers and \nmathematical expressions\n\u25aa each variable has a memory cell associated with it, where a value can be stored\n\u25aa when an expression appears on the right-hand side, it is evaluated and the result is \nassigned to the variable (i.e., stored in its memory cell)\n\u25aa when a variable appears in an expression, its value (i.e., the value stored in its \nmemory cell) is accessed and substituted into the expression\nreminder: '=' is not the equality operator\nto avoid confusion: read '=' as 'gets', as in   ' y gets y-1' 8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 51e6f0e6-3963-4151-8e12-95666cd941fd
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 115, "chroma:document": "Number Representation\nuseful facts about JavaScript numbers\n\u25fc to improve readability, very large or very small number are displayed in  \nscientific notation: XeY  represents the value  X \uf0cd 10Y\n\uf070 e.g., 1e24 \u2192 1 \uf0cd 1024 \u2192 1000000000000000000000000 \n\u25fc JavaScript stores all numbers in memory cells of a fixed size (64 bits)\n\uf070 as a result, only a finite number of values can be represented\n\uf070 e.g., 1e308 can be represented, but 1e309 is treated as Infinity\n  1e-323 can be represented, but 1e-324 is treated as 0\n\u25fc even within the range 1e-323 . . . 1e309, not all numbers can be represented\n\uf070 note that between any two numbers lie infinitely more numbers!\n\uf070 JavaScript can represent approximately 17 significant digits \n\uf070 e.g.., 0.9999999999999999 can be represented exactly\n  0.99999999999999999 is rounded up to 1\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: fb9c1eac-da04-4b1f-b8f7-93ba7b50a4b8
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 116, "chroma:document": "Patterns & Spacing\nnote the spacing in the Calculate function\n\u25fc blank lines are ignored by the browser, but are helpful to a developer\n\u25fc here, there are three main tasks\n1. get the (numeric) contents of the text boxes\n2. perform a computation on those numbers\n3. display the result of the computation in the page\n\u25fc inserting blank lines to separate these tasks makes the code easier to \nunderstand\n\uf070 similar to dividing an essay into paragraphs\n\u25fc be aware: this same pattern will reappear in many pages\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7a9f5238-a106-4bad-9bf5-07bf208f3acd
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 117, "chroma:document": "Predefined Functions\nin JavaScript, a function is applied to inputs via a function call\n num = Math.sqrt(25);\nhere, Math.sqrt is being called with input 25; it returns the output 5\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0ac71740-690a-4e66-93ee-7cef163ebb22
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 118, "chroma:document": "functest\nthe functest.html page is provided for you to explore the different math \nfunctions\n\u25fc select the function from a pull-down menu & inter the input(s) in text box(es)\n\u25fc click the button to see the function call and its output\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 49c2bb49-e706-488f-b31d-d9ba4f76fa2e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 119, "chroma:document": "Point Distance\nuser enters two points (x1, y1) \nand (x2, y2) in text boxes\nwhen button is clicked, the \ndistance between those two \npoints is calculated and \ndisplayed\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 652c0659-ddb5-4831-a75a-52c66dae7b9b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 120, "chroma:document": "Compound Interest\n114\ncalculates compound \ninterest on an investment\nuser enters initial amount, \ninterest rate & number of \nyears\ntotal = \n  amount*( +rate/100)years"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 3ea16aee-0856-492d-8793-6b7446f90eaf
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 121, "chroma:document": "Math.random\nin addition to the above math functions, JavaScript provides a function for \ngenerating a random number\n\u25fc Math.random has no inputs, returns a random real number from the range [0, 1)\n\u25fc note: smallest possible value = 0.0; largest possible value = 0.99999\u2026\nMath.random() \u2192 0.3428794638\nMath.random() \u2192 0.8776243657\nby itself, Math.random is not very useful\n\u25fc but, can use in expressions to expand or shift the range\n2*Math.random() \u2192 2*(number from [0, 1) \u2192 number from [0, 2)\nMath.random()+10 \u2192 (number from [0, 1)) + 10 \u2192 number from [10, 11)\nX*Math.random()+Y \u2192 number from [Y, X+Y)\ntechnically, it returns a pseudo-random number, \nsince it uses a complex algorithm to generate \nnumbers that appear random (using hidden \ninputs like the current time in milliseconds)\n15"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7cb05bad-d999-4bba-b931-d871a0dceeef
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 123, "chroma:document": "Pick-4 Example\nthis page simulates picking \n4 numbered balls from \nlottery bins\nto pick a random integer \nfrom 1 to numBalls\n1. pick a # from the range \n[1, numBalls+1)\n2. then round down\n17"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 703a94a4-1de7-45b2-adb5-b2a35045a7c3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 124, "chroma:document": "Algorithms\nthe central concept underlying all computation is that of the algorithm\n\u25fc an algorithm is a step-by-step sequence of instructions for carrying out some task\nprogramming can be viewed as the process of designing and implementing \nalgorithms that a computer can carry out\n\u25fc a programmer\u2019s job is to: \n\uf070 create an algorithm for accomplishing a given objective, then \n\uf070 translate the individual steps of the algorithm into a programming language \nthat the computer can understand\nexample: programming in JavaScript\n\u25fc we have written programs that instruct the browser to carry out a particular task\n\u25fc given the proper instructions, the browser is able to understand and produce the \ndesired results\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 89458afc-1b56-4c61-b1d2-d97edba3a5de
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 125, "chroma:document": "Algorithms in the Real World\nthe use of algorithms is not limited to the domain of \ncomputing\n\u25fc e.g., recipes for baking cookies\n\u25fc e.g., directions to your house\nthere are many unfamiliar tasks in life that we could \nnot complete without the aid of instructions\n\u25fc in order for an algorithm to be effective, it must be \nstated in a manner that its intended executor can \nunderstand\n\uf070 a recipe written for a master chef will look different than \na recipe written for a college student\n\u25fc as you have already experienced, computers are \nmore demanding with regard to algorithm specifics \nthan any human could be\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 962052fb-3334-4aa8-8909-6a6d8a59ddf3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 126, "chroma:document": "Algorithms & CT\nrecall the four characteristics of computations thinking: DECOMPOSITION, PATTERN \nRECOGNITION, ABSTRACTION and ALGORITHM\n\u25aa the final step in CT is formalizing the solution as an algorithm\n\u25aa a clearly stated algorithm is a blueprint for future problem solving\nconsider the 2 algorithms (from Ch. C5) for finding the oldest person in a room\n3\nAlgorithm 1\n Algorithm 2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c05edab7-0905-4aa7-87ed-125c1b895f68
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 127, "chroma:document": "Algorithm Analysis\ndetermining which algorithm is \"better\" is not always clear cut \n\u25fc it depends upon what features are most important to you\n\uf070 if you want to be sure it works, choose the clearer algorithm\n\uf070 if you care about the time or effort required, need to analyze performance\nalgorithm 1 involves asking each person\u2019s birthday and then comparing it to the \nbirthday written on the page\n\u25fc the amount of time to find the oldest person is proportional to the number of \npeople\n\u25fc if you double the amount of people, the time needed to find the oldest person will \nalso double\nalgorithm 2 allows you to perform multiple comparisons simultaneously\n\u25fc the time needed to find the oldest person is proportional to the number of rounds it \ntakes to shrink the line down to one person \n\uf070 which turns out to be the log2 of the number of people\n\u25fc if you double the amount of people, the time needed to find the oldest person \nincreases by the time required for one more round\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 41965cdb-9ff8-414d-897e-4e3e391c8279
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 128, "chroma:document": "Algorithm Analysis (cont.)\nwhen the problem size is large, performance differences \n can be dramatic\nfor example, assume it takes 10 seconds to compare birthdays\n\u25fc for algorithm 1:\n\uf070 100 people \u2192 10*100 = 1,000 seconds\n\uf070 200 people \u2192 10*200 = 2,000 seconds\n\uf070 400 people \u2192 10*400 = 4,000 seconds\n . . .\n\uf070 1,000 people \u2192 10*1,000 = 10,000 seconds\n\u25fc for algorithm 2:\n\uf070 100 people \u2192 10*\uf0e9 log2 100 \uf0f9 = 70 seconds\n\uf070 200 people \u2192 10*\uf0e9 log2 200 \uf0f9 = 80 seconds\n\uf070 400 people \u2192 10*\uf0e9 log2 400 \uf0f9 = 90 seconds \n . . .\n\uf070 1,000 people \u2192 10*\uf0e9 log2 1,000,000 \uf0f9 = 100 seconds\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 25074e69-aad0-43cc-86b4-fc40f36b1b54
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 129, "chroma:document": "Big-Oh Notation\nto represent an algorithm\u2019s performance in relation to the size of the \n    problem, computer scientists use what is known as Big-Oh notation\n\u25fc executing an O(N) algorithm requires time proportional to the size of problem\n\uf070 given an O(N) algorithm, doubling the problem size doubles the work\n\u25fc executing an O(log N) algorithm requires time proportional to the logarithm of \nthe problem size\n\uf070 given an O(log N) algorithm, doubling the problem size adds a constant \namount of work\nbased on our previous analysis:\n\u25fc algorithm 1 is classified as O(N)\n\u25fc algorithm 2 is O(log N)\n \n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8366518e-4efd-4cf0-8863-fa76e0f79324
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 130, "chroma:document": "Another Algorithm Example\nSEARCHING: a common problem in computer science involves storing and\n    maintaining large amounts of data, and then searching the data for\n    particular values\n\u25fc data storage and retrieval are key to many industry applications\n\u25fc search algorithms are necessary to storing and retrieving data efficiently\n\u25fc e.g., consider searching a large payroll database for a particular record\n\uf070 if the computer selected entries at random, there is no assurance that the \nparticular record will be found\n\uf070 even if the record is found, it is likely to take a large amount of time\n\uf070 a systematic approach assures that a given record will be found, and that it \nwill be found more efficiently\nthere are two commonly used algorithms for searching a list of items\n\u25fc sequential search \u2013 general purpose, but relatively slow\n\u25fc binary search \u2013 restricted use, but fast\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a4df029c-2ebb-4ce2-b47d-5539b67d8be9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 131, "chroma:document": "Sequential Search\nsequential search is an algorithm that involves examining each list item in \nsequential order until the desired item is found\nsequential search for finding an item in a list\n1. start at the beginning of the list\n2. for each item in the list\ni. examine the item - if that item is the one you are seeking, then you are \ndone\nii. if it is not the item you are seeking, then go on to the next item in the list\nif you reach the end of the list and have not found the item, then it was not in the list\nsequential search guarantees that you will find the item if it is in the list \n\u25fc but it is not very practical for very large databases \n\u25fc worst case: you may have to look at every entry in the list \n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d3750a9a-5b9c-4227-8861-12fe2e800d99
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 132, "chroma:document": "Binary Search\nbinary search involves continually cutting the desired search list in half until \nthe item is found \n\u25fc the algorithm is only applicable if the list is ordered \n\uf070 e.g., a list of numbers in increasing order\n\uf070 e.g., a list of words in alphabetical order\nbinary search for finding an item in an ordered list\n1. initially, the potential range in which the item could occur is the entire list\n2. as long as items remain in the potential range and the desired item has not \nbeen found, repeatedly\ni. examine at the middle entry in the potential range\nii. if the middle entry is the item you are looking for, then you are done\niii. if the middle entry is greater than the desired item, then reduce the \npotential range to those entries left of the middle\niv. if the middle entry is less than the desired item, then reduce the potential \nrange to those entries right of the middle\nby repeatedly cutting the potential range in half, binary search can home in \non the value very quickly\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 45bd930b-f247-4e2d-92c2-6c162af98859
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 133, "chroma:document": "Figure8-6.png\nBinary Search Example\nsuppose you have a sorted list of state names, and want to find MD\n1. start by examining the middle entry (ND)\nsince ND comes after MD alphabetically, can eliminate it and all entries that appear to the right\n2. next, examine the middle of the remaining entries (IA)\nsince IA comes before MD alphabetically, can eliminate it and all entries that appear to the left \n3. next, examine the middle of the remaining entries (MD)\nthe desired entry is found\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 520b2374-1cd9-4d73-905b-7f261a8d8b32
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 134, "chroma:document": "Search Analysis\nsequential search\n\u25fc in the worst case, the item you are looking for is in the last spot in the list (or \nnot in the list at all)\n\uf070 as a result, you will have to inspect and compare every entry in the list\n\u25fc the amount of work required is proportional to the list size\n\u2192 sequential search is an O(N) algorithm\nbinary search\n\u25fc in the worst case, you will have to keep halving the list until it gets down to a \nsingle entry\n\uf070 each time you inspect/compare an entry, you rule out roughly half the remaining entries\n\u25fc the amount of work required is proportional to the logarithm of the list size \n\u2192 binary search is an O(log N) algorithm\nimagine searching a phone book of the United States (330 million people)\n\u25fc sequential search requires at most 330 million inspections/comparisons\n\u25fc binary search requires at most \uf0e9log2(330,000,000)\uf0f9 = 29 inspections/comparisons\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 470eb766-69b6-457d-8aca-f2b6307aa1e1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 135, "chroma:document": "Another Algorithm Example\nNewton\u2019s Algorithm for finding the square root of N\n1. start with an initial approximation of 1\n2. as long as the approximation isn\u2019t close enough, repeatedly\ni. refine the approximation using the formula: \n  newApproximation = (oldApproximation + N/oldApproximation)/2\n example: finding the square root of 1024\nalgorithm analysis:\n\u25fc Newton's Algorithm does converge on the square root because each successive \napproximation is closer than the previous one\n\uf070 however, since the square root might be a non-terminating fraction it is \ndifficult to define the exact number of steps for convergence\n\u25fc in general, the difference between the given approximation and the actual \nsquare root is roughly cut in half by each successive refinement\n \u2192 demonstrates O(log N) behavior\n 12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4139ebff-db5f-409e-a702-1426eb7dd14c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 136, "chroma:document": "Algorithms and Programming\nprogramming is all about designing and coding algorithms for solving \nproblems\n\u25fc the intended executor is the computer or a program executing on that \ncomputer\n\u25fc instructions are written in programming languages which are more constrained \nand exact than human languages\nthe level of precision necessary to write programs can be frustrating to \nbeginners\n\u25fc but it is much easier than it was 50 years ago\n\u25fc early computers (ENIAC) needed to be wired to perform computations\n\u25fc with the advent of the von Neumann architecture, computers could be \nprogrammed instead of rewired\n\uf070 an algorithm could be coded as instructions, loaded into the memory of \nthe computer, and executed\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 3d05aada-8b15-49fd-b9fb-de1ec5c569bc
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 137, "chroma:document": "Evolution of Languages\nthe first programming languages were known as  \nmachine languages\n\u25fc consist of instructions that correspond directly to the \nhardware operations of a particular machine\n\uf070 i.e., instructions deal directly with the computer\u2019s physical \ncomponents including main memory and CPU registers\n\uf070 very low level of abstraction\n\u25fc machine language instructions are written in binary\n\uf070 programming in machine language is tedious and error prone \nin early 1950s, assembly languages evolved from \nmachine languages\n\u25fc replaced binary codes with words like ADD, MOVE\n\uf070 easier to remember & debug, but still machine-specific\n\u25fc a separate program called an assembler translated the \nassembly instructions into machine language\n14\nin the late 1950's, high-level languages were \nintroduced\n\u25fc they allow the programmer to write code closer to the \nway humans think (as opposed to mimicking hardware \noperations)\n\u25fc more natural, plus machine-independent"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a865388f-2e63-4a89-a6a1-c243451ac92f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 138, "chroma:document": "Program Translation\nusing a high-level language, the programmer is able to reason at a high -level \nof abstraction\n\u25fc but programs must still be translated into machine language that the computer \nhardware can understand/execute\nreal-world analogy: translating a speech from one language to another\n15\nan interpreter can be used provide a real-time translation\no the interpreter hears a phrase, translates, and immediately \nspeaks the translation\no ADVANTAGE: the translation is immediate\no DISADVANTAGE: if you want to hear the speech again, must \ninterpret all over again\na translator (or compiler) translates the entire speech \noffline\no the translator takes a copy of the speech, returns when the \nentire speech is translated\no ADVANTAGE: once translated, it can be read over and over \nvery quickly\no DISADVANTAGE: must wait for the entire speech to be \ntranslated"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f0e5dd2d-ee01-4ca3-bb42-d946e9fd987f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 139, "chroma:document": "Interpreters\nfor program translation, the interpretation approach relies on a program \nknown as an interpreter to translate and execute high -level statements \n\u25fc the interpreter reads one high-level statement at a time, immediately \ntranslating and executing the statement before processing the next one\n\u25fc particularly useful for dynamic, interactive applications (e.g., Web pages)\n\u25fc each execution requires translating again, can be slow\n\u25fc JavaScript is interpreted\n16"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cf995abc-9b0c-4ac2-a6c1-545b8881e689
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 140, "chroma:document": "Compilers\nthe compilation approach relies on a program known as a compiler to \ntranslate the entire high -level language program into its equivalent \nmachine-language instructions\n\u25fc the resulting machine-language program can be executed directly on the \ncomputer, very fast\n\u25fc used in large software applications when speed is of the utmost importance\n\u25fc but must compile the entire program before execution, so initial delay\n\u25fc C, C++, Java are compiled*\n17"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a1119335-dbeb-4680-ac1f-fb3a76587dc7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 141, "chroma:document": "Abstraction\nabstraction is the process of ignoring minutiae and focusing on the \nbig picture\n\u25fc in modern life, we are constantly confronted with complexity\n\u25fc we don't necessarily know how it works, but we know how to use it\ne.g., how does a TV work?  a car?  a computer?\nwe survive in the face of complexity by abstracting away details\n\u25fc to use a TV/car/computer, it's not important to understand the inner \nworkings\n\u25fc we ignore unimportant details and focus on those features relevant to \nusing it\n\u25fc e.g., TV has power switch, volume control, channel changer, \u2026\nJavaScript functions (like Math.sqrt) provide computational \nabstraction\n\u25fc a function encapsulates some computation & hides the details\n\u25fc the user only needs to know how to call the function, not how it works\n\u25fc simple user-defined functions similarly provide abstractions that \nsimplify the page 1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6b360b20-4d11-4cb5-9431-d51637c818d8
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 142, "chroma:document": "User-defined Functions\nfunctions simplify the programmer's task\n\u25fc minimize the amount of detail the developer must remember\ne.g., to calculate a square root, only need to remember the name Math.sqrt\n\u25fc minimize the size and complexity of code\ne.g., simple user-defined functions in the head simplify buttons in the body\n2\nthe general form of user -defined functions:\nfunction FUNCTION_NAME(PARAMETER1, PARAMETER2, \u2026) {\n  STATEMENTS_TO_PERFORM_THE_DESIRED_COMPUTATION\n  return OUTPUT_VALUE;\n}\n\u25fc parameters are variables that correspond to the inputs when the function is called\n  will have as many parameters as there are inputs to the function (could be 0)\n\u25fc a return statement specifies the output value for that function\n optional, as some functions don't return a value (e.g., write a message in page)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6b178530-5854-48c9-84b5-ba61344c5149
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 143, "chroma:document": "Simple example\nconsider the following function for converting distances:\nfunction InchesToCentimeters(inches) {\n    cm = inches * 2.54;\n    return cm;\n}\n\u25fc the function has one parameter, named inches\n\u25fc when the function is called, an input value must be specified in the parentheses\nInchesToCentimeters(10)\n3\n\u25fc the input value from the call is assigned to the parameter variable\n\u25fc that variable can then be used in calculations (here, cm = 2.54*10 = 25.4)\n\u25fc when a return statement is reached, the expression is evaluated and returned\na function call can appear in any expression\n\u25fc the return value is substituted for the call when evaluating\noutputP.innerHTML = InchesToCentimeters(10);     displays 25.4 in outputP"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 83e570fa-2991-4ec3-bca8-ff21e83ca29f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 144, "chroma:document": "Simple example (cont.)\n4\nas with any variable, parameter names should convey their purpose:\n\u25fc inches, distanceInInches, lengthInInches, \u2026\nconvention used throughout the book:\n\u25fc variable/parameter names start with a lowercase letter\n\u25fc function names start with an uppercase letter\n\u25fc if a variable name consists of multiple words, use internal capitalization\nsince a return statement can specify an expression, we could equivalently \ndefine the function as:\nfunction InchesToCentimeters(distanceInInches) {\n    return distanceInInches * 2.54;\n}"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: dee8d39a-9b28-4edc-a4bd-a277db9ff7bc
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 145, "chroma:document": "Conversion Page\nnote 2 function \ndefinitions in head\nstill need \nparameterless \nfunction \nconnected to the \nbutton\n5\nthis shows that a function can \ncontain a call to another function"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: b56872fa-536c-43b9-8a2a-5f2c9cd397cb
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 146, "chroma:document": "Pick-4 Revisited\nInchesToCentimeters is easy to understand, but not very motivational\nfor a better example, consider the Pick -4 page from Chapter X5\n\u25fc used Math.random to generate random lottery balls in the range 1..numBalls\n pick1 = Math.floor(numBalls*Math.random() + 1);\n pick2 = Math.floor(numBalls*Math.random() + 1);\n pick3 = Math.floor(numBalls*Math.random() + 1);\n pick4 = Math.floor(numBalls*Math.random() + 1);\n\u25fc tricky, messy, difficult to modify (e.g., suppose we learned balls started at 0)\n6\nbetter solution: capture the tricky expression in a function\nfunction RandomInt(low, high) {\n  return Math.floor(Math.random()*(high-low+1)) + low; \n}\n\u25fc once defined & tested, can be used anywhere a random integer is needed"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 5ce87b62-5c09-4dc4-956a-65846f51d4a4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 147, "chroma:document": "Pick-4 with Function\nRandomInt function makes the \ncode much easier to \nunderstand & modify\ne.g., for balls starting at 0:\npick1 = RandomInt(0, numBalls-1); \npick2 = RandomInt(0, numBalls-1); \npick3 = RandomInt(0, numBalls-1); \npick4 = RandomInt(0, numBalls-1); \n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 109af3b8-11e2-4a4f-97bd-64260617ba23
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 148, "chroma:document": "More Examples\n8\nparameters & return \nvalues can be strings\nfunction for calculating \npoint distance (Ch. X5)\nfunction for calculating \ncompound interest (Ch. \nX5)\nfunction for calculating \nsquare root (using \nNewton's algorithm from \nCh. C6)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8ef9940e-b61e-4cf0-9151-07bbcbab6e60
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 149, "chroma:document": "Triangle Page\nrecall distance.html page from Ch. X5\n\u25aa can simplify by adding Distance function\nfunctions are especially useful if the \ncalculation is performed multiple times\n\u25aa here, need to calculate the lengths of three \ntriangle sides\n\u25aa define the complex distance calculation once \nin the function\n\u25aa can then call the function repeatedly\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d8550b13-e2a3-4574-ba31-22c902a17280
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 150, "chroma:document": "Function libraries\nfunctions such as RandomInt can be added to head of a page\n\u25fc tedious if functions are to be used in many pages\n\u25fc involves creating lots of copies that all must be maintained for consistency\nthe alternative for general purpose functions is to place them in a library file\n\u25fc a library file is a separate text file that contains the definitions of one or more \nJavaScript functions\n\u25fc by convention, function library files end in .js since they contain JavaScript code\ne.g., http://compsciconcepts.com/random.js\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4c34ff7d-a5ab-4a89-a725-9a97cd4d0a23
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 151, "chroma:document": "Function libraries\nonce a function library file has been created, it can be loaded into any page by \nadding a script element whose src is that file\n<script src=\"LIBRARY FILENAME\"><script>\n\u25fc this new script elements is added to the head of the page\n\u25fc note that no actual code appears in between the script tags \nthe code from the library is inserted the script element when the page loads\nadvantages of library files:\n\u25fc avoid duplication (only one copy of the function definition)\n\u25fc easier to reuse functions (simply load the library file into any page)\n\u25fc easier to modify functions (a single change to the library file automatically \naffects all pages that load the library\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6145f307-e91b-4674-ba71-c52c09d8ff34
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 152, "chroma:document": "note: there is one script \nelement for loading the \nlibrary\n\u25fc this makes the RandomInt \nfunction accessible within the \npage\nthere is separate script \nelement for defining the \npage-specific function\n\u25fc this function can call the \nlibrary function that has been \nloaded\nPick-4 Yet Again\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a08bac3c-79a0-43a7-8a61-151e631e1970
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 153, "chroma:document": "Dice Example (v. 1)\nthis page uses the \nRandomInt function \nfrom random.js to \npick the random die \nimages\nnote: die images are \nnamed die1.gif, \ndie2.gif, \u2026, die6.gif\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6d7ee41d-734f-4816-8c63-7e40a931d525
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 154, "chroma:document": "Dice Example (v. 2)\nalternatively, could use \nthe RandomOneOf \nfunction from the \nrandom.js library to \npick the die images\nnote: function input \nmust be a list of options, \ncontained in [ ] and \nseparated by commas\n14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: fa1d9757-4aa9-438d-899a-a0f57cb01bf7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 155, "chroma:document": "Sequences Example\nconsider the task of generating \nrandom character sequences\n e.g., for creating secure passwords\nthe user can specify the \ncharacters to choose from in \nthe text box\nuses the RandomChar function \nfrom random.js to pick 3 \nrandom characters & \nconcatenate them\n15"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 649b1aa7-1519-40fd-9c46-368ad8f39ee0
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 156, "chroma:document": "Designing Functions\nfunctions do not add any computational power to the language\n\u25fc a function definition simply encapsulates other statements\nstill, the capacity to define and use functions is key to solving complex \nproblems, as well as to developing reusable code\n\u25fc encapsulating repetitive tasks can shorten and simplify code\n\u25fc provide units of computational abstraction \u2013 user can ignore details\nwhen you write a general-purpose function that could be used in many pages\n\u25fc create a library file and package that function with related functions\n\u25fc these can then be loaded into pages that need those functions\nwhen you define a function that is page -specific:\n\u25fc define it in the head of that page (within a script element)\n\u25fc can have more than one function defined in the same script element\n16"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9abd2e2f-05d5-40f1-9cec-94018dbd6977
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 157, "chroma:document": "Computer \u201cScience\u201d\nsome people argue that computer science is not a science in the same sense \nthat biology and chemistry are\n\u25fc the interdisciplinary nature of computer science has made it hard to classify\ncomputer science is the study of computation (more than just machinery)\n\u25fc it involves all aspects of problem solving, including\n\uf070 the design and analysis of algorithms\n\uf070 the formalization of algorithms as programs\n\uf070 the development of computational devices for executing programs\n\uf070 the theoretical study of the power and limitations of computing\nwhether this constitutes a \"science\" is a matter of interpretation\n\u25fc certainly, computer science represents a rigorous approach to understanding \ncomplex phenomena and problem solving\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1f0e3578-8327-410b-94ad-91827ea0711a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 158, "chroma:document": "Artificial Science\nmany activities carried out by computer scientists utilize the scientific method\n\u25fc e.g., designing and implementing a large database system requires \nhypothesizing about its behavior under various conditioning, experimenting to \ntest those hypotheses, analyzing the results, and possibly redesigning\n\u25fc e.g., debugging a complex program requires forming hypotheses about where an \nerror might be occurring, experimenting to test those hypotheses, analyzing the \nresults, and fixing the bugs\nthe distinction between computer science and natural sciences like biology, \nchemistry, and physics is the type of systems being studied\n\u25fc natural sciences study naturally occurring phenomena and attempt to extract \nunderlying laws of nature\n\u25fc computer science study human-made constructs: programs, computers, and \ncomputational modes\nHerbert Simon coined the phrase \"artificial science\" to distinguish computer \nscience from the natural sciences"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 77998779-6cce-46f8-ae43-8cae4a39f36d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 158, "chroma:document": "computational modes\nHerbert Simon coined the phrase \"artificial science\" to distinguish computer \nscience from the natural sciences\n\u25fc in Europe, computer science is commonly called \"Informatics\"\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 145154e1-0c0f-4c5b-97e7-27f4ace56d17
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 159, "chroma:document": "Computer Science Themes\nsince computation encompasses many different types of activities, computer \nscience research is often difficult to classify\n\u25fc three recurring themes define the discipline\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4052c6ef-3e88-4f50-9aa9-793de7c1c508
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 160, "chroma:document": "Hardware\nhardware refers to the physical components of a computer and its supporting \ndevices\nmost modern computers implement the von Neumann architecture\n\u25fc CPU + memory + input/output devices\nongoing research seeks to improve hardware design and organization \n\u25fc circuit designers create smaller, faster, more energy-efficient chips\n\u25fc microchip manufacturers seek to miniaturize and streamline production\n\u25fc systems architects research methods to increase throughput (the amount of work \ndone in a given time period)\n\uf070 e.g., parallel processing \u2013 splitting the computation across multiple CPUs\n\uf070 e.g., networking \u2013 connecting computers to share information and work\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4a3714b4-efef-4e20-b7a2-99d6e245849f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 161, "chroma:document": "Software\nsoftware refers to the programs that execute on computers\n3 basic software categories\n1. systems software: programs that directly control the execution of hardware \ncomponents (e.g., operating systems)\n2. development software: programs that are used as tools in the development of \nother programs (e.g.  Microsoft.NET, Java SDK)\n3. applications software: all other programs, which perform a wide variety of tasks \n(e.g., web browsers, word processors, games)\nmany careers in computer science are related to the design, development, \ntesting, and maintenance of software\n\u25fc language designers develop and extend programming languages for easier and \nmore efficient solutions\n\u25fc programmers design and code algorithms for execution on a computer \n\u25fc systems analysts analyze program designs and manage development\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 87c4318b-2ef4-440b-a82e-0f80909dd2b1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 162, "chroma:document": "Theory\ntheoretical computer scientists strive to understand the capabilities of \nalgorithms and computers (deeply rooted in math and formal logic)\nexample: the Turing machine is an abstract computational machine invented \nby computer pioneer Alan Turing \n\u25fc consists of: a tape on which characters can be written (I/O)\n  a processor that can read/write on the tape, move left or right (CPU)\n  space for storing the machine state - a number (memory)\n\u25fc significance of the Turing machine\n\uf070 it is programmable (example below is programmed to distinguish between \nan even or odd number of a's on the tape)\n\uf070 provably as powerful as any modern computer, but simpler so provides a \nmanageable tool for studying computation  \nTuring used this \nsimpler model to \nprove there are \nproblems that \ncannot be solved by \nany computer!\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d0fa425c-5426-4452-869a-9b4193dfc39c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 163, "chroma:document": "Subfields of Computer Science\ncomputer science can be divided into subfields \n\u25fc each subfield takes a unique approach to computation\n\u25fc however the common themes of computer science (hardware, \nsoftware, and theory) influence every subfield\n4 highly visible subfields\n1. algorithms and data structures\n2. architecture\n3. software engineering\n4. artificial intelligence and robotics\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 896b4a8f-aedb-49ee-848d-03210031fdb3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 164, "chroma:document": "Algorithms and Data Structures\nsubfield that involves developing, analyzing, and implementing algorithms for \nsolving problems\napplication: encryption\n\u25fc encryption is the process of encoding a message so that it is decipherable only \nby its intended recipient\n\uf070 Caesar cipher: shift each letter three down in the alphabet \ne.g., ET TU BRUTE \u2192 HW WX EUXWH\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cbc5cddc-da1f-4851-9533-dd9ef1067e37
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 165, "chroma:document": "Private-key Encryption\nCaesar cipher is an example of  private-key encryption\n\u25fc relies on the sender and the recipient sharing a secret key\nsome modern encryption algorithms rely on private keys \n\u25fc e.g., Advanced Encryption Standard (AES) utilizes 256-bit keys (2256 \u2248 1077 \npossibilities)\nnote: the private key must be shared securely\n\u25fc face-to-face meeting? guarded courier?\n\u25fc not feasible for online commerce 9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 3ab4880f-393e-42b2-899c-fa74aa128dae
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 166, "chroma:document": "Public-Key Encryption\nin 1976, Whitfield Diffie and Martin Hellman proposed a new approach\n\u25fc instead of a single, private key, public-key encryption utilizes a pair of keys\n\uf070 a public key is used to encrypt messages\n\uf070 a private key is required to decrypt the message\n\u25fc the only way to decrypt a message encrypted with a public key is using \nthe corresponding private key\n\uf070 as long as the recipient keeps the private key secure, they are free to share \nthe public key with anyone\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e72cbd1f-9a2d-4377-8e1e-c234bcb6b765
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 167, "chroma:document": "Encryption and e-commerce\npublic-key encryption is the basis of almost all secure communication over the \nInternet\n\u25fc without it, e-commerce would not be possible\n\u25fc consider what happens when you buy something online\npublic-key encryption is also used whenever you surf the Web with https:// \nor use a secure Wi-Fi connection 11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d84e4286-fe6c-4edd-93e3-c8d1f103a6ae
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 168, "chroma:document": "Architecture\nsubfield concerned with methods of organizing hardware components into \nefficient, reliable systems\napplication: parallel processing\n\u25fc multiple processors can sometimes be utilized to share the computational load \n\u25fc there are costs associated with coordinating the processors and dividing the work, so  not well \nsuited for all tasks\n\u25fc understanding when parallel processing can be used effectively is a common task for \ncomputer architects\n\u25fc e.g., Core 2 Duo and i3 processors are dual core - integrate the circuitry for 2 processors\n\uf070 can execute two different instructions simultaneously, potentially double execution speed\n\uf070 similarly, i5 and i7 have 4 cores, i9 has 8 cores\n\u25fc e.g., high-end Web Servers utilize multiple processors\n\uf070 can service multiple requests simultaneously by \n distributing the load among the processors\n\u25fc IBM's Deep Blue contained 32 general-purpose \nprocessors and 512 special-purpose chess processors\n\uf070 worked in parallel to evaluate 200 million chess"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 19a84ed2-beb8-487f-abb2-beb54c5eed4b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 168, "chroma:document": "distributing the load among the processors\n\u25fc IBM's Deep Blue contained 32 general-purpose \nprocessors and 512 special-purpose chess processors\n\uf070 worked in parallel to evaluate 200 million chess \nmoves per second)\n\uf070 first computer to beat a world champ (1997)\n\u25fc its descendent, Watson, contains 2,880 processors\n\uf070 won Jeopardy challenge in 2011\n\uf070 used in many applications (weather modeling, \nmedical diagnosis, satellite imagery analysis)\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e231315c-4bdb-4101-ae5f-bfc9e8e4723c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 169, "chroma:document": "Software Engineering\nsubfield concerned with creating effective software systems\n\u25fc large projects can encompass millions of lines of code\n\u25fc teams of programmers work together to make an integrated whole\n\uf070 coordination and testing are key to successful projects\n\u25fc software demand continues to grow, placing pressure on programmers to \nproduce at faster rates\n\uf070 clearly, there is a limit to personal productivity\n\uf070 simply adding more programmers does not solve the problem: increasing numbers \nmeans increased complexity, and coordination becomes an even bigger challenge\n\u25fc the adoption of the object-oriented programming methodology has made it \neasier to reuse code\n 13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0d617835-4a08-4633-aed7-e943a696f698
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 170, "chroma:document": "Artificial Intelligence\nsubfield that attempts to make computers exhibit human -like characteristics \n(e.g., the ability to reason and think)\n\u25fc in 1950, Turing predicted intelligent computers by 2000 (still not even close)\n\u25fc but, progress has been made in many A.I. realms\n\uf070 robots in manufacturing\n\uf070 expert systems \u2013 programs that encapsulate expert knowledge in a specific \ndomain (e.g., for medical diagnosis, credit card fraud detection)\n\uf070 neural computing \u2013 design of architectures that mimic the brain\nneural networks are used in handwriting analysis, self-driving cars, facial recognition, \u2026\n14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0832a019-d669-4c77-9e09-f7773c5f36d5
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 171, "chroma:document": "Bioinformatics\nmulti-disciplinary field that bridges the \ngap between biology and computer \nscience\n\u25fc focuses on using computers and \ncomputer science techniques to solve \nbiological problems\n\u25fc computers are integrated with various \nscientific tools\n\uf070 e.g., microscopes connected to \ncomputers and digital cameras\n\u25fc computer are used to model biological \nsystems\n\uf070 e.g., pharmaceutical companies \nmodel drug interactions to save time \nand money\n\u25fc computers are used to store and process \nlarge amounts of biological data\n\uf070 e.g., Human Genome Project stores \nand provides tools for studying DNA 15"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d75471c3-64db-4eed-9a74-a71030cc3c29
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 172, "chroma:document": "Data Science\ndata science utilizes concepts and methods from computer science, math and \nstatistics to predict outcomes and extract insights from collections of data\n\u25fc supervised learning: learn to predict future outcomes based on past behavior\n\uf070 predicting the fluctuations in the stock market based on past performance\n\uf070 Amazon predicting which products you may want based on past purchases\n\uf070 Netflix predicting which shows you might like based on your viewing history\n\u25fc unsupervised learning: process data to discover patterns and extract insights\n\uf070 a baseball team discovering player tendencies or weaknesses\n\uf070 a government agency using data insights to set policy\n16"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d8af0031-9791-4c7c-a82b-138beaacc15d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 173, "chroma:document": "The Ethics of Computing\nas technology becomes more prevalent in society, computing professionals \nmust ensure that hardware and software are used safely, fairly, and effectively\n17"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1b8de1ab-4e45-4b10-a361-966648f7fe1e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 174, "chroma:document": "Biology\nbiology is roughly defined as \"the study of life\"\n\u25fc it is concerned with the characteristics and behaviors of organisms, how \nspecies and individuals come into existence, and the interactions they \nhave with each other and with the environment \n(en.wikipedia.org/wiki/Biology )\nbiology encompasses a broad spectrum of academic fields that are \noften viewed as independent disciplines \n\u25fc ecology and evolutionary biology study life at the habitat or population \nlevel\n\u25fc developmental biology and genetics study life at organism level\n\u25fc physiology, anatomy, and histology study life at the multicellular level\n\u25fc cell biology studies life at the cellular level\n\u25fc molecular biology, biochemistry, and molecular genetics study life at the \natomic and molecular level\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 524cd627-81e2-4f99-9a3b-ee856731d18b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 175, "chroma:document": "Impact of Computers\nthe history of biology dates as far back as the rise of various civilization \n\u25fc while computers are relatively new, they have had a monumental impact on \nbiological research\n3 examples of impact:\n1. computer technology is rapidly advancing the tools of scientific research \n2. computer models are being used to study complex systems\n3. computers are being used to store, process, and analyze large collections of \nbiological data\nnote: this list is in no way exhaustive\n\u25fc many aspects of biology and computer science are converging\n\u25fc biology researchers must be savvy computer users and even programmers\n\u25fc computer scientists must be able to solve interdisciplinary problems  \n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 87e1f328-eaee-497a-a6a1-7bc01f255a6e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 176, "chroma:document": "Technology Tools/Resources\nmany of the traditional tools of biological research are integrating computer \ntechnology\ne.g., the confocal microscope\n\uf070 invented by Marvin Minsky (computer science pioneer)\n\uf070 works by focusing a laser on a dyed sample and\n measuring the fluorescent light emitted\n\uf070 can be used to build up a 3-D model of a sample, stored on\n a computer\ne.g., DNA Microarrays to measure the expression levels of genes \nthe Internet and the Web allow researchers to \nshare data and publications\n\u25fc speeds the dissemination of information and \nthe advancement of science\ne.g., PubMed, from the National Library of \nMedicine 3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7d32a7e2-9046-4274-843f-0cbeedcbe1d2
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 177, "chroma:document": "System Modeling\nas computer memory and processing power has increased, it has become \npossible to model complex biological systems in software\n\u25fc can attempt to discern natural laws or behaviors by observing the model under \nvarying conditions\n\uf070 e.g., models of plant or seashell growth\n\uf070 e.g., the evolution of cooperative behavior in species, such as bird flocking\n\u25fc can predict the effects of actions over long periods  \n\uf070 e.g., the effects of automobile emissions on global warming\n\uf070 e.g., the effects of increased fishing on worldwide fishery stocks\n\u25fc can avoid infeasible, unethical, or costly experimentation\n\uf070 e.g., predict the toxicity of a new drug based on a chemical/biological model as opposed \nto animal testing\n\uf070 e.g., study brain trauma using a neural network model\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ba30582d-1dfa-410e-99cf-34aa4fc4f0ba
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 178, "chroma:document": "Ecosystem Modeling\nin the late 1960s, John Conway showed that a simple \nmodel of an environment could produce complex and \ninteresting behavior\n\u25aa the environment is modeled as a 2-D grid of cells\n\u25aa a cell can be alive (contain an organism) or dead\n\u25aa simple rules model evolution\n1. a dead cell becomes alive in the next generation if it has exactly \n3 neighbors \n2. a living cell survives in the next generation if it has 2 or 3 \nneighbors \nConway's ideas have been extended to a variety \nof ecosystems\n\u25aa here, different colored cells denote different \norganisms (sharks & fish)\n\u25aa other systems have modeled:\n\u2713 the growth of viruses \n\u2713 the spread of infectious diseases in a \npopulation\n\u2713 the behavior of an ant colony\n 5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a52d07ff-9e97-43a2-83b8-b43a08bdae00
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 179, "chroma:document": "Bioinformatics\nperhaps the biggest impact of computers in biology is in storing, accessing, \nand processing large amounts of biological data\nthe new field of bioinformatics bridges biology and computer science (or \ninformatics, as it is known in Europe)\n\u25fc broad definition of bioinformatics: the use of computer science techniques to \nsolve biological problems\n\u25fc narrower but common definition:  the application of computer science techniques \nto the representation and processing of biological data\nas research tools advance, biologists are generating enormous amount of \ndata\n\u25fc a single experiment with genetic material can produce thousands or millions of \ndata points\n\u25fc computational and statistical tools are needed to analyze and understand such \nvolumes of data\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 953a7400-cd9b-44d3-8280-cfe8994981d7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 180, "chroma:document": "DNA Overview\nDNA is the genetic blue -print of life\n\u25fc made of nucleotides with four bases (A, T, G, C), \norganized in a double-helix \n\u25fc the two strands match A+T and C+G base pairs\n\u25fc can think of DNA as encoding information in base 4\na gene is a region of DNA that encodes the \nchemical structure of a protein\n\u25fc proteins (e.g., enzymes, hormones, antibodies) \ncontrol cellular and organ functions\nit is currently believed that there are 20,000 -\n30,000 different genes in human DNA\n\u25fc roughly 3 billion base pairs\n\"If our strands of DNA were stretched out in a line, the 46 chromosomes making \nup the human genome would extend more than six feet. If the ... length of the 100 \ntrillion cells could be stretched out, it would be ... over 113 billion miles. That is \nenough material to reach to the sun and back 610 times.\" [Source: Centre for \nIntegrated Genomics] 7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 5483db9e-bd1f-4d07-89dd-e9fa4ebc2fae
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 181, "chroma:document": "DNA Databases and Tools\noften, the source or \npurpose of a DNA \nsequence can be \ndetermined by \ncomparing it with \ndocumented genetic \nmaterial \n\u25fc several large \ndatabases are \navailable online\n\u25fc tools for visualizing \nand/or searching the \ndatabases are also \navailable\ne.g., the Ensemble site \n(www.ensembl.org) \ncontains visualizations \nof the human genome \nand other DNA \nsequences \n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 88094416-0c82-4905-a29c-ea2680b34b42
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 182, "chroma:document": "GenBank\nthe GenBank public \nrepository of DNA and \nRNA sequence data \ncontains \n\u25fc partial or complete \ngenomes for more \nthan 300,000 \norganisms\n\u25fc more than 1 trillion \nbases of sequence \ndata\n\u25fc roughly 250 million \nnew DNA sequences \nare added per month\nthe database can be \naccessed and searched \nusing various tools at \nwww.ncbi.nlm.nih.gov\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 97c72b93-1757-4c1b-adf5-6aae37cfc15c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 183, "chroma:document": "Analog vs. Digital\nthere are two ways data can be stored electronically \n1. analog values represent data in a way that is analogous to real life \n\u25fc signals can vary continuously across an infinite range of values \n2. digital values utilize only a finite set of values \n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: b87a8547-1fa3-4848-85bd-fbcc5994b217
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 184, "chroma:document": "Analog/Digital Tradeoffs\nthe major tradeoff between analog and digital is variability vs. reproducibility\n\u25fc analog allows for a (potentially) infinite number of unique signals, but they are \nharder to reproduce\n\uf070 good for storing data that is highly variable but does not need to be \nreproduced exactly\n\u25fc digital signals limit the number of representable signals, but they are easily \nremembered and reproduced\n\uf070 good for storing data when reproducibility is paramount\nwhen storing data on a computer, reproducibility is paramount\n\u25fc changing a single bit in a file can drastically change the data\nmodern computers save and manipulate data as discrete (digital) values\n\u25fc the most effective systems use two distinct (binary) states for representing data\n\u25fc in essence, all data is stored as binary numbers\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a7f0f70b-fe3a-48f5-ae45-7317c33366be
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 185, "chroma:document": "Binary Numbers\nin the binary number system, all values are represented using only \nthe two binary digits 0 and 1, which are called bits\n   \n \n  \nwe can also refer to bits by index\n\u25aa rightmost bit is index 0 (representing 20 = 1s place)\n\u25aa next from right is index 1 (representing 21 = 2s place\n\u25aa next over is index 2 (representing 22 = 4s place\n\u25aa . . .\n\u25aa ith index (from right) represents 2i s place\n3\nnote: \n\u2022 all even numbers end with a 0 bit; odd numbers with 1 bit WHY?\n\u2022 adding a 0 bit at the end it doubles its value  WHY?"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 444dfc8c-fc13-4acb-afa3-36a303f760d0
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 188, "chroma:document": "Representing Integers\nwhen an integer value must be saved on a computer, its binary equivalent can \nbe encoded as a bit pattern and stored digitally\nusually, a fixed size (e.g., 32 bits) is used for each integer so that the \ncomputer knows where one integer ends and another begins\n\u25fc the initial bit in each pattern acts as the sign bit (0=positive, 1=negative)\n\u25fc negative numbers are represented in two\u2019s complement notation \n\uf070 the \"largest\" bit pattern corresponds to the smallest absolute value (-1)\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 791975b3-b059-45ba-97f9-8f9fcbe8b6b1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 189, "chroma:document": "Representing Real Numbers\na real number can be uniquely identified by the two components of its \nscientific notation (fractional part and the exponent)\n 123.456 = 0.123456 x 103 0.0099 = 0.99 x 10-2\nthus, any real number can be stored as a pair of integers\n\u25fc real numbers stored in this format are known as floating point numbers, since \nthe decimal point moves (floats) to normalize the fraction\nstandard formats exist for storing real numbers, using either 32 or 64bits\nmost programming \nlanguages represent \nintegers and reals \ndifferently \nJavaScript simplifies \nthings by using IEEE \ndouble-precision floating \npoint for all numbers\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 382ae70a-20c7-4ab4-86dd-20a4c584d0a0
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 190, "chroma:document": "Representing Characters\ncharacters have no natural \ncorrespondence to binary \nnumbers\n\u25fc computer scientists devised \nan arbitrary system for \nrepresenting characters as bit \npatterns\n\u25fc ASCII (American Standard \nCode for Information \nInterchange)\n\uf070 maps each character to a \nspecific 8-bit pattern\n\uf070 note that all digits are \ncontiguous, as are lower- \nand upper-case letters\n '0' < '1' < \u2026 < '9'\n 'A' < 'B' < \u2026 < 'Z'\n 'a' < 'b' < \u2026 < 'z'\n\u25fc Unicode is a 16-bit extension \nto ASCII that supports other \nlanguages\n 8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 42226035-5d4a-466d-8d72-2c2fb5a21f8d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 191, "chroma:document": "Representing Text\nstrings can be represented as sequences of ASCII/Unicode codes, one for \neach character in the string\nspecific programs may store additional information along with the ASCII \ncodes\n\u25fc e.g. programming languages will often store the number of characters along \nwith the ASCII/Unicode codes\n\u25fc e.g., word processing programs will insert special character symbols to denote \nformatting (analogous to HTML tags in a Web page)\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a5807fa2-1622-45a4-8cda-d162261378ef
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 192, "chroma:document": "Distinguishing Data Types\nhow does a computer know what type of value is stored in a particular piece of \nmemory?\n\u25fc short answer: it doesn't\n\u25fc when a program stores data in memory, it must store additional information as to \nwhat type of data the bit pattern represents\n\u25fc thus, the same bit pattern might represent different values in different contexts\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 20a61f02-959c-4546-9fa7-1f0cad9eb26a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 193, "chroma:document": "Conditional Execution\nso far, all of the code you have written has been unconditionally executed\n\u25fc the browser carried out statements in the same set order\nin contrast, many programming tasks require code that reacts differently \nunder varying circumstances or conditions\ne.g., a student's course grade depends upon his/her average\ne.g., an ESP test requires recognizing when a subject guessed right\ne.g., the outcome of a game depends upon die rolls or player moves\nconditional execution refers to a program\u2019s ability to execute a statement or \nsequence of statements only if some condition holds true\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 51031772-a1fa-4d8a-931b-b1fe12a6ba56
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 194, "chroma:document": "If Statements\nin JavaScript, the simplest form of conditional statement is the if statement\n\u25fc one action is taken if some condition is true, but a different action is taken if the \ncondition is not true (called the else case)\n\u25fc the else case is optional\ngeneral form of the if statement:\nif (BOOLEAN_TEST) {\n    STATEMENTS_EXECUTED_IF_TRUE\n}\nelse {\n    STATEMENTS_EXECUTED_IF_FALSE\n}\nnote: indentation is not required, but it is STRONGLY \nRECOMMENDED to make an if statement readable\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2ec10031-fc88-4dfa-b966-9de4e936d1d8
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 195, "chroma:document": "Boolean Tests\nthe test that controls an if statement can be any Boolean expression (i.e., an \nexpression that evaluates to either true or false)\n\u25fc Boolean tests are formed using relational operators because they test the \nrelationships between values\nthe Boolean test in an if statement determines the code that will be executed \n\u25fc if the test succeeds (evaluate to true), then the code inside the subsequent \ncurly braces will execute\n\u25fc if the test fails (evaluates to false), then the code inside the curly braces \nfollowing the else will execute\n\u25fc note that if the test fails and there is no else case, the program moves on to \nthe statement directly after the if\nNOTE: \n== is for comparisons \n= is for assignments\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1eb93551-1f6e-4cb9-bfd4-9a1359308d11
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 196, "chroma:document": "If Statement Examples\nan if statement is known as a control statement, since its purpose is \nto control the execution of other statements \n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 74e674d7-1cef-4032-b889-955e6f728be9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 197, "chroma:document": "Letter Grade Page\nsince else case is present, it \nwill display one message or \nthe other\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 57a5fb54-2d81-4d9d-b8eb-4b9a7ce22c39
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 198, "chroma:document": "Input Verification\nhere, an if statement checks to \nsee if number box is empty (i.e., \nits value attribute is '')\n\u25aa if empty, displays an alert warning\n\u25aa if not, calculates & displays letter \ngrade as before\nnote: an if statement can be \nnested inside another if \nstatement 6\ncommon use of if statement:\n\u25aa verify that user input has been entered\n\u25aa warn the user if not"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 014438d4-2143-4b1e-9529-c8b38938c6b8
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 199, "chroma:document": "Input Verification\nsimilarly, could add an if statement \nto the tip calculator to make sure \nthe user entered a check amount\n\u25aa what about the tip percent?\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 6b9a527b-479a-4eb9-b30d-44cb0f37ef3b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 200, "chroma:document": "Cascading If-Else\nprogramming tasks often require code that responds to more than one \ncondition\n\u25fc this can be accomplished by nesting one if statement inside of another\nexample: three different grade levels\n\u25fc A-level (grade \u2265 90), passing (60 \u2264 grade < 90), failing (grade < 60)\n\u25fc the outer if-else distinguishes A from non-A grades\n\u25fc the nested if-else further separates non-A grades into passing and failing\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2c9c0e71-0ab3-4843-9e0a-38eda987b674
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 201, "chroma:document": "Cascading If-else Structure\nnested if-else statements are known as cascading if-else structures because \ncontrol cascades down the branches\n\u25fc the topmost level is evaluated first \n\u25fc if the test succeeds, then the corresponding statements are executed and control \nmoves to the next statement following the cascading if-else structure\n\u25fc if the test fails, then control cascades down to the next if test\n\u25fc in general, control cascades down the structure from one test to another until \none succeeds or the end of the statement is reached\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 60d2d1a0-8e0a-451b-aa94-58c37bedf2a7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 202, "chroma:document": "A Cleaner Notation\nwhen it is necessary to handle a large number of alternatives, nested if -else \nstructures can become unwieldy\n\u25fc multiple levels of indentation and curly braces cause the code to look cluttered \nmake it harder to read/understand\n\u25fc can simplify by removing some unnecessary curly braces & aligning each case to \nthe left\n        nested if statements            vs.           more readable if-else\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 5a4913ed-3924-4cad-97a8-f1201f535e04
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 203, "chroma:document": "Letter Grade (cont.)\nas before, the student's \naverage is entered in a \nnumber box\nthe cascading if-else \nstructure determines the \ncorresponding letter grade\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 3c32b9cf-da64-43ea-baa9-05f372f13ebf
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 204, "chroma:document": "Embedded Counters\nrecall the dice pages from Chapter X6\nsuppose we wanted to keep a count of the number of rolls\n\u25fc we could use a span element to store the count (initially 0)\nNumber of rolls: <span id=\"rollSpan\">0</span>.\n\u25fc for each roll, access the count, add 1, and reassign\nrollSpan.innerHTML = rollSpan.innerHTML + 1;       // DOES NOT WORK\n12\nproblem: innerHTML always evaluates to a string\n\u25fc rollSpan.innerHTML + 1 = '0' + 1 = '0' + '1' = '01'       (see Ch. X5)\nwe avoided this problem with number boxes using valueAsNumber\n\u25fc unfortunately, there is no equivalent attribute for a span\n\u25fc fortunately, there is a function that will convert a string into its equivalent number value\nrollSpan.innerHTML = Number(rollSpan.innerHTML) + 1;       // THIS WORKS!"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8410ef5d-dddf-4f86-9c18-4acc1acd3c2f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 205, "chroma:document": "Dice Stats (v.1)\nrecall the pages from Ch X6 \nthat simulated dice rolls\nadd an embedded counter\n\u25aa initially, the span contains 0\n\u25aa its contents are incremented \neach time function is called\nalso add a function to reset the \ncounter\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: e6443096-0239-4b69-8130-e0291f98f042
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 206, "chroma:document": "Conditional Counters\ncounters can be combined with if statements to count conditional events\n\u25fc e.g., to count doubles\n if (roll1 == roll2) {\n   doubleSpan.innerHTML = Number(doubleSpan.innerHTML) + 1;\n }\n\u25fc e.g., to count sevens\n if (roll1+roll2 == 7) {\n   sevenSpan.innerHTML = Number(sevenSpan.innerHTML) + 1;\n }\n14\nsince doubles and sevens are mutually exclusive, could even combine\n if (roll1 == roll2) {\n   doubleSpan.innerHTML = Number(doubleSpan.innerHTML) + 1;\n }\n     else if (roll1+roll2 == 7) {\n   sevenSpan.innerHTML = Number(sevenSpan.innerHTML) + 1;\n }"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 46e5ad80-d12f-41db-83d9-2997cd338142
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 207, "chroma:document": "Dice Stats (v.2)\nto keep stats on doubles and 7s\n\u25aa add spans to the page to keep \ntrack of the # of doubles and # \nof sevens\n\u25aa add if-else to conditionally \nincrement the counters\n\u25aa also update ResetCounts to \nthat all counters are reset\n \n15"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 04032ce7-8546-4885-bf06-f7ddb65516a1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 208, "chroma:document": "Boolean Expressions\nsometimes, simple comparisons between two values may not be adequate to \nexpress the conditions under which code should execute\ncomplex Boolean expressions can be built using logical connectives\nTEST1 && TEST2 evaluates to true if TEST1 AND TEST2 are true\nTEST1 || TEST2 evaluates to true if TEST1 OR TEST2 arise true\n! TEST  evaluates to true if TEST is NOT true\nif (roll1 == 4 && roll2 == 4) { \n  CODE_TO_BE_EXECUTED_IF_4-4_COMBINATION_IS_ROLLED\n}\nif (roll1 == 4 || roll2 == 4) { \n  CODE_TO_BE_EXECUTED_IF_EITHER_ROLL_IS_4\n}\nif (!(roll1 == 4 && roll2 == 4)) { \n  CODE_TO_BE_EXECUTED_ IF_4-4_COMBINATION_IS_NOT_ROLLED\n} 16"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2f2c9436-4dce-48ba-a9d5-f7f86da5ea2d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 209, "chroma:document": "Dice Stats (v.3)\nto also keep stats on natural 7s\n\u25aa add a test for 3-4 or 4-3 \ncombinations\n\u25aa since the test is inside the \nsevens case, will only be \nexecuted if the roll is a seven\n\u25aa then, if roll1 is a 3 or a 4, \nincrement naturalSpan\n17"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: fda0ba14-7c78-4c51-8586-8644041f1d07
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 210, "chroma:document": "Representing Sounds\ncomputers are capable of representing much more than numbers and text\n\u25fc complex data requires additional techniques and algorithms\nEXAMPLE: representing sounds\n\u25fc sounds are inherently analog values with a specific amplitudes and frequencies\n\u25fc when sound waves reach your ear, they cause\nyour eardrum to vibrate, and your brain \ninterprets the vibration as sound\n\u25fc e.g. telephones translate a waveform into \nelectrical signals, which are then sent over \na wire and converted back to sound\n\u25fc e.g. phonographs interpret waveforms stored on\non grooves of a disk (similar to audio cassettes)\n\u25fc analog values cannot be reproduced exactly,\nbut this is not usually a problem since the \nhuman ear is unlikely to notice small \ninconsistencies\ntuning \nfork\nviolin\npiano\nwaterfall\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d23358f6-923e-408c-9ca2-65c27b166491
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 211, "chroma:document": "Representing Sounds (cont.)\nwhen analog recordings are repeatedly duplicated, small errors that were \noriginally unnoticed begin to propagate\ndigital recordings can be reproduced exactly without any deterioration \n     in sound quality\n\u25aa analog waveforms must be converted to a sequence of discrete values\n\u25aa digital sampling is the process in which the amplitude of a wave is measured at \nregular intervals, and stored as discrete measurements \n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9fd497d0-a2ab-4793-b586-0cb9cf1ac24f
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 212, "chroma:document": "Representing Sounds (cont.)\nto play a digital recording, a music player must extract the numbers and \nreconstruct the analog waveform\n3\nsince there are gaps between measurements, the reconstruction will not be an \nexact reproduction of the original\n\u25aa CD takes 44,100 measurements/second, so gaps are small and the \nresulting sound is high -quality"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: fb371706-e0c5-40c8-82a7-8d46eb971bd7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 213, "chroma:document": "Sound compression\nCD-quality sound requires significant storage\nconsider a 3-minute, stereo recording (meaning two separate tracks)\n\u25aa assume each measurement is stored using 2 bytes\n3 min x 60 sec/min x 2 tracks x 44,100 nums/sec x 2 bytes/num = 31.752 MB\n4\nsince the typical music album contains 10 -20 songs, CD storage requires:  \n317-634 MB of space\n\u25aa this will fit on a 700 MB disk, but would quickly overwhelm \nsmartphones and portable music players\nalso, file size makes downloading or streaming music problematic\n4G wireless connection can typically download up to 1.5 MB/second\n\u25aa to download 3 min song: 31.752 MB / 1.5 MB/sec = 21 seconds\n\u25aa to download 20 song album: 634 MB / 1.5 MB/sec = 7 minutes"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f5368c2d-35d8-43c8-bede-0b41f4044e91
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 214, "chroma:document": "Sound compression (cont.)\nfortunately, techniques have been developed to reduce file size\n\u25aa e.g., filter out sounds beyond the range of human hearing\n\u25aa e.g., recognize when one track masks another\n\u25aa e.g., possibly even simplify the waveform\nthe MP3 format (introduced in 1993) uses techniques such as these to reduce \nfile size by 75-95% \n\u25aa 3 minute song: 31.752 x 0.05 = 1.6 MB = 1 second using G4\n\u25aa 20 song album = 634 MB x 0.05 = 31 MB = 20 seconds using G4\nMP3 is a lossy format\n\u25aa to achieve that level of compression, it makes simplifications and loses \nsome of the information in the waveform\n\u25aa this results in lower sound quality when played\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ea7a3e48-d853-43d7-8661-2d81f41a7231
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 215, "chroma:document": "Impact on the music industry\nbefore the CD in 1982, music piracy was almost non -existent\n\u25aa few people had the technology to copy a phonograph record\n\u25aa recording a cassette was easy, but the sound quality was bad\n\u25aa CDs changed the game\no cheap devices for making perfect, digital copies were readily available\no this panicked the music industry, led to MANY piracy prosecutions\n6\nbefore the MP3 format in 1993, \nstreaming music was not feasible\n\u25aa now, phones & portable players \nare the primary music source for \nmany\n\u25aa other digital audio formats have \nfollowed, e.g., WAV, AIFF, M4P."}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4de76e0f-92b2-4c71-bd67-a195bd9aebfb
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 216, "chroma:document": "Representing Images\nlike sound, images are inherently analog\n\u25fc real-world colors come in an infinite variety of shades\n\u25fc film photography creates an analog representation using light-sensitive chemicals\nlike sound, techniques exist for digitizing images\n\u25fc the simplest involves partitioning the image into a grid of picture elements (pixels) \nand then converting each pixel into a bit pattern\n\u25fc the digital representation is known as a bitmap\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 4d0ad6c4-de64-471e-b78c-4089067d94bf
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 217, "chroma:document": "Image resolution\nresolution refers to the sharpness or clarity of an image\n\u25fc bitmaps that are divided into smaller pixels will yield higher resolution images\n\u25fc the left image is stored using 72 pixels per square inch, each subsequent image has \nhalf the resolution\n8\nthis is a grayscale image\n\u25fc each pixel is a shade of gray, somewhere between black and white\n\u25fc most image formats use 8 bits for a grayscale pixel \u2192 256 shades of gray\n\u25fc as a result, grayscale requires 8x storage of black-and-white"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d974a281-0411-40ae-bad4-bd4528201143
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 218, "chroma:document": "Color images\nfor color images, can break each color into its red, green & blue components\n\u25fc RGB value is a triple, listing the intensities of red, green & blue on a 0-255 scale\n\u25fc 2563 = 16,777.216 different color combinations can be represented\n\u25fc each component requires 8 bits, so a total of 24 bits per pixel\n\u2192 color images require 3x storage of grayscale, 24x the storage of black-and-white\n9\nexperiment with http://compsciconcepts.com /C9/rgb.html"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: da0a28ec-c759-4e3e-a338-4ab06cc73709
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 219, "chroma:document": "Image compression\ncolor bitmaps can be extremely large\n\u25fc 12 megapixel image \u2192 12 million pixels \u2192 36 MB of storage\ncommon image formats implement various compression techniques to reduce \nstorage size\n\u25fc GIF (Graphics Interchange Format)\n\uf070 a lossless format, meaning no information is lost in the compression \n\uf070 commonly used for precise pictures, such as line drawings\n\uf070 25-50% reduction possible\n\u25fc PNG(Portable Network Graphics)\n\uf070 more modern, lossless alternative to GIF - more colors\n\uf070 10-50% smaller than GIF (so 33-75% reduction from bitmap)\n\u25fc JPEG (Joint Photographic Experts Group)\n\uf070 a lossy format, so the compression is not fully reversible (but more efficient) \n\uf070 commonly used for photographs\n\uf070 90-95% reduction possible\nimage formats also embed metadata (date, location, source, \u2026) in images\n\u25fc can be useful for tasks such as organizing a photo gallery by data or geography 10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 2ffe90fa-8b8c-469e-b0b3-c9c7b84224f3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 220, "chroma:document": "Steganography\nan interesting side topic related to images is steganography\n\u25fc the practice of hiding a secret message in plain sight (e.g., within another \nmessage or object)\n1. Take your secret message an encode it as bits (using ASCII/Unicode codes):       \nb1 b2 b3 b4 b5 b6 b7 b8 b9 ... \n2. Take an image and break it into its RGB pixels:  (R1,G1,B1) (R2,G2,B2) (R3,G3,B3) \u2026\n3. For each bit bi in the message, possibly change the Bi component of the \ncorresponding pixel so that:\no if bi is even, then Bi is also even (add 1 to Bi if necessary)\no if bi is odd, then Bi is also odd (add 1 to Bi if necessary)\nthe resulting image will look the same to the human eye\n\u25fc e.g., most people can't distinguish between (20, 50, 100) and (20, 50, 101)\nbut, if you know to look, you can extract the message bits from the pixels\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7534c028-9bd4-4f24-9547-1959ceca6757
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 221, "chroma:document": "Example:\nsuppose the message starts with 'M' (whose ASCII value is 01001101)\nand the image starts with pixels:\n(100,200,50) (100,200,50) (100,202,52) (98,203,53) (88,190,48) (88,188,47) (86,180,40) (80,160,43)\nthen, embed the message bits in the B components of the pixels:\n(100,200,50) (100,200,51) (100,202,52) (98,203,54) (88,190,49) (88,188,47) (86,180,40) (80,160,43)\nto an unsuspecting viewer, the image will look normal\nto a person who knows to look, the message bits can easily be extracted\n(100,200,50) (100,200,51) (100,202,52) (98,203,54) (88,190,49) (88,188,47) (86,180,40) (80,160,43)\n         \uf0df            \uf0df            \uf0df           \uf0df           \uf0df           \uf0df           \uf0df          \uf0df\n          0              1              0            0             1             1            0            1\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 10d69d61-845a-4f93-b713-51fd54f2b474
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 222, "chroma:document": "Representing movies\nin principle, a movie is a sequence of images \n(frames) that are displayed in sequence to \nproduce the effect of motion\n\u25fc typically, 24 frames/sec\nMPEG or MP4 format uses a variety of techniques to \ncompress video\n\u25fc individual frames use techniques similar to JPEG\n\u25fc since much of successive frames are same, need \nonly store changes from frame to frame\nelements of MPEG are included in the ATSC \n(Advanced Television Systems Committee) \nstandard for digital TV\n\u25fc individual frames use techniques similar to JPEG\nother related formats are DVD & Blu -Ray\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 662348f5-c234-4aa6-acb9-51614f8e8536
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 223, "chroma:document": "ASCII movies\nfor a fun and creative \nexercise, make your \nown movies\neach frame is \"drawn\" \nusing characters \nfrom the keyboard\nframes are separated \nusing =====\nthe button will \"play\" \nthe movie, 5 \nframes/second\n14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 3cab60d3-2b80-48d2-adf1-7b2b6807cf04
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 224, "chroma:document": "Software Models\nwhen studying complex systems (e.g., weather, stock markets, voting), \nsoftware models provide a fast & cost -effective tool for gaining insights\n\u25fc computer simulations can be much faster than real-world counterparts\ne.g., can simulate centuries of climate change in seconds\n\u25fc can be much cheaper to simulate than to study the real-world system\ne.g., can try different investment strategies without risking real money\n\u25fc can control for parameters that are difficult to obtain reliably in real-world\ne.g., can speculate on how changes in demographics would affect an election\nwe will consider 2 examples of modeling real -world systems\n1. disease spread \n2. volleyball game\nsoftware models always make simplifying assumptions\n\u25fc must always be careful to examine the model and make sure that the \nsimplifications do not invalidate conclusions drawn from the simulations\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 17474fbd-5b90-4446-990d-b8fa461001bb
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 225, "chroma:document": "Disease Spread\nwhen there is a disease outbreak (e.g., COVID -19), the CDC and other health \norganizations build software models to \n\u25fc better understand and warn the public about the disease\n\u25fc study potential interventions (e.g., social distancing, vaccines)\nthese models can be very complex, taking into account:\n\u25fc transmission method, patient incubation period, population density, \u2026\na very simple model uses the basic reproduction number , R0: the number of \npeople that a patient will infect over the course of their infection  \n\u25fc if R0 < 1, then each patient infects fewer than 1 other (on average), so the disease \nwill eventually die out\n\u25fc if R0 = 1, then each patient infects exactly 1 other (on average), so the disease \nspreads steadily (known as an endemic)\n\u25fc if R0 > 1, then each patient infects more than 1 other (on average), so the disease \nspreads exponentially (known as an epidemic or pandemic)\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 706b8329-89eb-493d-888a-88b1e070659e
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 226, "chroma:document": "R0 Example\nsuppose a disease has R 0 = 2, 100 people infected:\n1. in 1st wave, those 100 patients infect 200 (2 per person on average)\n2. in 2nd wave, the 200 patients from wave 1 infect 400 \n3. in 3rd wave, the 400 patients from wave 2 infect 800\n     . . .\n10. in 10th wave, the 51,200 patients from wave 9 infect 102,400\n3\nestimated R0 for common diseases:\n\u25fc seasonal flu   R0 \u2248 0.9-2.1\n\u25fc Smallpox   R0 \u2248 7\n\u25fc Polio   R0 \u2248 7\n\u25fc Measles   R0 \u2248 18\n\u25fc COVID-19 in U.S., March 2020 R0 \u2248 4\n\u25fc COVID-19 in U.S., October 2020 R0 \u2248 2\n\u25fc COVID-19 in U.S., March 2021 R0 \u2248 0.9\nnote: R0 is not fixed \u2013 medical \ntreatments and behavior changes \ncan affect it\nfortunately, vaccines have been \ndeveloped for many highly \ncontagious diseases"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0ff003e2-c70d-491e-8963-0f98f8faa15a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 227, "chroma:document": "Disease Spread Example\nsimilar to Hailstone & compound \ninterest examples from Ch. X8\n\u25aa currentWave counter controls \nthe loop\n\u25aa currentCases calculates the \nnew cases each wave\n\u25aa totalCases sum keeps track of \nthe total number of cases\n4\nGraphical user interface, text\nDescription automatically generated"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: aab65d56-0120-4811-ad2d-a17db6f40060
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 229, "chroma:document": "Modeling Tradeoffs\nadvantages:\n\u25fc CONVENIENCE: software models can be executed anywhere sufficient computer \npower is available \n\u25fc SAFETY: since software models run on a computer, they pose no risk to patients \nor researchers\n\u25fc SPEED: the speed at which software models can be executed is only limited by \nthe complexity of the model and the processing power of the computer\n\u25fc CUSTOMIZABILITY: software models are typically built with parameters that \ncan be adjusted to test different conditions\n\u25fc REPRODUCABILITY: as they are fast and customizable, software models can \nbe repeated to confirm results and compare outcomes under different conditions\n6\ndisadvantages:\n\u25fc OVERSIMPLIFICATION: by their very definition, software models simplify the \nsystems they are modeling, potentially ignoring factors that may be important\n\u25fc INCORRECTNESS: as with any software system, software models can contain \nerrors that impact the results\n\u25fc OVERCONFIDENCE: due to flaws in design or implementation, model can"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 133f802d-9e60-46ef-a778-50740dab17b7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 229, "chroma:document": "\u25fc INCORRECTNESS: as with any software system, software models can contain \nerrors that impact the results\n\u25fc OVERCONFIDENCE: due to flaws in design or implementation, model can \nproduce results that look reasonable but are incorrect or misleading"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 79c99aa1-153f-47f2-9178-f75d3b5564bb
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 230, "chroma:document": "Nondeterministic Models\nthe R0 model of disease spread is deterministic\n\u25fc it follows rules that unambiguously determine the output\n\u25fc i.e., same inputs will always produce the same output\nmany real-world systems are too complex to model deterministically\n\u25fc instead, they utilize probabilities to capture unpredictable features\n\u25fc i.e., same input should produce similar but not necessarily identical results\n7\nconsider a nondeterministic model of disease spread\n\u25fc each day, an infectious patient has a certain probability of infecting those with \nwhom they come in contact\n\u25fc allows us to introduce more complex variables: locality & infectious period\n\u25fc e.g., once infected, a patient will be contagious for 4 days & have 20% probability \nof infecting those with whom they come in contact"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 66cf6b01-243a-45c0-97e6-a43c24d9a2c5
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 231, "chroma:document": "2-D Disease Spread\nthe user can control \n\u25aa the size of the grid\n\u25aa infection probability\n\u25aa contagious period\ninitially, there is a single \ninfected person at the \ncenter of the grid\ncan click a button to see:\n\u25aa a single day\n\u25aa a series of days (with \ndelays in between)\n8\nGraphical user interface, application\nDescription automatically generated"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9de34719-4c0f-4040-ada9-904215441c4c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 232, "chroma:document": "2-D Disease Spread\nwhite square: uninfected \nperson\nblack square: infect & \ncontagious person\ngray square: infected but \nno longer contagious\nthe simulation is highly \nsensitive to changes in \nthe infection rate & \ncontagious period\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f0fd1df0-c30e-49d4-8745-1ff36cbee815
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 233, "chroma:document": "Volleyball Simulations\nin 1998, FIVB switched the scoring system for international volleyball\n\u25fc old system: sideout scoring \u2013 only serving team can win a point\n\u25fc new system: rally scoring \u2013 a point is awarded on every rally\n\u25fc the goal was to make games more exciting and more consistent in length\nin conjunction, they extended games from 15 points to 25 points\n\u25fc the new game length was intended to maintain competitive balance\nHOW DID THEY DETERMINE THE NEW GAME LENGTH?\nfor our model:\n\u25fc assume each team has a ranking (1-100) that quantifies their strength\n\u25fc by comparing team strengths, can determine the likelihood of winning a rally \n  e.g., if team1 is 80 and team2 is 40, team1 twice as likely to win a given rally\n\u25fc to simulate a game, repeatedly simulate points and keep score\nthe game is over when a team reaches 25 points (must win by 2)\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 20f97090-a66a-4596-adc5-713cfbb57a9a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 234, "chroma:document": "Simulation Details\nthe following is a general layout of the simulation\nscore1 = 0;\nscore2 = 0;\n       \nwhile (GAME_NOT_OVER) {\n  DETERMINE_WINNER_OF_RALLY\n  if (TEAM1_WON_RALLY) {\n    score1 = score1 + 1;\n  }\n  else {\n    score2 = score2 + 1;\n  }\n         \n  DISPLAY_SCORE\n}\nneed to figure out the \nloop condition\nalso need to figure out \nhow to simulate a rally\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8b58f347-81f9-484b-a5ba-635ff6e26c30
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 235, "chroma:document": "Simulation Details\nif we ignore the win-by-2 rule, the loop test is straightforward\n  while (score1 < 25 && score2 < 25) {\nbe careful with loop tests \n\u25fc they are not stopping conditions, they are continuing conditions\n\u25fc the game continues as long as both teams are under 25 points\n12\nthe win-by-2 condition adds another possibility of continuing\n\u25fc continue if both teams are under 25 points OR within 1 point of each other\n while ((score1 < 25 && score2 < 25) ||  \n     (Math.abs(score1-score2) < 2)) {"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9133e697-f46e-4297-8e84-67f5f0ab3881
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 236, "chroma:document": "Simulation Details\nto simulate a single rally, we need to pick the winner probabilistically\n\u25fc if team1 is X% better, they should be X% more likely to win any given rally\n\u25fc we can simulate this using RandomInt (from the random.js library)\n1. generate a random integer in the range 1 to (strength1+strength2)\n2. if that random integer <= strength1, then team1 wins the rally\n3. otherwise, team2 wins the rally\n\u25fc e.g., suppose team1 has strength 50 and team2 has strength 50\nif pick a random number in 1\u2026100, it is equally likely to be 1..50 as 51..100\n\u25fc e.g., suppose team1 has strength 80 and team2 has strength 40\nif pick a random number in 1\u2026120, it is twice as likely to be 1..80 as 81-120\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7efd7714-6d1f-4187-a4a0-5cbbb3a94d6d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 237, "chroma:document": "Volleyball\n14\nTable\nDescription automatically generated"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 43f28d5d-c7d8-47cb-aec3-d2c3ce506978
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 238, "chroma:document": "Simulating Many Games\nwith any nondeterministic model, need to perform a large number of \nsimulations to obtain statistically meaningful results\n\u25fc with only a small number, lucky/unlucky streaks can greatly skew the results\n\u25fc e.g., 7 HEADS out of 10 coin flips would not shock you, 700 out of 1,000 should\nif we want to simulate thousands of games, we don't need to see \npoint-by-point scores\n\u25fc similar to roll stats example from Ch. X8, simply keep a counter of wins/losses and \ndisplay the final result when done\n15\n1. remove the statements from PlayGame that display the score\n2. instead, add an if statement at the end of the function that determines the winner \nand returns either 'team1' or 'team2'\n3. define a function that simulates a specified number of games (by calling PlayGame \ninside a loop) and keeps count of wins by team1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 59def98c-883c-44a6-9103-f82bea348c9a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 239, "chroma:document": "Volleyball\n16\nGraphical user interface, text\nDescription automatically generated"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 850fec1a-dc82-40c4-8c31-e16ece25612c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 240, "chroma:document": "Electricity and Switches\nmodern computers are powered by electricity, using electrical signals to store \nand manipulate information\nthe components of a computer require electrical power to carry out their \nassigned task\n\u25fc electricity generates the light that shines through a computer screen, \nilluminating the individual pixels that make up images and letters\n\u25fc electricity runs the motor that spins the hard-drive disk, allowing information to \nbe accessed\n\u25fc main memory and CPU employ electrical signals to store and manipulate data\n\u25fc bit patterns are represented by the presence or absence of electrical current \nalong a wire\n1"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9bac215d-6917-408f-8304-bc70cc2efa46
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 241, "chroma:document": "Electricity Basics\nelectricity is a flow of electrons, the negatively charged particles in atoms, \nthrough a medium\n\u25fc good conductors of electricity allow for the flow of electrons with little resistance \n(e.g., copper, silver, gold)\n\u25fc other elements, especially nonmetals, are poor conductors (e.g., carbon, oxygen)\nelectricity can be quantified in amperes or voltage\n\u25fc amperes gauge electron flow: 1 amp is equal to 6.24 quintillion electrons flowing \npast a given point each second\n\u25fc voltage measures the physical force produced by the flow of electrons: standard \nhousehold in United States has 110 to 120 volt outlets\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 68115160-fd90-4689-9280-a02d2a210168
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 242, "chroma:document": "Switches\nthe most basic tool for controlling the flow of electricity is a switch \n\u25fc a switch can be flipped to connect or disconnect two wires, thus regulating the \nflow of electricity between them\n3\nexample: a light switch on a wall \nserves as an intermediary \nbetween the power line \nentering your home and the \noutlet that operates a lighting \nfixture\n\u25fc if the switch is turned on, \nthen the wires that link the \noutlet to the power line are \nconnected, and the lighting \nfixture receives electricity\n\u25fc if the switch is turned off, \nthen the connection is \ninterrupted, and no power \nreaches the outlet"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: ac164e02-294e-408f-b7de-fee95e1491b5
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 243, "chroma:document": "Transistors\nas we saw in Chapter C4, advances in switching technology have defined the \ngenerations of computers\n\u25fc 1930\u2019s \u2013 electromagnetic relays served as physical switches, with on/off \npositions controlled by the voltage to a magnet\n\u25fc 1940\u2019s \u2013 vacuum tubes replaced relays, which were faster (since no moving \nparts) but tended to overheat and burn out frequently\n\u25fc 1948 \u2013 the transistor was developed by Bardeen, Brattain, and Shockley\n\uf070 a transistor is a solid piece of metal attached to a wire that serves as a \nswitch by alternatively conducting or resisting electricity\n\uf070 transistors allowed for the development of smaller, faster machines at a \nlower cost\n4\nsemiconductors are metals that can be \nmanipulated to be either good or bad conductors \nof electricity\n\u25fc the first transistors were made of germanium and \ngold, but modern transistors are constructed from \nsilicon\n\u25fc through a process known as doping, impurities are \nadded to a slab of silicon, causing the metal to act"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c66fc24d-e571-41ca-b223-31b9b48138c1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 243, "chroma:document": "gold, but modern transistors are constructed from \nsilicon\n\u25fc through a process known as doping, impurities are \nadded to a slab of silicon, causing the metal to act \nas an electrical switch"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d1df8b1e-16a0-41c6-b4e1-72e13ba0fe6d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 244, "chroma:document": "Transistors as Switches\na PMOS transistor is positively doped, so that the switch is ON (or closed) \nwhen there is no current on the control wire, but OFF (or open) when \ncurrent is applied\n5\ntransistors can be combined with other electronic components to form \ncircuits, which control the flow of electricity in order to produce a particular \nbehavior"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: fd20e2f1-8d93-4b4d-9e08-d2de32ff135b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 245, "chroma:document": "From Transistors to Gates\nconsider the following circuit combining a PMOS transistor with a power \nsupply\n\u25fc note: the power supply is connected to the transistor input wire, the circuit input \nis connected to the control wire\n\u25fc if no current (0 volts) is applied to the circuit input wire, the transistor will be ON \nto allow current to travel on the output wire\n\u25fc if current (5 volts) is applied to the circuit input wire, the transistor will be OFF \nso no current reaches the output wire\n\u25fc the result is that the output is the opposite of the input \n\u25fc this circuit known as a NOT gate\n6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: dda5672d-22a7-4091-a233-363d9ef10116
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 246, "chroma:document": "Gates and Binary Logic\nthe term \u201cgate\u201d suggests a simple circuit that controls the flow of electricity\n\u25fc in the case of a NOT gate, the flow of electricity is manipulated so that the \noutput signal is always opposite of the input signal\n\u25fc we can think of a gate as computing a function of binary values\n\uf070 0 represents no current;  1 represents current\n\uf070 the symbol to the left (triangle w/ circle) is often used to denote a NOT gate\n\uf070 the truth table to the right describes the mapping of input to output\n7\nnote: NOT gates invert voltages in the same way that the JavaScript NOT \noperator (!) inverts Boolean values\n\uf070 0 corresponds to false;  1 corresponds to true"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 05015d5f-96e5-4ee2-b80d-4eaecfb7a63a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 247, "chroma:document": "Gates and Binary Logic\nmany other simple circuits can be defined to perform useful tasks\n\u25fc AND gate \u2013 produces voltage on its output wire if both input wires carry voltage\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1c664c1f-65c7-4617-bb60-88c2eecc69ad
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 248, "chroma:document": "Gates and Binary Logic\n\u25fc OR gate \u2013 produces voltage on its output wire if either input wire carries voltage\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f040f2ca-45c1-4c45-bacf-d84edf32eeea
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 249, "chroma:document": "From Gates to Circuits\nbasic logic gates can be combined to build more advanced circuitry\nexample: adding two binary numbers\nalthough binary addition is relatively straightforward, designing a circuit for \nadding binary numbers is quite complex\n\u25fc instead of starting at the transistor level, we can use AND, OR, and NOT gates\n\u25fc focus first on the addition of 2 bits\n\uf070 requires two input lines, two output lines (sum of inputs and possible carry)\n\uf070 the circuit consist of four gates (known as a half-adder)\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 5e0c62cf-225b-4b39-adaf-9f570a2bbd9d
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 250, "chroma:document": "Full-adder Circuit\nthe term \u201chalf-adder\u201d refers to the fact that when you add binary numbers \ncontaining more than one bit, summing the corresponding bit pairs by \ncolumn is only half the job\n\u25fc you must also consider that a bit might be carried over from the previous \naddition\n\u25fc using half-adders and logical gates as building blocks, we can design a circuit \nthat takes this into account (known as a full-adder)\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d950639e-bfe1-44a0-90ab-60a62b09bd5c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 251, "chroma:document": "4-bit Adder Circuit\nusing full-adders as building blocks, we can design a more complex circuit \nthat sums two 4-bit numbers\n\u25fc since a full-adder is required to add each corresponding bit pair together (along \nwith possible carry), the circuit will need four full-adders wired together\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8ae41621-c41d-4529-b9df-264473be6096
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 252, "chroma:document": "Designing Memory Circuitry\nmain memory and registers within the CPU are composed of circuitry\n\u25fc whereas adders manipulate inputs to produce outputs, memory circuits must \nmaintain values over time\n\u25fc the simplest circuit for storing a value is known as a flip-flop \n\uf070 it can be set to store a 1 by applying current on an input wire\n\uf070 it can be reset to store a 0 by applying current on another input wire\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: fa9b1c28-f876-4d23-86c7-9eb5d76e8abd
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 253, "chroma:document": "Flip-flop Circuit\na flip-flop stores a value by feeding the output currents back into the circuit\n\u25fc the value is maintained by current flowing around and around the circuit\n\u25fc a current burst on the Set wire produces output current, which then cycles\n14\n\u25fc a current burst on the Reset wire produces no output current"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 7f417fd3-3eb4-4b59-83ce-8fadef930c90
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 254, "chroma:document": "From Circuits to Microchips\ninitially, circuits were built by wiring together individual transistors\n\u25fc this did not lend itself to mass production\n\u25fc even simple circuits consisting of 10s or 100s of transistors were quite large\n15\nin 1958, two researchers (Jack Kilby and Robert Noyce) independently \ndeveloped techniques that allowed for the mass -production of circuitry \n\u25fc circuitry (transistors + connections) is layered onto a single wafer of silicon, \nknown as a microchip or chip\n\u25fc since every component is integrated onto the same microchip, these circuits \nbecame known as integrated circuits\nthe production of integrated circuits is one of the \nmost complex engineering processes in the world\n\u25fc transistors can be as small as 5 nanometers    \n(~ 1/16,000th the width of a human hair)\n\u25fc since a hair or dust can damage circuitry, chips \nare created in climate-controlled \"clean rooms\""}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 874cdd1c-c267-420b-b1f0-1784e05fd8fc
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 255, "chroma:document": "Manufacturing ICs\n16\n1. initially, the silicon chip is covered with a semiconductor material, then coated with a layer of \nphotoresist (a chemical sensitive to UV light)\n2. transistors are then printed onto a mask (transparent surface on which an opaque coating has been \napplied to form patterns)\n3. UV light is filtered through the mask, passing through the transparent portions and striking the \nsurface of the chip in the specified pattern\n4. the photoresist exposed to UV light reacts, hardening the layer of the semiconductor below it\n5. the photoresist that was not exposed and the soft layer of semiconductor below are etched away, \nleaving only the desired pattern of semiconductor material on the surface of the chip\n6. the process can be repeated 40-60 times depositing multiple layers"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 43480e3c-bcee-41e9-a716-002f81cb211a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 256, "chroma:document": "Packaging Microchips\nsince a silicon chip is fragile, the chip is encased in plastic for protection \n\u25fc metal pins are inserted on both sides of the packaging, \n facilitating easy connections to other microchips\nimpact of the microchip\n\u25fc lower cost due to mass production \n\u25fc faster operation speed due to the close proximity of circuits on chips\n\u25fc simpler design/construction of computers using prepackaged components\n17\nMoore\u2019s Law describes the \nremarkable evolution of \nmanufacturing technology\n\u25fc Moore noted the # of \ntransistors on a chip \ndoubles every 1-2 years\n\u25fc has held true for 50 years\n\u25fc technology has slowed, but \nthe pattern continues to \nhold due to multicore \nprocessors"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cc4d126e-4399-47a3-b493-7fe9fcb3b079
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 257, "chroma:document": "Most impactful inventions\nscience writer Daniel Stone ranked the 10 most important/impactful inventions\n\u25fc do you agree with his list?\n(Daniel Stone. \u201cThe 10 Inventions that Changed the World.\u201d National Geographic Magazine, June 2017.)\n1\nmore than any other invention, computer technology is still evolving, which \nmeans that it continues to impact society in new ways"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: a5807107-2467-4b93-a3e4-594ead005be9
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 258, "chroma:document": "Impact on Money\n40+ years ago, the U.S. was a cash -based society\n2 tech developments changed that\n1. cheap, portable devices for processing credit card \ntransactions\n2. expansion of the Internet\n\uf070 banks could treat money as numbers in a file\n\uf070 led to expansion of ATMs, debit cards, online banking\nmany Americans now live virtually cash -free\n\u25aa in 2019, 39 billion credit card transactions, 10 billion ATM transactions\n\u25aa in 2020, most individuals carried less than $40\ncryptocurrencies like Bitcoin are growing in popularity\n\u25aa market-based, not backed by government or bank\n\u25aa offers complete anonymity, potentially tax free\n\u25aa very volatile, not clear if will be widely accepted\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d76a31d8-a088-4b83-ad33-9280a364a64a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 259, "chroma:document": "Negatives: debt & security\nthe convenience of ATMs, debit/credit cards has led to a debt crisis for many\n\u25fc avg. credit card interest rate: 16%\n\u25fc by comparison: 30-year mortgage (2.8%), 5-year CD (0.31%)\n2021 credit card debt in U.S. totaled $807 billion\n\u25fc avg. household credit-card debt: $6,270\nelectronic money meant fewer muggings, but introduced identity theft & fraud\n\u25fc nearly half of Americans experienced in 2020, total loss of $712 billion\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 97643bb3-b4f0-4bd5-80ae-228f16587a3a
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 260, "chroma:document": "Computers in Everyday Tasks\nmodern life also depends on thousands of less obvious, hidden computer \napplications\nembedded processors are computer chips that are built into appliances and \nmachinery to control their workings\n\u25fc they account for more than 98% of all computer processors\n\u25fc modern homes contain hundreds of embedded processors\n\uf070 in ovens, television remote controls, cordless phones, automatic thermostats, \u2026\n\u25fc automobiles employ embedded processors to control a wide variety of \ncomponents\n4"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 23a81210-a450-4135-9b22-4c041b6472d2
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 261, "chroma:document": "Computers in Everyday Tasks\nsociety has also been affected by the \navailability of personal computers \nand easy-to-use software \n\u25fc software can enable people to \naccomplish tasks previously \nreserved for highly trained \nprofessionals, e.g.,\n\uf070 word processing and desktop \npublishing software\n\uf070 video editing software\n\uf070 tax preparation software\nsmart phones and hand -held \ncomputers have driven the \ndevelopment of mobile apps\n\u25fc in June 2021, Apple's App Store listed \n2.2 million apps, Google's Play Store \nlisted 3.4 million apps\n\u25fc Amazon's Kindle & Sony's Reader \nenable downloading and reading \nelectronic books\n5"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: cf84e258-e1ef-4b2d-b102-549fb7dbe328
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 262, "chroma:document": "Negatives: overreliance\nas society becomes dependent on complex, computer -based products and \nservices, the effects of errors or system failures become far -reaching\ncomputer-system bugs can produce dire consequences\n\u25fc from 1985-1987, 4 cancer patients died from radiation overdoses due to a single \ncoding error in medical equipment software \n\u25fc in 1991, 28 soldiers were killed by a Scud missile because a software \nerror(involving number roundoff) caused the Patriot missile to miss its target\n\u25fc in 1999, NASA\u2019s Mars Climate Orbiter went off course and was destroyed in the \nMartian atmosphere (the problem was due to software inconsistencies which \nused different measurement conversions, e.g., English vs. Metric)\n\u25fc in 2010, Toyota recalled more than 400,000 hybrid due to faulty anti-lock brake \nsoftware (estimated cost exceeds $6 billion)\n\u25fc in 2012, Knight Capital group lost $461 million in 30 minutes due to a bug in \ntheir online trading software"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d22aa6c9-54cd-4ec8-9ea9-4e8c69f0e68b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 262, "chroma:document": "software (estimated cost exceeds $6 billion)\n\u25fc in 2012, Knight Capital group lost $461 million in 30 minutes due to a bug in \ntheir online trading software\n\u25fc from 2016-2019, self-driving cars have caused 6 fatalities\nto avoid errors, various software design and testing methodologies are used\n\u25fc however, as the size and complexity of the software grows, design and testing \nbecome exponentially more difficult\n\u25fc Windows 2000 \u2013 35 million lines of code, 63,000 known bugs 6"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 83ac8097-acc6-4e18-9e87-fed1df3d678b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 263, "chroma:document": "Internet/Web for Information\nmany users utilize the Internet/Web as an information source\nonline resources are quickly replacing (or complementing) traditional sources \nof information\n\u25fc Web sites can be updated 24 hours/day, can report on breaking stories\n\u25fc text can be integrated with other types of media\n\u25fc the immediacy of online delivery system is especially appealing\nindependent media organizations have utilized the Web to present stories and \nopinions that might not otherwise reach a mainstream audience\nin order to compete, many newspapers/magazines now offer online services\n7"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f0b300d4-cc88-4b72-aa69-f401b081e27b
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 264, "chroma:document": "Internet/Web for Information\nthe majority of Web pages are unique resources created by individuals and \nprivate organizations\n\u25fc you can find Web content on virtually any topic\n\u25fc to help navigate the vast sea of information, search engines automatically \ncatalog Web pages and allow users to search for data by topic or keywords\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0e9dc70f-78dd-4c10-955e-e8bac3152ca2
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 265, "chroma:document": "Negatives: fake news\nthe openness of the Web allows for a diversity of views to be presented\n\u25fc but, not all views are fact-based or unbiased\n\u25fc misinformation or disinformation (intentional misinformation) are widespread\nAmericans rated online misinformation a major problem (2019)\n\u25fc only 26% were very confident in their ability to recognize fake news\n9"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8c61e80f-0170-442c-a1d6-7e42c2c299ad
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 266, "chroma:document": "Negatives: info overload\nthe impressive range of information available online can be viewed as a \nstrength, but it is also one of the greatest weaknesses\n\u25fc as of 2019, Web estimated in hundreds of billions of pages (maybe much more)\n\u25fc finding specific info can be hard, even with search engines\nsince most Internet/Web content lacks editorial review, it is up to the user to \nevaluate its credibility\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0a04c40b-b5c6-4b78-878b-7a6dd60d6106
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 267, "chroma:document": "Internet/Web for Communication\nmany users were originally drawn to the Internet by the availability of \nelectronic mail and newsgroups\n\u25fc in 2021, 4.1 billion active email users worldwide (1.8 billion used Gmail)\n\u25fc 319.6 billion email messages were sent/received each day (~50% spam)\nincreasingly, the Internet is being \nused for social networking\n\u25fc in 2021, 97% of Americans own \ncell phone, 85% own smartphone\n\u25fc 23 billion texts sent in 2020\nsocial media sites have grown in \npopularity\n1. Facebook\n2. YouTube\n3. Whatsapp\n4. WeChat\n5. Instagram\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f1875f18-3f07-42f8-9ce6-fe70b47809b5
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 268, "chroma:document": "Negatives: addiction\nstudies have shown social media can be physically & emotionally addictive\n\u25aa in 2018, average adult spent 6 hours/day on connected devices\n\u25aa assuming 7 hours of sleep, that's 35% of waking day\nnomophobia: fear of being detached from mobile phone connectivity\n12"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0f6b0f07-5dd2-4d29-9d67-06b70d6d7354
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 269, "chroma:document": "Negatives: cyberbullying\npreteen & teen use of social media has led to bullying via text & social media\n\u25aa annual survey in U.K. identifies negative consequences\n\u25aa suicide rate for teen girls in U.S. increased 65% from 2010 -2015, \ncoinciding with rise in smartphone social media use\nalso, texting while driving is 6x more dangerous than drunk driving\n13"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c3dd936c-dd37-4011-847a-d5a07189e1e4
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 270, "chroma:document": "Internet/Web for Commerce\nanother popular function of the Web is to facilitate electronic commerce, \nor e-commerce\n\u25fc businesses have recognized the Web\u2019s potential as an advertising medium, \nand as a tool for reaching new customers\n\u25fc some business sites are information-based (providing background on the \ncompany or product descriptions)\n\u25fc other business sites are transaction-based (allowing customers to purchase \nproducts or services directly)\nonline shopping has numerous advantages for the consumer\n\u25fc you can make purchases from your home at any time\n\u25fc it is easy to comparison shop\n\u25fc many online retailers, such as Amazon.com, allow consumers to research \nproducts as well as purchase them\n14"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f920f9ea-2c6c-438c-b649-c510e90835a3
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 271, "chroma:document": "Internet/Web for Commerce\ntotal online sales in 2020: $861 billion\nsome of the most successful sites are \nonline offshoots of traditional retailers\n\u25fc Walmart, Best Buy, PetSmart\nAmazon is by far the dominant force\n\u25fc more than 1/3 of ecommerce sector\n15\nthe Web has provided a new advertising channel for businesses\n\u25fc e-commerce sites charge fees for hosting advertising banners on Web pages\n\uf070 banner ads are clickable images that promote a company\u2019s product or service\n\uf070 users who click on the ad are directed to the company\u2019s Web site\n\u25fc the Web\u2019s structure allows for a direct connection between ads and related \npurchasing interfaces"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 77f59e31-6227-45a5-96a8-b55939e5f249
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 272, "chroma:document": "when using credit cards or shopping online, \nconsumers sacrifice privacy for the sake \nof convenience\n\u25fc companies maintain records of consumer \npurchases\n\u25fc private details can be inferred from \nshopping patterns\n\u25fc companies often sell customer profiles to \nmarketing firms\nWeb users can limit exploitation by \ninteracting only with reputable online \nbusinesses with privacy policies\n\u25fc such policies will explain what information \nis collected by the business and how that \ninformation is to be used (and shared)\n16\nNegatives: privacy"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f631eeb6-6e37-443b-8b56-1cd33fefc53c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 273, "chroma:document": "Negatives: security\nemail also raises privacy concerns\n\u25fc email messages travel through numerous routers, and each router represents a \nsecurity risk\n\u25fc when a message is received it is commonly stored in a file on the recipient\u2019s \ncomputer \u2013 there is a danger that unauthorized users might get access\nfew laws apply directly to electronic privacy\n\u25fc courts overwhelmingly favor employers over employees in privacy suits\n\u25fc unless explicitly stated, it is generally accepted that employers may access any \ncontent on company-owned machines\nincreasing occurrences of phishing attacks, in which people are fooled into \nsurrendering sensitive information via email\nprivacy is closely linked with security\n\u25fc with online transactions, credit card numbers or other personal information can \nbe intercepted and subsequently result in identity theft\n\u25fc encryption methods are commonly used to secure information transmissions, but \nonline fraud is still a continuing problem\n17"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: f0d1d5ee-83a2-4d0e-a9fb-99ec8f06b3b6
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 274, "chroma:document": "In conclusion\u2026\n\"Technology is, of course, a double edged sword. Fire can cook our \nfood but also burn us.\" \u2013  Jason Silva\noverall, changes brought about by computers have been extremely positive\n\u25fc there is no going back, computers are integrated into our lives\nnot all change is good, so you need to be informed and diligent about the \nchoices you make\n\u25fc social media allows people to connect over distances, but also can lead to \nphysical isolation and cyber-bullying\n\u25fc facial recognition can add security to banking, but can invade privacy and be \ndiscriminatory\nhopefully, this book has helped you better understand computer technology \nand its applications\n\u25fc will enable you to make informed choices about how you adopt technology\n18"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 97218ee7-d3a5-46e8-81bb-3d89f06a4374
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 275, "chroma:document": "The Digital Divide\naccess to computers & Internet/Web offers numerous advantages\n\u25aa education, citizenship, employment, \u2026\na troubling aspect of recent technological developments is that the benefits \nassociated with computers are not shared equally by all\n1\nlower income \nAmericans are \nfar less likely to \nbe online\nmany rely on \nsmartphones for \naccess"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: d86eba4d-0d09-4b3f-874e-7b3c77d29fd0
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 276, "chroma:document": "The Digital Divide (cont.)\nsimilarly, inequities occur for those with minority ancestry or disabilities\n2"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 1d932266-40b1-4254-8849-a86eb2b7d085
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 277, "chroma:document": "Homework Gap\nthe Digital Divide was highlighted during the 2020 COVID -19 pandemic\n\u25fc many schools closed and students were transitioned to online classes\n\u25fc those with home computers and reliable Internet were able to interact via \nvideoconferencing software & complete online assignments\n\u25fc those without were severely disadvantaged\n3"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 8208a21c-ce65-4baa-8838-18d1deef5cfd
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 278, "chroma:document": "Addressing Inequities\nin late 1990s, U.S. government prioritized Internet connectivity\n\u25aa by 2003, nearly all public schools were connected (vs. 35% in 1994)\n\u25aa most public libraries provide free access to Internet -enabled computers\n\u25aa programs (e.g., Lifeline, Emergency Broadband Benefit) subsidize \ncellular and Internet bills for low -income families\n4\nnumerous not-for-profit organizations address the Digital Divide\n\u25aa National Digital Inclusion Alliance coordinates hundreds of organizations\n\u25aa EveryoneOn connects low-income families with affordable Internet plans \nand devices\n\u25aa Computers for Kids takes old computers, refurbishes them, and donates \nthem to schools and needy kids\n\u25aa Boys and Girls Club of America offers educational programs"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 0d308d2a-2c63-4c33-9106-f312a54c4ff1
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 279, "chroma:document": "The Global Divide\nglobally, wealthier countries are more likely to have computers/Internet \nthe U.N. and World Economic Forum lead numerous initiatives\n\u25fc 2021 Generation Equality Forum raised $40 billion in new investments\nmany private sector initiatives as well\n\u25aa One Laptop Per Child has donated more than 3 million low-power laptops\n5\nin 2014, 3 countries \naccounted for half \nof all Internet traffic\n1. China (29%)\n2. U.S. (13%)\n3. Japan(8%)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c663b9df-e2a4-4c02-8b05-65a42bb82fea
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 280, "chroma:document": "Diversity in the Tech Sector\n6\ntech industry is one of the most dynamic & exciting sectors of the economy \n\u25aa no other industry has the same potential for rapidly taking ideas and turning \nthem into devices/applications that change the world\n\u25aa e.g., cell phones & smartphones widely adopted within 10 years\nmany applications were the brainchild of a single person or small team\n\u25aa Word Wide Web Tim Berners-Lee, 1990\n\u25aa Mosaic browser Mark Andreesen & Eric Bina, 1994\n\u25aa Google  Larry Page & Sergey Brin, 1998\n\u25aa Facebook  Mark Zuckerberg, 2004\n\u25aa Twitter  Jack Dorsey, 2006\n\u25aa Instagram  Kevin Systrom & Mike Krieger, 2010\nall these pioneers/innovators/entrepreneurs are white males\n\u25aa women and people of color have been and continue to be \nunderrepresented in the tech industry (especially in leadership)"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 9762fb98-3f1f-447c-a93b-fb4b0dc6ce8c
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 281, "chroma:document": "Success Stories\n7\ncertainly, there have been successful leaders and innovators\n\u25fc Jerry Lawson (1940-2011): led development of first \ncartridge-based video game, founded VideoSoft in 1980.\n\u25fc Marissa Mayer (1975-): first female engineer at Google, led \nin development of Google Maps, Google Earth & Street Maps. \nCEO of Yahoo! from 2012-2017.\n\u25fc Luis von Ahn (1979-): founded digital security company \nreCAPTCHA. Also founder and CEO of DuoLingo.\n\u25fc Whitney Wolfe Herd (1989-): founded Bumble, youngest \nwoman to take her company public on NYSE & youngest \nfemale self-made billionaire."}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 57365d4b-6196-447b-b346-a0a9c6a508b7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 282, "chroma:document": "Underrepresentation\nin 2020, women were > 50% of U.S. workforce, but only 26% of tech jobs\n\u25fc only 7% of Fortune 500 CEOs were women\neven greater underrepresentation for minority groups\n\u25fc Hispanic/Latinx Americans: 18% of workforce, 8% of tech jobs\n\u25fc African Americans: 13% of workforce, 5% of tech jobs\n8"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 89ea5f50-df6c-4981-967c-a6d6547bd082
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 283, "chroma:document": "Increasing Diversity\n9\ntech companies are addressing equity/diversity, but change has been slow\n\u25fc changing company culture to be more inclusive\n\u25fc changing hiring practices to bring in more diversity\n\u25fc creating mentoring programs for women & minority employees\none problem is that stereotypes & misinformation influence people when they \nare young\n\u25fc TV & movies perpetuate white/Asian male sterotypes\n\u25fc access to computers in schools is not equitable\n\u25fc among 2020 college graduates with major in computer science:\n\uf070 18% were women, 10% were Hispanic/Latinx, 9% were African American\nmany initiatives are focused on providing access/mentoring for young people\n\u25fc e.g., National Center for Women & Information Technology (NCWIT), AnitaB.org, \nCode.org, Black Girls Code, and Hispanics in Computing\n\u25fc AP CS Principles course launched in 2017, specifically designed to increase \nparticipation by women and minorities"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: c635670a-38df-44fe-abba-f02a7a777760
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 284, "chroma:document": "Benefits of Diversity\nstudies have shown numerous benefits of diversity in the workplace\n1. companies are more productive when teams are diverse in \nbackground/perspective\n2. different viewpoints & experiences produce a diversity of ideas, which \ncan encourage innovation\n3. an openness to workers who look and think differently means \noutstanding candidates who might have been overlooked are now \nhired \n4. a diverse workforce is better at understanding and responding to a \ndiverse client base\n5. the products designed and built by a diverse team tend to be higher \nquality and more equitable\ne.g., cell phone interfaces designed by men that are difficult to use by women \nwith smaller hands\ne.g., 5-year gap between release of Apple emojis and emojis with different \nskin tones\n10"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 78b9ec03-2e6a-44c7-bf1c-733eebd25bf7
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 285, "chroma:document": "Algorithmic bias\nalgorithmic bias occurs when faulty assumptions and poor design practices \nlead to software that discriminates\n1. in 2015, Amazon announced it was abandoning interview software that was \nproven to discriminate against women candidates\n2. in 2016, ProPublica published a report documenting how sentencing software \nused in courts discriminated against minority suspects\n3. in 2019, Science published a report documenting how hospital software for \nscreening patients discriminated against minority and low-income patients\n4. Several studies have confirmed that facial recognition software misidentifies \nwomen and people of color disproportionally, leading to more arrests due to use \nby law enforcement.\nin all these cases, algorithmic bias was not intentional\n\u2022 lack of diversity led to unquestioned assumptions & flawed development process\n11"}


created_at: 2024-10-30 06:47:10
topic: persistent://default/default/324d47be-ad32-4a1e-9705-fc4b5d133163
id: 386e5578-bd75-42d2-bc14-c685acf0b465
encoding: FLOAT32
metadata:
{"source": "001-merged.pdf", "page": 286, "chroma:document": "Bridging the Divide\nwhen combating any form of discrimination and inequity, awareness is the \nfirst step\nin the past decade, awareness of the Digital Divide has led to change\n\u25fc governments and companies are leading equity efforts\n\u25fc young women and people of color are being encouraged to consider future \ncareers in computing\n\u25fc recognition of toxic corporate cultures & unfair hiring practices are producing \nchange (albeit slowly)\n\u25fc recognition of the dangers of algorithmic bias is leading to new design and \ntesting methodologies\n12"}


