From Studyplace

Jump to: navigation, search

Object-Oriented Theory 2


Object-Oriented Theory 2 (a.k.a Programming 2) will build on the fundamental programming concepts and techniques encountered in Object-Oriented Theory/Programming I. (Please note that this is not a How to Learn Java in 21 Days class. You should already be familiar with the basics of imperative programming.) This course emphasizes the practical as well as theoretical aspects of object-oriented programming. By the end of the course, students will have had the opportunity to develop the skills needed to write their own software programs and to continue their studies in computer science. The primary language that we will use for the course is Java, but we will look at other object-oriented programming/scripting languages such as: Ada, C++, Perl 6, and PHP.

The course is mainly concerned with three areas of software development:

  1. understanding the concepts of object oriented design and development
  2. planning and designing team software projects
  3. writing code

We will learn about object oriented programming and design, looking at the following major concepts:

  • Abstraction
  • Objects
  • Encapsulation
  • Composition
  • Inheritance
  • Polymorphism


Class Schedule (Tentative)

Week 01: Sep/03 Introduction
Week 02: Sep/10 Overview of Programming Languages
Week 03: Sep/17 Abstraction & Algorithms
Week 04: Sep/24 Libraries & Application Program Interfaces (API)
Week 05: Oct/01 Objects (Encapsulation, Composition, Inheritance, Polymorphism)
Week 06: Oct/08 Interfaces and GUIs
Week 07: Oct/15 Input/Output
Week 08: Oct/22 Data Structures & Collections
Week 09: Oct/29 Data Structures & Collections 2
Week 10: Nov/05 Cryptography
Week 11: Nov/12 Threads and Scheduling
Week 12: Nov/19 Programming for the Web
Week 13: Nov/26 No Class
Week 14: Dec/03 Design Patterns and Revisiting Inheritance & Composition
Week 15: Dec/10 Final Exam
Week 16: Dec/17 Catch up week

Course Materials

Fall 2009 Syllabus Image:AcrobatImage.png [pdf, 112kb]

Required Text

Introduction to Java Programming, Comprehensive Version, 7th Edition by Y. Daniel Liang
ISBN-10: 0136012671

This is the same textbook that was used last semester for OOT/P 1 - you should already have it! If for some reason you do not already have it the book is available in print from Amazon.

Supplementary Text

Some of you may desire a second text book to provide you with a different description of the topics that we will cover, I would suggest: 
Sierra, K., & Bates, B (2005). Head First Java (2nd ed.). Sebastopol, CA: O'Reilly Media, Inc.

Chapter 2 of this textbook is online, take a look before you purchase.

Other Readings

We will be reading several other essays during the course of the semester to give us a better sense of the practice of programming and software engineering. The readings will likely include:

Some readings will be available through the library course reserve system. (If you do not know how to access them let the instructor know immediately). As a courtesy direct links to their location on the library reserve will often be placed on Studyplace and Sakai.

Slides and Notes

Some of the Slides and Notes regarding the material that is covered in class will be available through Studyplace and a backup will be placed on Sakai under the relevant week. If you have a problem accessing these files please email the instructor immediately. However keep in mind that it is ultimately your personal responsibility to keep notes on everything that is covered in class and not the Instructor's.

Interesting Links



Object-Oriented Theory I (MSTU 4031) or knowledge of a higher level programming language is required to take MSTU 5031. This prerequisite exists to ensure that you have the necessary background to succeed in the course. Please note that if MSTU 4031 is a required course for your program completing MSTU 5031 does not automatically grant you a waiver for MSTU 4031. To satisfy that requirement, you must complete MSTU 4031 or take the proper examination to have that requirement waived.


Weekly Reading

There will be weekly reading assignments of a technical and non-technical nature. (Approximately 100 pages of reading will be assigned per week.)

Problem Sets

Everybody will be expected to spend significant time writing code outside of class. These assignments absolutely will not be accepted late and are due the Wednesday before class (by 11:59PM). 

Am I completely serious about the exact second on this deadline? Well, no. You do have some leeway: a few minutes late I probably won't notice, but a whole day late I will definitely notice. If I decide to accept your (late) work, point deductions for lateness may be exacted, but can be waived for unforeseen circumstances, like illness, with an appropriate written excuse. The very best advice I can give you about completing your programming assignments on time is exactly what you'd expect: do not wait until the last minute! Plan several sessions of work for each assignment, and start early. Partial credit is available for partially complete assignments.

Group Projects

Students will work in teams on several occasions to develop a common project. Programming work on projects will replace the weekly homework assignments towards the end of the semester. The projects will integrate all of the topics covered during the semester. Working as part of a development team is crucial to this assignment, so individual projects will not be accepted, no exceptions.

Final Exam

There will be an in-class cumulative final exam on the last or second to last day of class.


You may check your grades through the Sakai portal

Class participation: 15%

This includes in-class coding exercises and class discussion. (Note: This does not only refer to the amount of participation but also to the quality of participation.)

Problem Sets: 20%

Group projects: 15%

Quizzes: 20%

Final: 30%

Academic Integrity

Students who intentionally submit work either not their own or without clear attribution to the original source, fabricate data or other information, engage in cheating, or misrepresentation of academic records may be subject to charges. Sanctions may include dismissal from the college for violation of the TC principles of academic and professional integrity fundamental to the purpose of the College. -- from Student Misconduct Policy

For additional help, see the TC Writing Center resources about plagiarism.

Written Work

Specifically all writing assignments (i.e. your portfolio) must follow the ACM style for citations, including any code examples, technical diagrams, etc. If it is determined that you have plagiarized any portion of a writing assignment, including and especially your portfolio, you will receive an F for the assignment, and other possible charges may result as outlined above.


No portion of your homework should be copied from another student, book, or electronic resource. You are expected, though, to consult with your peers, reference materials, and instructors while working on your coding assignments. Programming is seldom a solo activity and it is often best done in the company of others. If you choose to use existing, third party code in your assignment, it should be including according to the licensing guidelines if it is open source, and should be noted in a comment if it is in the public domain. If it is determined that you copied code directly into your program and represent it as your own creation, you will receive an F for the assignment.

Columbia University Network ID

Teachers College students have the responsibility for activating the Columbia University Network ID (UNI), which includes a free Columbia email account. As official communications from the College e.g., information on graduation, announcements of closing due to severe storm, flu epidemic, transportation disruption, etc. -- will be sent to the student1s Columbia email account, students are responsible for either reading email there, or, for utilizing the mail forwarding option to forward mail from their Columbia account to an email address which they will monitor.

How to Upload Files To StudyPlace

Help:Upload Files

Site to Additional Material and XGrid

About this Page

This page is 15,239 bytes in size and was last edited on Oct/09/2015.

Personal tools