CISC 3150 Object-Oriented Programming
Basic Information and Requirements
- Instructor: Prof. Neng-Fa Zhou
- Class hours: TTH 02:15-03:30PM 234 NE
- Office hours: 5:00-6:30 Monday (room Ingersoll 1161)
- Reference Books and Web Sites:
Topics
Principles and implementation issues in object-oriented programming languages, including: memory and run-time models; encapsulation, inheritance and polymorphism; generics. Collections and other frameworks and hierarchies. Effects of binding time considerations on language design and implementation. Introduction to design patterns, such as adapter, singleton, and model-view-controller. Formal design specifications such as UML. The Java Virtual Machine. Case studies chosen from multiple languages such as C++ and Java.
Prerequisite: CISC 3120 and 3130.
Homework assignments
There will be one homework assignment every week. Unless notified otherwise, the homework is due in one week after it is assigned. Please email your homework to cisc3150 (AT) picat-lang.org. Please write your name, student ID, and the number of the assignment in the subject, and include your writings and codes in the body of the email. Sample answers to the programming questions will be given and selected questions will be reviewed in class. There will be a one-point deduction for each missing homework or late submitted homework. The total deduction will not exceed 10 points.
Exams and Grading
There will one midterm exam and one accumulative final exam, all closed-book. The midterm accounts for 30%, the final accounts for 50%, and the remaining 20% of the grade will be based on projects.
Course Outline
- An introduction to OOP
- Review of STL Classes in C++
- Inheritance in C++
- Inheritance in Java
- Review of Generic Collection Classes in Java (MyList.java)
- EPI (Linked Lists, Stacks and Queues, Binary Trees, Heaps)
- Review of Java Swing Classes
- Midterm ( Sample )
- Recursive Algorithms (Divide and Conquer, Combinatorics, Dynamic Programming, Backtracking)
- Graphs (Graph Traversal Algorithms, Graph Minimization Algorithms)
- Concurrent Programming in Java
- Java Virtual Machine
- Final exam( Sample ) 12/20/2016, 1:00 PM - 3:00 PM, 234 NE