CS 212 Software Development • Spring 2013
Harney Science Center • Room 235
Section 1: Monday, Wednesday, Friday 2:15pm – 3:20pm
This course gives students experience designing, implementing, testing, and debugging large programs. Students will also get advanced Java programming experience; covering topics such as inheritance, multithreading, networking, database programming, and web development.
Please contact the instructor if you have any questions or concerns regarding the course.
Professor Sophie Engle
sjengle@cs.usfca.edu • http://sjengle.cs.usfca.edu
Office:
Harney Science Center
5th Floor, Room 531/532
Office Hours:
Mondays, Wednesdays, and Fridays • 3:30pm – 4:30pm
Thursdays1,2 • 12:00pm – 1:00pm
and by appointment
1Held regularly EXCEPT the first Thursday of every month.
2Will be located at the USF Presidio Building for the first half of the semester.
Code Reviews:
Mondays and Wednesdays • 4:40pm – 7:00pm
Thursdays* • 1:00pm – 3:00pm
*Starts on 3/21 and continues until end of semester.
If you are unable to make these office hours, please contact the instructor to setup an appointment.
There will be one teacher assistant to handle the section of CS 212 offered this semester:
Justin Battles
The teacher assistant(s) will hold office hours throughout the semester. Exact dates and times will be announced during the first week of class.
You must have completed CS 112 Introduction to Computer Science II with a grade of C or better. You may not take CS 112 and CS 212 concurrently.
There are no required books for this class. However, it is recommended that students have a Java reference book. Please see the instructor for recommendations.
Announcements will be posted on the course website at:
Students may subscribe to these announcements via RSS using the link on the home page. Students are responsible for staying current on all course announcements.
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
Assessment of these outcomes will be done by a combination of quizzes, exams, homework, projects, and code review.
The following is an estimated list of topics and weekly schedule. Check the course website for the latest schedule.
Week 01: Course Introduction
Week 02: Object-Oriented Programming
Week 03: Software Testing, Regular Expressions
Week 04: Inheritance and Interfaces
Week 05: File Input/Output, Exception Handling
Week 06: Multithreading Basics
Week 07: MIDTERM EXAM
Week 08: Spring Break
Week 09: Advanced Multithreading
Week 10: Web Basics (HTTP, HTML, Sockets)
Week 11: Servlets and Jetty
Week 12: Databases, SQL, and JDBC
Week 13: Comprehensive Example
Week 14: Special Topics
Week 15: FINAL EXAM
Week 16: Project Discussion
Finals Wk: Final Project Interactive Grading
Interactive grading for the final project will be held on Monday, May 13, 2013 from 3:00pm to 5:00pm (additional dates/times will be announced as necessary).
Lecture will consist of slide presentations and code demonstrations. There will also be a weekly quiz and/or homework assigned during class. There will be two exams and projects assigned on a bi-weekly basis. You are expected to spend between 15 to 20 hours per week minimum outside of class on homework and project assignments.
Homework is assigned weekly and due the following week at 11:59pm. Homework assignments will be graded based on the correctness of the output and its adherence to the homework requirements. These assignments will often be small programs on topics covered during lecture or related to an upcoming project. Late homework will not be accepted.
Unannounced quizzes may be given during class on topics covered in previous lectures. You will be given a strict amount of time to complete the quiz, but will be able to use any resource available on the lab computers to answer the questions. Whether you will be able to complete the quiz during the allotted time will depend on your understanding of the material.
Project assignments place an emphasis on code quality—it is not enough to achieve correct results. Each project will undergo a rigorous code review checking for specific criteria, such as proper encapsulation and generalization, efficiency, and maintainability. You may not move on to the next project until (a) the project produces correct output, and (b) the project passes the code review process.
As such, the project grade will depend on the number of projects completed by each student. The exact grade depends on the submission process. Each student receives one opportunity per project to fix and resubmit the project. Additional resubmissions will result in a point deduction.
Additioanl details on each project and the project submission process will be posted on the course website.
There will be two exams: a midterm and final exam. The final exam is not comprehensive, and will be held during the last week of class.
Finals week will be reserved for interactive project grading. A signup sheet will be posted towards the end of the semester. If you have travel plans during finals week, please confirm your travel dates first with the instructor.
The final grade for this course will depend on a mix of homework, quizzes, projects, and exams. The specific breakdown is as follows:
10% Homework
05% Quizzes
15% Project 1 Inverted Index
15% Project 2 Partial Search
15% Project 3 Multithreading
10% Project 4 Web Crawler
10% Project 5 Search Engine
10% Midterm Exam
10% Final Exam
Letter grades will be assigned according to the following scale:
97% ≤ A+
93% ≤ A
90% ≤ A–
87% ≤ B+
83% ≤ B
80% ≤ B–
77% ≤ C+
73% ≤ C
70% ≤ C–
67% ≤ D+
63% ≤ D
60% ≤ D–
60% > F
For example, you will receive a C letter grade if your grade is greater than or equal to 70% and less than 77%. Please note this scale is subject to change. See http://www.usfca.edu/catalog/regulations/student/#497495 for more information about letter grades and how they are translated into GPA.
Students are expected to be on-time to all classes. Attendance is mandatory for all exams, quizzes, and labs. Exam dates will be posted on the course calendar. Quizzes and labs are conducted weekly every Friday except when stated otherwise.
All deadlines and exam dates are firm. No late homework or quizzes will be accepted. All projects, except the final project, may be submitted (or resubmitted) up to the cutoff date. The final project will be submitted at interactive grading during finals week.
Exceptions to this policy are made only in the case of verifiable medical or family emergency. Extensions and makeup exams must be arranged PRIOR to the original deadline unless in case of extreme emergency (such as an emergency room visit).
All students are expected to know and adhere to the University of San Francisco’s Honor Code. Go to http://www.usfca.edu/catalog/policies/honor for details. The first violation of the Honor Code will result in an automatic 0 on the offending assignment, and repeat violations will result in an automatic F for the course.
Simply put, do not cheat and do not plagiarize. This 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 code.
We will be running MOSS on code to detect cheating in class. See http://theory.stanford.edu/~aiken/moss/ for more information.
The Learning and Writing Center provides assistance to students in their academic pursuits. Services are free to students and include individual and group tutoring appointments and consultations to develop specific study strategies and approaches. Please visit http://www.usfca.edu/lwc for more information.
If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact USF Student Disability Services (SDS) within the first week of class to speak with a disability specialist. If you are determined eligible for reasonable accommodations, your disability specialist will send your accommodation letter to the instructor detailing your needs for the course. For more information, please visit http://www.usfca.edu/sds or call (415) 422-2613.