App Inventor 2 Website



12 Jan

05 Jan


17 Dec
  • Analyzing Search Algorithms


    Search Experiment

external image searchappscreen.png
Empirical Search Analysis. In this activity you are going to use an App Inventor app to experiment with and analyze the binary and sequential search algorithms.
    1. Create portfolio page named Search Experiment.
    2. Use the Barcode Scanner app -- you can download it from the Play Store if you don't have it — to download the Search Experiment app (APK) from the QR code:
      external image SearchAppQR.png If you are using the emulator, you can download the aia file and import it into App Inventor.
    3. You will be performing a worst case analysis of the algorithms. Whenever you press the search button, the app will search for a number that is not in the list.
    4. Test each search algorithm on lists of size 1000, 2000, ..., 10,000 numbers. NOTE: Because these algorithms involve loops, you may see an ANR (App Not Responding) popup informing you that the app is not responding and giving you the option to "wait" or stop the app. Choose "wait".
    5. Create a table on your portfolio and write the search time in milliseconds (ms) for each test case. You should have a total of 20 test cases, 10 for each algorithm.
    6. Use excel) to record and graph your results.
    7. Analyze your results to determine which algorithm is which. Which is the binary and which is the sequential search. Provide a clear description, referring to your graph and your tabulated data, to explain how you arrived at your conclusion.
  • Analyzing Sort Algorithms

  • Sort Experiment

external image sortappscreen.png
Empirical Sort Analysis. In this activity you are going to use an App Inventor app to experiment with and analyze the bubble, merge, and bucket sort algorithms.
    1. Create a portfolio page named Sort Experiment.
    2. Use the Barcode Scanner app -- you can download it from the Play Store if you don't have it -- to download the SortExperiment app (APK) from the QR code:
      external image SortAppQR.png If you are using the emulator, you can download the aia file and import it into App Inventor.
    3. Test each sort algorithm on lists of size 10, 20, ..., 100 numbers. NOTE: Because these algorithms involve loops, you may see an ANR (App Not Responding) popup informing you that the app is not responding and giving you the option to "wait" or stop the app. Choose "wait".
    4. Create a table on your portfolio and write the search time in milliseconds (ms) for each test case. You should have a total of 30 test cases, 10 for each algorithm.
    5. Use Excel to graph your results. Take a picture of your graph and upload it to your portfolio.
    6. Analyze your results to determine which algorithm is which. Which is the bubble, and which is the merge, and which is the bucket sort. Provide a clear description, referring to your graph and your tabulated data, to explain how you arrived at your conclusion.


09 Dec
  • Logo 1
  • Exercises. You can answer these on the reflection page.
    • Design an algorithm to draw a 20-by-20 (pixels) square. Note: Designing an algorithm is not the same as programming it. You may first want to write it out by hand or write it on the board while working with a partner. Part of designing it is also figuring out what your design would do -- that is, mentally thinking of yourself as the Android and going through the steps of the algorithm and seeing what the result is. This is also an exercise you could do with your partner, taking turns being the turtle. After you have designed a good algorithm, implement it in App Inventor by modifying the draw() procedure to draw a 20-by-20 square.
    • Let’s use a little abstraction here. Instead of just putting the steps of your algorithm into the draw() procedure, define a procedure named square20 that draws a 20-by-20 square and then modify the draw() procedure so that it calls the square20procedure
    • Procedural Abstraction: Defining procedures is a form of procedural abstraction. The procedure you define hides the details of the algorithm, replacing the details with a name (draw20) that you can simply call when you want to do that procedure.
    • One good reason for doing so is that you’ll be able to use your procedures to solve other problems -- e.g., in this lesson, when you want to draw a face. In Logo, as in other languages, defining a procedure is a way of extending the language. For example, now that you have a draw20 procedure, you can use it just like any of the primitive commands -- forward, turn -- you started with.
    • Design an algorithm for drawing a 40-by-40 square. Then implement your algorithm by defining a procedure named square40that draws a 40-by-40 square. Then modify the draw() procedure so that it calls the square40 procedure.
    • Design an algorithm for drawing a face with a large square for the head, 2 small squares for eyes, and a line for the mouth (nose optional). Design and define any other procedures you need to help simplify this problem.
    • Create a new page named Logo 1 under the Reflections category of your portfolio and write brief answers to the following questions.
      • Can you draw a triangle with this set of Logo commands? Discuss how or why not.
      • What weaknesses do you find in using the procedures (the abstractions) we gave you -- forward, turn -- for drawing simple shapes? How would you change the definitions of these procedures to make it easier to draw shapes? Give a specific example that illustrates how a more powerful set of procedures would improve things.


