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
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 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:
- Compare target to the middle value
- Recurse left or right based on comparison
- 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 froma
tob
- 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.