CS1150 (Fall 2012, Section 1)

Principles of Computer Science



Quick Info

Principles of Computer Science
Brian Parks (bparks AT uccs DOT edu)
Office: ENGR 148 (inside ENGR 149, VAST Lab)
Office Hours: Wednesday, 8AM - 9:15AM; Friday, 8AM - 10:30AM; or by appointment

The text will be Y. Daniel Liang's Introduction to Java Programming to be consistent with the other sections of this class. We will cover a bunch of material, not necessarily in the same order as in the book. Please read the sections marked next to each lecture (below) before that lecture. I may also make reference to the book used over the summer, Java: An Introduction to Problem Solving and Programming by Walter Savitch, which is a better-organized book. However, this book is NOT REQUIRED for this class.

Grades will be assigned based on the total points system. Each programming assignment (of which there are 14) will be graded out of 50 points. Each exam is worth 200 points (not cumulative). This totals 1100 points; I will divide by 1000 (which means there is an opportunity get get a very good A). Blackboard does not support this grading style, so I use Blackboard solely to communicate individual grades to you. Letter grades are assigned as follows:

  1. Divide total earned points by 1000 (or divide total earned points by total points you could possibly have earned so far and multiply by 1.1)
  2. Tens digit determines letter grade (A, B, C, D, F)
  3. Ones digit determines plus/minus (0-2 = minus, 7-9 = plus)

Emailed files should be named using the following syntax (all lowercase):

        cs1150.1208-1-last_name-first_name-pa#.zip

About the course

The course catalog has the following to say about this course:

Introduction to programming with emphasis on computer science concepts. Develops methods for computer problem solving. Develops proficiency for programming in a modern programming language, and introduces the concepts of abstraction in problem solving. Includes basic concepts of computer systems and environments including debuggers, editors, and file systems. Prer., High school algebra and familiarity with computer concepts including file operations and text editing.

Announcements

Lecture Schedule

For video lectures from previous semesters of this course, see the page from the spring or the summer.

The relevant sections are listed for three books. S6 is Savitch, 6th ed.; L8 is Liang, 8th ed.; L9 is Liang, 9th ed.

  1. Monday, 20 August — Introduction to Java. (L8/9: 1.1, 1.5-8)
  2. Wednesday, 22 August — Introduction to Computer Science. (L8/9: 1.2-4)
  3. Monday, 27 August — Variables and Expressions. (L8: 2.1-14; L9: 2.1-15, 2.17)
  4. Wednesday, 29 August — Strings. (L8: 2.15, 9.1-4; L9: 2.18, 9.1-4)
  5. Monday, 3 September — LABOR DAY
  6. Wednesday, 5 September — Console input/output. Documentation. (L8: 2.16-17, 3.17; L9: 1.10-11, 3.16)
  7. Monday, 10 September — if (L8: 3.1-14; L9: 3.1-13)
  8. Wednesday, 12 September — switch. Debugging. (L8: 3.15-16, 3.18; L9: 3.14-15, 3.17, 3.19)
  9. Monday, 17 September — while, do...while (L8/9: 4.1-3)
  10. Wednesday, 19 September — for (L8: 4.4-9; L9: 4.4-10)
  11. Monday, 24 September — Methods (L8/9: 5.1-12)
  12. Wednesday, 26 September — Classes (L8/9: 8.1-3, 8.5-6)
  13. Monday, 1 October — Problem solving with Java
  14. Wednesday, 3 October — Top-down design
  15. Monday, 8 October — Midterm review
  16. Wednesday, 10 October — MIDTERM EXAM
  17. Monday, 15 October — Arrays. (L8: 6.1-11, 9.5; L9: 6.1-12, 9.5-7)
  18. Wednesday, 17 October — Multidimensional arrays. (L8/9: 7.1-8)
  19. Monday, 22 October — Information Hiding. Encapsulation (L8/9: 8.8-9)
  20. Wednesday, 24 October — Constructors. (L8/9: 8.4)
  21. Monday, 29 October — Static. Overloading. Packages. (L8/9: 8.7, 8.10-11)
  22. Wednesday, 31 October — More about objects. (L8: 10.1-11; L9: 10.1-13)
  23. Monday, 5 November — Inheritance. (L8/9: 11.1-3)
  24. Wednesday, 7 November — Polymorphism. Overriding. (L8: 11.4-10; L9: 11.4-10, 11.13-14)
  25. Monday, 12 November — Interfaces. (L8: 14.4-7; L9: 15.5-7)
  26. Wednesday, 14 November — Abstract Classes. (L8: 14.1-3, 14.8-13; L9: 15.1-4, 15.8-9)
  27. Monday, 19 November — PHILOSOPHY DAY
  28. Wednesday, 21 November — THANKSGIVING
  29. Monday, 26 November — Exceptions. (L8: 13.1-10; L9: 14.1-9)
  30. Wednesday, 28 November — GUIs. Event-driven programming. (L8: 12.1-10, 16.1-11, 17.1-12; L9: 12.1-15, 16.1-11, 17.1-8)
  31. Monday, 3 December — File Input. File Output. (L8: 9.6-7; L9: 14.10-13)
  32. Wednesday, 5 December — Final review.
  33. Wednesday, 19 December (8:00 – 10:30) — FINAL EXAM

