Skip to the content.

Homework Certificate

Proof of Homework Completion for Homework Certificate

Certification of Homework Success

Throughout the year, I completed a variety of assignments that reinforced my learning in computer science fundamentals, problem-solving, and coding practices. These exercises complemented my project work by deepening my understanding of core concepts and honing my technical skills.

Homework Submission Table

Homework Title Link
3.2 View
3.4 View
Binary Search View
Sorting Algorithms View
Color View
Random View
Graphs Heuristics Undecidable Problem View
Logic Gates 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 (deepfakes, cheating)
  • Drones: agriculture vs. privacy
  • Gene editing: cures vs. ethical risk

2. The Digital Divide

Causes: Economic, geographic, and societal factors
Impacts: Education gaps, employment inequality, limited telemedicine, reduced civic engagement
Solutions:

  1. Infrastructure improvements
  2. Subsidized access
  3. Inclusive technology
  4. Policy for equity

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:

  1. Pre-processing (clean data)
  2. In-processing (adjust training)
  3. Post-processing (monitor 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

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 requirements Documentation, media

Ethical Issues

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

6. Safe Computing

  • PII: Sensitive identity data
  • Cookies: Session vs. persistent
  • Passwords: Secure combinations
  • Encryption: AES (symmetric), RSA (asymmetric), SHA-256 (hashing)
  • Phishing: Spoofed emails, websites
  • Verification: MFA, CAPTCHAs, digital signatures

7. Binary Search Algorithm

Comparison to Linear Search

  • Binary requires sorted input; O(log n)
  • Linear search: O(n), works unsorted

Steps:

  1. Compare to middle
  2. Recurse left or right
  3. Stop when found or bounds cross

Applications: Dictionaries, search engines, databases


8. Lists & Filtering Algorithms

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

9. Random Number Generation

  • Purpose: Games, cryptography, simulations
  • Function: random(a, b) for uniform integers
  • Use Cases: Monte Carlo methods, randomized testing

10. Big O & Algorithmic Efficiency

Why It Matters

  • Faster UX, better scalability, reduced resource usage

Big O Classes

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

Reflection

Over the course of this year, I developed not only technical proficiency but also a critical understanding of computing’s societal impacts. I explored core topics like algorithmic efficiency, safe computing, and legal/ethical responsibilities, all while reinforcing these concepts through projects and problem-solving activities. Through practical implementation and regular reflection, I have grown from a passive learner into an active, thoughtful contributor in the world of computer science.