CS 2110 - Course Syllabus, Fall 2011

Website

http://www.cs.virginia.edu/cs201/
This is the "main" course site, not Collab. We will use Collab of course, and this site has links to the parts of Collab we'll use most often.

Lecture

Mondays, Wednesdays, and Fridays, 10:00 - 10:50 am, OLS 120
Mondays, Wednesdays, and Fridays, 1:00 - 1:50 pm, MEC 120

Labs

Mon., 1-2:45pm, Section 104 (Head TA: TBA)
Mon., 3-4:45pm, Section 105 (Head TA: TBA)
Mon., 5-6:45pm, Section 103 (Head TA: TBA)
Mon., 7-8:45pm, Section 100 (Head TA: TBA)
Tue., 3:30-5:15pm, Section 101 (Head TA: TBA)
Tue., 5:30-7:15pm, Section 102 (Head TA: TBA)
All meet in Olsson 001
Instructor Information

Instructor: Prof. Tom Horton
Office: Olsson 228B through August 26, then Rice Hall 402
Office Hours: MWThF 11am-noon. Tu 1:30-2:30pm
Phone: 982-2217
Email: horton.uva@gmail.com

Teaching Assistants:
TBA
TA Office Hours and Lab Schedule: See Google Calendar
Email the Staff: UVa CS 2110 Staff Account - uvacs2110@gmail.com
Email the staff account for direct HW questions.
Primary Text

   Modern Software Development Using Java. 2nd edition.
   Paul Tymann and Michael Schneider
   Thomson / ISBN 987-14239-0123-5
Note: A PDF version of this book will be made available for free! (The book has gone out of print, but the authors are doing this.)
The bookstore has used copies (~$100) for those who want a hard-copy.

Students may wish to own (or have good access to) a good Java reference book.
A good, free, on-line edition of a Java book is Thinking in Java, by Bruce Eckel, available here.
A few other readings may be assigned, either through handouts, on the web, or PDFs on-line.

Course Objectives

Upon successful completion of this course, students will:
  1. Comprehend more advanced principles of object-oriented programming and how a programming language supports these, and apply these by developing larger and more complex programs than in their first programming course. (Topics include polymorphism, inheritance, collection classes, generics, etc.)
  2. Comprehend and apply principles of design at the class and object level. These principles include abstraction, encapsulation, and information hiding. This also includes the ability to define and evaluate class interfaces to solve specified design problems, as well as the ability to understand, apply, and evaluate the use of reusable components to solve such problems.
  3. Comprehend and analyze problems and programming issues such as dynamic memory management, indirect object references, and recursion. Also, be able to apply this knowledge by implementing software that includes these features.
  4. Apply knowledge of software development practice to effectively use strategies, tools and environments such as interactive development environments, debuggers, testing frameworks, etc.
  5. Comprehend important basic concepts of software engineering and the development of large software systems, including the software lifecycle, requirements, design, and software quality. In their development activities, students will be able to apply basic unit testing and carry out a software inspection.
  6. Comprehend the basic principles of the architecture of larger software systems, in particular object- oriented frameworks. Students will be able to apply this knowledge by developing a GUI using a framework.
Course Prerequisites

You must meet the following requirements to take this class:
  1. Have taken CS 1110/1111/1112 (CS 101/101E/101X) with a C- or better.
  2. Have credit on your transcript for an equivalent course from high school or another university.
  3. Passed the CS 1110 placement exam, AP exam, IB exam, etc.
  4. Can attend class and lab regularly.
  5. NOTE: Click here for information on the placement test.
  6. NOTE: If you plan to take the placement exam but have not, take it and turn it in by 3:30pm the first Friday of the term. We'll tell you if you pass and can take the class by the next Monday.
  7. NOTE: Passing CS 1120 (CS 150) DOES NOT satisfy the prerequisite for this course! You must take the placement test.
Assessment

Your final course average will be calculated using the following method:

Lab - 5% - Attendance and participation in lab is required. Most of these points are attendance, but some of them may be from doing surveys, exercises, etc. that will be done outside the scheduled lab.
Homework Assignments - 30% - Four (or more) homework assignments (not necessarily equally weighted).
Development Project - 15% - In a team of 4, you will develop a "larger" software project, following a specified process.
Exam 1 - 15% - Covering the first third of the course. Wed., Sep. 28.
Exam 2 - 15% - Covering the second third of the course. Wed., Nov. 2
Final Exam - 20% - Covering mainly the remainder of the course, with some material from the first two-thirds.
Participation/Professionalism Penalty - up to 5% penalty - Excessive missed classes, rude behavior toward instructor or classmates, etc can be held against a student when final grades are calculated.

Your final letter grade will be determined by the following scale:
A+ 100 98

Rounding - Grade averages not falling as integers will be rounded up or down with consideration to class attendance and participation.

