Fall 2004

CMSC 132: Object-Oriented Programming II
Brought to you by:   Bill Pugh   and   Fawzi Emad

Syllabus
Contact
Schedule
Projects
Eclipse Installation
Eclipse Tutorial
Grades
Announcements
Wiki

Syllabus

    In this course you will learn to effectively use software engineering principles to solve problems. You will design, build, document, test, and debug software using an Integrated Development Environment (IDE). You will also learn to use and implement Application Programming Interfaces (API's). Programming will be done in Java.


    Textbooks
    • Required:  Modern Software Development Using Java; by Paul T. Tymann and G. Michael Schneider
    • Recommended:  Java Precisely by Peter Sestoft

    Topics
    • Software development and testing
    • Junit
    • Code coverage
    • Javadoc
    • Algorithms and efficiency
    • Exceptions
    • Networking
    • Recursion
    • Linear data structures
    • Design patterns
    • Programming paradigms
    • Subtyping, inheritance, composition and delegation
    • Collections frameworks
    • Sets and Maps
    • Graphs
    • Java 1.5

    Projects

      There will be nine programming assignments. Some of them you must complete by yourself; others will be "open" assignments where you will be free to openly discuss and collaborate on the project with other students if you wish.  More details about the "open" policy will be provided in class.  Below is a list of the projects, their tentative due dates, and their contribution to your overall grade.

      URL Extractor 9/15, 11 pm 3% of total grade
      Set Game 9/29, 11 pm 6%
      Web Server 10/8, 11 pm 3%
      Web Spider 10/18, 11 pm 3%
      Binary Tree Testing and Extension 10/27, 11 pm 4%
      Huffman Trees 11/10, 11 pm 6%
      Markov Chain Text Generation 11/22, 11 pm 7%
      Suffix Trees and DNA Analysis 12/8, 11 pm 7%

      Machines

      Assignments may be done on the machine of your choice. You are welcome to do your work on your own computer if you have one.  You will also get a special WAM account for this class so that you can use WAM machines on campus to complete your projects.

      Late Projects

      All projects are due at 11pm on the date that they are due. Projects will be accepted up to 24 hours beyond the deadline, but these projects will be considered "late', and will be penalized 20%. No projects will be accepted more than 24 hours beyond the designated deadline. Exceptional circumstances will be considered only if discussed with the instructor before the assignment is due.

      "Good Faith Attempt"

      Even if you are unable to completely finish a project by the end of the 24 hour late period, you will be expected to submit the work you have completed on the project at that point. Failure to submit a "good faith attempt" at completing a project before the 24 hour late period expires may result in failure in the course.

    Exams

    There will be two midterms, a final exam and occasional graded assignments during the discussion sessions. Exam dates are as follows:

    • Midterm #1:  October 4th
    • Midterm #2:  November 15th
    • Final Exam:  To be Announced


    Grade Calculation

    Your final grade will be computed as follows:

    39% Projects (as detailed above)
    10%  Graded lab assignments/quizzes
    13%  Midterm #1
    13%  Midterm #2
    25%  Final Exam

    Academic Honesty

    All individual projects, exams, and quizzes must be done on your own. If you are found to have cheated by showing your solution to other students, allowing others to obtain access to your work, looking at or copying others work, etc. you will be reported to the university’s Office of Judicial Programs. You are allowed to use the web for reference, but you must not copy code from any website or any other source.  The code you submit must be your own.