About This Document
The material in this course has been organized into 18 competencies. Each competency corresponds to a coherent chunk of understanding that can be studied, practiced, and demonstrated independently. Competency 0 is assessed through a series of reflective writings completed at various points throughout the course. The remaining competencies are evaluated through Competency Demos (CDs), with each CD covering multiple competencies. Students who do not demonstrate mastery of a given competency on the first attempt may meet with the course faculty to discuss what went wrong and retake only the questions for that competency
Competencies are listed in the order they are covered in the course, week by week. The CD that assesses each competency is noted in parentheses.
Ongoing — Professional Reflection
Competency 0 – Professional Reflection (Various written reflections)
Demonstrate the capacity to reflect on computer science teaching and learning as an ongoing professional practice, connecting course content to classroom context, personal growth, and evolving thinking about the role of CS education.
Week 1 – Bits and Bytes
Competency 1 – Binary and Numerical Encodings (CD #1)
Understand that a computer operates using collections of 0s and 1s (bits). Apply this knowledge to convert between a variety of numerical encodings.
- Convert an unsigned binary integer to its equivalent base-10 (decimal) value.
- Convert a base-10 integer to its equivalent unsigned binary representation.
- Convert a 4-bit (nibble-length) binary value to its equivalent hexadecimal digit.
- Convert a hexadecimal digit to its equivalent 4-bit binary value.
- Convert an 8-bit binary string into its decimal/fractional equivalent, assuming the first four bits store the integer and the second four bits store the fractional part.
Competency 2 – Data Representation (CD #1)
Understand that a computer operates using collections of 0s and 1s (bits). Apply this knowledge to common forms of media, discussing both storage structure and storage size.
- Explain bits and bytes and how they are organized. (Demonstrated through performance on encoding and calculation questions; not assessed independently.)
- Explain how the same sequence of bits can be interpreted as different types of data (numbers, images, sound, text, etc.) (Demonstrated through performance on encoding and calculation questions; not assessed independently.)
- Identify how ASCII encoding represents text as a sequence of bits, including why each character is stored as 8 bits despite ASCII being a 7-bit system, and what determines the size of an ASCII text file.
- Calculate the size in memory of an uncompressed ASCII text file.
- Identify the components of 24-bit photo encoding, including the role of pixels, color channels, and bit depth, and explain how those components relate to each other.
- Calculate the size in memory of an uncompressed 24-bit photo.
- Identify the components of digital sound encoding — including sampling rate, bit depth, and channel count — and explain how each affects the quality and size of a sound file.
- Calculate the size in memory of an uncompressed sound file given its duration, sampling rate (44,100 samples/sec), bit depth (16 bits), and number of channels (1 or 2).
- Calculate how many unique values can be stored in N bits.
- Explain why terms like kilo-, mega-, and giga- have two potential values/meanings.
Week 2 – Computer Hardware and Data Manipulation
Competency 3 – Logic Gates (CD #2)
Understand that the fundamental building blocks of computers are logic gates. Given their inputs, determine the output of a simple collection of common gates.
- Explain the general functionality of a(n) AND, OR, NOT, or XOR gate.
- Given two inputs to an AND, OR, or XOR gate, identify the output of the gate.
- Given one input to a NOT gate, identify the output of the gate.
- Given up to three inputs to a circuit consisting of a combination of up to three gates, identify the output of the circuit.
Competency 4 – Hardware Components (CD #2)
Identify the hardware components of a computer and describe their relationships and interactions.
- Define the purpose of the ALU, Control Unit, registers, program counter, instruction register, and bus, and the role each plays in the CPU.
- Explain how general-purpose registers, main memory, and secondary memory work together and their role in fetching and storing data.
- Explain the differences between mass storage, main memory, and general-purpose registers.
- Explain the role of a controller in the operation of a computer.
- Explain the role of a port in the operation of a computer.
- Identify at least three ports common to a PC or mobile device.
Competency 5 – Memory and Storage (CD #2)
Apply an understanding of computer memory and storage in various contexts including the CS classroom and daily life.
- Explain the key characteristics of magnetic storage (HDD), including how physical motion is involved in data retrieval and how that affects speed and appropriate use.
- Explain the key characteristics of optical storage (CDs, DVDs, Blu-ray), including how data is physically encoded and what makes it suitable for certain uses.
- Explain the key characteristics of flash storage (flash drives, SSDs, SD cards), including why the absence of moving parts matters.
- Given a scenario, identify which storage or memory type is most appropriate and identify the primary reason why.
- Explain why all three classes of secondary storage still coexist today, recognizing that each remains the best choice in certain contexts.
Competency 6 – The Fetch-Decode-Execute Cycle (CD #2)
Apply an understanding of a CPU's instruction set and the fetch-decode-execute cycle to various scenarios.
- Explain the role of the fetch-decode-execute cycle in the operation of a CPU.
- Describe what happens at each stage of the FDE cycle: what is fetched, what decoding means, and what execution involves.
- Explain how data moves between secondary storage, RAM, registers, and the ALU during program execution.
- Explain the differences between secondary storage, RAM, and registers in terms of speed, capacity, and role in the FDE cycle.
- Given a plain-English program using any combination of the following instructions — LOAD, STORE, ADD, SUB, MULT, DIV, MOVE — trace the execution and identify the value of a specified register or memory location upon completion.
Week 3 – Operating Systems
Competency 7 – OS Components (CD #3)
Understand the role and functionality of the components of an operating system.
- Given one of the following vocabulary terms, give a brief definition and explain how it applies in the normal operation of an operating system: job, queue, first-in first-out (FIFO), interactive processing, real-time processing, time-sharing, multiprogramming, multitasking, application software, system software, user interface, graphical user interface (GUI), shell, kernel, window manager, file manager, memory manager, directory (folder), device driver, scheduler, dispatcher, read-only memory (ROM), boot loader.
- Given a particular task performed by the computer, identify which component(s) of the operating system would be responsible for that task.
Competency 8 – OS Processes (CD #3)
Understand the role and functionality of the processes managed by the operating system.
- Explain how a modern multitasking system functions using appropriate vocabulary.
- Give a brief definition of and explain how each of the following applies in a modern OS: time slice, process switch (context switch), interrupt, semaphore, critical region, mutual exclusion, deadlock.
- Explain the concept of a process in modern operating systems, and clearly distinguish a process from a program.
- Explain why processes competing for nonshareable resources can lead to deadlock, and identify scenarios where this risk exists.
- Discuss the conditions necessary for deadlock to occur and methods operating systems employ to avoid it.
Competency 9 – OS Security (CD #3)
Understand the role and functionality of the operating system in addressing various security issues.
- Identify existing cybersecurity concerns and the OS security features designed to guard against them.
- Given one of the following vocabulary terms, provide a brief definition and explain how it applies: super user (administrator), privilege levels, privileged instructions.
- Discuss good password management techniques.
- Explain multi-factor authentication and why it improves security.
Week 4 – Networking
Competency 10 – Network Communication (CD #4)
Explain how a network consists of autonomous systems communicating through established protocols.
- Define both LAN and WAN, and identify which is which in a described scenario.
- Provide the definition of a bridge, repeater, switch, router, and access point.
- Given a description of a network and a particular piece of hardware, identify it as a bridge, repeater, switch, router, or access point.
- Explain the generic concept of a network protocol and its role in network communication.
- Explain client-server and peer-to-peer communication and compare the two.
- Briefly explain the use of a distributed system, computer cluster, grid computer, and cloud computer.
Competency 11 – Internet Transactions (CD #4)
Apply and explain network processes using common Internet transactions.
- Explain the differences between the Internet, the World Wide Web, and an intranet.
- Define ISP, tier-1 ISP, and tier-2 ISP.
- Given a URL or email address, identify its component parts including protocol, domain name, top-level domain, directory path, document name, username, and mail server domain.
- Identify common internet applications and servers and explain their purpose.
- Explain the role of DNS and give a general description of how a web page is requested and received by a browser.
- Explain the concept of ports in internet traffic.
- Explain the difference between TCP and UDP and why both are needed.
Competency 12 – Cybersecurity (CD #4)
Define and discuss various network-based cybersecurity problems and recommend security measures to address them.
- Define the following cybersecurity issues: malware, virus, worm, Trojan horse, spyware, phishing, and denial of service.
- Given a specific scenario, classify it as one of the above security issues.
- Explain how a firewall helps protect a computer.
Week 5 – Data, Databases, and Data Mining
Competency 13 – Data and the PPDAC Cycle (CD #5)
Understand what data is, how the data investigation cycle provides a framework for turning data into information, and how different types of data call for different tools.
- Explain the difference between data and information, and describe why a clear question is necessary to turn data into information.
- Identify the five stages of the PPDAC data investigation cycle (Problem, Plan, Data, Analysis, Conclusion) and describe what happens at each stage.
- Given a scenario, identify which stage of the PPDAC cycle is being performed.
- Distinguish between structured and unstructured data, and give examples of each.
Competency 14 – Databases and SQL (CD #5)
Recognize and explain the fundamental elements of relational database systems, including their roles, structure, functionality, and how they are queried.
- Explain why separate file-based data systems create problems of redundancy, isolation, and access control, and describe how database systems address each.
- Define the terms relation, tuple, and attribute and identify each in a given table.
- Explain the difference between a schema and a subschema, and describe a realistic scenario in which different users of the same database would have different subschemas.
- Define metadata and give an example of metadata associated with a familiar type of data.
- Explain what redundancy is in a database context, describe the update, deletion, and insertion anomalies it causes, and explain how splitting a relation into multiple relations resolves those problems.
- Given a single-relation database design with redundancy, identify the distinct concepts it is conflating and propose a multi-relation redesign.
- Identify the purpose of the SELECT, FROM, and WHERE clauses in a SQL query.
- Given a SQL query operating on a described database, state in plain English the question the query is answering.
- Identify the JOIN condition in a multi-relation SQL query and explain what it does.
- Distinguish between JOIN conditions and filter conditions in the WHERE clause of a SQL query.
- Explain how SQL querying connects to Stage 4 (analyze and explore) of the data investigation cycle.
Competency 15 – Data Mining (CD #5)
Recognize and discuss fundamental techniques of data mining.
- Explain how data mining differs from traditional database querying and from basic statistical analysis.
- Explain what a data warehouse is and why data mining is typically performed on ata warehouses rather than live operational databases.
- Define each of the six data mining techniques (class description, class discrimination, cluster analysis, association analysis, outlier analysis, and sequential pattern analysis) and give an example of each.
- Given a scenario describing a data analysis goal, identify which data mining technique is most appropriate and explain your reasoning.
- Explain why finding a pattern in data does not automatically make that pattern meaningful, and describe the role of human judgment in interpreting data mining results.
- Identify at least two ethical concerns raised by the use of data mining, particularly in educational contexts.
Week 6 – Artificial Intelligence
Competency 16 – AI Foundations, Agents, and Learning (CD #6)
Define and properly use the foundational vocabulary of artificial intelligence, with emphasis on agents, reasoning, search, and the landscape of machine learning.
- Define and provide examples for: agent, sensor, actuator, procedural knowledge, declarative knowledge, strong AI, weak AI.
- Identify examples of procedural and declarative knowledge.
- Distinguish between reflex behavior, goal-directed behavior, and learning behavior in an AI agent, and give an example of each.
- Explain what the Turing Test was designed to measure, why producing human-like output is not sufficient evidence of intelligence, and how this limitation applies to modern AI systems.
- Define and provide examples for: production system, state, children, state space, search tree, breadth-first search, depth-first search.
- Given a simple search problem, describe the order that nodes are visited using breadth-first search and depth-first search.
- Explain what a heuristic is and how it guides search more efficiently than uninformed search.
- Define and distinguish between supervised learning, unsupervised learning, and reinforcement learning, and give a real-world example of each.
Competency 17 – Supervised Learning: Decision Trees and Neural Networks (CD #6)
Understand how supervised learning systems are built and evaluated, with depth on two major techniques: decision trees and artificial neural networks.
- Explain what a decision tree is, how it classifies data, and how it is built from labeled training examples.
- Explain what overfitting is and why it is a problem in machine learning.
- Explain the concept of a perceptron: inputs, weights, weighted sum, threshold, and output.
- Given a perceptron with specified weights and threshold, calculate its output for a given set of inputs.
- Explain how positive and negative weights allow a perceptron to model inputs that excite or inhibit a response.
- Describe the layer structure of an artificial neural network: input layer, hidden layer(s), and output layer.
- Explain how a neural network is trained: labeled examples, forward pass, error measurement, weight adjustment, and repetition.
- Explain what deep learning is and how increasing hidden layers changes what a network can learn.
- Explain the tradeoff between the power of deep neural networks and their lack of interpretability compared to decision trees.