Assignments

  1. Basic Java — due Monday, 27 August
  2. Variables — due Wednesday, 5 September
  3. Console I/O — due Wednesday, 12 September
  4. Selection — due Wednesday, 19 September
  5. Iteration — due Wednesday, 26 September
  6. Classes and methods — due Wednesday, 3 October
  7. Modular code — due Monday, 15 October
  8. Arrays — due Wednesday, 24 October
  9. Information Hiding — due Wednesday, 31 October
  10. More about objects — due Wednesday, 7 November
  11. Inheritance — due Wednesday, 14 November
  12. Interfaces and Abstract Classes — due Monday, 26 November
  13. Exceptions — due Wednesday, 5 December
  14. File I/O — due Wednesday, 12 December

Assignments should be submitted by zipping the relevant Java files into a zip file named cs1150.1208-1-student's last name-student's first name-panumber of assignment.zip and emailing the file to the instructor in an email with CS1150.1208-1 PAnumber of assignment SUBMISSION in the subject. For instance, if the instructor were to submit a response for programming assignment 3, the zip file would be called cs1150.1208-1-parks-brian-pa3.zip in an email with CS1150.1208-1 PA3 SUBMISSION as the subject (the word "SUBMISSION" in all capital letters is very important). The instructor uses these formats to sort email submissions to appropriate mailboxes and automate downloading of projects for ease of grading.

NO EXCEPTIONS. If your submission does not follow this format, it will not get graded.

A submission for a program assignment should consititute one zip file containing one or more .java files. All source files necessary to run your program must be included. If you submit .java~ files (these are DrJava "backup" files), you will receive a 0. Java source files show up on the lab machines with a G on the icon and no extension.

Assignments are due by 11:59 PM on the day they are due. Late assignments will not be accepted except in extenuating circumstances.

N.B.: Programs that do not compile will receive a flat 10 points. Programs that compile, but crash when run with valid inputs will receive a flat 20 points. Programs that compile and run will receive at least 20 points.

All programming assignments should have the following comment block at the top of each file (we will learn about comments in the first lecture):

/* Name of file (e.g.: HelloWorld.java)
 * Your name
 * CS1150.1208-001, Programming Assignment #N
 * A brief description of what the file does
 */

Administrative Details

Computer Science Department Policy is that "students in 1000- and 2000-level CS courses can have at most four absences, after which they would lose at least one letter grade." The instructor does not believe in formally calling roll at the beginning of every class, but excessive absences will certainly negatively impact the student's grade. Making alternate arrangements to get the material in class (online videos, reading the book, copying notes from a classmate) is not an excuse for excessive absences. Surfing the net, playing games, IMing, Facebooking, etc. or leaving class consistently early will be considered an act of absenteeism.

Military Students: If you are a military student with the potential of being called to military service and /or training during the course of the semester, you need to contact me the first week of classes to determine if it is feasible for you to remain in the class.

Students with Disabilities: Students with disabilities are to provide their letters of certification and accommodation within the first two weeks of class.

Important Dates

  1. 6 September — Last day to drop without instructor signature.
  2. 26 October — Last day to drop with instructor signature, without dean's signature.

NOTE: Classes cannot be dropped online after September 6th — you must use the paper drop/add form after this date AND have it signed by your instructor.

N.B.: After the census date, the instructor will not sign a drop/add form unless in his opinion you are passing the course, extenuating circumstances notwithstanding.

Resources