Week of 1/25

  • Lectures: We meet only on Wednesday 1/25 this week.
  • Topics:
    • Introduction to COMSC 201
      • MaGE program introduction
      • Note: homework assignments and labs work differently than in COMSC 101
    • Java review
      • main method
      • for loops
    • Java GUIs with the Swing library
    • Using the UNIX command line interface (CLI) with the Terminal application
      • Calling javac from the CLI
  • Readings:
  • Homework: Assignment #0
    • Due Sunday, Jan 29 before 11:59pm
  • Lab: No lab this week

Week of 1/30

Week of 2/6

Week of 2/13

Week of 2/20

  • Lectures: Monday 2/20 and Wednesday 2/22
  • Topics:
    • What happens when code executes
      • Memory
      • Lexical scope
    • Design documents
    • Code skeletons and method stubs
    • Intro to Model-View-Controller (MVC) design pattern
  • Code Used in Class:
  • Video:
    • The call stack
      • A nice video that shows the call stack in action for a recursive implementation of factorial. Note that this video goes into less detail than we did in class, but it still captures the general idea of what the call stack does.
      • Also note that the comments (and some popup captions) claim that the video is wrong because printf should be “on the stack after main() and before fact(5)”. These comments are incorrect. In fact, main pushes printf on the stack after fact(5) is popped off; the instructor omitted this detail, but his explanation is the correct one.
  • Readings:
    • Optional reading: Inside the Java Virtual Machine
      • I don’t expect you to read the above link, which tells you how the JVM works in gory detail. But if you’re curious, have a look! You’ll notice that the example I went through in class in “excruciating detail” actually still left out many details. Note that the JVM is still simpler than a real computer processor!
    • Practice midterm exam
  • Homework: Tetris, Part 1
    • Due Tuesday, Feb 28 before 11:59pm
  • Lab: Lab #4

Week of 2/27

  • Lectures: Monday 2/27 and Wednesday 3/1
  • Topics:
    • More on the MVC design pattern
    • Short exam review
  • Exam!:
    • In-class, closed-book midterm on Wednesday 3/1
  • Readings:
  • Homework: Tetris, Part 2
    • Due Friday, Mar 10 before 11:59pm
  • Lab: Lab #5

Week of 3/6

Week of 3/13

  • Spring Break

Week of 3/20

Week of 3/27

Week of 4/3

Week of 4/10

  • Lectures: Monday 4/10 and Wednesday 4/12
  • Topics:
    • Binary search trees
  • Readings:
  • Homework: Assignment #7
    • Due Tuesday, Apr 18 before 11:59pm
    • Bonus assignment (due any time before the final exam)
      • Modify the following binary tree interface so that it can be implemented without using type casting:
      • Implement a binary search tree using your new interface; do not use type casting anywhere in your implementation!
  • Lab: Lab #9

Week of 4/17

  • Lectures: Monday 4/17 and Wednesday 4/19
  • Topics:
    • Analysis of algorithmic run-time
    • “Big-O” notation
    • Decision trees
  • Readings:
  • Code Used in Class:
  • Homework: Final Project
    • Due Monday, May 1 before 11:59pm
  • Lab: Lab #10

Week of 4/24

Week of 5/1

  • Lectures: We meet only on Monday 5/1 this week.
  • Topics:
  • Readings:
  • Homework: No homework
  • Lab: No lab