25 Nov
  • Coin Flip Experiment
  • Create a page named App Inventor's PRNG under the Reflections category of your portfolio and answer the following questions.
    1. Do you notice any kind of trend as the number of trials (coin flips) increases? Discuss what you expected to happen and what you observed?
    2. What does this experiment tell you about App Inventor’s PRNG? Is it ‘good’?
    3. How many trials should be performed in order to draw a conclusion one way or the other about our hypothesis?
    4. Because we are using a coin flip app, this experiment really tests only that App Inventor's random integer block generates a 1 around half the time. Is this a sufficient test for App Inventor's PRNG? How might you improve this experiment to increase your confidence in App Inventor’s PRNG?

20 Nov
  • Coin Flip App Tutorial
  • Create a page named Coin Flip Simulation under the Reflections category of your portfolio and answer the following questions.
    1. Write an if/else statement to express the following real life situation. Mary likes ice cream and always chooses chocolate unless there is no chocolate in which case she chooses strawberry. But if there’s no strawberry either then she settles for vanilla, which, for some reason, is always available. (HINT: You may need to put together more than 1 if/else statement to do this.)
    2. Give another example from real life where you use if/else logic to make a decision.
    3. What enables us to simulate coin flipping in this app is App Inventor’s random-integer block. This blocks constitute a model of randomness -- an abstraction of real randomness such as really flipping a coin. How might we use the CoinFlip app test whether this is a good model of randomness?

19 Nov
  • Random.org worksheet

18 Nov
  • Coin Flips Worksheet

14 Nov
  • Mole Mash Projects
  • Create a page named Android Mash Projects under the Creative Projects category of your portfolio and answer the following questions.
    1. Give brief descriptions of the enhancements you added to your app. Provide screen shots of important blocks and describe how you used them to solve certain programming problems.
    2. When the user touches an ImageSprite, both the Canvas.Touched and ImageSprite.Touched events are triggered. This is important for more complex games. For instance, suppose there are two "Androids" in your game. If you hit one, you earn a point. If you hit the other, you lose two points. If you hit the Canvas and don't hit any Android, you lose 1 point. How would you code this?
    3. How do you speed up the movement of the mole? What is the fastest it could move?

13 Nov
  • Mole Mash Tutorial
  • Create a page named Android Mash under the Reflections category of your portfolio and answer the following questions.
    1. AndroidMash 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 MoleMash app.

14 Oct
  • Map Tour Tutorial
  • Create a page named Map Tour under the Reflections category of your portfolio and answer the following questions:
    1. What is the list picker component? How was it used in this app?
    2. What is the activity starter component? How was it used in this app?
    3. If you were on a real tour, would the Map Tour app be a good app to have and use? Why or why not?


09 Oct
  • You'll have two QR Codes, and two APK files on the same page for this one
    • Magic 8 Ball Basic
    • Magic 8 Ball Projects
    • 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?

08 Oct
  • Create a page named Error Detection under the Reflections category of your portfolio and answer the following questions:
    1. Explain in your own words how the card "trick" was able to determine which card was flipped.
    2. The card "trick" shows that it is always possible to identify the card that was flipped as long as only one card was flipped. Would it be possible always to determine if an error occurred if two cards were flipped? Explain, giving examples if possible

07 Oct
  • Group Code - Paint Pot 2 Starter
  • Create a page named Paint Pot 2 under the Reflections category of your portfolio and answer the following questions:
    1. One advantage of abstraction is that it allows us to make our apps more general. Describe how the use of the variable dotsize in this app is an example of abstraction in that sense.
    2. Abstraction is sometimes defined as "reducing information and detail to focus on what's relevant". In your opinion, does the use of the dotsize variable fit this definition? Why or why not?