Pass/Fail - A course average of 60 or higher is required for a pass.

A 97 93
A- 92 90
B+ 89 87
B 86 83
B- 82 80
C+ 79 77
C 76 73
C- 72 70
D+ 69 67
D 66 63
D- 62 60
F 59 0
Class Management

General
  • Please feel free to stop by my office any time. I'm usually there during "normal business hours" every day. However, it's always a good idea to email me before you come, just to make sure I'm there, and to make sure I don't leave early.
  • Also, feel free to call my office (982-2217) if you can't stop by.
  • I can't stress enough that email is the best way to get in touch with me.
  • Your Head TA for your lab will have responsibility for everything about grades for Homeworks, Labs and Attendance. The instructor will have responsibility for exam scores and the Project. Contact the right person if you have an issue with one of these.
  • Please don't hesitate to contact me if you have any problems, concerns, questions, or issues regarding the course, material, or anything else in the class.
  • Please don't hesitate to talk to me if there are situations in your life that are affecting your performance in the class or your life here at UVa. I might not be able to help, but I might know of some things that might help, and I'm a good listener.
Attendance
  • Attendance in lecture is vital to learning the material and making a good grade in this class.
  • Attendance will not specifically be taken every lecture, but I may use the information from in-class exercises to get an idea as to who comes to class and who doesn't.
  • If I decide that we need some kind of exercise or quiz in lecture that may affect your grade, I will announce that we will start this. In other words, you'll get fair warning.
  • Attendance in lab is required. If you are late, you may only earn a portion of the participation grade depending on the severity of your lateness. If you must miss a lab due to illness, travel, etc., contact your Head TA (not the instructor).
  • Because you will work with partners or groups each week in lab, normally it won't work for you to attend a different lab section for some given week.
Homework/Lab Assignments
  • Homework assignments will not be handed out in class. Everything will be available online.
  • There will be a (minimum of) four homework assignments during the course of the semester. Specific grading criteria will be provided with each assignment.
  • In this course, for each lab and homework assignment, you will each be assigned a partner from the same lab.
  • You will have the ability to declare a certain number of other students (three or so) that you refuse to work with at the outset. After that, your partner will be psudo-randomly assigned before each homework assignment goes out.
  • Partners may not collaborate with any other set of partners.
  • During the course of the semester, you will be expected to complete a project of larger scale than the homework assignments. The project will follow a specified development process and you will work in teams of four. Lab time will be given over specifically for part of your project work.
Exams
  • There will be a total of three exams during the course of the semester, including the final exam.
  • Any test that is missed due to any absence that is not a allowable excused absence will result in a zero (0) for that grade.
  • Any test that is missed due to a allowable excused absence or due to circumstances that are approved by me beforehand must be made up within a week of the missed test.
  • If you know in advance that you must miss an exam, you must make arrangements in advance with the instructor.
  • If something comes up at the last minute causing you to miss an exam, you must contact the instructor by email or phone as soon as possible, and if at all possible no later than 24 hours after the exam.
Grading Concerns and Appeals
  • All grading appeals must be made in writing and submitted with the original assignment (if it is electronic, this is not necessary) either to the instructor (for tests and the project) or to the Head TA (for all other HW assignments).
  • All regrade requests must be made within one week of the assignment being returned to the student. After that point, regrades may be done at my discretion.
  • Bottom line: the sooner you bring something to my attention, the sooner we can correct it. Do not expect me to be exceedingly generous if you bring HW1 and HW2 to me on the last day of class.
This Syllabus
  • This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. This syllabus can be changed at any time without notification. It is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the professor, not with this document.
Professionalism
  • In this course, there will be a focus on working well together and learning about the development process. A large portion of that process involves interpersonal skills and conflict management. Students and staff are all expected to treat each other with respect.
  • This includes, but certainly is not limited to:
    • Excessive internet use not related to CS2110 during class or lab
    • Disrespectful language
    • Promptness for all deadlines and class meetings
    • Quality work
    • Personal and professional respect for fellow students in labs and on teams
  • Students can and will be penalized for unprofessional behavior.
Academic Integrity

The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University's Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud (http://www.student.virginia.edu/~honor/proc/fraud.html). Each assignment will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student's exam papers while working on an exam.) Sending, receiving or otherwise copying electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).

Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.
LNEC and Other Special Circumstances

If you have been identified as an LNEC student, please let the Center know you are taking this class. If you suspect you should be an LNEC student, please schedule an appointment with them for an evaluation. I happily and discretely provide the recommended accommodations for those students identified by the LNEC. Please contact me one week before an exam so we can make accommodations. Website: http://www.virginia.edu/studenthealth/lnec.html

If you have other special circumstances (athletics, other university-related activities, etc.) please contact your instructor and/or Head TA as soon as you know these may affect you in class.