We have seen some "programming" (via the
code.org course) and discussed what programming is. There are a variety of things you (or your students) can do with Snap! (or Scratch)—animation, having the computer draw, games, trivia/quizzing, etc. Another is story telling. And, the complexity of the story telling can vary a lot. For this assignment a modest amount of complexity is expected.
The first step in this assignment is to consider several fairy tales, nursery rhymes, jokes, etc. and think about how they might be presented in Snap!. Then, choose one to work on. I suggest each partner bring a couple ideas and that you discuss the alternatives before choosing.
The program you plan and implement should meet as many of the expectations below as is reasonable for the story used. You should pick your story (or modify it a bit) so it is reasonable to meet all or most of the expectations.
Remember the "pair programming" process as you work. One person types and the other person watches and corrects, questions, etc. After a bit (at most 30 minutes) you change roles. I encourage to try to impress me (better yet, impress yourselves).
There are at least three ways to control the interaction between sprites when some sprite(s) should be idle while some other sprite(s) are active. You can either:
All actions are timed. While one sprite is active the other(s) are idle (a wait block is used. When the planned amount of time has elapsed another sprite becomes active and the original sprite(s) are idle.
Each sprite carries out its actions and when done broadcasts an indicated message. The other sprite(s) have a script that starts with a when I receive ... block that includes the actions it is to take. When it gets done, it will broadcast a (different) message which the other sprite(s) will receive and act on.
One sprite acts and the other sprite(s) react. The one (controlling) sprite carries out its actions which ends with a broadcast __ and wait block. The other sprite(s) will have appropriate when I receive __ blocks that contain their actions. The broadcast __ and wait block of the controlling sprite will keep control until all sprites that had the matching when I receive __ block before the block after it is allowed to occur.
Examples of each mechanism are available, i.e., the timed process using wait, the cooperative process using broadcast __, the controlled process using broadcast __ and wait. To try one out, download it; start Snap! in a web browser; "import" the downloaded file; run it; and check out the scripts. Let me know if you have questions.
This activity if for you to learn, so it is not graded. The learning will be inferred in the PARR (Programming Activity and Reflection Report) document you (eventually) submit and in one of the in-term exams..
If you have trouble deciding what your program will be about, you might wish to examine the sprite costumes (in Snap!, select the turtle sprite, click on the file icon, select "Costumes") and backdrops/backgrounds (select the stage icon, click on the file icon, select "Backgrounds") that are included in the Snap! library.
If you have questions about the assignment send me an e-mail or drop by my office. If you have a question while working on the assignment do the same. Keep in mind that when you encounter something you can't figure out you can/should think, explore, seek answers on google, etc. but, do not spend more than 15-30 minutes trying to overcome a particular error or problem.
The syllabus noted a couple ways you might earn extra credit. One is to share some aspect(s) of programming or Snap! you think others might not have experienced. You should annotate your program using the program notes (File icon | Program notes) and/or comments blocks (see p.68 of the Snap! Reference Manual. The annotation should describe or explain the learning/insight(s) you want to share. The partnership could also suggest additions to our how to do it page. You might suggest a revision to clarify (or finish) something that is there already or an entirely new topic. Please indicate how/why you think the would be helpful. Be sure you fully and clearly describe what you are talking about.
Submitting something for either kind of extra credit is as simple as sending an e-mail message. The message should: