Big Ideas/Topics

  1. How is a program developed?
    • Investigation: define requirements, understand the constraints, understand user concerns and interests
    • Investigate with surveys, direct observation, interviews, and user testing (prototype)
  2. Design the program
    • brainstorm
    • storyboard
    • plan user experience
    • layout user interface (what user has to do…audio, click, interact)
    • organize into modules (small parts of program)
    • develop testing strategy
  3. Decide on program requirements
    • how the program should behave
    • include a list of user interactions
  4. The program specifications outline all of the requirements
  5. Create a prototype
    • incremental process to frequently refine modules of the program
  6. Test! At micro level and macro level.
  7. Program documentation: describe the overall program, list the program’s procedures and methods in the code, talk about the development of the program, include how other coders/programs can interact with yours
    • this happens throughout the whole programming
    • it can improve the efficiency overall

Programs are not usually made by one person Make sure to source codes from other people and include the original programmer Individuals/teams work on certain parts Names must be written in the documentation of the program including their contributions…can be in comments within the programming language

Establish specific purpose of your program, brain storm and brain write ideas. Everything should be blogged.

  • Fun game
  • Brain exercise
  • Raise IQ

Determine requirements (what you are going to do) and constraints (what you are not going to do), consider time and requirement to share project at the beginning of November

  1. Requirements:
    • find time outside of class to code together
    • test run after every big code day
    • pair program and code to help find mistakes
    • keep up with the Scrum Board
    • run and refine each time
    • make a time frame and due dates of each person individually and the project/team as a whole
  2. Constraints:
    • randomly meet up for code days
    • barely meet up
    • code without running it each time
    • run code and add new things without sharing it with the team

Describe the impact of your project. Think about the positive and potentially negative aspects of the project.

  1. Positive:
    • Engaging in the brain
    • Raise IQ
    • Pass time
  2. Negative:
    • Cause an addiction to the game
    • Raise screen time

Be sure to acknowledge sources and inspiration used in establishing and creating your project

  1. https://rosettacode.org/wiki/Tetris/JavaScript
  2. https://codepen.io/kudchikarsk/pen/GYKmdd
  3. https://levelup.gitconnected.com/writing-tetris-in-python-2a16bddb5318

Hacks

  1. Brain Write. The process of just elaborating on ideas and sharing them with your team.:
    • to make our game more original maybe we can customize it with coding facts and ideas on each block
    • maybe people can chose a theme like default, seasonal ones, or colors
    • we should probably code together while one watches to catch mistakes, and then rerun the whole thing so we can catch errors more easily
  2. Wire Frame, Concept. Before coding start to outline what the project will look like.
    • the intro will be either click here or press this button on the keyboard to start the game
    • the intro slide will also have a change theme button
    • there will be a button that shows a record of all of the players, in the order of the highest scores
    • when the game ends, it will display their input name and score and it will show their place in the record of all players, placing them based on score
  3. Modeling or UML. Before coding what data will you need. Think about data behavior, data interaction, or data description. Modeling and UML help with visualization.
    • we will need to use python to build the structures of the blocks
    • we will need to use javascript for the players to use the arrow keys for playing and maybe also the space bar or awsd
    • we will need to use html for the outlook/frontend for the color blocks and designs
  4. Frontend. Wire Frame development is better than coding, at early stages. But if you have clear idea and can articulate it in HTML, CSS, and/or JavaScript.
  5. Backend. Jupyter notebooks is a great way to thing about data and outputs. Often a console program can help you imagine data as well as interaction.

Quiz Results

Difficult Problem

  1. In the following procedure, the parameter max is a positive integer.

PROCEDURE printNums(max)

{ count ← 1

REPEAT UNTIL(count > max)

{

DISPLAY(count)

count ← count + 2

}

}

Which of the following is the most appropriate documentation to appear with the printNums procedure?

A) Prints all positive even integers that are less than or equal to max.

B) Prints all positive odd integers that are less than or equal to max.

C) Prints all positive even integers that are greater than max.

D) Prints all positive odd integers that are greater than max.

Answer B Correct. The procedure initializes count to 1. Inside the loop, the value of count is displayed, then count is incremented by 2 to the next odd integer. The loop terminates when count exceeds max, so all positive odd integers less than or equal to max are printed.