105 Coding Activities

Previously in CS

  • 103 Variables
  • 104 Data Types
  • 105 Operators

Overview

Today we will take a moment to consider the big ideas and computational practices which are the longterm goals of the course. We will continue practicing the programming concepts we’ve been learning about in the past weeks. You will also learn about how many professional tech companies work in scrum/agile teams and you’ll be placed in your first scrum team. Although you will still need to write your own code solutions to the assignments, you will work collaboratively with your team to problem solve and figure out various solutions to the problems you’ll be given. Some of the problems you’ll be given will model real-world problems that are being solved in tech companies. Other times I’ll place you in difficult situations to simulate the feeling high-pressure situations such as getting last minute changes or requests to update your code just before the deadline or even worse, the deadline gets moved 3 days sooner.

Seven Big Ideas

  1. Creativity – computing is a creative human activity that produces innovation and promotes exploration.
  2. Abstraction – reduces the information and detail to facilitate focus on concepts relevant to understanding and solving problems.
  3. Data & Information – facilitate the acquisition of knowledge.
  4. Algorithms – are used to develop and express solutions to computational problems.
  5. Programming – is a created process that enables problem-solving, human expression, and creation of knowledge that produces computational artifacts. This is where decomposition (the opposite of abstraction) must happen.
  6. The Internet – pervades modern computing. Digital devices, systems, and the networks that interconnect them enable and foster computational approaches to solving problems.
  7. Global Impact – Computing has a global impact. Computing enables innovation in other fields including science, social science, humanities, arts, medicine, engineering, business, agriculture, and many others.

Six Computational Practices

  1. Connecting Computing
    1. identify impacts of computing.
    2. describe connections between people and computing.
    3. explain connections between computing concepts.
  2. Creating Computational Artifacts
    1. create an artifact with a practical, personal, or societal intent.
    2. select appropriate techniques to develop a computational artifact.
    3. use appropriate algorithmic and information management principles.
  3. Abstracting
    1. explain how data, information, or knowledge (and wisdom) is represented for computational use.
    2. explain how abstractions are used in computation or modeling.
    3. identify abstractions.
    4. describe modeling in a computational context.
  4. Analyzing Problems & Artifacts
    1. evaluate a proposed solution to a problem.
    2. locate and correct errors.
    3. explain how an artifact functions.
    4. justify appropriateness and correctness of a solution, model, or artifact.
  5. Communicating
    1. explain the meaning of a result in context.
    2. describe computation with accurate and precise language, notations, or visualizations.
    3. summarize the purpose of a computational artifact.
  6. Collaborating
    1. collaborate with another student in solving a computational problem.
    2. collaborate with another student in producing an artifact.
    3. share the workload by providing individual contributions to an overall collaborative effort.
    4. foster a constructive, collaborative climate by resolving conflicts and facilitating the contributions of a team member.
    5. exchange knowledge and feedback with a partner or team member.
    6. review and revise your work as needed to create a high-quality artifact.

Resources

  1. See previous posts for applicable resources.

Programming Activities

  1. Input, Process, Output, Assignment, Mathematical Operators and Functions – Level 1 and 2
  2. fahrenheit.c
  3. pennies.c

Learning Objectives

  • LO 2.1.1: Describe the variety of abstractions used to represent data.
  • LO 2.2.3: Identify multiple levels of abstractions that are used when writing programs.
  • LO 5.2.1: Explain how programs implement algorithms

Enduring Understandings

  • EU 2.1: A variety of abstractions built on binary sequences can be used to represent all digital data.
  • EU 2.2: Multiple levels of abstraction are used to write programs or create other computational artifacts.
  • EU 5.2: People write programs to execute algorithms.