CENG 443 Int. to Object-Oriented Programming Languages and Systems Syllabus • Instructor Selim Temizer, e-mail: temizer@ceng.metu.edu.tr • Assistant Dilek Önal, e-mail: dilek@ceng.metu.edu.tr • Prerequisite Basic knowledge of an Object-Oriented PL, UML, SQL and Process/Thread concepts. • Course objectives/goals The objectives of this course are to enable students − to use object-oriented programming concepts and constructs to represent software systems; − to understand the internal, architectural and usage aspects of the state-of-the-art methods and techniques to develop efficient, secure, robust, multi-threaded, networked, from standalone to enterprise-level object-oriented applications; − to comprehend how to apply them practically. • Grading (tentative) Attendance and participation Midterm Assignments Final 10 % 30 % 30 % 30 % • Some of the References C. Horstmann, G. Cornell. Core Java 2, Vol I: Fundamentals. Prentice Hall. C. Horstmann, G. Cornell. Core Java 2, Vol II: Advanced Features. Prentice Hall. B. Eckel. Thinking in Java. Prentice Hall. S. Potts, A. Pestrikov. Java 2 Unleashed. Sams. • Outline (tentative) Quick Review of OOP Basics with Java Primitives, expressions, statements, constructs, classes, objects, abstract classes, interfaces, inheritance, polymorphism, encapsulation, packages Advanced OOP with Java Inner classes, exception handling, garbage collection, I/O streams, generics, new features Reflection Design Principles and Patterns Threading Basics and Concurrency Database Connectivity Serialization Remote Method Invocation Virtual Machine Internals Security Overview of Enterprise Architectures • Notes For the course capacity, only the departmental rules apply.