Learn to Program Step-by-Step

Teachers Toolkit: Discussion Questions

    Introductions: Please introduce yourself to your classmates. Tell 3 interesting things about yourself. Including a picture is a nice extra.

    Motivation: Learning to program takes a lot of hard work and dedication. What strategies will you use to stay motivated?

    Half way through: The class is half over. Write a paragraph summarizing what you have learned so far. What is the most interesting or useful information or skills you have learned so far?

    End of semester: What advice do you have for a friend who is going to take this course next semester?

    Algorithms: Pick a task that you have done many times. Write step-by-step instructions for a classmate to follow to accomplish the task. Suggestions:

    • How to get the kids to school in the morning;
    • How to make nachos;
    • How to change to oil in your car, etc.

    Use your imagination. Read the list of instructions and make sure that you haven't left anything out.  (If you give instructions for making tea and say to pour hot water on the tea bag, but never said to put the tea bag in a cup, they will have a mess!)

    Variables: Write a paragraph describing something you own. At the end, for each feature of the object, write a variable declaration using a valid variable name and type.
    Example: If you described a pair of shoes, you might have the following variable declarations:

     int  size=8;
     string  color="red";
     boolean clean=true;
     double cost=24.95;

    Boolean: We say things like "Good morning", "It is freezing out." "It's expensive." or "It isn't very far." If we want a computer or robot to say things like that, we would need to provide data in order for it to make a decision about what to say. Write a paragraph discussing what data a computer would need in order to make small talk such as the examples above.

    Example: In order to say "Good morning" we need to know the time. If the hour is less than 12, it is morning. To decide whether to say "good afternoon" or "good evening," we need to know the time, but we also need to know what time the afternoon ends and the evening begins. 5PM? 6PM?
    Give your own example for something other than the greeting given above or one that a classmate has already posted.

    Loops: Compare and contrast the different types of loops. Using everyday examples, give examples of when you would use each one. Some everyday things that use loops include "put all of the dirty dishes in the sink." "Loosen all 5 of the lug nuts." "Set the table for 4 people." "Would you like another cookie?" Use your imagination. Try to come up with an example that none of your classmates has posted.

    Files: Discuss the various types of files used in programs. Give an example of each type.
    You should give an example that is different from those already given by classmates.

    Functions: Write a paragraph explaining the advantages of using functions. How are functions the same or different from the code we have written previously? Give an example.

    Pass by reference: Explain the term "pass by reference." Give an example of when you would need to use it.  Your example should be one that none of your classmates has posted yet. Use your imagination; there are thousands of instances where you need pass by reference.

    Arrays: What is an array? What is a parallel array? How do you use them? Give an example that none of your classmates has posted yet.

    Searching: There is an expression: "You always find something in the last place you look." Why is that true for humans? Is it true for computers? Is it true for the searching algorithms we have studied?

    Sorting: Find an animated sorting movie on the internet. Give the URL of the movie you found and explain how the algorithm works.

    Struct: Share a struct to illustrate something that you are interested in: music, books, hobbies, sports, etc. Please do not duplicate a struct submitted by a classmate unless you expand on it.

    Objects/classes: Pick something you are familiar with (animals, people, vehicles, shapes, planets, etc.) and describe it as a class giving properties and methods.

    Inheritance: An employee is a person; a student is a person; a relative is a person. Pick any category such as those above and explain what attributes or methods that category would have that is different from a person. Please do not pick the same category that a classmate has already done unless your answer is much different.

    Templates: Share your thoughts about templates. Is there a program that you wrote previously that you think would be better using a template?

    Data structures: Select a stack, tree, linked list, or queue and draw a diagram to illustrate. Show a screen shot of the diagram. Explain. Please do something different than a classmate has already submitted.