질문하기질문하기
 

일반 토론Teaching Small Basic

  • 2009년 3월 2일 월요일 오후 9:21Vijaye RajiMSFT, 소유자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    As recommended by community members, this is a sticky thread to discuss how Small Basic is used for teaching programming.

    Please discuss approaches that worked/failed, tools at your disposal, and/or just general ideas to make teaching effective

모든 응답

  • 2009년 3월 3일 화요일 오전 12:08Coding Cat답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    To get things started, I'm reposting the dilemma I described in the thread suggesting this sticky:

     

    Next to complexity of programming languages (which SB addresses), coming up with interesting projects is the hardest part of teaching programming to middle and high schoolers. I am aware of resources such as the Euler Project, but all of the ones that I have encountered assume that the user already knows the basics of programming (using variables,  accepting input, managing conditions (If's), processing loops (while's), and using procedures.

    Here is an example: I am teaching the idea of using variables to store the results of calculations, and getting the students used to using the Math object. So far, the most exciting project idea I have been able to come up with is calculating the hypotenuse of a triangle.

    Given the limited vocabulary of Variables, Reading and Writing text, Turtle commands, and the Math object (which includes random numbers); can anyone suggest a more entertaining or game like project for my newbies?

  • 2009년 3월 3일 화요일 오후 4:20Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
     

    Small Basic project list (so far)

    1.      Use Small Basic to write a program that uses the turtle to draw a triangle.  Each side of the triangle will be the side of a square, pentagon and hexagon. 

    They used brute force the first time.  I then taught the For loop.  They redid the assignment.

    2.      Use Small Basic to write a program that will draw regular polygons.  The input will be the number of sides.  The output will be the drawn shape. 

    Used what they learned in #1 and added the input module.

    3.      Write the Small Basic program that draws it.  Your program should consist of two or three subroutines, one for each shape.  If you are not sure how to call a subroutine look at the sub statement in the pamphlet.  Each subroutine should consist of a very simple For statement to draw the sub shapes (square, hexagon).  Do not forget documentation with your name and comments. 

    (Tesselation graphic will not paste here.)

    Fairly easy for some.  The two odd squares make it a little more than just a bunch or For statements.

    4.      Write a program to generate the first n terms of the Fibonacci sequence. (very easy for the kids)

    5.      Write a program that finds the real roots of a quadratic equation.  The program will request the coefficients a (test that a is not = 0), b and c.  Caution: there are 2 or 1 or 0 solutions depending if the value of  is positive, zero or negative.  Use an ElseIf statement to handle one of the solution options.

    Lots of board work required to develop the computer module.

    6.      Write a program that finds the real roots of a quadratic equation.  The program will request the coefficients a (test that a is not = 0), b and c.  Caution: there are 2 or 1 or 0 solutions depending if the value of  is positive, zero or negative.  The program will not quit until a “0” is typed for the coefficient a.  At that time the program will explain that “a” cannot be a “0” and ask the user if they want to quit or continue.

    Start this next week.  Just incorporates a While loop.

     

    Gets a bit fuzzy after this.  I think I am going to go back to the turtle, the kids seem to enjoy it and it reinforces the use of the For and Sub.  Tessellations are always good projects.  Math related things are always bad projects (according to the kids).

     

    I think I am going to look at having them develop a pong game similar to the one in the Introducing Small Basic document.  Maybe a two player version.

     

  • 2009년 3월 3일 화요일 오후 5:59Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
     

    http://mathworld.wolfram.com/Tessellation.html

    For good tessellation projects.  It is possible to get three assignments of different levels of difficulty off this one page.

    Here is my grading rubric.  Notice I do not stress if it works or not.  Getting something turned in does not help a lot.  A 50% is a failing grade so they still need a bunch of the five point items.  I deliberately try to spread the grade weight out so they do all the rubric items.  If some one has something better that will not kill my not-so-sharp kids I am looking.

    Program Grading Rubric

     

    50 pts Possible

    5 pts - On time.

    5 pts – Document/program header to include name, purpose of program, date due.

    5 pts – program works.

    5 pts – major events/sub procedures commented.

    5 pts – program is in modular form as opposed to one long string of code.

    25 pts – something got turned in that almost works.

     

    5 pts extra credit – program is designed around a Main program core with a number of subroutines.

     

  • 2009년 3월 5일 목요일 오전 12:00Vijaye RajiMSFT, 소유자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I just came across this blog, which has a really cool video presentation for teaching Small Basic.  I hope it'll be useful for self-taught beginners: http://wotudo.net/blogs/how2/archive/2009/02/16/intro-to-programming-microsoft-small-basic.aspx

  • 2009년 3월 6일 금요일 오전 12:31Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I have been gone from steady teaching since summer of '04 so I had fogotten how useful the concept of having the kids do variations of the same assignment several times.  They are finishing their third tessellation project.  They have a firm grasp on how useful a For statement is and how to build a program that consists of a Main with a bunch of subroutines doing the work.  They still have a little difficulty with the idea of "planning before typing" but they are getting there.

    Some things that they learned the hard way:

    1.  Save then Run - SB crashs drastically and it takes everything with it when it goes.
    2.  Do not use the same For index variable throughout the program - weird things can happen.  See 1.
    3.  Use a variable for side length.  If the shape is too big it is much easier to change the size once than 47 times.
    4.  Comments help you figure out what you did two days ago.
    5.  The kid from Spain is a real good programmer but he sure likes to do it the hard way.
    6.  Do not copy off of your neighbor, they are worse at this than you are.
    7.  "Hey, look! It works!" with absolute amazement in the voice.  This stuff is not as impossible at it seemed.
    8.  How did you do that?  It is in the little book?  Where is my little book?!
  • 2009년 3월 13일 금요일 오후 6:37Coding Cat답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    I am looking for a group analogy to introduce the idea of conditional operations and the if statement. What I want to do is take the students outside and line them up, each pretending to be a line of code in a program.

     

    I then want to go down the line, each student contributing to the solution. When we get down to the last student the solution should be good or bad, based where we started from. A good starting point, a good solution. A questionable starting point, a bad solution. There should be a middle part  that causes a problem with certain starting points.

     

    I then want to designate some of the students in the middle as the if block. Again going down the line, when we get to the if statement, and the starting point is questionable, they can correct the problem. If the starting point is good they can continue on as before. The if block will surround the middle part that is causing the problem, and only do that task when it is needed.

     

    Here is my problem: I can't think of a problem that fits these parameters. I'm sure I could invent something mathematical to fit the bill, but I want the analogy to be as far from math and computers as possible. I want this to be a real world hands on analogy that gives them a good image of how conditional operations take place.

     

    Any suggestions?

     

  • 2009년 3월 14일 토요일 오전 11:29litdev답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Nice idea,

    A little different, but perhaps you could do a simple bubble sort.

    Line the students up and start at the end with the person on the far left, moving to the right.

    For each student, if the person on their right is taller than them, then swap places and start again.

    If the person on their right is shorter, then move to the next person on their right.

    Of couse you could use any characteristic such as alphabetical order etc and try to make the algorithm more efficient.

  • 2009년 3월 14일 토요일 오후 5:52Coding Cat답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    With my students I have dual problems. First everyone is required to take two semesters of computer science, and as a result 95% of them don't want to be there. The second problem is the international nature of the student body. 75% of the students are from somewhere else and only picked up English within the last year. For my introduction to programming course, I have to take things slow, and I need to ensure that the concepts are internalized.

     When I first introduce a topic, I like to unplug. Get the kids away from the computer and out of the world of the compiler and just focus on the concept. Unfortunately, I am a die hard computer geek myself, so at times like this, I draw a blank. What picture do I paint?

     This time it is conditional operations, and the If statement. Everyone knows the idea of a decision point, even if they are thinking in Korean or German. What I want to do is show how useful the idea is and how easily it fits into the logic of programming.

     The bubble sort is good, but to work, you need a loop. Nested loops in fact, and we are at least two weeks out from looping. What I'm looking for is a straight line idea and for the idea to have nothing to do with numbers.

     

    And while you are at it if you could solve the nations fanatical woes, cure cancer, and travel faster the light, that would be good too. ;-)

  • 2009년 3월 20일 금요일 오후 4:49Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I cannot remember if i suggested this site to you before but take a look at http://csunplugged.org/.  lots of really cool computer activities without the computer.  I have translated a bunch of them to Word so I can modify them to suit.  Let me know if you want them and i will email them to you.
  • 2009년 4월 20일 월요일 오후 3:43bigdaddyo 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    If you guys have a suggested list of activities for teaching 10-12 year olds (my own in this case) that'd be great.  I figured the overly complicated array object would be last...  BTW I suggest a simple form of multidimensional array's like the good old days, then have your collection object for more sophisticated programmers.  Telling them that this "array" collection object can be used like an array leads to the question "what is a real array" and probably never ending confusion.  I think arrays & collection objects should be completely separate and independently useful, to a beginner and advanced programmer.

    Also, don't keep adding features to the language, that's a form of a disease!  If you can make something work with basic pieces, don't implement it as part of this language, too many languages are still called Basic, and they are not in any sense.  Last thing, thanks for coming out with this, I've been waiting well over a decade to see this again.
  • 2009년 4월 20일 월요일 오후 4:39Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    bigdaddyo

    Check out my post in the "Programming projects for beginners" thread.  I but my class assignments on Skydrive.  These are for novice sophmores.
  • 2009년 5월 3일 일요일 오후 10:49Coding Cat답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    I am in need of ideas again. I'm teaching For-Loops in my intro to programming class; a way of easily counting. My problem is that I'm blanking on ideas. Does anyone have a suggestions for projects or examples where counting is important, that isn't just... well... counting?

    It needs to be kept simple, be text or turtle graphics based, and no Arrays please. A game idea would be ideal. 

  • 2009년 5월 4일 월요일 오전 12:02Rushworks답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    I found this a while back. While it deals with Atari Basic, many of the programs and ideas could be adapted for Small Basic

    www.atariarchives.org

    These items might be of interest to you-

    Best of Creative Computing volumes I, II, III
    each have a PROGRAMS, PUZZLES, PROBLEMS, AND ACTIVITIES section

    BASIC Computer Games
    More BASIC Computer Games
    Big Computer Games

     

  • 2009년 5월 4일 월요일 오전 1:20Coding Cat답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I had copies of those books when I was a kid, they are great. The projects are pretty complex for students who are still thinking 20 line or less, and haven't learned arrays.

    My current fall back project will be calculating the cost of purchasing items based on quantity ordered. Run a for loop from 10 to 100 by 10's, multiplying each position by the cost of the item.

    I'm hoping for something a little less like a math problem, and more like a game.


  • 2009년 5월 6일 수요일 오전 8:42starw2009 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    how to study the small basic???  i have read the book--<Introducing Small Basic.pdf>,but i even can't find how to use the array!! where can i down Comparison is complete "the Reference book" for small basic????
  • 2009년 5월 6일 수요일 오후 2:55Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Here is my latest idea for a class assignment.  Since I have not written the program yet or started teaching the lesson yet I have no idea how it will work out.  Knowing would take all the fun out of it.  The code snippet was lifted from cxeq's button project in the SB forum.

    Tic-Tac-Toe

     

    Write a two player tic-tac-toe game.  The program will present the tic-tac-toe grid with boxes where the player symbols are placed.

    You will need to find a couple of player symbols (the X and O) from the internet.  It is not necessary to use X and O, just two distinguishing symbols.  For the basic game you will need 9 XO boxes, a “Play again” box and a “Quit” box.  To have the computer determine who has won would be very difficult.  We will save that as a separate project.

     

    Procedures to build:

    1.        Draw grid

    2.        Draw boxes

    3.        Import symbols

    4.        Keep track of whose turn it is so the correct symbol is placed in a selected box.

    5.        What happens when a box is clicked on

    6.        Play again or Quit.

     

    The line of code below imports two symbols into an array named xando.  You will need to put your own file path in the code.

     

    File.GetFiles("C:\Documents and Settings\gflint.MCS\Desktop\Programming\Small Basic\Tictactoe\ symbols ","xando")

     

    The code lines below are a sample snippet of how to create “boxes” for playing the game.

     

    'Startup graphicswindow sequence'

    GraphicsWindow.Show()

    GraphicsWindow.BackgroundColor = "#8D7374"

    GraphicsWindow.BrushColor = "#FF6D7E"

    GraphicsWindow.PenColor = "#FF6D7E"

    GraphicsWindow.Title = "Educational Game"

    GraphicsWindow.Height = "600"

    GraphicsWindow.Width = "800"

    GraphicsWindow.FontName = "Calibri"

    GraphicsWindow.FontSize = 28

    'end startup'

     

    'processes and settings

    picWidth = 150

    picHeight = 150

     

    'creating the pics

    picOneX = GraphicsWindow.Width - 780

    picOneY = GraphicsWindow.Height – 480

     

    Need one of these for each box.

     

    'drawing the pic

    GraphicsWindow.BrushColor = "#FFEDE2"

    'pic 1

    GraphicsWindow.FillRectangle(picOneX, picOneY, picWidth, picHeight)

    GraphicsWindow.DrawRectangle(picOneX, picOneY, picWidth, picHeight)

     

    Need one of these for each box.

     

     

    GraphicsWindow.MouseDown = handleClick1

     

    'function for handling a click on the pic'

    Sub handleClick1

      xpos = GraphicsWindow.MouseX

      ypos = GraphicsWindow.MouseY

      'checks if you clicked inside the pic

      'pic one check

      If(xpos > picOneX And xpos < (picOneX + picWidth)) and (ypos > picOneY And ypos < (picOneY + picHeight)) Then

          GraphicsWindow.ShowMessage("pic 1 pressed", "Pressed")

     

    Need an If for each box.

     

    EndIf

  • 2009년 5월 6일 수요일 오후 5:03Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    A very simple Tic-Tac-Toe with lots of possible improvements.

    Import XVB145

    Learning objectives on this simple program:
    1.  If-Then
    2.  ElseIf
    3.  DrawLine
    4.  Create buttons
    5.  MouseDown Event
    6.  Boolean flags (player = 1)
    7.  Modularity

    The possibilities for improvements could be "Play Again" button, "Quit" button, not allow an already played square to be played again, import icons for the players instead of colors, computer tracks if the game is won or stalemated, score, and, for those that really know what they are doing, player vs computer.  I would not even know where to start with that one.

  • 2009년 6월 8일 월요일 오전 7:29Vijaye RajiMSFT, 소유자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    Using Activity Cards as tools for teaching Small Basic: http://smallbasic.com/wiki/Teaching%20Small%20Basic.ashx
  • 2009년 6월 29일 월요일 오후 10:18ank5000 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Hello,

    I am trying to teach some fundamentals of programming to my 11 years old daughter. Some experiences to share :

    • Giving analogy of variable as a bin which stores something seemed to work better. 'A variable is a bin which stores a value'.
    • I am trying to keep away from intricacies of small basic, as far as possible, and trying to focus on the basic programming constructs.  I wish SB would have given the input/output primitives available in basic which are more intuitive then TextWindow.WriteLine. For the time being I told her that if you want to read a number you need to do TextWindow.ReadNumber() etc.
    • Teach a few constructs and then solve ample problems using them. For eg. I taught her concept of a number variable, how to set it, WriteLine and for loop and moved to writing some reasonably involving programs which just use these.  I want to make theme as 'how would you solve real porblems using computer language' rather then saying 'let us learn this language'.
    • No graphics focus. My view is for a beginner it distract from the aspect of solving real problems using computers and hinders development of intrinsic problem solving ability.
    • It works better if she has to modify an existing program. So teacher can create a buggy program and ask students to fix. The bugs could be strategically placed to illustrate a point.
    • Here is a small problem which gave her ample ability of practive for loops, if conditions
      Please try writing a program for drawing a box.

      This program should ask for lenght and widht of the box and then using * characters draw the box.

      For example : 

      What is length ? 5
      What is the width ? 3

      *****
      *     *
      *****

      What is the length ? 10
      What is the width ? 5

      **********
      *              *
      *              *
      *              *
      **********
    The actual program which she finalized is at : http://smallbasic.com/program/?VWG100
  • 2009년 7월 2일 목요일 오후 6:37litdev답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I have been thinking about documentation for SB for a while.  We have the getting started, API and this forum, but I think we could help new and returning programmers a bit more.  SB has plenty of power with its small syntax set before you hit the limits (mainly performance and structure), by which time you should be set to try something bigger.

    I tend to think it is more documentation and structured examples rather than tinkering with the syntax that is important.

    I started writing something a while back, but abandoned it because I wasn't happy with it.  I am no teacher and feel too far removed from the questions new programmers ask and how to explain things to them.  However I know there are several teachers among the regular contributors of this forum who must have some resources we can put together in a coherent way.

    I like Vijaye's activity cards for children and I feel small examples and projects that progressively show the main features as well as descriptions of the ideas is the way to go.  Especially if it is fun and challenging - the Euler projects was a good idea along these lines, if a little mathematical.  I guess also that different people learn in different ways so contributions from a range of perspectives would be good.

    Even though I am not happy with my effort I have uploaded what I started in order to start improving this resource and hopefully we can create something good.

    http://7w7sng.bay.livefilestore.com/y1pgluyg8d46fDxjPC0FWioU0XfZkci3BKwUWeB1lZ3BN_EWBFSyuVUmGpwb9PSXNRRZK0U8iIjsNRudncfjebknMNh2_F_vz_i/Programming%20Guide.rtf?download
  • 2009년 7월 3일 금요일 오후 6:20Vijaye RajiMSFT, 소유자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    litdev,

    I'm glad to see you go in that direction.  I am in complete agreement with you - the success of Small Basic as a teaching aid depends largely on the surrounding documentation and the ecosystem. 

    I'm unable to download the file from the link you provided.  Could you please provide another link?

    Thanks.

  • 2009년 7월 3일 금요일 오후 6:49litdev답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Its on skydrive, try the link below, the 'Programming guide' an rtf of my first ideas.

    http://cid-92f7df0e57232aba.skydrive.live.com/browse.aspx/.Public/SmallBasic/Documentation


    Perhaps I'm not getting the link set right, just paste it.
  • 2009년 7월 3일 금요일 오후 7:08Loyola IT 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Excellent!  The weakest part of SB is the lack of printable documentation.  I did a printable API earlier but just never have time to update it for the new versions.  My next project is to put some kid readable examples with each term in the API.  I taught a semester using SB with good results.  The kids were not programmers or interested in programming, it was the only thing that fit their schedule that semester.  Some got a little out of the course, a couple got a lot.  I definitly prefer SB over VB.net for an intro language.  Less overhead in the IDE and more fun.  The kids would actually play in SB while VB requires too much knowledge to just fiddle around in.
  • 2009년 7월 3일 금요일 오후 7:18litdev답변자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I did the printable API by getting interested in XML and then rtf - just learning and playing, there were several perfectly good printable API conversions about so I didn't upload it, but I will upload the executable for the conversion - it is pretty specific to the XML command used in the main SB XML, for example Fremy's doesn't work because he uses other XML tags.  Also I did it with vista so there may be issues running it on XP, I don't know.

    If you try it and have problems, post here.

    PS it does include the now 'hidden' array commands which is not ideal.

    Also, since it writes the rtf in the same directory as the xml, it would need to be run as administrator with the default SB installation directory.  Obviously I wouldn't recommend doing this with downloaded executables (even if you don't think I am malicious, I may be incompetent) so first copy the xml to somewhere you have write access.
  • 2009년 9월 18일 금요일 오후 11:08NickMon 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    See my demo code at:
    http://smallbasic.com/program/?CFV877
  • 2009년 10월 13일 화요일 오후 3:23Swedish Chef Bork Bork 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    I think the "Introducing Small Basic PDF", printed out and put into a binder, would be age-appropriate for a middle-school or high-school child being introduced to programming for the first time, or any adult who has zero programming experience.

    If I was teaching a child, or teenager, I would start with:

    1. Hello world.   (Subtly Introduced Concepts: What is a program?  What is "code?" What does "output" mean? What is a computer "language"?)
    2. Variables (Subtly introduced concept: State)
             I think that the way to get kids interested in variables, is to talk about how easy this would make doing all their math homework.
             Who here hates math homework? Me! Me! Me!
             Okay (grade 3) kids,  let's do some long-division:
             X = 2513/3
       (For this, I think immediate mode beats everything else hands down).
    3. Decision making (if).
    4. Looping (While/For).
    5. Built-in functions to make life fun. (Random numbers, turtle graphics, etc)

    With those things, I would be aiming for giving the kid capability to do something the kid herself/himself wants to do. (Ask the child.  If they answer "I want to make a video game", help make their wish come true.)

    What I wish Small-Basic had, that it doesn't have is immediate mode.   I think for my purposes I would teach a subset of Python rather than small-basic.   With the IDLE ide,
    immediate mode and program storage mode are separate.   You can teach kids expressions for example, or to "try something in immediate mode" before they write it in "forever" code. 

    I wish Small-basic didn't require typing in <SOMEBigLongName>.<SomeBigLongOtherName>.   This is why PRINT is so wonderful.  Why must we burden new developers with the semantic burden of object oriented programming? It is an interesting choice to see Small Basic has no scoping rules at all (all variables are globals, and are untyped variants).
    So "intellisense" code-completion reduces the typing overhead, which is good. Maybe it would be great to have a bunch of buttons that the kid can hit, to save them from remembering even the first letter (T for TextWindow, etc) of things they want. Spatial memory being as good as it is in most people, they will remember "that thing I want is the third from the top in the list of buttons", much more easily than they will remember names of things.  

    I will try teaching my 10 and 12 year old sons with Small Basic, and with Python, and report back my success. The UI of smallbasic is ideal for teaching, except for the lack of an immediate mode.

    Warren

    wp
  • 2009년 10월 25일 일요일 오전 5:29Celeste Francis 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    The following worked with my 6th grade class:

    Spent a class session writing the directions for making a peanut butter & jelly sandwich:
    In class:
    -     pretend I am a martian & I have never seen a PB & J sandwich
    -     have the students list the directions (& write them on the board)
    -     obtain agreement that the diirections are accurate & complete
    -     then I make the sandwich according to their directions, following them literally
    -     of course there are mistakes & we have to re-write the directions several times
    -     it took about an hour
    for homework:
    -     review the directions, make their own sandwiches & fill in any other gaps
    aside:
    -     at their break, I let them make their own sandwiches

    next session:
    in class:
    -     we fine-tune the directions
    -     discuss the problems of assumptions
    -     discuss the fact that computers only do what they're told (they are dumb)
    -     play hangman & write directions as we go along (glossing over many items)
    -     I put together a high-level flowchart that corresponds to the directions
    for homework:
    -     review the directions & flowchart, play hangman, and fill in gaps & provide details

    next session:
    In class:
    -     fine tune directions, identify assumptions, identify missing details
    -     introduce a programming constructs - simple logic, program flow
    -     introduce some of my small basic routines - including my shell of the hangman program
    -     show them the intro & API documentation
    -     show them some of the out-of-the-box samples
    -     let them play

    next sessions:
    in class:
    -     work on the programs (in teams as desired)
    -     introduce specific concepts, e.g., arrays