CSP+Dump+17

I Have a Dream Part 2
 * 15 Sept**
 * Open you're I have a dream app in App Inventor
 * Click on Projects, Then Save Project As, Enter I Have a Dream Part 2, otherwise, I may not be able to grade you're first app
 * [[file:awoodbridge/IHaveADreamTutorialpt.2.pdf|I Have a Dream Part 2]]
 * In your portfolio, create a new page named //I Have a Dream Part 2// and answer the following questions:
 * What elements and components make up the **//User Interface (UI)//** for this enhanced version of the //I Have A Dream// app?
 * 19 Sept**
 * Create a page called **//Blown to Bits Chapter 1//** under the //Homework// category of your Portfolio (If you are using the Mobile CSP Student portfolio template, this page has already been created for you) and post brief answers using complete sentences to the following questions on that page.
 * What is a //bit// and what does it mean to say that "it's all just bits"? (Koan 1) Give examples of the things today that are stored in bits?
 * Describe, in your own words, Moore's Law.
 * Someone offers you a summer job and offers you two pay rates: (1) $10 per hour for 40 hours per week for 30 days or (2) One cent on day 1, two cents and day two, four cents on day three and on (doubling each day) for 30 days. If you were trying to make as much money as possible in 30 days, which pay rate would you choose? What does this illustrate?
 * Give an example of how the digital explosion is "neither good nor bad" but has both positive and negative implications.
 * **"Advances in computing have generated and increased creativity in other fields."** Comment on this statement. Do you agree? Can you give an example to support (or contradict) it?


 * 21 Sept**
 * I Have A Dream Projects Assignment
 * My Soundboard App Assignment


 * 05 Oct**
 * In your portfolio, create a new page named **//Abstraction 1//** (If you are using the Mobile CSP Student portfolio template, this page has already been created for you) and provide thoughtful answers to the following questions:
 * 1) Write an explanation of abstraction, including at least one example, in your own words.
 * 2) Give 2-3 examples of abstractions in every day life not identified in the lecture.
 * 3) Consider an example of software, a mobile application, or a web site and explain how it is an abstraction.


 * 14 Oct**
 * In your portfolio, create a new page named **Binary Numbers**, answer the following questions:
 * 1) Figure out what decimal value is represented by the following binary number
 * 2) Represent the decimal value 517 as a binary number.
 * 3) The binary number system is //base 2// and has 2 digits. The decimal number system is //base 10// and has 10 digits. The //octal system// is //base 8//. How many digits does it have? What are they, starting at 0?

>
 * 18 Oct**
 * In your portfolio, create a new page named Logic Gates, answer the following questions on that page
 * 1) Pictured here is a Logic.ly version of a flip-flop . A flip-flop is a basic memory circuit that stores a single bit -- either a 0 or 1. Implement this circuit in [|Logic.ly]. NOTE that NOR gates (not OR gates) are being used in this circuit and that the inputs are Push Buttons. The light should turn on when you click the bottom button and turn off when you click the top button. Which memory state is represented by clicking the bottom button?
 * 1) Please describe your work on the Logic.ly website, what are 2-3 things you learned about logic gates and how we use them?
 * 2) How is the Square box (IC version) of the full adder more abstract then the full gate layout? Why was it easier to use the IC version in your Ripple Carry Adder
 * 3) Consider these three things: The OR gate (i.e., the physical circuit), the Boolean OR function (as defined by its truth table), and the OR symbol. How would arrange them from most abstract to least abstract? And what criterion would you use to determine their order?


 * 19 Oct**
 * Unit 2 Assessment - This counts as a quiz
 * Here is some practice drills to make sure you have a handle on everything we've covered in unit 2, I'm not grading this, but I would be happy to check your work with you.

=Unit 3=

Paint Pot
 * 24 Oct**
 * Follow the Paint Pot Tutorial to Create the App
 * Show me the working app on a tablet/phone
 * Use the reflection questions at the end of the tutorial for your portfolio

