Lesson 01

(Please ignore this - these are notes for myself for the next iteration of this course)

Revise for next time:

  • Getting used to the website is still tricky.  Find a way to streamline this more
    • Maybe separate out the 'one time setup'
  • The intellectual core, data types and expression evaluation, could be strengthened.  Maybe remove the DT exercise about copying over min/max values and add more exercises about choosing the right one(s).  Maybe have them do this in groups online?  It would be better to explain the generic expression evaluation algorithm and then have them execute it with lotsa' different operators (then make up their own expressions)
    • data type selection, expression evaluation
      • Algorithm for evaluation focusing on using that chart (maybe throw in modulus, along with a link to a page that will calculate that for you?)
      • Data type promotion within evaluated expressions
      • Analyze problems in expressions?
      • Formulate novel expressions?

 

  1. Start Looking At The Take-Home Midterm Exam
    This class will have a take-home midterm exam (but an IN-PERSON FINAL EXAM).  For this week start reading through the description of the take-home exam so that you're able to prepare for the exam as you do each week's lessons. 
    The take-home exam is going to focus primarily on your ability to explain how general programming concepts are used to make a particular program work, so it's probably a good idea to start thinking about (and maybe even outlining/taking notes on) each concept/topic that we see now (so you can use these outlines on the exam)

    1. Here's an overall description of the take-home midterm
      Skim through it so that you're familiar with how this process will work, overall.

    2. For this week, look over the example answer, the per-question rubric that will be used to evaluate your answers
      Read through these in detail, so that you know what the instructor is expecting from your answers.
      As you work through your weekly exercises keep in mind that you'll need to write answers like the example answer on the midterm - you may want to take notes (or even make outlines) of the topics in the weekly work so that you'll be able to make use of them during the take-home midterm.

 

Former exercises for this lesson:

  1. Orientation To Video Games
    Get familiar with the video games that we'll be using in this course.
    1. Exercise: Getting ready for video-game based programming: Read and understand some basic background information. (Required)
      Note that there's nothing to hand-in for this exercise.
    2. Exercise: Getting ready for video-game based programming: download, compile, and  run the BlockBreaker game. (Required)
      Note that there's nothing to hand-in for this exercise BUT you ARE required to post something to the Lesson 01/02 Discussion Forum saying that you got this to work OR that you tried this but it doesn't work

      As I mentioned in class this didn't work so well last quarter.  I've made changes but it's possible that things still won't work right.  If you've spent, say, 30 minutes on this and it doesn't work (and that includes time installing XNA, getting the starter file, etc, etc) then post to the discussion forum, skip this (and the other two game-themed exercses listed below) and work on the other exercises instead).
    3. Exercise: Do exercise #1 in the BlockBreaker "Game Overview" tutorial.(Required)
      Note that there's nothing to hand-in for this exercise.
      1. Here's the text of the exercise.  It's included here to help you find it on the tutorial's page, but be warned that the text will not normally be included here:

        Because the purpose of this tutorial was to explain how the game is played (without going into any details about the underlying source code) there aren't many questions to be asked about the program's source code. Instead, you should make sure that you can download the project, open the project using your IDE, compile the game, and run the game program.  You should then play the game for a short while, in order to get a feel for how the gameplay works.  You should be able to remove at least ~10 blocks in less than 5 minutes, after which you should have a good idea how the game is played.

Get Visual Studio (this is the more up-to-date version)

Feedback / Improvements on exericses:
(Please ignore this - these are notes for myself for the next iteration of this course)
  • How to get VS: Dreamspark now provides a normal installer instead of a .ISO
  • Basic Console I/O:
    Include info about formatting real numbers here, too? No - it'll show up in PCE 02, after they've looked at the data types exercise at the end of this lesson
  • Basic Arithmetic Operators (Sect. 3.6, 3.8)
    Feedback: More emphasis on the divide by zero error?
  • Defining & Using an Instance Methods (Hand-In) (Sect. 4.1-4.3 (mostly 4.3)) 
    Feedback: Call RunExercise from where (Define_An... or Basic_Console_IO)
    Make it clear where the class definitions go, make it extra-clear where the objects should be created
  • Order Of Operations (Hand-In) (End of Sect. 3.9, Appendix A)
    More emphasis on how data types change (int --> double, etc) as expression is evaluated?
  • Data Types (Hand-In) (Sect. 5.11, Appendix L)
    Talk about the various types in-class next time
  • Snag the videos from Lesson 02 for IntDiv & Modulus
 Re-record voting:
  1. How To Use My Videos x2 (Add something about OneDrive)
  2. If, If/Else x4 (coughing)(grainy)

  3. Switch x1 (shorter & more concise)

  4. Integer Division x3

  5. Modulus (How does it work, mechanically? x2

  6. Modulus (Effective usage of it) x1 (more on bitwise stuff?)

Improvements: Orientation:

Brief explanation about how to use GG by email; mention that non-GMail accounts can't see website