CS111 Syllabus


Course Overview

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 28 - February 1

Lec #1 -- Monday, January 28:

Tuesday, January 29:

Lab #1 -- Wednesday, January 30:

Lec #2 -- Thursday/Friday, January 31/February 1


Week 2: February 4 - 8 

Lec #3 -- Monday, February 4:

Tuesday, February 5:

Lab #2 -- Wednesday, February 6:

Lec #4 -- Thursday/Friday, February 7/8:


Week 3: February 11 - 15

Lec #5 -- Monday, February 11:

Tuesday, February 12:

Lab #3 -- Wednesday, February 13:

Lec #6 -- Thursday/Friday, February 14/15:


Week 4: February 18 - 22

Monday, February 18:

Lec #7 -- Tuesday, February 19:

Lab #4 -- Wednesday, February 20:

Lec #8 -- Thursday/Friday, February 21/22:


Week 5: February 25 - March 1

Lec #9 -- Monday, February 25:

Tuesday, February 26:

Lab #5 -- Wednesday, February 27:

Lec #10 -- Thursday/Friday, February 28/March 1:


Week 6: March 4 - 8

Lec #11 -- Monday, March 4:

Tuesday, March 5:

Lab #6 -- Wednesday, March 6:

Lec #12 -- Thursday/Friday, March 7/8:


Week 7: March 11 - 15

Lec #13 -- Monday, March 11:

Tuesday, March 12:

Lab #7 -- Wednesday, March 13:

Lec #14 -- Thursday/Friday, March 14/15:


 

Week 8: March 18 - 22


Week 9: March 25 - 29

Lec #15 -- Monday, March 25:

Tuesday, March 26:

Lab #8 -- Wednesday, March 27:

Lec #16 -- Thursday/Friday, March 28/29:


Week 10: April 1 - 5

Lec #17 -- Monday, April 1:

Tuesday, April 2:

Lab #9 -- Wednesday, April 3:

Lec #18 -- Thursday/Friday, April 4/5:


Week 11: April 8 - 12

Lec #19 -- Monday, April 8:

Tuesday, April 9:

Lab #10-- Wednesday, April 10:

Lec #20 -- Thursday/Friday, April 11/12:


Week 12: April 15 - 19

Monday, April 15:

Tuesday, April 16:

Lab #11 -- Wednesday, April 17:

Lec #21 -- Thursday/Friday, April 18/19:


Week 13: April 22 - 26

Lec #22-- Monday, April 22:

Tuesday, April 23:

Lab #12 -- Wednesday, April 24:

Lec #23 -- Thursday/Friday, April 25/26:


Week 14: April 29 - May 3

Lec #24 -- Monday, April 29:

Tuesday, April 30:

Wednesday, May 1:

Lec #25 -- Thursday/Friday, May 2/3:


Week 15: May 6 - May 10

Lec #26 -- Monday, May 6:

Tuesday, May 7:

Lab #13 -- Wednesday, May 8:


End of Classes

Final Exam--Scheduled During Regular Exam Period