Object-Oriented Programming II is a second programming course for Computer Science majors with a focus on object-oriented programming. The goal of the course is to develop skills such as program design and testing as well as the implementation of programs using a graphical IDE. All programming will be done in Java.
| Prequisites | CMSC131, MATH140 |
|---|---|
| Credits | 4 |
| Name | Office |
|---|---|
| Nelson Padua-Perez | AVW 1203 |
For office hours and other contact information, visit the staff link.
Please be aware of the TA room usage policy.| Title | Authors | ISBN-13 |
|---|---|---|
| Data Structures and Abstractions with Java, 4th Edition | Frank M. Carrano Timothy M. Henry |
978-0-13-374405-7 |
Final grades will be computed according the following weights:
| 25% | Projects |
|---|---|
| 15% | Quizzes/Lab/Lecture Work |
| 30% | Midterms (3) |
| 30% | Final Exam |
Once we have graded any class material (e.g., exams, projects, etc.) we will post an announcement and a 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.
Office hours get extremely busy the day before a project deadline. Therefore do not wait to start your projects. Regarding office hours and the TA Room:
You need to keep backups of your projects as you develop them. No extensions will be granted because you accidentally erased your project. Feel free to use the submit server as a backup tool by submitting often. You can also use tools like git, etc. Do not post code in any online system that is accessible to others (e.g., GitHub).
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. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.
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 http://www.shc.umd.edu.
The following are examples of academic integrity violations:
Additional information can be found in the sections titled "Academic Integrity" and "Code of Student Conduct" available at Course Related Policies.
Posting of your projects in a private repository where only selected people (e.g., potential employers) can see them is OK. Just make sure is not a public site.
We will be using (Piazza) for class communication. You will not be able to register to Piazza yourself. Your instructor will register you using the e-mail you have in the school system.
See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.
See the section titled "Accessibility" available at Course Related Policies.
All course materials are copyright UMCP, Department of Computer Science © 2016. All rights reserved. Students are permitted to use course materials for their own personal use only. Course materials may not be distributed publicly or provided to others (excepting other students in the course), in any way or format.
This schedule is tentative and subject to change. Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Slides/Code | Work | Textbook (Carrano/Henry) |
|---|---|---|---|---|
| CMSC132 (Secs 040x/Honors) Schedule | ||||
| Week #1 (Aug 29) |
Course Intro, Abstraction/Encapsulation, Enumerated Types, Comparable, Debugger |
CourseIntro.pdf OOPAbstraction.pdf OOPAbstractionCode.zip JavaConstructsI.pdf JavaConstructsICode.zip |
Eclipse installation E1 Out (Thu) |
Appendix A, B, C |
| Week #2 (Sep 5) |
Inheritance |
InheritanceOne.pdf InheritanceCode.zip InheritanceTwo.pdf InheritanceTwoCode.zip |
Quiz (Wed) E1 Due (Thu) |
Appendix D, Java Interlude 7 |
| Week #3 (Sep 12) |
Inheritance, Abstract Classes, Testing, Correctness, Exceptions, Comparator Interface (Lab), Inner Classes |
InheritanceThree.pdf InheritanceThreeCode.zip TestingCorrectness.pdf Exceptions.pdf ExceptionsCode.zip |
P1 Out (Mon) Quiz (Wed) |
Java Interlude 2, 5 |
| Week #4 (Sep 19) |
Inner Classes, OO Design Intro Levels of Copying, Cloning, Constructor/Destructor, Initialization Blocks |
InnerClasses.pdf InnerClassesCode.zip OODesign.pdf JavaConstructsII.pdf JavaConstructsIICode.zip |
P1 Due (Tue) P2 Out (Tue) Quiz (Debugging) (Wed) |
Prelude, Java Interlude 6, 9 |
| Week #5 (Sep 26) |
Event-Driven Programming, GUI, UML (Lab), JavaFX, Lambda Expressions |
GUI.pdf GUICode.zip |
Midterm #1 (Wed) P2 Due (Thu) P3 Out (Fri) |
|
| Week #6 (Oct 3) |
Algorithmic Complexity, Dynamic System/State Design Pattern (Lab), Iterator/Marker/Observer Design Patterns (Lab), Generic Programming, Collections, Linear Data Structures |
AlgorithmicComplexityI.pdf Generics.pdf GenericsCode.zip Collections.pdf LinearDataStructures.pdf LinearDataStructuresCode.zip |
P3 Due (Fri) |
Chapter 4, Java Interlude 1, 3, 8 |
| Week #7 (Oct 10) |
Linear Data Structures, Recursive Algorithms, Memory Maps |
RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip |
P4 Out (Wed) Early Warning Grades(Oct 13) |
Chapters 3, 6, 7, 12, 13, 14, 15, 16, 17 |
| Week #8 (Oct 17) |
Hashing, Sets/Maps, Simplified List Implementation, File I/O |
Hashing.pdf HashingCode.zip SetsMaps.pdf SetsMapsCode.zip JavaIO.pdf JavaIOCode.zip |
P4 Due (Fri) P5 Out (Fri) |
Chapters 21, 22, Appendix E |
| Week #9 (Oct 24) |
Trees, Algorithmic Complexity II, Heaps/Priority Queues Network Basics (Lab) |
Trees.pdf LectureBinaryTreeCode.zip AlgorithmicComplexityII.pdf HeapsPriorityQueues.pdf |
Quiz (Wed) |
Chapters 23, 24, 25, 26 |
| Week #10 (Oct 31) |
Polymorphic Lists/Trees |
PolymorphicListsTrees.pdf PolymorphicListsTreesCode.zip |
P5 Due (Wed) Midterm #2 (Fri) |
|
| Week #11 (Nov 7) |
Trees, Threads |
ThreadsI.pdf ThreadsICode.zip ThreadsII.pdf ThreadsIICode.zip |
P6 Out (Mon) |
|
| Week #12 (Nov 14) |
Synchronization I/II, Graphs Intro/Graph Traversals |
SynchronizationI.pdf SynchronizationICode.zip SynchronizationII.pdf SynchronizationIICode.zip GraphsTraversal.pdf |
P6 Due (Wed) P7 Out (Wed) |
Chapters 28, 29 |
| Week #13 (Nov 21) |
Dijkstras, Thanksgiving (no class Wed, Fri) |
DijkstrasAlgorithm.pdf DijkstrasExample.pdf PriorityQueueCode.zip |
Thanksgiving | |
| Week #14 (Nov 28) |
Graph Implementation (Lab), Effective Java (Lab), Sorting |
GraphImplementation.pdf EffectiveJava.pdf Sorting.pdf |
P7 Due (Tue) Midterm #3 (Wed) P8 Out (Wed) |
Chapters 8, 9 |
| Week #15 (Dec 5) |
Algorithm Strategies, Advanced Tree Structures (Lab), Software Life Cycle, Software Process Models, Problem Specification & Design, Testing |
AlgorithmStrategies.pdf AdvancedTreeStructures.pdf SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProbSpecificationSoftArchSEIII.pdf ProgramTestingSEIV.pdf |
P8 Due (Fri) Course Evaluations |
Chapter 27 |
| Week #16 (Dec 12) |
Final Exam Review |
Last Day of Classes (Mon Dec 12) Final Exam (Thu Dec 15, 4pm - 6pm) |
||
| Name | Nelson Padua-Perez |
|---|---|
| Office | AVW 1203 |
| Office Hours | Mon, Wed → 1:30 pm - 3:30 pm |
| nelson [AT] cs [DOT] umd [DOT] edu |
Please see Office Hours Guidelines. Also, please be aware of the TA room usage policy.
All TA office hours take place in AVW 1112.
| Name | Pic | |
|---|---|---|
| Saurabh Kumar | kumarsa [AT] cs.umd [DOT] edu | ![]() |
| Ladan Najafizadeh | ladann [AT] cs.umd [DOT] edu | ![]() |
| Andrej Rasevic | arasevic [AT] terpmail.umd [DOT] edu | ![]() |
| Travis White | twhite6 [AT] terpmail.umd [DOT] edu | ![]() |
| Roozbeh Yousefzadeh | roozbeh [AT] cs.umd [DOT] edu | ![]() |
| Name | Nelson Padua-Perez |
|---|---|
| Office | AVW 1203 |
| Office Hours | Mon, Wed → 1:30 pm - 3:30 pm |
| nelson [AT] cs [DOT] umd [DOT] edu |
Please see Office Hours Guidelines. Also, please be aware of the TA room usage policy.
All TA office hours take place in AVW 1112.
| Name | Pic | |
|---|---|---|
| Saurabh Kumar | kumarsa [AT] cs.umd [DOT] edu | ![]() |
| Ladan Najafizadeh | ladann [AT] cs.umd [DOT] edu | ![]() |
| Andrej Rasevic | arasevic [AT] terpmail.umd [DOT] edu | ![]() |
| Travis White | twhite6 [AT] terpmail.umd [DOT] edu | ![]() |
| Roozbeh Yousefzadeh | roozbeh [AT] cs.umd [DOT] edu | ![]() |
This schedule is tentative and subject to change. Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Slides/Code | Work | Textbook (Carrano/Henry) |
|---|---|---|---|---|
| CMSC132 (Secs 040x/Honors) Schedule | ||||
| Week #1 (Aug 29) |
Course Intro, Abstraction/Encapsulation, Enumerated Types, Comparable, Debugger |
CourseIntro.pdf OOPAbstraction.pdf OOPAbstractionCode.zip JavaConstructsI.pdf JavaConstructsICode.zip |
Eclipse installation E1 Out (Thu) |
Appendix A, B, C |
| Week #2 (Sep 5) |
Inheritance |
InheritanceOne.pdf InheritanceCode.zip InheritanceTwo.pdf InheritanceTwoCode.zip |
Quiz (Wed) E1 Due (Thu) |
Appendix D, Java Interlude 7 |
| Week #3 (Sep 12) |
Inheritance, Abstract Classes, Testing, Correctness, Exceptions, Comparator Interface (Lab), Inner Classes |
InheritanceThree.pdf InheritanceThreeCode.zip TestingCorrectness.pdf Exceptions.pdf ExceptionsCode.zip |
P1 Out (Mon) Quiz (Wed) |
Java Interlude 2, 5 |
| Week #4 (Sep 19) |
Inner Classes, OO Design Intro Levels of Copying, Cloning, Constructor/Destructor, Initialization Blocks |
InnerClasses.pdf InnerClassesCode.zip OODesign.pdf JavaConstructsII.pdf JavaConstructsIICode.zip |
P1 Due (Tue) P2 Out (Tue) Quiz (Debugging) (Wed) |
Prelude, Java Interlude 6, 9 |
| Week #5 (Sep 26) |
Event-Driven Programming, GUI, UML (Lab), JavaFX, Lambda Expressions |
GUI.pdf GUICode.zip |
Midterm #1 (Wed) P2 Due (Thu) P3 Out (Fri) |
|
| Week #6 (Oct 3) |
Algorithmic Complexity, Dynamic System/State Design Pattern (Lab), Iterator/Marker/Observer Design Patterns (Lab), Generic Programming, Collections, Linear Data Structures |
AlgorithmicComplexityI.pdf Generics.pdf GenericsCode.zip Collections.pdf LinearDataStructures.pdf LinearDataStructuresCode.zip |
P3 Due (Fri) |
Chapter 4, Java Interlude 1, 3, 8 |
| Week #7 (Oct 10) |
Linear Data Structures, Recursive Algorithms, Memory Maps |
RecursiveAlgorithms.pdf RecursiveAlgorithmsCode.zip |
P4 Out (Wed) Early Warning Grades(Oct 13) |
Chapters 3, 6, 7, 12, 13, 14, 15, 16, 17 |
| Week #8 (Oct 17) |
Hashing, Sets/Maps, Simplified List Implementation, File I/O |
Hashing.pdf HashingCode.zip SetsMaps.pdf SetsMapsCode.zip JavaIO.pdf JavaIOCode.zip |
P4 Due (Fri) P5 Out (Fri) |
Chapters 21, 22, Appendix E |
| Week #9 (Oct 24) |
Trees, Algorithmic Complexity II, Heaps/Priority Queues Network Basics (Lab) |
Trees.pdf LectureBinaryTreeCode.zip AlgorithmicComplexityII.pdf HeapsPriorityQueues.pdf |
Quiz (Wed) |
Chapters 23, 24, 25, 26 |
| Week #10 (Oct 31) |
Polymorphic Lists/Trees |
PolymorphicListsTrees.pdf PolymorphicListsTreesCode.zip |
P5 Due (Wed) Midterm #2 (Fri) |
|
| Week #11 (Nov 7) |
Trees, Threads |
ThreadsI.pdf ThreadsICode.zip ThreadsII.pdf ThreadsIICode.zip |
P6 Out (Mon) |
|
| Week #12 (Nov 14) |
Synchronization I/II, Graphs Intro/Graph Traversals |
SynchronizationI.pdf SynchronizationICode.zip SynchronizationII.pdf SynchronizationIICode.zip GraphsTraversal.pdf |
P6 Due (Wed) P7 Out (Wed) |
Chapters 28, 29 |
| Week #13 (Nov 21) |
Dijkstras, Thanksgiving (no class Wed, Fri) |
DijkstrasAlgorithm.pdf DijkstrasExample.pdf PriorityQueueCode.zip |
Thanksgiving | |
| Week #14 (Nov 28) |
Graph Implementation (Lab), Effective Java (Lab), Sorting |
GraphImplementation.pdf EffectiveJava.pdf Sorting.pdf |
P7 Due (Tue) Midterm #3 (Wed) P8 Out (Wed) |
Chapters 8, 9 |
| Week #15 (Dec 5) |
Algorithm Strategies, Advanced Tree Structures (Lab), Software Life Cycle, Software Process Models, Problem Specification & Design, Testing |
AlgorithmStrategies.pdf AdvancedTreeStructures.pdf SoftwareDevelopmentSEI.pdf SoftwareProcessModelsSEII.pdf ProbSpecificationSoftArchSEIII.pdf ProgramTestingSEIV.pdf |
P8 Due (Fri) Course Evaluations |
Chapter 27 |
| Week #16 (Dec 12) |
Final Exam Review |
Last Day of Classes (Mon Dec 12) Final Exam (Thu Dec 15, 4pm - 6pm) |
||
You must satisfy a minimum set of requirements for each project (Good Faith Attempt) otherwise you will not pass the course (automatic grade of F). Each project defines its own good faith attempt criteria. Notice that you will not receive extra points for completing the good faith attempt. The grade you obtain in the project will be based on your ontime/late submission.
| Project / Exercise | Good Faith Attempt | Deadline |
| Exercise #1 | Public Tests | Thu Sep 15 |
|---|---|---|
| Project #1 | Public Tests | Thu Sep 29 |
| Debugging Quiz | See Teaching TA | Mon Oct 3 |
| Project #2 (ClearCellGame) | Public Tests | Tue Oct 11 |
| Project #3 (Interest Table) | None | None |
| Project #4 (Linked Lists) | Release tests score of at least 10 pts | Fri Oct 28 |
| Project #5 (OnlineTest) | 6 Public Tests | Mon Nov 14 |
| Project #6 (BST) | Public Tests | Tue Nov 22 |
| Project #7 (OrdersProcesor) | Public Tests | Mon Dec 5 |
| Project #8 (Graphs) | Public Tests | Tue Dec 13 |
After any class material is graded, you have a period to address any grading concerns. Unfortunately we will not be able to address any grading concerns after the specified deadline.
| Class Material | Grading Concerns Deadline |
|---|---|
| Project #1 (Part a) | Tue Sep 27 |
| Exercise #1 | Tue Sep 27 |
| Quiz #1/#2 | Tue Sep 27 |
| TimeLab | Thu Sep 29 |
| Project #2 (Part a) | Wed Oct 5 |
| Project #1 | Mon Oct 10 |
| Midterm #1 | Wed Oct 19 |
| Project #2 (ClearCellGame) | Wed Oct 19 |
| Exercise #2 | Thu Oct 20 |
| Project #3 (Interest Table) | Mon Oct 31 |
| Quiz #4 | Wed Nov 9 |
| Exercise #3 (Scientific Calculator) | Wed Nov 16 |
| Project #4 (LinkedLists) | Tue Nov 29 |
| Midterm #2 | Fri Dec 2 |
| Project #5 (Online Test) | Wed Dec 7 |
| Project #6 (BST) | Fri Dec 9 |
| Midterm #3 | Mon Dec 12 |
| Project #7/#8 | Tue Dec 12 |
The planned dates when projects/exercises will be handed out and due is given in the course schedule. Beware that the exact dates are subject to change, but we will try to give you fair notice of any changes.
Project/exercise descriptions can be found at Project/Exercise Descriptions.
A few days prior to each quiz we plan to post a worksheet on this page. The dates for the quizzes are given in the course schedule. Beware that the exact dates are subject to change, but we will try to give you fair notice of any changes.
Worksheets are not turned in and they are not graded. The problems on the worksheet are for your own benefit and are designed to prepare you for the quiz. We will not be giving answers to the worksheet problems, but if you have a question you can talk to the course TA(s).
| Worksheet | Quiz Date |
|---|---|
| Worksheet #1 | Wed Sep 7 |
| Worksheet #2 | Wed Sep 14 |
| Debugging Quiz | Wed Sep 21 |
| Worksheet #4 | Wed Oct 26 |
This page provides information regarding course exams.
| Exam | Date |
| Midterm I | Wed Sep 28 |
|---|---|
| Midterm II | Fri Nov 4 |
| Midterm III | Wed Nov 30 |
| Final | Thu Dec 15 |
We will be using (Piazza) for class communication. Regarding Piazza:
Object-Oriented Programming II is a second programming course for Computer Science majors with a focus on object-oriented programming. The goal of the course is to develop skills such as program design and testing as well as the implementation of programs using a graphical IDE. All programming will be done in Java.
@2016 University of Maryland College Park, MD 20742