CSCI-101 Programming I
Fall 2025

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.

Coding Rules
  1. Save often
  2. Compile often
  3. Indent consistently
  4. Write code for the future maintainer

Course Content
Aug 26: Syllabus Review
Aug 29: Linux commands and using the Vi editor
Sep 3: Lecture code Variables & arithmetic operators
Sep 5: Lecture code Reading keyboard data with Scanner
Sep 8: Lab 1
Sep 9: Lecture code The Scanner's buffer & getting chars from Strings
Sep 10: Lecture code Conditional Statements