Big Idea 1
Creative Development
Computing Innovations
Inspiration Sources:
- Nature: examples include the flight of the vulturine guinea fowl, sonar used by whales and dolphins, termite architecture.
- Human Creativity: Innovations in computing are generated by people and continually evolve.Impact of Computing Innovations:
- Positive effects:
- Advances in fields such as medicine (e.g., data analytics improving insurance decisions).
- Technologies like wearable heart monitors and microprocessor-controlled artificial legs that enhance the quality of life.
- New artistic expressions enabled by computing technologies.
- Negative examples:
- Innovations that have struggled to find adoption: Bluetooth toasters, smart water fountains for cats, internet-connected fridges.
Hardware vs. Software
Definitions:
- Hardware: Physical components of a computing device (e.g., Transistor, Graphics card, Motherboard).
- Software: Instructions written in a programming language that are executed by hardware to perform tasks (e.g., Operating systems, Self-driving car software).Moore's Law:
- Predicts the size of transistors halving every two years while their cost also halves, leading to smaller and more powerful computers.
- Historical comparison: Early computers occupied 1800 square feet and weighed nearly 50 tons; now, devices fit in pockets.
Collaboration in Computing
Importance of Collaboration:
- Enhances learning by sharing diverse perspectives and avoiding bias in development.
- Example: Inclusion of female coders in gaming development may yield insights overlooked by male-only teams.Skills Required for Effective Collaboration:
- Communication
- Consensus building
- Conflict resolution
- NegotiationBenefits of Collaboration:
- Enhanced self-awareness by pairing strengths and weaknesses.
- Facilitates problem-solving through varied experiences and skill sets.
- Learning experiences through the exchange of ideas.Tools for Collaboration:
- Online platforms such as Google Docs, Zoom, Slack, Yammer allow teamwork regardless of location.
How Programs Function
Definition of a Program:
- A collection of statements or instructions that accomplishes a specific task when executed by a computer.
- Example of workflow: Input a list of numbers, process to determine evenness, output the result.
Basic Programming Concepts
Input/Output Example:
- Input:3
- Task: Determine if the number is even or odd.
- Output:odd
Complex Program Features
A program must be adaptable for multiple inputs and scenarios.
Example of a Faulty Program:
- The initial value oftotalcould cause problems if not correctly initialized.
- Correcting Initialization: Set total to0instead ofmyList[1].
The Importance of Testing
Programmers should create numerous test cases to ensure functionality.
Fresh perspectives often uncover errors unnoticed by the author due to prolonged focus on the code.
Program Abstraction:
- Users interact with programs without needing to understand underlying code complexities (Example: Spellcheck in Microsoft Word).
Program Inputs and Outputs
Definition of Program Input:
- Data sent to a program for processing, can be tactile, audio, visual, or text.
- Example: Voice input for sending messages or weather queries.Event Generation:
- Actions providing input to a program can be triggered by user interactions (e.g., key presses or clicks).
Development Process
Nature of Development Process:
- Can be either ordered/intentionally or exploratory.
- Iterative Process: Incorporates feedback for refinements at each stage, necessitating revisits to earlier phases.
- Incremental Process: Focuses on segments of a project and verifies functionality before integration into the overall program.
Key Phases in Development Process
Investigating and Reflecting
- Identify communication needs (e.g., for video conferencing).Designing
- Outline algorithms for desired functionalities.Prototyping
- Write initial versions of the program.Testing
- Execute programs to find and rectify errors.
Ways to Conduct Investigations
Surveys
User Testing
Interviews
Observations
Focus on user requirements and constraints.
Program Documentation
Definition and Importance:
- Written descriptions detailing function and development of code segments.
- Vital for maintaining effective programs, enhances clarity and collaboration.
- Commenting in Code:
- Used to add explanations without affecting code execution (Example formats://, comments surrounding defined features).
Error Types in Programming
Logic Error:
- Flaw in the algorithm causing incorrect behavior.Syntax Error:
- Violating programming language rules.Runtime Error:
- Errors occurring during the execution of the program, specifics vary by language.