Approach to Instruction

The course is scheduled MWF, in person, for a 75-minute session per section. This page explains how that time is used and what to expect around it.

How class time is used

Each session is a traditional lecture, taught in an active-learning style: I teach the material, and we work through exercises together during class. Long, unbroken lecturing is not an effective way to learn. Attention and working memory are limited, and you learn better from shorter, more active segments than from continuous lecturing. Breaking up direct instruction with worked exercises keeps you engaged, and it lets you apply an idea while it is still fresh instead of only hearing about it.

The coursebook chapter for that lecture is released around the same time as the lecture, shortly before or after. Attending lecture does not substitute for reading the chapter. Lecture only covers part of the material; the chapter has the rest.

Coursebook

The lecture notes are the coursebook. They are posted on the course homepage and are available to you at no cost. Beyond the notes, there is no required textbook for this course. The notes are designed to be comprehensive and self-contained, so you will not need to consult any other resources to learn the material. However, if you want to explore the topics in more depth or from a different perspective, there are plenty of resources available online and in print.

For students who feel they need resources about Data Structures and Algorithms beyond what is available on the course homepage and the Internet, the following books are suggested:

  • Sedgewick, R., & Wayne, K. (2011). Algorithms (4th ed.). Addison-Wesley Educational.
  • Cormen, T. H., & Leiserson, C. E. (2022). Introduction to algorithms (4th ed.). MIT Press.

The coursebook assumes familiarity with Java, but it does not teach Java itself. If you need to learn Java or want to improve your Java skills, you should seek out resources on your own. There are plenty of options available online and in print to suit your preference and style of learning. Examples:

  1. Video: Java Tutorial for Beginners on YouTube.
  2. Interactive: Learn Java on Codecademy.
  3. Notes: Java Quick Guide on TutorialsPoint.

For students who feel they need resources about the Java programming language beyond what is available on the Internet, the following books are suggested:

  • Downey, A. B., & Mayfield, C. (2019). Think Java: How to think like a computer scientist (2nd ed.). O’Reilly Media.
  • Horstmann, C. S. (2017). Core Java SE 9 for the impatient (2nd ed.). Addison-Wesley Educational.
  • Evans, B., & Flanagan, D. (2018). Java in a nutshell: A desktop quick reference (7th ed.). O’Reilly Media.

How much time this takes

This is a 4-credit course, so plan for it to take real time. The federal standard for a credit hour expects roughly two hours of work on your own for every hour of scheduled instruction. Each class session is 75 minutes, so you should expect to spend about 2.5 hours per lecture on top of that, reviewing the notes, working through the practice problems, and writing code.