Binary and data, the internet, algorithms, the limits of computing and its impact, taught with Python
05Stage 5 of the roadmap: Choose Your PathHow programmers collaborate, design from user needs, document and credit code, and find syntax, run-time, logic and overflow errors with tests and debugging.
Write algorithms in plain words, flowcharts, pseudocode and Python, evaluate MOD expressions, and build new algorithms from max, sum and divisibility checks.
Compare linear search and binary search in Python and exam pseudocode: traverse lists, count binary search iterations, and see why the data must be sorted.
Solve exam-style robot grid questions: trace MOVE_FORWARD, ROTATE_LEFT, ROTATE_RIGHT and CAN_MOVE, and run every path on a small Python grid robot.
Work out the possible values of RANDOM(a, b) expressions, match them to Python's random.randint, and build coin, dice and rumor simulations to see their limits.
Learn how computers store numbers, text and color as bits. Convert binary to decimal and back, compare binary numbers, and see overflow and round-off in Python.
Learn how compression shrinks data, why redundancy matters, and when to pick lossless or lossy. Build a run-length encoder in Python and measure the saving.
Turn raw data into information with Python: clean messy entries, combine sources, filter and transform records, read metadata, and spot bias and false causes.
Learn how devices form networks, how packets find a path, and what IP, TCP, UDP and HTTP do. See how the Internet differs from the web, with Python demos.
See how redundancy and multiple paths keep the Internet running when parts fail. Model a network in Python, test connections and find single points of failure.
Count the steps an algorithm takes, tell reasonable running times from unreasonable ones, and see when a heuristic route beats checking every possible route.
Decidable vs undecidable problems explained with Python: why no program can tell whether every other program stops, and how some instances still have answers.
Compare sequential, parallel and distributed computing. Work out run times from task lists, calculate the speedup, and see why the sequential part sets a limit.
How one computing innovation can help and harm at once, how inventions get used in ways nobody planned, and what causes the digital divide in internet access.
See how bias gets into algorithms and data, test a toy model that fails an under-represented group, and learn how citizen science and crowdfunding work.
Who owns digital work, what counts as plagiarism, how Creative Commons, open source and open access make reuse legal, and when computing raises ethical issues.
What personal data apps collect, how strong passwords and multifactor authentication work, why encryption needs huge key spaces, and how phishing works.
Read Computer Science Principles exam pseudocode with confidence: assignment, DISPLAY, lists that start at 1, REPEAT UNTIL and procedures, each next to Python.