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:
- Infrastructure improvements
- Subsidized access
- Inclusive technology
- 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:
- Pre-processing (clean data)
- In-processing (adjust training)
- 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
5. Legal & Ethical Concerns in CS
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:
- Compare to middle
- Recurse left or right
- 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.