CSCI-101 Programming I
Spring 2022

This course is an introduction to computer programming using Java. I use a traditional lecture format to teach the course material. The primary learning objectives are to have students learn how to write very simple statements using the various constructs in the language and to understand how the program is modifying the contents of the computer's memory while it runs.

  • Exams require students to demonstrate that they can utilize all of the various language features taught in the course. I am not concerned with whether or not they can solve tricky problems in 50 minutes. The same goes with quizzes.
  • Students are required to write notes. No computers are allowed in lecture to eliminate distractions.
  • I administer weekly quizzes in recitation (i.e. lab) based on the material taught during the previous week. I provide sets of problems each week for student to use to prepare for the quizzes.
  • Students will perform their work on a Linux operating system hosted on a college server.
  • Students learn on Linux, compiling and running their code from the command line. Students write using vi. We do not use IDEs since IDEs have features like autocomplete that give students an unhelpful crutch at this stage of their development.
  • Students will use git to push their source code to GitHub for assistance and evaluation.