CS 149: Introduction to Programming
James Madison University, Spring 2018 Semester

This schedule is subject to change throughout the course.
This schedule was developed from materials developed by Chris Mayfield and others in the JMU Computer Science Department.

Installing jGRASP     Java Tutor     Java API     Remote Access     Practice-It

Date Preparation Activity / Lab Homework
Jan 08
Jan 10
Jan 12
Chapter 1: Computer programming
Video 1: Tour of JGrasp (~10 min)
Act01 Introduction
Lab01 Building a Java program
Lab02 Style guide and Checkstyle
PA1: Input and Output
(quiz due 1/15 at 11:00pm)
(code due 1/19 at 11:00pm)
Jan 15
Jan 17
Jan 19
Chapter 2: Variables and operators
Video 2: Using the Scanner class
Lab03 Unix tutorial for beginners
Act02 Arithmetic
Lab04 Concatenation and types
Jan 22
Jan 24
Jan 26
Chapter 3: Input and output
Video 3: Command line review
Act03 Data Types
Lab05 Testing via command line
Lab06 Formatting output in Java
PA2: Methods and Testing
(quiz due 1/26 at 11:00pm)
(code due 2/02 at 11:00pm)
Jan 29
Jan 31
Feb 02
Chapter 4: Methods and testing
Video 4: Introduction to methods
Act04 Methods
Lab07 Drawing shapes and houses
Lab08 Program testing with JUnit
Feb 05
Feb 07
Feb 09
Review Chapters 1–4
See also 1.1 and 1.2 of Princeton
Exam logistics and preparation
Written Exam #1 (classroom)
Coding Exam #1 (in the lab)
Feb 12
Feb 14
Feb 16
Chapter 5: Conditionals and logic
Video 5: Introduction to decisions
Act05 Boolean Logic
Lab09 CodingBat practice problems
Lab10 Web-CAT submission system
PA3: Decisions and Logic
(quiz due 2/16 at 11:00pm)
(code due 2/23 at 11:00pm)
Feb 19
Feb 21
Feb 23
Chapter 6: Loops and strings
Video 6: Tracing code by hand
Act06 Loops
Lab11 Validation using do-while
Lab12 Practice with nested loops
Feb 26
Feb 28
Mar 02
Chapter 7: Arrays and references
Video 7: Introduction to arrays
Act07 Arrays
Lab13 Processing array elements
Lab14 Computing basic statistics
PA4: Loops and Arrays
(tests due 3/02 at 11:00pm)
(code due 3/16 at 11:00pm)
Mar 12
Mar 14
Mar 16
Chapter 8: Recursive methods
Video 8: How recursion works
Act08 Recursion
Lab15 Recursive 2D graphics
Lab16 Debugging and tracing
Mar 19
Mar 21
Mar 23
Review Chapters 5–8
Lesson: Language Basics
Exam logistics and preparation
Written Exam #2 (classroom)
Coding Exam #2 (in the lab)
Mar 26
Mar 28
Mar 30
Chapter 9: Immutable objects
Video 9: Java substring v2
Act09 Object-Oriented
Lab17 Getting started with Eclipse
Lab18 Final round of CodingBat
PA5: Numbers and Strings
(tests due 3/30 at 11:00pm)
(code due 4/06 at 11:00pm)

  Lesson: Numbers and Strings  
Apr 02
Apr 04
Apr 06
Chapter 10: Mutable objects
Video 10: Intro to objects in Java
Act10 Classes and UML
Lab19 Passing and returning objects
Lab20 Game design with Greenfoot
Apr 09
Apr 11
Apr 13
Chapter 11: Designing classes
Video 11: Memory Diagrams
Act11 Designing Classes
Lab21 Simulation of mutable objects
Lab22 Class variables vs attributes
PA6: Classes and Objects
(Part A due 4/13 at 11:00pm)
(Part B due 4/20 at 11:00pm)

  Lesson: Classes and Objects  
Apr 16
Apr 18
Apr 20
Chapter 12: Arrays of objects
Video 12: Summary of CS 149
Act12 Arrays of Objects
Lab23 Greenfoot media computation
Lab24 Robots counting rooms
Apr 23
Apr 25
Apr 27
Review Chapters 9–12
Finish PA5/PA6 Tutorials
Exam logistics and preparation
Practice for the final exam
2018 Spring Exam Schedule
Sec 3: Wed. 5/02 8:00–10:00

Unless otherwise noted, the materials on this website are freely available under the
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.