Using a debugger; Big Oh review; enums; exception handling; stack explorations

Note: All due dates are listed on the main page for this course.  They are NOT listed here.

Individual Post-Class Exercises

EVERYONE must complete these exercises!

(This is the last week the above reminder will be posted.  Thanks!)

  1. Lesson Setup
    This is stuff you'll need to download and/or browse before starting this lesson

    1. Start-of-lecture Slides (Required)
      Online students will need to read these on their own. 
      Hybrid students will seem them at the start of class.

    2. 'Starter' project for the lesson 02 PCEs
      (Unless otherwise stated, put exercises into the PCE_Starter project)

    3. Watch the online videos for this lesson and demonstrate your knowledge (Hand-In)
      You have two choices to demonstrate that you've watched (and understood) the videos: either create an outline or fill out the viewing comprehension quiz (described below).  Either way make sure that you include the appropriate file in the .ZIP file you hand in for this lesson (in either Word .DOC/.DOCX format or .PDF format).
      NOTE:
      You can download a .ZIP of all the videos for this lesson from Microsoft's OneDrive website by opening the folder (click this link to open the folder), then clicking on the "Folder Actions" menu, then clicking on the "Download Folder" menu item.

  2. Review: How To Use The Debugger

    1. VIDEO: Debugging, Part 1
    2. VIDEO: Debugging, Part 2
    3. Exercise: How to use a debugger: Intro
  3. Enumerations (enums)

    1. VIDEO: Enums
    2. Exercise: Figure out what an enum is  
      (Demo Video   VS Project Used in the Video)

    3. Exercise: Define and use the ErrorCode Enum (Hand-In)

  4. Exception Handling

    1. VS Project Used in the following videos

      NOTE: all of the 'exception handling' videos are in a subfolder named 'ExceptionHandling'
    2. Video: Exception Handling: Overview
    3. Video: Exception Handling: File I/O Overview
    4. Video: Exception Handling: Try Catch in the same method that throws the exception
    5. Video: Exception Handling: Try Catch in Main
    6. Video: Exception Handling: Throwing your own exceptions; using exception handling in a constructor
    7. Exercise: Use the exception handling to reimplement the SmartArray (Hand-In)

  5. Review: Big Oh Notation

    1. VIDEO: Big Oh Review
    2.  Exercise: Review: Big "Oh" Notation  (Hand-In)

      1. (Handy reference: A Beginner's Guide To Big O Notation)

  6. Preview: Investigate The "Stack" Abstract Data Type

    1. Exercise: Figure out what a stack is  (Hand-In)
    2. Exercise: Preview: Using the .Net FCL Stack (Hand-In)
    3. This link provides some really interesting, really well-done visualizations of data structures.  It's well worth checking out:
      http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
  7. Modern collections classes: generic classes and interfaces
    WARNING: This was brand new for the 2016 fall quarter.  While I've revised it for 2017 Winter, it's still a bit rough in places.
    If you find something confusing
    you should seek help earlier than normal - post a question to the class discussion board, email your instructor, talk to other students, etc.
    The Visual Studio project that is used in the videos below can be found here.


    1. VIDEO: What is a modern collection class? (including "What is a 'generic' class?")
      Part 1: Collections
      Part 2: Generics
      Note that there are no quiz questions for these videos, so you will need to do a video outline, instead.
      Slides from the video
    2. Exercise: Using the GENERIC .Net FCL Stack as an example of a Collection class (Hand-In)
    3. VIDEO: Creating your own generic class
      Note that there are no quiz questions for this video, so you will need to do a video outline, instead.
    4. Exercise: Create a basic, generic class (Hand-In)
    5. VIDEO: What is an interface?
      Note that there are no quiz questions for this video, so you will need to do a video outline, instead.
      Slides from the video
    6. Exercise: Implement the generic 'IComparer' interface (Hand-In)
    7. New Material Feedback (Hand-In)
      Your feedback is critical to improving this new material. 
      Please fill out PCE_Feedback.docx and include it in the .ZIP file for this week.
  8. Last Steps

    1. Hand in your work:
      Go to the StudentTracker  web app, and create an account for yourself, and then "enroll" in the course.
      (There's a link to StudentTracker on the main page for this course)
      Please submit a .ZIP (and ONLY a .ZIP - not a .RAR, .7z, etc) that contains the Program.cs files, the video outline/viewing quiz .DOCX (or .PDF), any other files you wish to include, and leaves out every thing else (as much as possible).

      1. For these PCEs please keep the Program.cs files in the folders you found them in so it's clear which Program.cs is which.
        For example, please keep the PCE_Starter folder, please leave in that folder the Program.cs that was there, please keep the SmartArray_EH_Test folder with it's Program.cs, etc.
        That said - as long as I can find the Program.cs file that I'm looking for reasonably quickly and easily I'll be happy :)

      2. VIDEO: Using StudentTracker

      3. VIDEO: How to .ZIP your homework into a single file

      4. Remember that you can use an extension to hand in your work slightly late (see the lecture 1 slides for details).
        Once you get the feedback (the grade) from the instructor you have a limited time to email your missing work to the instructor (make sure to tell the instructor that you're using an extension). 
        You can use an extension if you forgot to hand in the entire .ZIP file, and you can  use the extension if you forgot to include an entire, specific file.  You CANNOT use an extension to revise work that you submitted and got a grade on.

        This is true as long as you have extensions left; next week will be the last time that this notice is posted

    2. Make sure that you're working on the next homework assignment.
      Details are listed on the
      homework assignment page.
      The due date is listed on the main page.
    3. Practice what you've learned
      Remember that in order to really learn this stuff you're going to need to practice it.  Go back and redo the exercises from this lesson until you've really got it down.  Go back to the prior lesson(s) and review and redo that.  Make sure that you've really got this stuff in your head (and remember that it gets easier each time you redo the work)!
 
In-Class Materials:

These materials are used by students in the hybrid class during leture time.  Online students can safely ignore everything in this 'In Class Materials' box.

In-Class Materials:

Instructor's Materials:

  • Notes
    • These notes are for the instructor’s use, and not meant for public consumption.
      They're posted here on the off chance that you find them useful - If they help you, that’s great.  If not, please just ignore them :)

Videos recorded during class (of the In-Class Exercises):