General Information CS 212 – Software Development • Spring 2012Harney Science Center • Room 235 Mondays, Wednesdays, Fridays • 3:30pm – 4:35pm This course gives students experience designing, implementing, testing, debugging, and reviewing large programs. Students will also get advanced Java programming experience, covering topics such as inheritance, multi-threading, networking, database programming, and web development. WebsiteThe course website is located at: You can find announcements, a calendar, lecture notes, and contact information on this website. Please check the course website regularly. Mailing List
All homework questions should be directed to the course mailing list. The mailing list for this course is: |
| Java How to Program (early objects) 9th Edition by Paul Deitel and Harvey Deitel [publisher] [amazon] |
Learning Outcomes
At the end of this course, students should be able to:
- Independently design programs
- Produce professional-quality code
- Implement large programs of greater than 2.5k lines of code
- Design and execute tests to identify software bugs
- Repair software bugs, redesigning and refactoring code when necessary
- Utilize, analyze, and critique code written by others
Topics and Schedule
We will cover the following topics:
| Week | Topic(s) |
| Week 01 | Course Introduction |
| Week 02 | Java Basics |
| Week 03 | Classes and Objects |
| Week 04 | Inheritance |
| Week 05 | Logging and Debugging |
| Week 06 | Introduction to Multithreading |
| Week 07 | Midterm Exam |
| Week 08 | No Classes – Spring Break |
| Week 09 | Advanced Multithreading |
| Week 10 | Software Testing, Regexes |
| Week 11 | Web, HTML, and HTTP |
| Week 12 | Web Servers and Java Servlets |
| Week 13 | Databases, SQL, and JDBC |
| Week 14 | Comprehensive Example |
| Week 15 | Project Discussion |
| Week 16 | Final Exam |
| Finals Week | Interactive Project Grading |
Please note this schedule is only an estimate. The exact schedule may change over time. We will have interactive grading for the final project during finals week. A signup sheet will be posted several weeks beforehand.
Grading
Grade Breakdown
The final grade will be calculated as follows:
| Weight | Category |
| 10% | Homework |
| 60% | Projects |
| 15% | Midterm Exam |
| 15% | Final Exam |
It will be difficult to pass this class without earning a passing project grade.
Letter Grades
Letter grades will be assigned according to the following scale:*
| Letter | Cutoff | |
| A+ | ≥ | 97% |
| A | ≥ | 93% |
| A– | ≥ | 90% |
| B+ | ≥ | 87% |
| B | ≥ | 83% |
| B– | ≥ | 80% |
| C+ | ≥ | 77% |
| C | ≥ | 73% |
| C– | ≥ | 70% |
| D+ | ≥ | 67% |
| D | ≥ | 63% |
| D– | ≥ | 60% |
| F | < | 60% |
*Note that this scale is subject to change at any time.
Homework
Every Friday, a portion of class time will be reserved for a mandatory lab. During this time, a homework assignment (or quiz) may be assigned. In many cases, you will be able to finish this assignment during the lab time. Otherwise, you will have one week to complete the assignment. Skipping the mandatory lab will result in a 20% deduction to that homework assignment score.
Projects
Your project grade will depend on the number of projects you complete. A project is considered complete after it fully satisfies all of the project requirements (including both functionality and code quality) and has been checked off by the instructor. Your project grade will be assigned as follows:
| Letter | Percent | Completed Project |
| A | Project 5 (Final Project) | |
| B | Project 4 | |
| C | Project 3 | |
| D | Project 2 | |
| F | Project 1 |
If a student excels at one or more projects, going above and beyond the stated requirements, up to a maximum of 5% may be added to the project grade.
The last day to submit projects is Friday, May 4 at 3:00pm, with the exception of the final project. The final project will be graded interactively during finals week. The final project is the only project where it is possible to receive a partial grade. See the Project page for additional details.
Exams
There will be two exams in this class: a midterm exam and final exam. For both exams, there will be a retake opportunity. During this time, you will be able to fix any questions you answered incorrectly and earn back a percentage of the missed points. The exact percentage is based on the exam average, and will be announced during the retake.
The final exam is not comprehensive, and will be held during the last week of class. During finals week, we will have interactive grading for final projects. These will be 30 minute one-on-one grading sessions for students that complete the final project. A sign-up sheet will be posted towards the end of the semester.
Extra Credit
Please note that each grade category (exams, projects, homework) will be capped to 100%. As a result, homework extra credit only improves your homework score—it does not improve your exam score or project score.
Late Policy
All deadlines and exam dates are firm except in the case of verifiable medical or family emergency. Makeup exams must be arranged prior to the original exam date, without exception. Please see the Projects section above for how "late" projects are handled.
Academic Honesty
Simply put, do not cheat and do not plagiarize or copy from other students or from the web. I expect all students to adhere to the academic honesty policies at USF. For more information, please refer to the Fogcutter Student Handbook. Students suspected of violating the academic honesty policy will face
severe penalty. The first offense will result in a 0 on the assignment
or exam, and a report to the Dean's office. Repeat offenses will result
in an automatic F for the course.
Cheating includes copying code from the web, copying code from other students, working too closely with other students (all work in this class must be done individually), or having anyone other than yourself write your own code. You, the student, are responsible for protecting your own code to make sure nobody else is able to cheat off your code. That includes not sharing your code with friends, leaving printouts of your code in the lab, posting your code on the web, and so forth. If another student copies your code, both students (the student doing the copying and the student being copied off of) will receive a 0% on that assignment.
We will be running MOSS on all code to detect cheating in class.
