CSC 102: Fundamentals of Computer Science II
Gene Fisher (gfisher@calpoly.edu)
Office: 14-210
Office Hours: MWF 2-3PM, Tu 9-11AM, other times by appointment,
any time by email, approximately daily on Piazza
The textbook is "Big Java" by Cay Horstmann, 4th edition. In the opinion of your instructor, it's quite a good book. There's a website for the book at http://www.horstmann.com/bigjava4.html which includes some useful information, including source code for all of the examples used in the book.
Other editions of Big Java will work OK, but you'll need to convert between the book sections and page numbers that appear in 102 the notes. There's help with this online, for example a feature mapping between Big Java versions 3 and 4 at http://spreadsheets.google.com/ccc?key=tj0a1XuzAWk16KM7vIS8YGQ&hl=en (which is linked to from book's website).
The 102 course website is http://www.csc.calpoly.edu/~gfisher/classes/102
There is a variety of material on the site, organized into the following directories:
There are also 15 labs that you will submit, for which there is no specific grading percentage. Your scores on the labs will be used in assigning final course grades for border-line cases. For example, if you're on the high end of the 'B' grade range and have done well on all the labs, then you'll be eligible to move into the 'A' grade range.
Your submitted programs must compile and pass all test cases to receive credit. For each program you will be given a set of tests that your program must pass. If your program passes all of the tests on or before the first due date, you will receive 100%. If your program does not pass initially, you will then have the opportunity to submit your program for reduced amounts of credit for up to five additional days. After the last submission date, you cannot submit the program for credit. Complete details of the due date and credit values will be provided in the writeup for each program. See for example the scoring details for programming assignment 1.
Programs must be fully documented in order to receive full credit. In particular, an entirely undocumented program will receive as little as 70% credit. Per the grading scale given below, that's a "C" grade. Detailed conventions for documentation and coding standards are online in the class info directory. Additional specific scoring details will be provided for each assignment.
In general, the work in the labs will involve reasonably small programs, and answers to analytic questions. Work on the programming assignments will involve programs of significant size, measured in hundreds of lines of code.
As noted above, labs are not counted as an explicitly graded component of the course. However, it is highly recommended that do the labs. They will cover material that is directly relevant to the programming assignments and lab quizzes.
The course grading scale is based on absolute percentages of points received. 90% or above is guaranteed an A (or A-) in the class; 80% a B, 70% a C, and 60% a D. Depending on overall class performance, the scale may be lowered, but it will never be raised.
If you find a problem with the grading on an assignment, you must submit it for
re-grading within ten days of when it was handed back. Grades will be posted
on the class website, under individually password protected pages for each
student in the class. Be sure to check what is posted regularly, to ensure
that it agrees with your records.
All programs must be done individually. It is OK to discuss general principles and ideas with colleagues, but the programming assignments are not to be done in groups, or with your lab partner.
Use of anyone's solutions other than your own is considered cheating. This includes solutions from previous offerings of this or any other course, solutions you may find online, or solutions you get from any source other than your own brain.
Any instance of cheating or plagiarism will be referred to the campus office of student rights and responsibilities. Campus cheating policies are defined online at
Any documentable instance of cheating will result in failure of the course.http://www.osrr.calpoly.edu
Note Well: If you use a home compiler to develop your programs, you must verify that the program compiles and runs one of the CSL unix machines before you hand it in. When you submit programs, they will be compiled and executed by a script that runs on the CSL machines. You are responsible to ensure that your programs run the same on the CSL machines as they do on any other computers you may use to develop the programs.
Also note that the CSL UNIX machines run Java Version 6. This means that you
cannot use Java features that are specific to Java Version 7 alone. It is
unlikely that this will ever be an issue in 102, but you should be aware of it.
You are not required to use any specific Java IDE (interactive development
environment). The first lab provides an introduction to jGrasp, which should
suit your 102 needs quite well. There are many other Java development
environments from which to choose. A few of them are listed in the
102 info directory
Course Topic, Reading, and Due-Date Summary
Week | Topics | Reading | Labs | Programs | Exams |
1 |
| Chs 1-5 | Labs 1,2 | ||
2 |
|
Ch 6
Sec 7.3 | Labs 3,4 |
Prog 1
assigned, Mon | |
3 |
| Chs 7,9 | Labs 5,6 |
Prog 1
due, Wed Prog 2 assigned, Wed | |
4 |
|
Ch 10
Sec 12.3 | Lab 7 |
Prog 2
due, Wed Prog 3 assigned, Wed |
Lab Quiz 1,
Wed |
5 |
|
Ch 11
GUI lib | Lab 8 |
Prog 3
due, Fri Prog 4 assigned, Fri | |
6 |
| Ch 19 | Labs 9,10 | ||
7 |
| Ch 15 | Lab 11 |
Prog 4
due, Wed Prog 5 assigned, Wed |
Midterm +
Lab Quiz 2, Wed |
8 |
| Ch 18 | Lab 12 |
Prog 5
due, Fri Prog 6 assigned, Fri | |
9 |
| Labs 13,14 | |||
10 |
| Lab 15 |
Prog 6
due, thu |
Lab Quiz 3,
Wed | |
finals |
|