This is a second programming course for Computer Science majors with a focus on object-oriented programming. The course provides an introduction to the use of computers to solve problems using software engineering principles. Design, build, test, and debug medium-size software systems and learn to use relevant tools. Use object-oriented methods to create effective and efficient problem solutions. Use and implement application programming interfaces (APIs). Programming done in Java.
For office hours and other contact information, visit the contact web page.
Title: Objects, Abstraction, Data Structures and Design Using Java Version 5.0
Authors: Elliot Koffman/Paul Wolfgang
Title: Java Precisely
Author: Peter Sestoft
- Object-oriented software development
- Software life cycle
- Requirements & specifications
- Designing objects & classes
- Testing & code coverage
- Unified Modeling Language (UML)
- Programming paradigms
- Design patterns
- Algorithms & data structures
- Asymptotic efficiency
- Lists, stacks, queues
- Trees, tries, heaps
- Sets, maps, graphs
- Programming skills
- Java collection framework
- Threads, synchronization
There will be projects assigned almost every week. Some are considered "closed" assignments which you must complete by yourself and others are considered "open" assignments where collaboration is permitted. (More information about the open policy will be provided in class and can be found in the Policy Regarding Open/Closed Assignments) There will also be two midterms, a final exam, homework exercises, and (announced) quizzes.
All assignments can be done on the machines of your choice. You are welcome to do the work on a home computer if you have one. There should not be any machine-specific dependencies in your code. However, if we are not able to run your program because there is a difference between your and our computer environments, you must work with us to get your program to work in our environment.
The home page of the class web site has an announcement section. You are responsible for reading these announcements (at least once a day). Important information about the course (e.g., deadlines, project updates, etc.) will be posted in this section.
All assignments are due at 6pm on the day they are due. If for some reason you have not been able to finish your homework by this deadline, then you have until 9am of the next day to submit your project with a 20% penalty. No assignments will be accepted after 9am. Assignments are to be submitted electronically according to instructions given with the assignments. Exceptional circumstances will be considered only if discussed with the instructor before the assignment is due. To pass the course you must attempt to complete every project (Good Faith Attempt).
Once we have graded any class material (e.g., exams, projects, etc.) we will post a note in the class web page indicating the material has been graded, and the deadline by which you must submit any regrade request (if necessary). It is your responsibility to submit regrade requests by the specified deadline; no regrade requests will be processed afterwards.
Final grades will be computed according the following weights. (These weights are tentative and subject to future adjustment.)
The weights of the individual projects are (roughly): 3%, 5%, 6%, 6%, 3%, 6%, 6%, 5%
All closed homeworks and projects must be done individually. The only exception to this are "open" assignments (see Policy Regarding Open/Closed Assignments) Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. You are allowed to use the Web for reference purposes, but you may not copy code from any website or any other source. In short, all submitted work must be your own.
Cases of academic dishonesty will be dealt with harshly. Each such case will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your TA or one of the course coordinators.
The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council. This code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit:
Excused Absence and Academic Accommodations
Students claiming an excused absence from an exam must apply in writing and furnish documentary support (such as from a health care professional who treated the student) for any assertion that the absence qualifies as an excused absence. The support should explicitly indicate the dates or times the student was incapacitated due to illness. Self-documentation of illness is not itself sufficient support to excuse the absence. The course coordinators are not obligated to offer a make-up exam unless the failure to perform was due to an excused absence. Important: An excused absence does not typically translate into an extension for a project.
It is also the student's responsibility to inform the instructor of any intended absences from exams for religious observances in advance. Notice should be provided as soon as possible but no later than the Monday prior to the exam for both the midterms and the final.
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services within the first two weeks of the semester.