![]() | CS111 Syllabus |
CS111 is an introduction to the problem solving foundations of computer science. Computer science is the study of imperative ("how to") knowledge, which is at the heart of any problem solving activity. Imperative knowledge is expressed via algorithms, which are descriptions of computational processes that can be encoded as programs written in a programming language. Programs communicate imperative knowledge between people; they can also be executed by computers.
In this course, you will learn "big ideas" about solving problems, developing algorithms, and organizing programs. These ideas include:
You will get hands-on experience with these ideas by reading, modifying, debugging, designing, writing, and testing programs. Example programs will involve graphics, user interfaces, and text manipulation.
This semester we will be using the Java programming language as our main tool for exploring the above ideas. Although you will learn a significant amount about Java along the way, the focus of the course will be on the big ideas, not on the details of Java programming.
Week 1: January 27 - 31 |
|||
Lec #1 -- Monday, 1/27: Lecture Topics:
|
Tuesday, 1/28: Assignments due:
|
Lab #1 -- Wed., 1/29:
|
Lec #2 -- Thurs., 1/30 Lecture Topics:
|
Week 2: February 3 - 7 |
|||
Lec #3 -- Monday, 2/3: Lecture Topics:
|
Tuesday, 2/4: Assignments due:
|
Lab #2 -- Wed., 2/5:
|
Lec #4 -- Thurs., 2/6: Lecture Topics: Methods I
|
Week 3: February 10 - 14 |
|||
Lec #5 -- Monday, 2/10: Lecture Topics: Methods II
|
Tuesday, 2/11: Assignments due:
|
Lab #3 -- Wed., 2/12:
|
Lec #6 -- Thurs., 2/13: Lecture Topics: Methods III
|
Week 4: February 17 - 21 |
|||
Monday, 2/17: Presidents' Day -- NO CLASS! |
Lec #7 -- Tuesday, 2/18: Lecture Topics: Methods IV
|
Lab #4 -- Wed., 2/19:
|
Lec #8 -- Thurs., 2/20: Lecture Topics: Conditionals I
|
Week 5: February 24 - 28 |
|||
Lec #9 -- Monday, 2/24: Lecture Topics: Conditionals II
|
Tuesday, 2/25: Assignments due:
|
Lab #5 -- Wed., 2/26:
|
Lec #10 -- Thurs., 2/27:
|
Week 6: March 3 - 7 |
|||
Lec #11 -- Monday, 2/3: Lecture Topics: Recursion I
|
Tuesday, 3/4: Assignments due:
|
Lab #6 -- Wed., 3/5:
|
Lec #12 -- Thurs., 3/6: Lecture Topics: Recursion II.
|
Week 7: March 10 - 14 |
|||
Lec #13 -- Monday, 3/10: Lecture Topics: Recursion III.
|
Tuesday, 3/11: Assignments due:
|
Lab #7 -- Wed., 3/12:
|
Lec #14 -- Thurs., 3/13: Lecture Topics: Recursion IV.
|
Week 8: March 17 - 21 |
|||
Week 9: March 24 - 28 |
|||
Lec #15 -- Monday, 3/24: Lecture Topics: Lists I
|
Tuesday, 3/25: Assignments due:
|
Lab #8 -- Wed., 3/26:
|
Lec #16 -- Thurs., 3/27: Lecture Topics: Lists II
|
Week 10: March 31 - April 4 |
|||
Lec #17 -- Monday, 3/31: Lecture Topics: Iteration I
|
Tuesday, 4/1: Assignments due:
|
Lab #9 -- Wed., 4/2:
|
Lec #18 -- Thurs., 4/3: Lecture Topics: Iteration II
|
Week 11: April 7 - 11 |
|||
Lec #19 -- Monday, 4/7: Lecture Topics: Java Graphics |
Tuesday, 4/8: Assignments due:
|
Lab #10-- Wed., 4/9:
|
Lec #20 -- Thurs., 4/10: Lecture Topics: Objects I
|
Week 12: April 14 - 18 |
|||
Lec #21 -- Monday, 4/14 Lecture Topics: Objects II: Animation World |
Tuesday, 4/15: Assignments due:
|
Lab #11 -- Wed., 4/16:
|
Lec #22 -- Thurs., 4/17: Lecture Topics: Arrays I |
Week 13: April 21 - 25 |
|||
Lec #21-- Monday, 4/21:
|
Tuesday, 4/22: Assignments due:
|
Lab #12 -- Wed., 4/23:
|
Lec #23 -- Thurs., 4/24: Lecture Topics: Arrays II |
Week 14: April 28 - May 2 |
|||
Lec #24 -- Monday, 4/28: Lecture Topics: Objects III
|
Tuesday, 4/29: Assignments due:
|
Wed., 4/30:
|
Lec #25 -- Thurs., 5/1: Lecture Topics: Microworlds Revealed
|
Week 15: May 5 - 7 |
|||
Lec #26 -- Monday, 5/5: Lecture Topics: CS111 Jeopardy |
Tuesday, 5/6: Assignments due:
|
Lab #13 -- Wed., 5/7:
|