>> You can use this chart to help you: [|ASCII Conversion Chart]
 * 27 Oct**
 * 1) Create a new page named //Representing Images// under the //Reflections// category of your portfolio and answer the following questions:
 * 2) Decode this message by converting it from binary to ASCII: 1000001 1110000 1110000 0100000 1001001 1101110 1110110 1100101 1101110 1110100 1101111 1110010 0100000 1010010 1001111 1000011 1001011 1010011 0100001
 * 1) Describe what it means to say that [|JPEG] is a lossy compression technique and whether or not it affects the quality of camera pictures.
 * 2) Give a specific example of a binary sequence that can represent more than one type of data -- e.g., a number, a color, a character -- and describe how to interpret its different val**ues.**

Paint Pot Project choose 5 of the options below and integrate them into ONE APP, this is //different// from I Have a Dream Projects where each project was it's own app.
 * 31 Oct**
 * 1) Add a button to support a 4th color option for the app.
 * 2) Add a custom image to the app instead of using the cat image that is provided. You can upload images to your project from either the Designer View or Blocks Editor view. Use the image as the Canvas background image. Make sure the image doesn’t have any copyright restrictions.
 * 3) Instead of using an existing image, take a photo with the camera and use that as the Canvas background image! (Hint: For this you’ll need to use a new Button, the Camera component, and the Camera’s AfterPicture event.) See the Paint Pic tutorial for assistance.
 * 4) The app currently has a ButtonPlus and ButtonMinus. But, we only completed the code for ButtonPlus. Now that you understand how to increment variables by 1, implement an algorithm for ButtonMinus that will subtract 1 from dotsize.
 * 5) Currently, if a user wants to use a larger dot and then use a smaller dot (or vice versus), they have to continually press the ButtonMinus (or ButtonPlus). If the current value of dotsize is 25, getting to to a size of 4 would be pain. For easier use, add a button that resets the size of the dot (circle) back to its original value. (HINT: You’ll need a second variable here to remember the original value of the dotsize.)
 * 6) **If/Else Exercise:** In computer programming, a bug is an error or defect, that prevents the app from working the way it is supposed to. In this app, if the user continues to press ButtonMinus, the value of dotsize will eventually become negative. If dotsize is negative, what will be drawn when the user touches the screen? Try fixing this bug by adding an if/then algorithm to the ButtonMinus block. (Hint: The If/Then block is found under Control in the Toolbox. If you’ve done the I Have A Dream Part 2 lesson, you’ve already seen how to use an if/else block.


 * When you are finished, download the app APK file to your computer
 * Upload it to your Google Site
 * Make a new page called Paint Pot Projects under the first category
 * Add a description of the app
 * List out the changes you made to you app
 * Add a link to the file you uploaded
 * Make a QR code for your APK
 * Right click on the link, and copy the link (not the text)
 * Use qrhacker.com to make a link to your file
 * Upload the image to your site

Create a new page in reflection section of your portfolio called **Error Detection & Checking**, and answer the following questions:
 * 02 Nov**
 * 1) Please describe the UPC or ISBN error checking system in your own words. Please include 2 examples (showing your work) from your house.
 * 2) A problem of the UPC system is that if two adjacent digits that were transposed have a difference of 5, the error will not be detected. Explain why this occurs
 * 3) As we have seen on many television commercials, there are many banking institutions that offer credit cards. The first six digits that appear on a credit card are used for the issue identifier. How many possible issuers are there given each digit 0-9 could be used more than once?
 * 4) This process is also used to detect most digit transpositions. For instance when entering a number 5832403 the data entry error is transposing the second and third digits: 5382403. There are two digits, when transposed, that will go undetected using the Luhn algorithm. What are they? Explain why this error cannot be detected.


 * 09 Nov**
 * [|Magic 8 Ball Tutorial]
 * Create a page named //**Magic 8 Ball**// under the //Reflections// category of your portfolio and answer the following questions:
 * 1) This app is an **//abstraction//** of the real Magic 8 Ball game. You’ve created a **//model//** of the real Magic 8 Ball game. In the real game you shake a real ball that contains messages that somehow float into view when the shaking stops. Describe how the various features of your model represent features of the the real game.
 * 2) This app makes use of //**randomness**// -- it picks a random message from a list of options. Suppose you were going to create an app to model a coin flip. How might you use randomness in that case?

