CSCI-101 Programming I
Fall 2026

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 future maintainers

Course Content
August 24
Tuesday: Homework: The Java Story; Create timeline.
Introduction, Goals, Plan Wednesday: Get GitHack RemotelyCreate GitHub Account
Friday: Create SSH KeysClone Shared RepoDo First Push
August 31
Monday: No class
Tuesday: Computer architecture
Wednesday: code
vi editor, compilation process, variables and types Friday: Binary number system counting in base 2; base 10 to base 2 conversion and vice-a-versa; ascii
Sep 7
Monday: code
variable declaration, string concatenation, Scanner Tuesday: Lab 1
Wednesday: code
Arithmetic operators Friday: Calculator code
Boolean expressions, conditional expressions, relational operators, boolean operators
Sep14
Monday: code
Arithmetic, relational, and logical operators; conditional expressions Tuesday: Lab 2
Wednesday: code
Scanning in Strings and chars; comparing strings and chars Friday: Lab 3
Sep21
Monday: No class
Tuesday:
Wednesday: Exam 1
Friday: