Link Search Menu Expand Document

Hampton CS 151 Fall 2022

Computer Programming I

About the Class

CS 151 is an introductory class designed for students with no formal exposure to computer science or programming. The goal is to provide a gentle but thorough introduction to computer science that will prepare students to either take further computer science courses, or use computer science in their field of study.

See the Syllabus page for more details on course policies.

Course Materials

Week 1 - Introduction to Computer Science & Karel

9/6
Tuesday
Lecture 1 Intro to CS & Syllabus Review
[Slides]
Lab 1 Intro to Karel
Check-Off Questions
9/9
Thursday
Concept Videos Lecture 2 Computer Science Everywhere!
Lecture 2 Binary & Karel
[Video] [Slides]
9/10
Friday
HW 0 Survey due Introduce Yourself & Academic Integrity

Week 2 - Karel Functions & Decomposition

9/13
Tuesday
Concept Videos Lecture 3 Karel Methods
Lecture 3 Karel Methods
[Slides]
Lab 2 Karel Functions & Decomposition
Check-Off Questions
9/15
Thursday
Concept Videos Lecture 4 Karel Decomposition
Lecture 4 Karel Decomposition
[Slides]
9/10
Friday
HW 0 Office Hours due Visit Lara’s OH and 1 Google TA’s OH

Week 3 - Karel Loops & Conditionals

9/20
Tuesday
Concept Videos Lecture 5 Karel Loops & Conditionals
Lecture 5 For Loops & While Loops
[Slides]
Lab 3 Karel Loops & Conditionals
Check-Off Questions
9/22
Thursday
Career Fair No Lecture

Week 4 - Conditions & Debugging

9/27
Tuesday
Concept Videos 6 Karel While Loops & Debugging & Formatting
Lecture 6 Karel While Loops & Debugging & Formatting
[Slides]
Lab 4 Karel Debugging & Formatting
Check-Off Questions
9/29
Thursday
Karel Quest Review Karel Quest Review
Pracice Quest Solutions

Week 5 - Welcome to Java!

10/4
Tuesday
Exam Karel Quest
Lab 5 Welcome to Java!
Check-Off Questions
10/6
Thursday
Concept Videos Lecture 7 Welcome to Java!
Lecture 7 Welcome to Java!
[Slides] [Workspace]
10/7
Friday
Project 1 due Project Karel

Week 6 - Java Variables & Types

10/11
Tuesday
Concept Videos 8 Variables & Types
Lecture 8 Java Variables & Types
[Slides] [Workspace]
Lab 6 Variables & Types
Check-Off Questions
10/13
Thursday
Lecture 9 Variables II & If/Else Charts
[Slides] [Workspace]

Week 7 - Parameterization & Returning

10/18
Tuesday
Concept Videos 10 Methods Parameterization & Returning
Lecture 12 Methods Parameterization & Returning
Lab 7 [Methods Parameterization & Returning]
Check-Off Questions
10/20
Thursday
Concept Videos Lecture 13 More Method Practice & Strings
Lecture 13 Parameterization

Week 8 - Midterm

10/25
Tuesday
Lab Midterm Exam
10/27
Thursday
Midterm Exam

Week 9 - Arrays

11/1
Tuesday
Concept Videos 14 List it out in an Array
Lecture 14 Arrays
Lab 8 [Arrays]
Check-Off Questions
11/3
Thursday
Concept Videos Lecture 15 Indexing Arrays
Lecture 15 Indexing Arrays
11/4
Friday
Project 2 due Wordle Starter Doc Due

Week 10 - Arrays II / Hashmaps

11/8
Tuesday
Concept Videos 17 More Arrays & Array Lists
Lecture 17 More Arrays & ArrayLists
Lab 10 [Arrays & ArrayLists]
Check-Off Questions
11/10
Thursday
Concept Videos Lecture 18 Array Counting
Lecture 18 Array Counting & Search Algorithms

Week 11 - Algorithms

11/14
Monday
Project 2 due Wordle Project Due
11/15
Tuesday
Concept Videos 19 Nested for Loops & Algorithmic Complexity
Lecture 19 (Algorithmic Complexity](https://drive.google.com/file/d/1Z-9-eYqmsugUe-3T0g94rXEDRT_IOK2b/view?usp=sharing)
Lab 11 [Search Algorithms & Image Filter]
Check-Off Questions
11/17
Thursday
Concept Videos Lecture 20 Ethics of Computing
Lecture 20 Ethics of Computing

Week 12 - File Input/Output

11/22
Tuesday
Lecture 21 Java Quest Review
Research Paper due Ethics of Computing
11/23
Thanksgiving Break
11/24
Thanksgiving Break
11/25
Thanksgiving Break

Week 13 - Objects and Classes

12/5
Monday
Project 3 due Image Filter
11/29
Tuesday
Exam Quest Java
Lab 12 [File Input/Output] & Music Maker Project
Check-Off Questions
12/1
Thursday
Lecture 21 [Final Project]

Week 14 - File Input/Output & GUIs

12/5
Monday
Project 4 due Music Maker
12/6
Tuesday
Concept Videos 22 Future of Computing
Lecture 22 Future of Computing
Lab 14 In Lab Final
12/8
Thursday
Concept Videos Lecture 23 Farewell Lecture
Lecture 8 Farewell Lecture

Week 15 - Finals Week

12/12
Monday
Final Project due Final Project
12/17
Saturday
Final Exam 1pm Final Exam for 11:00am Lecture
12/19
Monday
Final Exam 1pm Final Exam for 12:30am Lecture