=Unit 4=


 * 28 Nov**
 * Android Mash Tutorial
 * Create a page named **//Android Mash//** under the //Reflections// category of your portfolio and answer the following questions.
 * 1) Android Mash presents a new type of event which you haven't encountered before. What is that new event? How often is it triggered?
 * 2) Consider the apps you've developed so far. Can you list all the different events your apps have responded to? What other events do you think an app can respond to? Explore some of the components in App Inventor and see what event handlers they have.
 * 3) What are the advantages of writing procedures in programming? Consider the procedures you wrote for your Android Mash app.


 * 8 Dec**
 * Android Mash Projects - Please incorporate all of the following, you will need to create a new page in the projects section in your portfolio and include: Description, APK, QR Code, and what changes you made to the app (be specific, which blocks did you add change)
 * 1) To make this more like a real game, add a scoring feature to the app, modifying the UI so it can display changes to the user's score as it changes. Hint: Use what you learned in the Paint Pot app about incrementing a variable to implement the score feature.
 * 2) **If/else algorithm:** Add a winning score feature that stops the game and congratulates the user when they reach a certain score. Stopping the game should include stopping the Android from jumping around. (Possible enhancement: Use a TextToSpeech component and have it say something when the player reaches a certain score.)
 * 3) **Procedural abstraction**: Add a Reset button to the app that allows the player to restart the game after it's been stopped. Define a //**reset**// procedure to encapsulate the tasks involved in resetting the game. These would typically include setting the score back to 0 and getting the Android moving again. In additional to calling the procedure from the reset button event handler, it should be called from the //Screen1.Initialize// handlre. Make sure you use good naming conventions when you add a button to the app.
 * 4) Create one or more of your own enhancements or variations for this app. Here are some ideas:
 * You could also implement keeping track of the number of misses -- i.e., the number of times the player failed to touch the Mole -- and factor this into your scoring algorithm.
 * **Challenging:** Change the speed of the mole when the player reaches a certain score. (Hint: Recall that in this app, the Mole's speed is controlled by the Clock timer.)


 * 13 Dec**
 * Blown to Bits Chapter 2
 * Create a page called **//Blown to Bits Chapter 2//** under the //Homework// category of your Portfolio and write answers using complete sentences to the following questions on that page. Create a page called Blown to Bits Chapter 2 under the Homework category on your Portfolio and post your answers to these questions on that page. You can revise your answers after we discuss this reading in class or in the forum.
 * ====Short answer====
 * 1) What is an RFID tag and what does it do?
 * 2) What is an EDR and what does it do?
 * 3) Is it possible to identify someone, perhaps a patient, knowing just his or her gender, birth date, and zip code? Explain.
 * 4) What is the difference between "big brotherism" and "little brotherism"?
 * ====Free Response====
 * 1) How do you feel about “Big Brother” watching you? Do you think having security cameras everywhere is good or bad?
 * 2) Is the Privacy Act effective? Explain.
 * 3) “The digital explosion has scattered the bits of our lives everywhere: records of the clothes we wear, the soaps we wash with, the streets we walk, and the cars we drive and where we drive them.” (pg 20) Marketing companies use these data to build models of our preferences and use these models to recommend products to us.. In 1 or 2 paragraphs, address the question 'Am I willing to trade some of my privacy for the convenience of having a computer or a company recommend products to me? Why or Why not?’

=Unit 5=

>> >> **Free Response:**
 * 6 Jan**
 * Blown to Bits Chapter 4
 * Keep these questions in mind as you read Chapter 4. For each question, write a short answer and post your answers on a page called //Blown to Bits, Chapter 4// on your portfolio. Don't worry if you think you don't know the right answer. Just give it your best shot.
 * 1) Is Wikipedia considered Web 1.0 or Web 2.0? Explain.
 * 2) Should a researcher place absolute trust in a search engine? Why or why not?
 * 3) "The architecture of human knowledge has changed as a result of search." What does this claim mean?
 * 4) When you type a word or phrase into the Google search engine, what is the search algorithm that is being used? Does Google’s search engine search the web? Explain
 * 5) What does it mean to “empty the cache”?
 * 6) Think of a number between 1 and 100. If you tell me "too high" or "too low", I can guess the number in 7 guesses. How come? What algorithm makes this possible?
 * 7) What is the PageRank algorithm? How does it work?
 * 8) What is a captcha and why are captchas important?
 * 1) "The architecture of human knowledge has changed as a result of search." Do you agree?
 * 2) "Google emerged -- from this dilemma at least -- with its pocketbooks overflowing and its principles intact." Do you agree?
 * 3) What do you think about the differences between Figure 4.10 and Figure 4.11?
 * 4) Would you retain your search history or delete it? Why?

