CS1150 (Spring 2013)

Principles of Computer Science



Quick Info

Principles of Computer Science
Brian Parks (bparks AT uccs DOT edu)
4:45 PM - 6:00 PM, ENGR 138
Office Hours: by appointment only

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.

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. It's not perfect, but it'll do the trick.

Grades will be assigned based on the total points system. Each programming assignment (of which there are 8) will be graded out of 50 points. There will be two midterm exams, each worth 150 points. The final exam is worth 200 points (not cumulative). The remaining points will be comprised of five pop quizzes, each worth 20 points. There will be no opportunities for extra credit.

I will not be posting grades to Blackboard as I have in previous semesters; please track your own grades. All programming assignments are due on Mondays and I expect to return grades by the Wednesday of the same week.

Each programming assignment is expected to be submitted on paper at the beginning of class on the day on which it is due. Each assignment will have slightly different deliverables, so check the individual assignments for details.

Exams are not cumulative. All three will be open-book, closed notes. Each will consist of an in-class programming-oriented (though still most likely written) portion worth half the points and a take-home portion worth the remainder of the points testing general concepts.

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 two editions of the book. L8 is Liang, 8th ed.; L9 is Liang, 9th ed.

  1. Wednesday, 23 January — Introduction to Java. (L8/9: 1.1, 1.5-8)
  2. Monday, 28 January — Introduction to Computer Science. (L8/9: 1.2-4)
  3. Wednesday, 30 January — Variables and Expressions. (L8: 2.1-14; L9: 2.1-15, 2.17)
  4. Monday, 4 February — Strings. (L8: 2.15, 9.1-4; L9: 2.18, 9.1-4)
  5. Wednesday, 6 February — Console input/output. Documentation. (L8: 2.16-17, 3.17; L9: 1.10-11, 3.16)
  6. *Monday, 11 February — if (L8: 3.1-14; L9: 3.1-13)
  7. Wednesday, 13 February — switch. (L8: 3.15-16, 3.18; L9: 3.14-15, 3.17)
  8. *Monday, 18 February — Debugging. (L9: 3.19)
  9. Wednesday, 20 February — MIDTERM 1
  10. Monday, 25 February — while, do...while (L8/9: 4.1-3)
  11. Wednesday, 27 February — for (L8: 4.4-9; L9: 4.4-10)
  12. *Monday, 4 March — Methods (L8/9: 5.1-12)
  13. Wednesday, 6 March — Classes (L8/9: 8.1-3, 8.5-6)
  14. *Monday, 11 March — Arrays. (L8: 6.1-11, 9.5; L9: 6.1-12, 9.5-7)
  15. Wednesday, 13 March — Multidimensional arrays. (L8/9: 7.1-8)
  16. *Monday, 18 March — Information Hiding. Encapsulation (L8/9: 8.7-11)
  17. Wednesday, 20 March — MIDTERM 2
  18. Monday, 25 – Wednesday, 28 March — SPRING BREAK
  19. Monday, 1 April — Constructors. (L8/9: 8.4)
  20. Wednesday, 3 April — More about objects. (L8: 10.1-11; L9: 10.1-13)
  21. *Monday, 8 April — Inheritance. Polymorphism. Overriding. (L8: 11.1-10; L9: 11.1-14)
  22. Wednesday, 10 April — Interfaces. Abstract Classes. (L8: 14.1-13; L9: 15.1-9)
  23. Monday, 15 April — Exceptions. (L8: 13.1-10; L9: 14.1-9)
  24. Wednesday, 17 April — File Input. File Output. (L8: 9.6-7; L9: 14.10-13)
  25. *Monday, 22 April — GUIs. (L8: 12.1-10; L9: 12.1-15)
  26. Wednesday, 24 April — Event-driven programming. (16.1-11)
  27. Monday, 29 April — More GUIs. (L8: 17.1-12; L9: 17.1-8)
  28. Wednesday, 1 May — Applets. (L8/9: 18.1-12)
  29. *Monday, 6 May — Graphics. (L8: 15.1-12; L9: 13.1-11)
  30. Wednesday, 8 May — Final review.
  31. Wednesday, 15 May (4:45 – 7:15) — FINAL EXAM

Assignments

  1. Variables and Expressions — due Monday, 11 February
  2. Selection — due Monday, 18 February
  3. Iteration — due Monday, 4 March
  4. Classes and Methods — due Wednesday, 13 March. Throttle.java TestThrottle.java
  5. State and Scope — due Monday, 18 March. Instructions are the same as for PA4.

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.1301, 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 February — Census Date: Last day to drop without instructor signature.
  2. 5 April — Last day to drop with instructor signature, without dean's signature.

NOTE: Classes cannot be dropped online after February 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