30 Sept
  • B2B Chapter 3: Ghosts in the Machine
  • Create a page called Blown to Bits Chapter 3 under the Homework category of your Portfolio and write answers using complete sentences to the following questions on that page.
    Short answer:
    1. What is metadata? Give an example.
    2. What is a model?
    3. What's the difference between a raster image and an ASCII representation of a text document?
    4. What are filename extensions? What are they used for?
    5. What is lossless representation? What is lossy representation? What are the trade-offs in using each representation?
    6. What is steganography and what is it used for?
    7. What would you have to do to delete a document from your computer so that it could not possibly be read by anyone else
    Free Response:
    1. How has retouching become a controversial issue? Give an example.
    2. Would you rather own a camera (or camera phone) with a higher number of megapixels or lower? Explain.
    3. Other than digital images, what might be an example of a computer model? Explain your answer based on the definition of a model.

29 Sept
  • RLE & Bits Video Link
  • Create a new page named Representing Images under the Reflections category of your portfolio and answer the following questions:
    1. 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
    2. Describe what it means to say that JPEG is a lossy compression technique and whether or not it affects the quality of camera pictures.
    3. 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 values.


22 Sept
  • PaintPot Projects
  • Create a new page under the Creative Projects category of your portfolio named Paint Pot Projects and write brief answers to the following questions.
    1. Describe each enhancement you made to the Paint Pot app and include in your description some of the key technical features of the enhancement.
    2. For the current version of the app, changing the size of the dot that's drawn requires us to change the code. Do you have any ideas about how changing the dot size could be something that the user controls rather than the programmer?

18 Sept
  • PaintPot Tutorial
  • Teacher Tube Video
  • Create a new page named Paint Pot 1 under the Reflections category of your portfolio and write brief answers to the following questions.
    1. How many different types of events does this app respond to? Name each type of event.
    2. Describe the difference between the two Canvas events, Touched and Dragged.
    3. What do the X and Y properties represent in the Touched event handler?
    4. Describe the difference between the Start and Previous properties in the Dragged event handler.

15 Sept
  • I Have a Dream Projects
  • Create a page called I Have A Dream Projects in the Creative Projects section of your portfolio site
    1. In this lesson, you created your own sound board app. Give a brief description of it here. Describe its theme, if it has one, and what particular sounds (music or speeches) it plays.
    2. Describe how you designed your app's UI. What components does it use?
    3. Now that you've had some experience building apps in App Inventor, what do you think about programming. Is it a creative activity? In what ways does it allow you to express yourself?


12 Sept
  • Read Blown to Bits Chapter 1
  • Create a page called Blown to Bits Chapter 1 under the Homework category of your Portfolio and post brief answers using complete sentences to the following questions on that page.
    1. 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?
    2. Describe, in your own words, Moore's Law.
    3. 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?
    4. Give an example of how the digital explosion is "neither good nor bad" but has both positive and negative implications.

09 Sept
  • 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?

08 Sept
  • I Have a Dream App
    • Starter App
    • Tutorial Video (will not work at school)
    • In your portfolio, create a new page named I Have a Dream and answer the following questions:
      1. In your own words, describe what event driven programming is. What event handler was used in the I Have a Dream app? How was it used?
      2. Is it possible to create an app without event driven programming? Explain.
      3. What elements and components make up the User Interface (UI) for the I Have A Dream app?
      4. What are some of the elements that make up the UI for a car? An ATM machine?

05 Sept

04 Sept
  • Algorithm Slides
  • Sign up for remind
  • Run through Blocky Mazes 1-9 (10 is really hard but is worth figuring out)
    • Once you figure out a maze, click the button in the bottom left and copy and paste the code into word (or notepad).
    • We are going to talk about it in class Thursday.



http://www.ted.com/talks/lang/en/clay_shirky_how_cellphones_twitter_facebook_can_make_history.html
https://docs.google.com/document/d/10Viw0wyGqBjSjZYA7irsOOPGnN-2BVfhk6svXovl7UU/edit#heading=h.cbqs8cgq75pa