=Unit 6=


 * 11 Jan**
 * [|Presidents Quiz App Tutorial]
 * Create a page named **//Presidents Quiz//** under the //Reflections// category of your portfolio and answer the following questions.
 * 1) Describe the significance of the global variable index. How was it used in this app? Based on your answer, why might indexing be important in programming?
 * 2) Using what you have learned about lists and indexing, how might you enhance this app so that it is a multiple choice quiz?


 * 17 Jan**
 * Big Data Project


 * 7 Feb**
 * Practice Test

>> **Free Response Questions**
 * 8 Feb**
 * [|List of Lists] app
 * Create a page named **//List of Lists//** under the //Reflections// category of your portfolio and answer the following questions.
 * 1) Describe how using a list of lists allowed the Presidents Quiz app to have more variety.
 * 13 Feb**
 * Blown to Bits Chapter 6
 * Keep these questions in mind as you read chapter 6. For each question, write a short answer and post your answers on a page called //Blown to Bits, Chapter 6// on your portfolio. Don't worry if you think you don't know the right answer. Just give it your best shot.
 * 1) Why should all Internet users be aware of copyrighted material?
 * 2) What is a GB? How many bytes are in GB?
 * 3) What is the NET Act and what is its significance in the history of copyright?
 * 4) What is a peer-to-peer architecture? Provide an example of at least one well-known peer-to-peer network.
 * 5) What is the DMCA and why is it significant to copyright?
 * 6) What are Open Access and Creative Commons? How have they impacted the sharing of digital information?
 * 1) Before reading this chapter, were you aware of copyright infringement? When you put digital content (e.g. images, videos) in your apps, where did you get it from? Is it possible that you violated any copyright terms? Has the reading raised your awareness of how you use content found on the Internet?
 * 2) In your opinion, are YouTube users violating copyright terms when they make lyric videos? Why or why not?
 * 3) In your opinion, are computers that use DRAM violating copyright terms? Why or why not?
 * 4) Select one of the technical innovations described in the chapter and write an explanation of the technical details of this innovation. Try to use terms that someone unfamiliar with the innovation would understand.
 * 5) **Bonus:** Visit chillingeffects.org and read about digital copyright issues. Write a paragraph describing your findings.


 * 27 Feb**
 * Firebase
 * Firebase App Template
 * Create a new page named //**Abstracting Data to the Web**// under the //Reflections// category of your portfolio and write brief answers to the following questions.
 * 1) Describe and give an example of the difference between //synchronous// and //asynchronous// data access.
 * 2) True or False. When an app retrieves data from Firebase, it first requests the data and then it stops whatever it is doing and waits for the data to arrive. Explain.
 * 3) One aspect of abstraction is that it helps to reduce details to focus on what's relevant. How does the use of an external database in this app help reduce detail in the program?


 * 08 Mar**
 * Caeser Cipher Tool


 * 13 Mar**
 * [|Generic Quizzing App (Firebase Projects)]
 * Generic Quiz Template
 * Create a page named **//Generic Quiz App//** under the //Reflections// category of your portfolio and answer the following questions.
 * 1) Identify a //procedure// that you defined or modified to solve the tasks involved in this problem and describe how it helps reduce the overall complexity of the program. Provide a screenshot of the appropriate blocks.
 * 2) In your code, identify the algorithm you used to query the FirebaseDB for the quiz data. Explain the //asynchronous// nature of the algorithm. Provide a screenshot of the appropriate blocks.

AP Exam Prep






 * Explore Project Practice


 * [[file:Mobile_CSP_Big_Ideas.pdf|Big Ideas Mind Map]]

Game Creation Unit
 * [[file:DCCRPGBeta060811.pdf|Dungeon Crawl Classics Beta]] manual (this is not the full book, but should give you a good idea about how to play)

http://www.ted.com/talks/lang/en/clay_shirky_how_cellphones_twitter_facebook_can_make_history.html