Skip to the content.

Homework Certification

A collection of the homework lessons I completed over the year.

Homework Submission Table

Homework Title Link
3.1 View
3.2 View
3.3 View
3.4 View
3.5 View
3.6 View
3.7 View
Digital Divide View
Lists and Filtering View
Simulation/Games View
BigO View
Binary View
Base 64 View

CSP Lesson Notes

1. Beneficial & Harmful Effects of Computing

Beneficial Examples

  • Automated telephone trees (saves time and money)
  • Medical technology: MRI, DNA sequencing
  • Access to education: online resources, search engines

Harmful Examples

  • Cyberbullying and scams
  • Social media’s mental health effects
  • Ethical dilemmas in autonomous systems

Neutral / Debatable

  • AI: productivity vs. misuse (e.g., deepfakes, cheating)
  • Drones: agriculture vs. privacy
  • Gene editing: cures vs. ethical risks

2. The Digital Divide

  • Causes: Economic, geographic, and societal factors
  • Impacts: Education gaps, employment inequality, limited telemedicine, reduced civic engagement
  • Solutions:
    • Infrastructure improvements
    • Subsidized access
    • Inclusive technology
    • Equity-focused policy

3. Computing Bias

Definition: Unfair algorithmic outcomes due to flawed logic or data

Sources:

  • Data bias
  • Algorithmic bias
  • Human (cognitive) bias

Types:

  • Explicit vs. implicit data
  • Intentional vs. unintentional bias

Mitigation Strategies:

  • Pre-processing: Clean training data
  • In-processing: Adjust learning process
  • Post-processing: Monitor and audit outputs

4. Crowdsourcing & Distributed Computing

Types of Crowdsourcing:

  • Crowdfunding
  • Crowd creation (e.g., Wikipedia)
  • Crowd voting
  • Crowd wisdom

Examples:

  • Waze
  • Kickstarter
  • Mechanical Turk
  • SETI@home

Challenges:

  • Quality control
  • Coordination
  • Privacy concerns

Licenses:

License Permissions Restrictions Best Use
MIT Free use, modify, distribute No liability Small projects, web tools
Apache 2.0 MIT + patent protection Must include license Corporate APIs
GPL Must stay open-source No proprietary forks Nonprofits, open software
BSD 3-Clause Use freely, no misrepresentation No warranty Academic or closed-source projects
Creative Commons For non-code (e.g., docs, images) Some attribution required Documentation, media

Ethical Issues:

  • Proper attribution
  • Abuse of open-source contributions
  • Licensing compliance

6. Safe Computing

  • PII: Personally Identifiable Information
  • Cookies: Session vs. persistent
  • Passwords: Use strong, unique combinations
  • Encryption Types:
    • AES (symmetric)
    • RSA (asymmetric)
    • SHA-256 (hashing)
  • Phishing: Spoofed emails and fake websites
  • Verification Tools:
    • MFA (Multi-Factor Authentication)
    • CAPTCHAs
    • Digital signatures

7. Binary Search Algorithm

Comparison to Linear Search:

  • Binary search: Requires sorted input, O(log n)
  • Linear search: No sort needed, O(n)

Steps:

  1. Compare target to the middle value
  2. Recurse left or right based on comparison
  3. Stop when found or when bounds cross

Applications: Dictionaries, search engines, databases


8. Lists & Filtering Algorithms

  • Lists: Mutable, ordered collections
  • Common Operations: append, remove, slice, sort
  • Filtering: Conditional logic using loops
  • Use Cases: Email filters, search suggestions

9. Random Number Generation

  • Purpose: Games, cryptography, simulations
  • Function: random(a, b) → returns a random integer from a to b
  • Use Cases: Monte Carlo methods, randomized testing

10. Big O & Algorithmic Efficiency

Why It Matters:

  • Faster user experience
  • Better scalability
  • Reduced resource usage

Common Big O Classes:

  • O(1): Constant time (e.g., array lookup)
  • O(log n): Binary search
  • O(n): Simple loops
  • O(n log n): Merge sort
  • O(n²): Bubble sort

Reflection

Throughout the year, I developed both technical skills and a deeper understanding of the broader implications of computing. I learned how algorithmic decisions can reflect real-world biases, explored the ethics of open-source licensing, and practiced writing efficient and secure code. These lessons were not just theoretical; I applied them through hands-on projects and classroom discussions. By the end of the course, I gained the confidence to engage with computing critically and responsibly, not just as a programmer, but as a thoughtful contributor to the digital world.