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, games, text manipulation, and data analysis.

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: September 4 - September 7

Lab #1 -- Wednesday, September 5:

Lec #1 -- Thursday/Friday, September 6/7:


Week 2: September 10 - 14 

Lec #2 -- Monday, September 10:

Tuesday, September 11:

Lab #2 -- Wednesday, September 12:

Lec #3 -- Thursday/Friday, September 13/14:


Week 3: September 17 - 21

Lec #4 -- Monday, September 17:

Tuesday, September 18:

Lab #3 -- Wednesday, September 19:

Lec #5 -- Thursday/Friday, September 20/21:


Week 4: September 25 - 28

Lec #6 -- Monday September 25:

Tuesday, September 26:

Lab #4 -- Wednesday, September 27:

Lec #7 -- Thursday/Friday, September 28/29:


Week 5: October 1 - 5

Lec #8 -- Monday, October 1:

Tuesday, October 2:

Lab #5 -- Wednesday, October 3:

Lec #9 -- Thursday/Friday, October 4/5:


Week 6: October 8 - 12

Monday/Tuesday, October 8/9:

Lab #6 -- Wednesday, October 10:

Lec #10 -- Thursday/Friday, October 11/12:


Week 7: October 15 - 19

Lec #11 -- Monday, October 15:

Tuesday, October 16:

Lab #7 -- Wednesday, October 17:

Lec #12 -- Thursday/Friday, October 18/19:


 

Week 8: October 22 - 26

Lec #13 -- Monday, October 22:

Tuesday, October 23:

Wednesday, October 24:

Lec #14 -- Thursday/Friday, October 25/26:


Week 9: October 29 - November 2

Lec #15 -- Monday, October 29:

Tuesday, October 30:

Lab #8 -- Wednesday, October 31:

Lec #16 -- Thursday/Friday, November 1/2:


Week 10: November 5 - 8

Lec #17 -- Monday, November 5:

Tuesday, November 6:

Lab #9-- Wednesday, November 7:

Lec #18 -- Thursday/Friday, November 8/9:


Week 11: November 12 - 16

Lec #19 -- Monday, November 12:

Tuesday, November 13:

Lab #10 -- Wednesday, November 14:

Lec #20 -- Thursday/Friday, November 15/16:


Week 12: November 19 - 23

Lec #21-- Monday, November 19:

Tuesday, November 20:

Lab #11 -- Wednesday, November 21:

Thursday/Friday, November 22/23:


Week 13: November 26 - 30

Lec #22 -- Monday, November 26:

Tuesday, November 27:

Lab #12 -- Wednesday, November 28:

Lec #23 -- Thursday/Friday, November 29/30:


Week 14: December 3 - 7

Lec #24 -- Monday, December 3:

Tuesday, December 4:

Lab #13 -- Wednesday, December 5:

Lec #25 -- Thursday/Friday, December 6/7:


Week 14: December 10

Lec #26 -- Monday, December 10:


End of Classes

Final Exam--Scheduled During Regular Exam Period