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
Sep 12: Lecture codeQuiz1 Conditionals, printf, logical operators

Sep 15: Lab 2
Sep 16: Lab 2 Solution, Lecture code equals()

Sep 22: Lecture code while-loops
Sep 23: Lab 3
Sep 24: Lecture code while-loops
Sep 26: Lecture code arrays, while-loops, for-loops

Sep 29: Lecture code arrays, for-loops
Sep 30: Lab 4aLab 4b
Oct 1: Lecture code Lab review, scope of a variable
Oct 3: Lecture code Switch statements

Oct 8: Lecture code methods, ?: operator
Oct 10: Lab5

Oct 13: Lab6Quiz 2Quiz 3
Oct 14: Lab7 Should we have a quiz today?
Oct 15: Review Should we have a quiz today?

Oct 20: Lecture code 2D arrays
Oct 21: Lab8
Oct 22: Lecture code Reading from a File with Scanner
Oct 24: Lab9

Oct 27: Lecture codeoct27.txt Exam 2 Key PrintWriter, for-each loop
Oct 28: Lecture codedata.csv do-while, Scanner's useDelimiter() & hasNext()