Course:CS 245 - Advanced Programming and Data Structures
Fall 2013
Description and objectives: In this course we will investigate ways of producing quality software that scales with the size of data.

Upon successfully completing this course, you will be able to:

  • Reuse code by taking advantage of inheritance and polymorphism.
  • Expose data for user interaction through graphical user interfaces.
  • Solve self-similar computational problems with recursion.
  • Apply multiple processors to a task using multiple threads of execution.
  • Employ canonical abstract data types like lists, stacks, queues, and trees.
  • Strengthen code reliability through unit testing.
Instructor:Chris Johnson (
Office hours:M 1-2 PM, W 11 AM-12 PM, W 1-2 PM, Th 1-1:50 PM in Phillips 134
Lecture:TTh 9:30-10:45 AM
Phillips 104
Lab:W 9:00-10:50 AM
Phillips 115
Exams:Midterm - October 17
Final - to be determined
Textbooks:Data Structures: Abstraction and Design Using Java (2nd edition)
by Elliot Koffman and Paul Wolfgang
ISBN: 978-0470128701
Core Java, Volume 1 (8th edition)
by Cay Horstmann and Gary Cornell
ISBN: 978-0132354769
Grading: Your instructor employs a grading system that is somewhat nontraditional. It places more emphasis on self-improvement and mastery of the course material than meeting deadlines, though effective use of one's time is still a necessary ingredient for your learning.

Grades are assigned based on how many Blugolds you earn. You, the student, pick the grade you want and complete the necessary tasks to achieve Blugolds. Tasks include:

  • Preassignments (3, each worth 1 Blugold)
  • Regular assignments (3, each worth 2 Blugold)
  • Midterm (worth 2 Blugolds)
  • Final (worth 2 Blugolds)
  • Participation (1 Blugold for >= 85% of 1/4-sheets turned it at the beginning of lecture)
  • Labs (1 Blugold for over 50% of checkpoints completed, 2 for 100%)

The grading matrix follows:

Blugolds earnedGrade

Assignments are also handled a bit differently from the norm:

  1. Partial credit is not awarded. Each assignment is graded pass/fail. To receive Blugolds for an assignment, you must complete all requirements listed in its specification.
  2. Submissions that fail to meet the specifications may be resubmitted. However, the submission must pass the SpecCheck test to be eligible for resubmission. That is, all classes and methods must be present in your submission, such that the SpecChecker passes.
  3. Only one assignment (new or resubmitted) may be turned in per week. The submission week starts on Sunday and ends on Saturday.
  4. All submissions must be turned in by the end of Thursday before finals week.
Communication: Your instructor is finite and values focus. Please keep these points in mind when needing to communicate with him:
  • Honor your instructor's closed door. Please visit only during posted office hours. Do not drop by at other times without having scheduled a time via email at least one day before the meeting.
  • Your instructor values his time with family. He does not respond to email after 5 PM or on weekends. Plan accordingly.
Good studentship: Follow these principles to maximize your learning and grade:
  • A good education requires both good teaching and good learning. It takes hard work from both instructor and student.
  • Early is better than on time.
  • Plan for homework to take longer than you think.
  • Do your own coding. Discussion of problems is allowed, but using another's code, sharing your code with others, or soliciting solutions from others will earn you a report of academic misconduct and lower your grade. You don't want to live in a world serviced by people who did such things to squeak by, so don't do them yourself.
  • Grades are calculated according to your achievement, not your circumstances.
Accommodations: Any student who has a disability and is in need of classroom accommodations, please contact the instructor and the Services for Students with Disabilities Office in Old Library 2136 at the beginning of the semester.
Easter egg: Students who includes the sentence "I read the syllabus!" on their first 1/4-sheet, which is turned in on September 5, get 1 free participation point.