Computer Science and Entrepreneurship (Grade 11) (Riphah)
Grade Levels: Grade 11
Educational System: STEM
This course provides a comprehensive introduction to modern software development, Python programming, algorithmic thinking, and digital entrepreneurship. Students will explore core computer science concepts including data structures and analytics, alongside emerging technologies like cloud computing and blockchain, while developing the ethical and professional skills required in the digital age
#Software_Development Life Cycle#Python_Programming#Algorithms#Data_Structures#Data_Analytics#Cloud_Computing#Blockchain#Digital_Literacy#Design_Thinking#Entrepreneurship
1. Explain the software development process, including the stages of the Software Development Life Cycle (SDLC ), software development methodologies, and quality assurance practices used to produce reliable software.
Learning Targets:
1. Define software development and describe the objectives and activities of each SDLC stage, from requirements analysis through design, coding, testing, and deployment.
2. Differentiate between the Waterfall model and Agile methodology, identifying the conditions under which each is most appropriate.
3. Interpret Unified Modeling Language (UML) diagrams to represent the structure and behaviour of a simple software system.
4. Outline a basic software project plan that includes timelines, estimated costs, and identified risks.
5. Identify quality assurance techniques and common software design patterns that help ensure software standards and maintainability.
Modules
1. Software Engineering Foundations and the SDLC
1. 1. Software Development: Roles, Context, and Professionalism
Learning Outcomes:
1. Define software development and classify common application types (web, mobile, desktop, embedded) with one real example for each type.
2. Identify key team roles (developer, tester, business analyst, product owner, scrum master) and summarize two core responsibilities for each.
3. Differentiate product development from project delivery by mapping goals, timelines, and success criteria for a school-focused app scenario.
4. Analyze a technology scenario for ethical risks (privacy, accessibility, security, plagiarism) using a simple checklist and document mitigation actions.
5. Demonstrate professional communication by drafting a clear problem statement and acceptance criteria for a classroom software idea.
6. Evaluate the societal impact of a proposed digital solution by listing at least three potential benefits and two potential harms.
1. 2. SDLC Stages and Core Deliverables
Learning Outcomes:
1. Describe the objectives, typical activities, and outputs of each SDLC stage: requirements, design, implementation, testing, deployment, and maintenance.
2. Sequence SDLC stages correctly and justify the order using a real-world example (e.g., a School Club Manager app).
3. Map common artifacts (requirements document/user stories, UML diagrams, code, test plan, release notes) to the SDLC stage that produces them.
4. Define stage entry and exit criteria and align them with quality gates for a small classroom project.
5. Construct a stage–deliverable matrix for a sample app using a shared document (e.g., Google Docs) and share it with peers for feedback.
6. Evaluate the pros and cons of overlapping stages (incremental) versus strict phase gates (waterfall-like) for a small team.
2. Requirements Analysis and UML Modeling
2. 1. Eliciting and Specifying Requirements
Learning Outcomes:
1. Draft at least five stakeholder interview questions that elicit functional and non-functional requirements for a school-oriented app.
2. Construct clear, testable requirements or user stories using the SMART/INVEST criteria and attach acceptance criteria.
3. Prioritize a small backlog using MoSCoW (Must/Should/Could/Won’t) and justify each priority decision.
4. Validate requirements by creating a simple checklist and conducting a peer walkthrough to detect ambiguities.
5. Translate top-priority requirements into concise acceptance tests that align with user needs.
6. Organize requirements in a shared tool (e.g., Google Sheets or Trello) and link each to its acceptance criteria.
2. 2. UML Essentials: Use Case and Activity Diagrams
Learning Outcomes:
1. Interpret a use case diagram by identifying actors, system boundary, and primary use cases for a given scenario.
2. Draw a use case diagram for a simple system (e.g., Library Checkout) using a diagramming tool (draw.io/Lucidchart) and label includes/extends where appropriate.
3. Map actor goals to use cases and write brief use case descriptions (main success path and one alternate path).
4. Construct an activity diagram for a core workflow and annotate decision points, parallel activities, and start/end nodes.
5. Evaluate diagram completeness by checking traceability between priority requirements and use cases/activities.
6. Revise diagrams based on peer feedback to improve clarity, correctness, and consistency.
2. 3. UML Structure and Behavior: Class and Sequence Diagrams
Learning Outcomes:
1. Interpret a class diagram by identifying classes, attributes, operations, and relationships (association, aggregation, composition, inheritance).
2. Sketch a basic class diagram for the sample system and justify chosen relationships with short notes.
3. Create a sequence diagram for a key use case, labeling lifelines, messages, and activation bars.
4. Check consistency between class and sequence diagrams by aligning messages to operations and data to attributes.
5. Annotate multiplicities and visibility where appropriate to reflect real constraints in the model.
6. Evaluate diagrams against requirements to ensure key entities and interactions are represented without overcomplication.
3. Development Methodologies: Waterfall and Agile in Practice
3. 1. Plan-Driven Delivery with Waterfall
Learning Outcomes:
1. Outline Waterfall phases and specify the primary document or artifact produced in each phase for a sample project.
2. Construct a simple Gantt chart with milestones and dependencies for a 6–8 week classroom project using a spreadsheet or free tool.
3. Analyze change risk by identifying three consequences of late requirement changes in a plan-driven approach.
4. Select Waterfall for appropriate contexts (e.g., fixed scope, strict regulation) and justify the selection using a decision checklist.
5. Prepare a phase review (gate) checklist that defines entry/exit criteria for moving to the next phase.
6. Evaluate a sample Waterfall plan for feasibility given team size, time, and tool constraints.
3. 2. Agile Fundamentals: Scrum and Kanban
Learning Outcomes:
1. Summarize Agile values and principles and relate each to a concrete classroom practice (e.g., short feedback cycles).
2. Compose at least eight well-formed user stories with INVEST qualities and attach acceptance criteria.
3. Organize a product backlog and plan a one-week sprint by selecting stories, defining a sprint goal, and estimating effort (story points/T-shirt sizes).
4. Construct a Kanban board in Trello (To Do, Doing, Done) and move cards through the workflow during a simulated sprint.
5. Facilitate short daily stand-ups by reporting yesterday’s progress, today’s plan, and blockers for a team scenario.
6. Decide when Agile is most appropriate (e.g., evolving requirements) and defend the choice with a criteria-based rationale.
3. 3. Selecting and Tailoring a Methodology
Learning Outcomes:
1. Build a decision matrix comparing Waterfall and Agile across criteria such as scope stability, stakeholder availability, and risk.
2. Evaluate trade-offs (documentation vs. adaptability, upfront design vs. continuous design) for the sample project.
3. Recommend a methodology (or hybrid) for a given scenario and justify the choice in a short written brief.
4. Map chosen practices (reviews, sprints, gates) to SDLC stages to ensure end-to-end coverage.
5. Define team working agreements (definition of done, meeting cadence, tooling) aligned with the selected approach.
6. Review a peer team’s selection and provide constructive feedback using an evaluation rubric.
4. Project Planning: Scope, Timeline, Cost, and Risk
4. 1. Scoping, Work Breakdown, and Estimation
Learning Outcomes:
1. Draft a concise project scope statement that defines objectives, boundaries, and key assumptions for a classroom app.
2. Decompose scope into a Work Breakdown Structure (WBS) with tasks grouped by feature or SDLC stage.
3. Estimate task sizes using T‑shirt sizing or story points and document the rationale for each estimate.
4. Arrange tasks with dependencies and construct a simple timeline, highlighting the critical path at a high level.
5. Plan team responsibilities by assigning owners and setting task start/end dates in a shared tracker.
6. Review estimates after a short simulation and adjust based on observed velocity or throughput.
4. 2. Budgeting and Resource Planning
Learning Outcomes:
1. Estimate direct and indirect costs for a small project (tools, hosting, training, contingency) and document assumptions.
2. Create a simple project budget in a spreadsheet and allocate funds by phase or feature.
3. Plan resource utilization by mapping team members to tasks and balancing workload over the timeline.
4. Evaluate make-vs-buy or reuse decisions (e.g., using an open-source library) and justify cost/benefit trade-offs.
5. Define a basic communication plan (audiences, channels, frequency) to keep stakeholders informed.
6. Set measurable quality goals (e.g., defect thresholds, test coverage targets) and link them to planned activities.
4. 3. Risk Management and Change Control
Learning Outcomes:
1. Identify at least eight project risks across categories (schedule, scope, quality, security, resources) using a brainstorming checklist.
2. Score risks by probability and impact, and produce a ranked risk register with owners and due dates.
3. Design mitigation and contingency actions for the top five risks and schedule them into the project plan.
4. Create a simple change request template and outline a decision process for accepting or rejecting changes.
5. Track risks and changes over time using a shared tool (e.g., Trello labels or spreadsheet filters).
6. Evaluate project health weekly by summarizing risk status, outstanding changes, and corrective actions.
5. Quality Assurance and Maintainability
5. 1. Testing Fundamentals: From Unit to User Acceptance
Learning Outcomes:
1. Differentiate unit, integration, system, and user acceptance testing and select the appropriate level for a given requirement.
2. Design test cases using equivalence partitioning and boundary value analysis for two sample inputs.
3. Create a lightweight test plan that maps tests to acceptance criteria and defines pass/fail conditions.
4. Implement basic unit tests in Python or pseudocode for a small function and run them locally or in an online IDE.
5. Record test results in a table and summarize defects found with clear reproduction steps.
6. Assess test completeness by checking coverage of positive, negative, and edge cases against requirements.
5. 2. Reviews, CI Concepts, and Defect Management
Learning Outcomes:
1. Conduct a peer code or document review using a checklist and provide actionable feedback comments.
2. Write a high-quality bug report that includes steps to reproduce, expected vs. actual results, severity, and priority.
3. Triage a small set of defects and schedule fixes based on impact and effort.
4. Configure a simple continuous integration workflow using a template (e.g., GitHub Actions) to run linters or tests on push, conceptually or with guidance.
5. Track defects to closure using GitHub Issues or Trello, linking each to its originating requirement or test.
6. Analyze basic quality metrics (open defects, mean time to fix) and recommend one improvement action.
5. 3. Design Principles and Introductory Patterns
Learning Outcomes:
1. Apply core maintainability principles (KISS, DRY, Single Responsibility) to refactor a small code or pseudocode sample.
2. Recognize common code smells (long method, duplicate code, large class) and propose targeted refactorings.
3. Describe beginner-friendly patterns (Singleton, Observer, Model–View–Controller) and match each to a simple problem scenario.
4. Select an appropriate pattern for a given requirement and justify the choice with expected benefits and trade-offs.
5. Document a mini design decision record that links a principle/pattern to quality goals (readability, testability).
6. Evaluate maintainability by reviewing naming, modularity, and comments against a short style guide.
2. Write structured Python programs that use variables, data types, operators, control structures, functions, and built-in data structures to solve well-defined problems.
Learning Targets:
1. Set up a Python development environment and write basic programs using correct syntax, variables, data types, and input/output operations.
2. Apply arithmetic, comparison, and logical operators in expressions, observing operator precedence to produce correct results.
3. Implement decision-making statements and loops to control the flow of a program.
4. Construct reusable functions and manipulate lists using built-in methods such as append, remove, sort, and slicing.
5. Handle exceptions and perform basic file read/write operations to make programs robust.
Modules
1. Python Foundations: Environment, Syntax, and Basic Programs
1. 1. Set Up Your Python Development Environment
Learning Outcomes:
1. Install and verify Python 3.x on Windows/macOS/Linux by running python --version in a terminal.
2. Configure a code editor (VS Code or Replit) with Python extensions and interpreter settings to enable linting and code execution.
3. Create and organize a course workspace folder and .py files using clear, descriptive file names.
4. Run a Hello World program from both the editor and the command line to validate the toolchain.
5. Apply basic terminal commands (cd and ls/dir) to navigate to and execute Python files.
6. Document setup steps and record solutions for common installation errors such as PATH misconfiguration.
7. Adhere to safe computing practices by keeping software updated and avoiding untrusted downloads.
1. 2. Variables, Data Types, and Console I/O
Learning Outcomes:
1. Declare and initialize variables of type int, float, str, and bool using meaningful, snake_case names.
2. Apply type conversion with int(), float(), str(), and bool() to prepare user input for computation.
3. Format and print output using f-strings and the format() method to produce readable results.
4. Manipulate strings using indexing, slicing, len(), and methods such as lower(), upper(), strip(), and split().
5. Differentiate valid from invalid identifiers and apply Python naming conventions consistently.
6. Predict and correct TypeError scenarios when combining incompatible data types.
7. Capture and validate user input with input(), including prompts and basic checks before conversion.
1. 3. Write and Run Simple Python Scripts
Learning Outcomes:
1. Compose multi-line scripts that combine input, computation, and output to solve small tasks such as unit conversion or tip calculators.
2. Enforce correct indentation and spacing to eliminate IndentationError and SyntaxError in scripts.
3. Trace code line-by-line to predict program state and output for given inputs.
4. Use the Python REPL to prototype expressions and verify small code snippets before adding them to scripts.
5. Employ comments and minimal docstrings to communicate program purpose and usage.
6. Execute Python scripts from the terminal using python filename.py and interpret error messages to fix issues.
7. Organize versions of programs with incremental saves to track progress and facilitate rollback.
2. Expressions and Control Flow: Operators, Decisions, and Loops
2. 1. Operators and Expressions
Learning Outcomes:
1. Apply arithmetic operators (+, -, *, /, //, %, **) to compute results for numeric problems.
2. Evaluate expressions using comparison (==, !=, <, <=, >, >=) and logical operators (and, or, not) to form complex conditions.
3. Use assignment and augmented assignment operators (+=, -=, *=, /=) to update variables concisely.
4. Interpret and enforce operator precedence with parentheses to produce correct outcomes.
5. Construct boolean expressions from multiple requirements and test them with sample inputs.
6. Mitigate floating-point precision issues where relevant using round() for user-facing results.
7. Verify expression correctness by writing small test snippets and checking expected outputs.
2. 2. Conditional Logic with if/elif/else
Learning Outcomes:
1. Implement branching logic with if, elif, and else to handle alternative paths based on input or state.
2. Combine relational and logical operators to encode multi-criteria decisions cleanly.
3. Apply truthiness rules to simplify conditions involving empty strings, zero values, and empty collections.
4. Construct input validation routines that reject invalid entries and prompt users again until valid data is provided.
5. Refactor long condition chains into clearer forms using helper variables and early checks to improve readability.
6. Trace execution for given inputs to confirm the selected code path matches expectations.
7. Create decision tables and targeted test cases to cover all branches.
2. 3. Iteration with for and while
Learning Outcomes:
1. Construct counted loops with for and range() to repeat actions a given number of times.
2. Iterate over strings, lists, and dictionaries to process collections element-by-element.
3. Build condition-controlled loops with while to repeat until a condition changes.
4. Employ break, continue, and pass to manage loop control flow appropriately.
5. Accumulate totals, counts, and extrema (min/max) using loop variables.
3. Functions and Core Data Structures
3. 1. Defining and Using Functions
Learning Outcomes:
1. Define functions with parameters and return values to encapsulate reusable logic.
2. Apply argument passing (positional and keyword) and default parameter values to simplify calls.
3. Determine and enforce variable scope, avoiding unintended use of global variables.
4. Decompose a problem into small functions using top-down design and stepwise refinement.
5. Write simple unit tests with assert statements to confirm function behavior on normal and edge inputs.
6. Document functions with clear docstrings that specify purpose, parameters, return values, and assumptions.
7. Trace the call stack across multiple function calls to diagnose incorrect outputs.
3. 2. Working with Lists
Learning Outcomes:
1. Create and index lists; retrieve and modify elements by position using valid indices.
2. Apply list methods append(), extend(), insert(), remove(), pop(), index(), count(), sort(), and reverse() to manage collections.
3. Slice lists to copy, extract ranges, and step through sequences for sampling or subsetting.
4. Differentiate aliasing from copying and create independent copies with slicing or list().
5. Build and process lists using for loops to filter, transform, and aggregate data.
6. Implement linear search and simple summary statistics (min, max, average) using lists.
7. Guard against ValueError and IndexError by checking preconditions such as membership and index bounds.
3. 3. Tuples, Dictionaries, and Sets
Learning Outcomes:
1. Construct tuples for fixed records and unpack multiple values from tuples in assignments and loops.
2. Create dictionaries; add, update, and delete key-value pairs using indexing, update(), and del.
3. Retrieve dictionary values safely using get() with default values to avoid KeyError.
4. Iterate over dictionary keys, values, and items to compute summaries and lookups.
5. Use sets to remove duplicates and perform membership tests with add(), remove(), union(), and intersection().
4. Program Robustness: Exceptions, Files, and Code Quality
4. 1. Handling Errors with Exceptions
Learning Outcomes:
1. Differentiate syntax errors, runtime exceptions, and logical errors by reproducing and classifying examples.
2. Implement try/except blocks to catch and handle specific exceptions such as ValueError and ZeroDivisionError.
3. Use else and finally clauses to separate successful paths and cleanup actions in programs.
4. Raise exceptions intentionally with raise to signal invalid states in functions.
5. Validate and sanitize user input to prevent crashes and produce helpful error messages.
6. Refactor code to isolate risky operations and centralize error handling for clarity.
7. Evaluate program robustness by testing with invalid or extreme inputs and documenting outcomes.
4. 2. Reading and Writing Files
Learning Outcomes:
1. Open, read, and write text files using with open(...) as f to ensure proper resource management.
2. Read files line-by-line and process structured records using split() or basic csv module usage.
3. Write formatted output and append logs to existing files without overwriting existing content.
4. Construct correct relative file paths and verify the current working directory programmatically.
5. Handle FileNotFoundError and PermissionError using try/except with user-friendly messages.
6. Serialize and deserialize simple data structures with the json module to persist lists and dictionaries.
7. Build a small utility that summarizes a text or CSV file and writes a report with counts and totals.
4. 3. Testing, Debugging, and Code Style
Learning Outcomes:
1. Set breakpoints and step through code in a debugger to inspect variables and control flow.
2. Author test cases and assertions to verify function behavior and catch regressions.
3. Apply PEP 8 style guidelines and run a linter or formatter to improve readability and consistency.
4. Refactor duplicate or overly long code blocks into smaller, named functions for maintainability.
5. Instrument code with targeted print or log statements to diagnose defects, then remove them for clean final code.
5. Applied Python Problem Solving and Mini-Project
5. 1. Decompose Problems and Design Algorithms
Learning Outcomes:
1. Decompose a real-world task into input, processing, and output components with explicit specifications.
2. Draft pseudocode and flowcharts to outline control flow and data operations before coding.
3. Select suitable data structures (lists, dictionaries, sets) and control structures to support the solution.
4. Plan test cases that include normal, boundary, and error inputs to guide development.
5. Implement the algorithm in Python incrementally, verifying each step with small tests.
6. Analyze the efficiency of loops qualitatively and simplify hotspots where possible for clarity and speed.
7. Evaluate solution correctness against requirements and revise the design as needed.
5. 2. Build a Menu-Driven Console Application
Learning Outcomes:
1. Implement a menu-driven console application (e.g., budget tracker or gradebook) using functions and loops.
2. Structure program files and functions to separate input/output, business logic, and data storage concerns.
3. Persist and load application data using text or JSON files with appropriate error handling.
4. Validate and sanitize all user inputs and provide clear prompts and feedback.
5. Employ lists, dictionaries, and sets to store, search, and update program data effectively.
6. Integrate create, read, update, and delete (CRUD) operations to manage records within the app.
7. Test the application with a predefined checklist and fix discovered defects before release.
5. 3. Package, Document, and Present Your Program
Learning Outcomes:
1. Organize the project into folders and modules and include any required data files for easy setup.
2. Compose a README that states purpose, features, setup steps, and usage examples with sample inputs/outputs.
3. Annotate code with meaningful docstrings and comments that explain non-obvious decisions and assumptions.
4. Demonstrate the program in a short walkthrough, highlighting how requirements were met and how to use key features.
3. Analyze the efficiency of algorithms using time and space complexity and Big O notation, and apply algorithm design techniques to solve computational problems.
Learning Targets:
1. Classify computational problems into decision, search, optimization, and counting categories, and distinguish well-defined from ill-defined problems.
2. Determine the time complexity of an algorithm using Big O notation, identifying constant, linear, quadratic, and logarithmic growth.
3. Apply algorithm design techniques such as divide and conquer, greedy methods, and dynamic programming to a given problem.
4. Implement and trace the execution of Bubble Sort and Binary Search, comparing their efficiency.
5. Compare Breadth-First Search (BFS) and Depth-First Search (DFS) graph traversal strategies in terms of process and suitability.
Modules
1. Algorithmic Problem-Solving Foundations
1. 1. Defining and Classifying Computational Problems
Learning Outcomes:
1. Classify problems as decision, search, optimization, or counting using concrete examples from everyday contexts.
2. Distinguish well-defined from ill-defined problems by checking clarity of inputs, outputs, and constraints.
3. Formulate precise problem statements that specify inputs, desired outputs, and success criteria.
4. Identify constraints and edge cases for a given problem and document them clearly.
5. Transform an ill-defined problem prompt into a well-defined computational problem specification.
6. Map real-world scenarios (e.g., route planning, scheduling) to appropriate computational problem categories and justify choices.
7. Justify a chosen problem classification with written reasoning and counterexamples.
1. 2. Algorithm Specifications, Pseudocode, and Tracing
Learning Outcomes:
1. Construct structured pseudocode for simple algorithms using clear control structures and consistent indentation.
2. Trace algorithm execution step-by-step on sample inputs, recording variable states at each step.
3. Design flowcharts that accurately represent control flow for selection, loops, and function calls.
4. Validate algorithm preconditions and postconditions through targeted test cases.
5. Debug logic errors in pseudocode or Python by isolating failing steps and correcting control flow.
6. Compare pseudocode, flowcharts, and Python code to articulate equivalences and trade-offs in clarity.
7. Document edge cases and expected behavior for inputs at boundaries (empty lists, duplicates, extremes).
8. Refactor verbose pseudocode into more efficient versions while preserving correctness.
2. Time and Space Complexity with Big O
2. 1. Growth Rates and Big O Notation
Learning Outcomes:
1. Define constant, logarithmic, linear, n log n, quadratic, and cubic time using Big O notation.
2. Order common growth functions and rank example algorithms by asymptotic efficiency.
3. Estimate operation counts for simple code fragments and simplify expressions using Big O rules.
4. Differentiate worst-case, average-case, and best-case analyses with concrete scenarios.
5. Compute Big O complexity for straight-line code, single loops, and simple conditional branches.
6. Visualize growth behaviors by plotting synthetic runtimes and interpreting the curves.
7. Select the more efficient of two algorithms for large inputs using asymptotic reasoning.
8. Explain the practical meaning of asymptotic analysis for real datasets and hardware limits.
2. 2. Analyzing Iterative and Recursive Algorithms
Learning Outcomes:
1. Analyze time complexity of single and nested loops by counting dominant operations.
2. Derive simple recurrences for recursive algorithms (e.g., binary search, merge steps) and estimate their growth via recursion trees.
3. Compute logarithmic, linear, and quadratic patterns from code samples and justify results.
4. Trace binary search on sorted arrays and relate the halving process to O(log n).
5. Compare iterative and recursive implementations for clarity, time, and space trade-offs.
6. Instrument Python code to count iterations or comparisons and validate theoretical analysis.
7. Evaluate the impact of input size changes (doubling n) on execution counts for different complexities.
8. Diagnose off-by-one and base-case errors that affect correctness or complexity in recursive code.
2. 3. Space Complexity and Time–Space Trade-offs
Learning Outcomes:
1. Compute auxiliary space usage for algorithms using variables, arrays, and recursion stacks.
2. Differentiate input space from auxiliary space with annotated memory usage diagrams.
3. Analyze recursion depth and stack frame growth for common recursive procedures.
3. Implementing and Evaluating Core Algorithms
3. 1. Bubble Sort: Implementation, Tracing, and Efficiency
Learning Outcomes:
1. Implement Bubble Sort in Python with and without an early-exit optimization flag.
2. Trace Bubble Sort pass-by-pass on small arrays and record all swaps and comparisons.
3. Compute worst-case, average-case, and best-case time complexities for Bubble Sort using Big O.
4. Measure runtime on arrays of increasing size and visualize trends to confirm O(n^2).
5. Compare Bubble Sort to Python’s built-in Timsort on identical datasets and explain performance differences.
6. Design test datasets (sorted, reverse-sorted, nearly sorted, with duplicates) to probe behavior and stability.
7. Explain the stability and in-place properties of Bubble Sort and their practical implications.
8. Recommend appropriate and inappropriate use cases for Bubble Sort based on performance analysis.
3. 2. Binary Search: Implementation and Analysis
Learning Outcomes:
1. Implement iterative and recursive binary search functions in Python that return index or not-found status.
2. Verify and enforce the precondition of sorted input using checks or pre-sorting routines.
3. Trace mid-point selections and interval updates on sample arrays until termination.
4. Analyze time complexity O(log n) and space complexity for iterative vs recursive versions.
5. Handle duplicates and not-found cases with clear return conventions and test coverage.
6. Compare binary search and linear search empirically by counting comparisons across input sizes.
7. Utilize Python’s bisect module to apply binary search patterns to real tasks (insertion points).
8. Benchmark search methods on large arrays and interpret results against theoretical expectations.
4. Algorithm Design Paradigms
4. 1. Divide and Conquer Strategies
Learning Outcomes:
1. Decompose problems into subproblems, solve recursively, and combine results using structured pseudocode.
2. Implement a divide-and-conquer algorithm (e.g., Merge Sort or Max-Min) in Python and verify correctness.
3. Construct recursion trees to estimate time complexity and relate to known patterns (logarithmic, n log n).
4. Analyze overhead from splitting and merging and discuss base case design decisions.
5. Compare a divide-and-conquer solution to a straightforward iterative approach on performance and clarity.
6. Apply divide and conquer to a new context (e.g., closest pair on a grid or majority element) with guidance.
7. Evaluate trade-offs between recursion depth, stack usage, and performance for chosen problems.
4. 2. Greedy Methods and When They Work
Learning Outcomes:
1. Define the greedy choice property and optimal substructure using accessible examples.
2. Implement a greedy algorithm (e.g., activity selection or interval scheduling) and validate outputs.
3. Design a greedy solution for canonical coin change and test where it succeeds and fails with non-canonical sets.
4. Justify or refute greedy correctness through counterexamples and informal proofs.
5. Compare greedy solutions with dynamic programming on the same problem for performance and optimality.
6. Apply a greedy heuristic to a simple scheduling or resource allocation scenario and evaluate outcomes.
7. Document assumptions that must hold for a greedy strategy to be valid.
4. 3. Dynamic Programming Fundamentals
Learning Outcomes:
1. Identify overlapping subproblems and optimal substructure in a recursive specification.
2. Convert a naive recursive solution (e.g., Fibonacci or Climbing Stairs) into memoized and tabulated DP.
3. Implement a tabulation-based DP for a small 0/1 knapsack or coin change variant and verify correctness.
4. Trace DP table filling order and reconstruct solutions from stored decisions when applicable.
5. Graph Traversal Strategies and Applications
5. 1. BFS and DFS: Mechanics, Implementation, and Comparison
Learning Outcomes:
1. Represent graphs using adjacency lists in Python for undirected and directed cases.
2. Implement BFS using a queue and DFS using recursion or an explicit stack, ensuring correct visitation tracking.
3. Trace traversal orders on sample graphs and draw BFS/DFS trees from a given start node.
4. Analyze time and space complexity of BFS and DFS as O(V + E) and relate to graph density.
5. Compare BFS and DFS in terms of data structures used, traversal order, and typical use cases.
6. Detect connectivity and count connected components using repeated traversals.
7. Select BFS or DFS for a given scenario and justify the choice in writing.
5. 2. Applying Traversals to Real Problems
Learning Outcomes:
1. Apply BFS to find shortest paths in unweighted graphs and reconstruct paths from parent pointers.
2. Apply DFS to detect cycles and perform a topological sort on DAGs with verification checks.
3. Model grid mazes and social networks as graphs and solve reachability problems with appropriate traversals.
4. Design test graphs (sparse, dense, cyclic, acyclic) to evaluate algorithm behavior and performance.
5. Convert recursive DFS to iterative form to prevent stack overflow on deep graphs.
6. Evaluate memory behavior of BFS vs DFS on wide vs deep graphs and report findings.
7. Compose a mini-project that integrates BFS or DFS to solve a school-relevant problem (e.g., campus navigation).
4. Implement primitive computational structures, including lists, stacks, queues, trees, and graphs, and select the most suitable structure based on problem requirements.
Learning Targets:
1. Describe the characteristics and properties of lists, stacks, queues, trees, and graphs.
2. Perform insertion, deletion, traversal, and searching operations on the appropriate computational structures.
3. Demonstrate the LIFO principle in stacks and the FIFO principle in queues using Python code.
4. Differentiate between trees and graphs, including directed and undirected graphs, and identify their real-world applications.
5. Justify the choice of a computational structure for a given scenario based on data organization and performance considerations.
Modules
1. Foundations of Data Structures and Python
1. 1. Abstract Data Types and Python Lists Essentials
Learning Outcomes:
1. Define abstract data type (ADT) and relate it to concrete data structures used in Python.
2. Describe characteristics, strengths, and limitations of lists, stacks, queues, trees, and graphs.
3. Classify common problems by the data access pattern they require (random access, LIFO, FIFO, hierarchical, network).
4. Create Python list variables and manipulate elements using indexing and slicing.
5. Apply Python list methods (append, extend, insert, remove, pop, index, sort) to modify collections.
6. Trace element positions before and after list operations to verify correctness.
7. Compare arrays and linked lists conceptually with respect to memory layout and access patterns.
8. Illustrate real-world analogies for each structure to support problem–structure matching.
1. 2. Algorithmic Operations and Complexity Basics
Learning Outcomes:
1. Characterize insertion, deletion, traversal, and search operations across core data structures at a conceptual level.
2. Estimate time complexity for common list, stack, and queue operations using Big-O notation.
3. Measure execution time of Python list operations using time or timeit.
4. Interpret empirical timing results to validate complexity expectations.
5. Select iteration and search strategies that reduce operation costs for simple tasks.
6. Document operation choices and expected performance for a given micro-scenario.
2. Linear Structures in Practice: Lists, Stacks, and Queues
2. 1. Implementing and Manipulating Lists in Python
Learning Outcomes:
1. Implement insertion, deletion, traversal, and linear search on Python lists using loops and built-in methods.
2. Write functions for common list tasks (deduplicate, count frequency, reverse) with clear docstrings.
3. Test list functions using assert statements or unittest to confirm correctness.
4. Analyze performance trade-offs between append/pop and insert/remove at index 0.
5. Debug off-by-one and index errors using print statements or a debugger.
6. Validate input and handle edge cases such as empty lists and missing items.
2. 2. Constructing Stacks and Demonstrating LIFO
Learning Outcomes:
1. Construct a Stack class using a Python list and using collections.deque.
2. Implement push, pop, peek, size, and is_empty methods with appropriate error handling.
3. Demonstrate the LIFO principle by tracing operation sequences and expected outputs.
4. Apply stacks to solve problems such as parentheses balancing or undo/redo.
5. Evaluate time complexity of stack operations on list vs deque implementations.
6. Create unit tests that verify LIFO behavior and edge cases such as underflow.
2. 3. Building Queues and Demonstrating FIFO
Learning Outcomes:
1. Build a Queue class using collections.deque to support enqueue, dequeue, front, size, and is_empty.
2. Demonstrate the FIFO principle through step-by-step enqueues and dequeues with expected outcomes.
3. Simulate a real-world waiting line (e.g., cafeteria or printer queue) and collect simple metrics like queue length.
4. Contrast queue implementations using list vs deque and justify the preferred choice.
5. Handle edge cases such as empty dequeue attempts and capacity-limited queues.
6. Profile enqueue and dequeue operations to confirm constant-time behavior.
3. Trees: Concepts, Implementations, and Traversals
3. 1. Modeling Tree Structures
Learning Outcomes:
1. Define nodes, edges, root, parent, child, leaf, depth, height, and degree within tree structures.
2. Differentiate trees from graphs by identifying the absence of cycles and the presence of a single root.
3. Represent a simple tree using nested Python objects or dictionaries.
4. Draw tree diagrams to visualize hierarchical relationships for sample data.
5. Identify real-world scenarios that naturally map to trees (file systems, organization charts, taxonomy).
1. Implement a Node and BinarySearchTree class in Python with insert and search methods.
2. Perform preorder, inorder, postorder, and level-order traversals and print visit sequences.
3. Compute size, height, and leaf count of a binary tree using recursion or queues.
4. Compare search behavior in balanced vs skewed BSTs using example datasets.
5. Detect and handle duplicate values according to a defined policy.
6. Evaluate time complexity for insert, search, and traversal operations in binary trees.
3. 3. Applying Trees to Real-World Problems
Learning Outcomes:
1. Build a directory explorer that prints folders and files using a tree traversal.
2. Construct and evaluate an arithmetic expression tree from an infix or postfix expression.
3. Justify choosing a tree over a list or dictionary for hierarchical data storage.
4. Implement a basic delete operation in a binary search tree and verify tree integrity after deletion.
5. Create tests to validate traversals and application-specific behaviors.
6. Document design decisions and limitations of the chosen tree representation.
4. Graphs: Directed and Undirected Structures, Traversals, and Applications
4. 1. Graph Representations and Properties
Learning Outcomes:
1. Define vertices, edges, adjacency, degree, path, cycle, and connectivity for graphs.
2. Distinguish directed vs undirected and weighted vs unweighted graphs using concrete examples.
3. Construct graph representations using adjacency lists (dict of lists) and adjacency matrices (2D lists).
4. Choose an appropriate representation for a scenario based on expected operations and graph density.
5. Implement add_vertex and add_edge functions for both adjacency list and matrix representations.
6. Analyze space and time trade-offs between adjacency list and adjacency matrix.
4. 2. Traversing and Searching Graphs
Learning Outcomes:
1. Implement Breadth-First Search (BFS) using a queue to discover nodes by levels.
2. Implement Depth-First Search (DFS) iteratively or recursively to explore graph components.
3. Track visited nodes to prevent infinite loops and to compute reachable sets.
4. Find and print a path between two nodes using BFS parent pointers.
5. Detect cycles in undirected graphs using DFS and in directed graphs using a recursion stack or color marking.
6. Evaluate the time complexity of BFS and DFS in terms of vertices (V) and edges (E).
4. 3. Real-World Graph Modeling and Use Cases
Learning Outcomes:
1. Model a social network with users and connections and query friend-of-friend recommendations.
2. Model a road map and perform simple shortest-path exploration using BFS on an unweighted graph.
3. Justify when to prefer a graph over a tree for representing networks with cycles or multiple connections.
4. Identify real-world directed acyclic graph (DAG) scenarios such as task dependencies or course prerequisites.
5. Outline topological ordering on a DAG and apply it to schedule a small set of tasks.
6. Present a brief written rationale for representation and algorithm choices in each case study.
5. Choosing the Right Structure: Design, Performance, and Communication
5. 1. Comparing and Selecting Data Structures for Scenarios
Learning Outcomes:
1. Analyze problem requirements to identify key operations, data volume, and access patterns.
2. Compare candidate structures (list, stack, queue, tree, graph) against the identified requirements.
3. Select the most suitable structure and articulate at least two reasons for the choice.
4. Predict performance impacts of the selection using Big-O and practical considerations.
5. Create a decision table or flowchart to guide structure selection for common scenarios.
6. Review peer solutions and provide constructive feedback grounded in performance criteria.
5. 2. Benchmarking Operations and Interpreting Results
Learning Outcomes:
1. Design fair micro-benchmarks to compare operations across structures using timeit.
2. Implement benchmark scripts for list insert/remove, deque appendleft/popleft, BST search, and BFS traversal.
3. Visualize results using simple text tables or plots to compare operation timings.
4. Interpret anomalies and account for Python implementation details when explaining results.
5. Recommend structure choices based on measured data and operation profiles.
6. Document methodology, results, and conclusions in a short technical report.
5. 3. Capstone Mini-Project: Structure Selection and Justification
Learning Outcomes:
1. Design a small application (e.g., task manager, help-desk ticketing, or contact network) with clear data requirements.
2. Implement the core data operations using the chosen computational structure(s).
3. Write automated tests that validate insertion, deletion, traversal, and search behaviors.
4. Evaluate the solution against correctness, performance, and code readability criteria.
5. Justify the final structure selection in a brief presentation or report referencing benchmarks and complexity.
6. Reflect on limitations and propose next steps or optimizations for future iterations.
5. Construct basic statistical models and create data visualizations using tools such as MS Excel, Google Sheets, Python, and Matplotlib to support data-driven decisions.
Learning Targets:
1. Calculate measures of central tendency (mean, median, mode) and measures of dispersion (variance, standard deviation) for a dataset.
2. Build a basic statistical model using linear or logistic regression and evaluate its performance against actual data.
3. Explain the principles of experimental design and the role of data collection in data science.
4. Create bar charts, line graphs, and scatterplots in MS Excel or Google Sheets, applying clear axis labels and titles.
5. Interpret a data visualization to identify patterns, trends, and conclusions relevant to a real-world problem.
Modules
1. Foundations of Data, Statistics, and Ethical Collection
1. 1. Designing Simple Studies and Collecting Reliable Data
Learning Outcomes:
1. Define population, sample, variable, and parameter for a given real-world question.
2. Formulate a testable question and hypothesis connected to a school, community, or business scenario.
3. Differentiate observational from experimental studies and identify independent and dependent variables.
4. Design a basic sampling plan (random or stratified) suitable for the scenario and justify the choice.
5. Identify potential sources of bias (selection, measurement, confounding) and propose mitigation steps.
6. Draft a short survey or data-log with clear items, response scales, and collection procedures.
7. Implement a brief pilot data collection (mock or small sample) and record observations for refinement.
8. Explain privacy, consent, and ethical handling steps for any personally identifiable information.
1. 2. Descriptive Statistics: Central Tendency and Dispersion
Learning Outcomes:
1. Calculate mean, median, and mode for a dataset by hand and with spreadsheet functions.
2. Compute range, variance, and standard deviation for sample data using appropriate formulas.
3. Compare center and spread across two groups and justify which measures are most appropriate.
4. Detect outliers using IQR or z-scores and describe their impact on summary statistics.
5. Create and interpret a histogram or box-and-whisker plot to describe distribution shape.
6. Construct a five-number summary and relate it to variability and potential skew.
7. Interpret computed statistics in context to make a concise, evidence-based statement.
1. 3. Organizing and Preparing Data in Spreadsheets
Learning Outcomes:
1. Import a CSV dataset into Microsoft Excel and Google Sheets without breaking column formats.
2. Standardize column headers, fix data types, and convert text to numbers or dates as needed.
3. Handle missing values by removing or imputing and document the chosen approach.
4. Apply basic data validation and conditional formatting to flag inconsistent entries.
5. Use AVERAGE, MEDIAN, MODE, VAR.S, STDEV.S, COUNTIF, and IF to compute quick checks.
6. Create an Excel Table or named range and use sort/filter to prepare data for analysis.
7. Document a simple data dictionary that defines each field and its units.
2. Effective Data Visualization with Excel and Google Sheets
2. 1. Chart Selection and Design Best Practices
Learning Outcomes:
1. Match variable types (categorical vs numerical; time series) to an appropriate chart type (bar, line, scatter, histogram).
2. Apply clear titles, axis labels, units, and sources to every chart.
3. Adjust axis scales and categories to avoid distortion and support accurate comparisons.
4. Choose accessible color palettes and contrasts that highlight key data without distraction.
5. Reduce clutter by removing chartjunk and emphasizing relevant marks and labels.
6. Annotate peaks, dips, and important thresholds to guide the viewer’s attention.
7. Evaluate a chart for misleading elements and propose concrete design improvements.
2. 2. Building and Formatting Charts in Microsoft Excel
Learning Outcomes:
1. Create bar, line, scatter, and histogram charts from tabular data using Insert Charts.
2. Add and format axis labels, titles, legends, and data labels to improve readability.
3. Add a linear trendline to a scatterplot and display the equation and R² on the chart.
4. Customize chart elements (gridlines, markers, colors, number formats) to clarify patterns.
5. Use Excel Tables or named ranges to build dynamic charts that update with new data.
6. Export charts as high-resolution images for use in documents or slide decks.
2. 3. Building and Formatting Charts in Google Sheets
Learning Outcomes:
1. Create bar, line, scatter, and histogram charts using the Chart Editor.
2. Configure axis labels, titles, legends, and series formatting to improve clarity.
3. Add a linear trendline to a scatterplot and display the equation and R² when appropriate.
4. Apply themes and customize colors, markers, and gridlines to emphasize insights.
5. Publish or share charts via link and manage viewer permissions.
6. Embed charts into Google Slides and maintain live links for automatic updates.
3. Python and Matplotlib for Analytical Computing
3. 1. Setting Up and Loading Data with Python, Pandas, and Matplotlib
Learning Outcomes:
1. Launch a Jupyter notebook locally or in Google Colab for interactive coding.
2. Import numpy, pandas, and matplotlib.pyplot and verify library versions.
3. Load a CSV from local storage, URL, or Google Drive into a pandas DataFrame.
4. Inspect datasets using head(), info(), describe(), and shape to understand structure and quality.
5. Select columns and filter rows using bracket notation, loc, and boolean conditions.
6. Handle missing values using dropna() and fillna() with documented choices.
3. 2. Computing Statistics and Exploring Data in Python
Learning Outcomes:
1. Calculate mean, median, mode, variance, and standard deviation using pandas/numpy functions.
2. Implement a custom function to compute a weighted mean for a practical scenario.
3. Group data by a categorical variable with groupby() and compute aggregate statistics.
4. Generate frequency distributions and percentiles to summarize variable ranges.
5. Detect outliers using z-scores or IQR in code and flag affected records.
6. Explain the ddof parameter and select sample vs population variance appropriately.
3. 3. Plotting with Matplotlib: Bar, Line, and Scatter
Learning Outcomes:
1. Construct bar, line, and scatter plots with matplotlib, mapping columns to axes.
2. Label axes, add titles and legends, and set axis limits and tick intervals for clarity.
3. Annotate interesting points with text and arrows to highlight findings.
4. Style plots using marker types, colors, line styles, and figure size to improve readability.
5. Save figures to PNG or SVG with appropriate resolution for reports.
6. Overlay a regression line on a scatter plot using numpy.polyfit and plot for visual fit.
4. Predictive Modeling and Evaluation
4. 1. Linear Regression in Spreadsheets
Learning Outcomes:
1. Build a scatterplot of two numerical variables and insert a linear trendline.
2. Display and interpret slope, intercept, and R² from the trendline output.
3. Use SLOPE(), INTERCEPT(), CORREL(), and FORECAST.LINEAR() to compute predictions.
4. Calculate residuals for each data point and create a residual plot to assess fit.
5. Evaluate model suitability by commenting on linearity, outliers, and R² in context.
6. Make and justify predictions for new inputs and compare them to actual outcomes when available.
4. 2. Linear Regression in Python
Learning Outcomes:
1. Split data into training and testing sets using scikit-learn or stratified indexing when needed.
2. Fit a LinearRegression model and print coefficients and intercept with meaningful labels.
3. Compute and interpret R², MAE, and MSE on the test set to evaluate performance.
4. Plot the regression line with scatter data and visualize residuals to spot issues.
5. Explain the practical meaning of coefficient signs and magnitudes for the scenario.
6. Document the modeling workflow and results in a well-commented notebook with narrative cells.
4. 3. Intro to Classification with Logistic Regression
Learning Outcomes:
1. Differentiate regression (numeric targets) from classification (categorical targets) using examples.
2. Encode a binary target and select simple numeric features suitable for a baseline model.
3. Fit a logistic regression classifier in scikit-learn and generate class probabilities and labels.
4. Evaluate model accuracy, precision, recall, and a confusion matrix on a test set.
5. Plot and interpret a basic ROC curve and AUC to compare classification thresholds.
6. Discuss appropriate use cases, limitations, and ethical considerations for classification models.
5. Communicating Insights for Data-Driven Decisions
5. 1. Synthesizing Findings into Recommendations
Learning Outcomes:
1. Frame a clear problem statement, audience, and success criteria for the analysis.
2. Summarize key statistics, visuals, and model results in concise, plain language.
3. Construct a short evidence-based narrative that links insights to a recommended action.
4. Identify limitations, assumptions, and potential risks that affect confidence in the recommendation.
5. Propose next steps for data collection, model refinement, or additional experimentation.
5. 2. Building a Simple Analytics Report or Dashboard in Spreadsheets
Learning Outcomes:
1. Assemble multiple charts and key metrics on a single sheet using an intentional layout grid.
2. Implement interactive filters or slicers to let viewers explore subsets of data.
3. Apply consistent fonts, colors, and number formats to improve readability and professionalism.
4. Write informative captions and footnotes that explain figures and data sources.
5. Share the report securely and gather peer feedback to iterate on clarity and impact.
6. Evaluate emerging technologies, including cloud computing service and deployment models and blockchain, in terms of their core principles, applications, and societal implications.
Learning Targets:
1. Describe the core concepts of cloud computing, including virtualization, scalability, and on-demand access.
2. Differentiate between Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).
3. Compare public, private, hybrid, and multi-cloud deployment models and identify suitable use cases for each.
4. Explain the core principles of blockchain technology, including transparency, decentralization, and the role of peer-to-peer networks.
5. Assess real-world applications of blockchain and the data security and resource implications of adopting cloud and blockchain solutions.
1. Draft a reference architecture for a simple web app including compute, storage, database, and CDN components.
2. Select a service model and deployment model and justify choices using defined decision criteria.
3. Map user requests and data flows through the architecture with a labeled swimlane diagram.
4. Propose an auto-scaling and monitoring strategy suitable for variable student traffic patterns.
5. Calculate a rough monthly budget using public pricing and identify at least three cost-saving levers.
3. Blockchain Foundations and Mechanics
3. 1. Principles—Decentralization, Transparency, and P2P Networks
Learning Outcomes:
1. Explain decentralization and contrast it with centralized client–server models using concrete examples.
2. Describe how peer-to-peer networks propagate blocks and transactions across nodes.
3. Illustrate transparency and immutability using block headers and hash chaining on a simple diagram.
4. Differentiate public, private, and permissioned blockchains with platform examples and intended uses.
5. Summarize consensus mechanisms (Proof of Work, Proof of Stake) at a conceptual level and compare trade-offs.
6. Evaluate scenarios where blockchain adds value versus where a traditional database is more appropriate.
3. 2. Cryptography and Transactions
Learning Outcomes:
1. Demonstrate how public/private keys enable signing and verification using a step-by-step analogy.
2. Trace the lifecycle of a blockchain transaction from creation to confirmation with key checkpoints.
3. Distinguish addresses, wallets, and accounts and map their relationships in a diagram.
4. Analyze common security risks (key loss, phishing, malware) and propose safe key management practices.
5. Explain how cryptographic hashes ensure data integrity and detect tampering with examples.
6. Construct a simple Merkle tree example to show efficient verification of data inclusion.
3. 3. Smart Contracts and Platforms
Learning Outcomes:
1. Define smart contracts and articulate their benefits and limitations in real-world terms.
2. Compare Ethereum-style programmable blockchains with Bitcoin scripting for flexibility and risk.
3. Identify non-cryptocurrency applications (supply chain, identity, certificates) and outline on/off-chain data flows.
4. Evaluate the role of oracles and external data in smart contract reliability and security.
5. Analyze a simplified smart contract bug scenario and suggest safeguards (testing, audits, time locks).
6. Appraise platform selection criteria (community, tooling, cost, energy use) for a school project recommendation.
4. Applications, Security, and Societal Implications
4. 1. Cloud Case Studies—Security, Cost, and Impact
Learning Outcomes:
1. Analyze a cloud-based streaming or e-learning service to identify core components and scaling approaches.
2. Evaluate data security and privacy considerations for student accounts and content storage.
3. Estimate compute, storage, and network resource needs for a small class project using given assumptions.
4. Calculate approximate monthly cost for a chosen architecture and highlight at least three cost optimizations.
5. Assess the environmental impact of the design using publicly available energy/carbon proxies and assumptions.
6. Recommend governance practices (access control, logging, backups) for responsible cloud use in schools.
4. 2. Blockchain Case Studies—Use, Risk, and Impact
Learning Outcomes:
1. Analyze a supply chain provenance example to map how data is recorded on-chain and off-chain.
2. Evaluate privacy trade-offs between transparency and confidentiality and propose mitigation patterns.
3. Compare energy and resource implications of PoW versus PoS networks for a chosen application.
4. Identify regulatory, ethical, and accessibility considerations when deploying a blockchain solution.
5. Recommend whether to use blockchain for a given problem and justify with a decision matrix.
6. Outline a responsible-use policy addressing scams, volatility, and consumer protection for student projects.
4. 3. Comparative Technology Evaluation
Learning Outcomes:
1. Construct a criteria matrix (cost, security, scalability, maintainability, ethics) to compare cloud and blockchain options.
2. Score at least two solution architectures for a scenario using the matrix and explain the ranking.
3. Prioritize key risks and map them to mitigations and contingency plans for each option.
4. Draft an executive summary that communicates the recommended technology choice to non-technical stakeholders.
5. Reflect on societal implications, inclusivity, and sustainability of the chosen approach and document takeaways.
5. Capstone—Technology Fit and Recommendation
5. 1. Capstone Project—From Requirements to Recommendation
Learning Outcomes:
1. Elicit and document functional and non-functional requirements from a local club or hypothetical startup scenario.
2. Design a solution that leverages appropriate cloud services and/or blockchain components with clear rationale.
3. Select a service model and deployment model and support the choice with evidence-based reasoning.
4. Outline a basic security and privacy plan including identity, encryption, and backup strategies.
5. Estimate costs and resource implications, including a rough environmental impact note, for the proposed solution.
6. Develop a phased adoption roadmap with success metrics, checkpoints, and risk mitigation steps.
7. Produce a concise presentation and technical brief tailored to both technical and non-technical audiences.
8. Critique peer projects using a rubric and provide constructive, actionable feedback.
7. Assess the legal and ethical aspects of computing systems, including terms of use, privacy and security threats, the digital divide, and bias, and apply principles of digital citizenship to use technology responsibly.
Learning Targets:
1. Interpret the common clauses of terms of use agreements and explain the rights and obligations they establish between a service provider and a user.
2. Identify privacy and security threats such as spyware, phishing, and pharming, and recommend strategies for preventing and mitigating them.
3. Assess the digital divide and its educational, economic, and civic implications for different social groups, with reference to local examples.
4. Recognize bias in computing systems and evaluate its impact on individuals and society.
5. Apply principles of digital citizenship and ethical conduct to use information safely and responsibly.
Modules
1. Digital Citizenship and Legal Foundations
1. 1. Rights, Responsibilities, and Digital Footprints
Learning Outcomes:
1. Analyze how online actions create persistent digital footprints across platforms and services.
2. Differentiate responsible versus irresponsible online behaviors using school and community scenarios.
3. Evaluate consequences of doxxing, cyberbullying, and plagiarism under school policies and local laws.
4. Apply netiquette standards to craft respectful communications for email, forums, and group chats.
5. Construct a personal digital citizenship code listing specific do’s and don’ts for daily technology use.
6. Identify stakeholders affected by a social media post and predict short- and long-term impacts.
7. Demonstrate proper attribution and licensing by citing sources and using Creative Commons correctly.
8. Document clear steps for reporting harmful content to platform moderators and trusted adults.
1. 2. Terms of Service, Privacy Policies, and User Rights
Learning Outcomes:
1. Interpret common Terms of Service clauses (license to content, acceptable use, termination, dispute resolution, arbitration) in plain language.
2. Map the rights and obligations established between a provider and a user for a selected app or platform.
3. Compare data collection, retention, and sharing statements across two privacy policies and summarize differences.
4. Explain consent, parental consent/age restrictions, and data subject rights using age-appropriate examples.
5. Evaluate risks and trade-offs of granting app permissions on mobile devices and propose safer alternatives.
6. Extract action items from a ToS (account deletion, data export, opt-out steps) and practice them on a test account.
7. Draft three clarifying questions to send to a provider about ambiguous or risky clauses.
8. Decide whether to accept or decline a ToS for a target use case and justify the decision with evidence.
9. Summarize how EULAs, open-source licenses, and Creative Commons licenses differ in freedoms and responsibilities.
2. Privacy and Security in Practice
2. 1. Threats: Malware, Phishing, and Pharming
Learning Outcomes:
1. Classify spyware, adware, ransomware, phishing, spear-phishing, vishing, and pharming by behavior and impact.
2. Deconstruct a phishing message to identify red flags in sender details, URLs, attachments, and tone.
3. Distinguish phishing from pharming using DNS manipulation and website spoofing examples.
4. Simulate an attack chain from lure to credential theft and data exfiltration using a safe classroom scenario.
5. Evaluate the potential impacts of each threat on individuals, schools, and small businesses.
6. Recommend layered defenses aligned to the CIA triad (confidentiality, integrity, availability).
7. Demonstrate verification of website authenticity using certificates, WHOIS lookups, and URL decoding.
8. Create a personal incident-response checklist for suspected account or device compromise.
2. 2. Protective Practices: Accounts, Devices, and Networks
Learning Outcomes:
1. Implement a password strategy using passphrases, unique credentials, and a reputable password manager.
2. Configure multi-factor authentication (MFA) on two services and document secure storage of backup codes.
3. Harden a browser by setting privacy controls, blocking third-party cookies, and managing extensions safely.
4. Secure a smartphone by reviewing app permissions, enabling screen lock, and updating the operating system.
5. Apply safe Wi‑Fi habits including hotspot use, HTTPS verification, and VPN when appropriate.
6. Set up automated backups to local and cloud locations and test a file restore successfully.
7. Demonstrate safe file handling by scanning downloads and verifying file integrity when feasible.
8. Configure basic router settings on a demo interface (change default admin password, enable WPA2/3).
9. Report a suspected security incident using the provided school or platform workflow.
2. 3. Data Handling: Minimization, Encryption, and Sharing
Learning Outcomes:
1. Classify personal, sensitive, and public data using a provided rubric for school projects.
3. Equity, Access, and the Digital Divide
3. 1. Dimensions and Impacts of the Digital Divide
Learning Outcomes:
1. Analyze access, affordability, and skills dimensions of the digital divide using a 3A framework.
2. Interpret local or national statistics to identify underserved groups and quantify gaps.
3. Map school and community assets (libraries, labs, ISPs, NGOs) that influence digital access.
4. Evaluate educational, economic, and civic impacts of limited connectivity using case examples.
5. Compare urban, rural, and peri-urban connectivity challenges and constraints.
6. Explain how device quality, language, and accessibility features affect participation for diverse learners.
7. Prioritize barriers most affecting your community using a weighted criteria matrix.
8. Propose measurable indicators to track progress toward equitable access over time.
3. 2. Community Audit and Action Planning
Learning Outcomes:
1. Design a short survey or interview protocol to assess access and skills gaps ethically.
2. Obtain informed consent and safeguard respondent privacy during data collection activities.
3. Collect and clean small-scale community data using spreadsheets and basic validation rules.
4. Visualize findings with charts and simple maps to reveal access and usage patterns.
5. Synthesize insights into personas representing different user groups’ needs and constraints.
6. Ideate solutions (device lending, community Wi‑Fi, training) and rank them by impact and effort.
7. Construct a one-page action plan with objectives, partners, budget outline, and timeline.
8. Present the plan to peers and incorporate feedback into a revised proposal.
9. Draft a brief message to a local stakeholder advocating for the proposed solution.
4. Bias, Fairness, and Accountability in Computing
4. 1. Where Bias Enters Computing Systems
Learning Outcomes:
1. Differentiate data bias, algorithmic bias, and interaction bias with concrete computing examples.
2. Analyze a real case (e.g., facial recognition or hiring) to locate likely sources of bias.
3. Identify proxy variables that can encode sensitive attributes within datasets.
4. Evaluate harms to individuals and groups arising from biased systems using impact statements.
5. Contrast accuracy and fairness trade-offs using simple decision scenarios.
6. Explain accountability roles of developers, companies, regulators, and users in mitigating bias.
7. Formulate probing questions to interrogate a system’s fairness before adoption in school or business.
8. Outline ethical review steps a school or startup should follow when deploying new technology.
4. 2. Detecting and Reducing Bias (Hands-on)
Learning Outcomes:
1. Audit a small dataset for representation gaps using frequency counts and cross-tabs.
2. Compute and compare simple outcome rates between groups to detect disparities.
3. Test a rule-based or simple ML demo and observe differential errors across groups.
4. Redesign labels or sampling to improve representation and reduce skew in the dataset.
5. Apply pre-processing mitigation (e.g., reweighting or balanced sampling) on the demo data.
6. Evaluate fairness and utility after mitigation using defined metrics and reflections.
7. Draft transparent documentation (data card or model card) summarizing scope, limits, and risks.
8. Recommend governance controls such as human-in-the-loop review and escalation paths.
9. Reflect on personal biases and commit two strategies to reduce their effect in teamwork.
5. Capstone: Responsible Technology Use and Advocacy
5. 1. Ethical Decision-Making for Everyday Tech
Learning Outcomes:
1. Apply a structured framework (Stakeholders–Options–Consequences–Values) to resolve a technology dilemma.
2. Construct a decision matrix weighing risks, benefits, and legal constraints for a chosen tool.
3. Evaluate trade-offs when selecting apps for schoolwork, entrepreneurship, or activism contexts.
4. Draft an acceptable-use guideline for a student project team with clear enforcement steps.
5. Plan a response to a privacy breach scenario using your incident-response checklist.
6. Justify a ToS acceptance or rejection for a mission-critical tool based on evidence.
7. Role-play clear communication to notify affected users and guardians after an incident.
8. Commit to two measurable habits that improve your digital citizenship for the next month.
5. 2. Portfolio, Policy, and Outreach
Learning Outcomes:
1. Compile a portfolio of artifacts (ToS analysis, phishing deconstruction, bias audit) demonstrating competence.
2. Design a one-page privacy and security checklist tailored for classmates at your school.
3. Produce an infographic or short video campaign promoting safe, fair, and inclusive tech use.
4. Present your community action plan to an external audience and capture structured feedback.
5. Revise your personal digital citizenship code based on course learning and feedback.
6. Evaluate your growth using a self-assessment rubric supported by evidence from your portfolio.
7. Draft a brief policy proposal for your school addressing one identified digital citizenship gap.
8. Coordinate with peers to schedule an outreach or training session for a club or community group.
9. Document next steps to sustain responsible tech practices over the next six months.
8. Develop an entrepreneurial business solution by applying Design Thinking, market research, and a structured business plan, and deliver an effective pitch to stakeholders.
Learning Targets:
1. Explain the principles of Design Thinking and apply its human-centered approach to develop a business solution.
2. Develop a comprehensive business plan that includes an executive summary, market analysis, products or services, marketing strategy, and a financial plan.
3. Gather and interpret market insights using qualitative and quantitative research techniques such as customer surveys and focus groups.
4. Create and deliver a business pitch tailored to a specific audience, applying clear communication and storytelling skills.
5. Demonstrate collaboration and iteration to refine a business idea, applying key financial concepts such as budgeting and cash flow management.
Modules
1. Human-Centered Design Thinking Foundations
1. 1. Design Thinking Mindset and Process
Learning Outcomes:
1. Explain the five stages of Design Thinking and sequence them for a given problem scenario.
2. Analyze a local community problem to differentiate symptoms from root causes.
3. Map stakeholders for a chosen problem using an influence–interest grid.
4. Formulate a clear, user-centered problem statement using a How Might We format.
5. Establish SMART success criteria and constraints for evaluating potential solutions.
6. Evaluate sample solutions against empathy, feasibility, and viability criteria.
1. 2. Empathy and User Research Techniques
Learning Outcomes:
1. Design an interview protocol with open-ended, unbiased questions for target users.
2. Conduct 2–3 empathy interviews and document observations ethically with consent.
3. Synthesize qualitative data using affinity mapping to surface themes and insights.
4. Construct at least two user personas capturing goals, pains, and behaviors.
5. Create a customer journey map highlighting key pain points and opportunities.
6. Apply privacy and data-ethics guidelines when collecting and storing user data.
1. 3. Ideation and Rapid Prototyping
Learning Outcomes:
1. Generate 20+ solution ideas using brainstorming and SCAMPER within time-boxes.
2. Prioritize ideas with a feasibility–impact matrix to select a prototype concept.
3. Sketch low-fidelity paper prototypes that illustrate core user flows.
4. Build a clickable wireframe using Canva or Figma to demonstrate key interactions.
5. Plan and run a 5-user hallway usability test and capture actionable feedback.
6. Iterate the prototype by implementing at least three improvements based on test results.
1. 4. Problem–Solution Fit and Value Proposition
Learning Outcomes:
1. Articulate a problem–solution statement linking target user, need, and unique approach.
2. Draft a Value Proposition Canvas mapping customer jobs, pains, and gains to product features.
3. Define measurable assumptions that must be true for the solution to work.
4. Select a minimum viable product (MVP) scope that de-risks top assumptions first.
5. Evaluate problem–solution fit using interview or survey evidence and a simple scorecard.
6. Communicate the value proposition in one concise sentence tailored to different audiences.
2. Market Research and Opportunity Validation
2. 1. Designing Surveys and Focus Groups
Learning Outcomes:
1. Draft a survey with clear objectives, operationalized variables, and unbiased items.