Identification Subject Department Program Term Instructor E-mail: Phone: CMS 420 – Object-oriented Programming Languages – 4KU /8ECTS credits Computer Science Undergraduate Spring, 2013 Rajab Davudov radjab@gmail.com 070 201 13 65 11 Mehseti str. (Neftchilar campus), Room #401N, Thursday 18:20-21:00 by appointment Office hours CMS 204 - C Programming Language, CMS 215 – Data Structure English Required Core textbook: Classroom/hours Prerequisites Language Compulsory/Elective Required textbooks and course materials Java How to Program (early objects) plus MyProgrammingLab with Pearson eText -- Access Card (9th Edition), Harvey M. Deitel, Paul J. Deitel, Prentice Hall, 2011. Supplementary textbook: 1. Java How to Program, 7th Edition, Harvey M. Deitel, Paul J. Deitel, Prentice Hall, 2007. 2. Building Java Programs, 2nd Edition, Stuart Reges, Marty Stepp, Pearson. Course website Course outline This course introduces object-oriented programming using Java. Course covers topics such as OOP Principles, Classes and Objects, Inheritance, Polymorphism etc. Object-Oriented Programming Principles Java Fundamentals and Control Statements Eclipse Integrated Development Environment Classes, Objects, Inheritance, Polymorphism Arrays and Java Collections Files and Streams Introduction to Java Database Connectivity (JDBC) Introduction to Java Server-Side (Web) Programming Course objectives Course’s goal is to introduce OOP principles and application of them using Java programming language. Learning outcomes By the end of the course the students should be able: Teaching methods To design and develop Java program To use the concepts of OOP in various areas Lecture Group discussion x x Evaluation Policy Experiential exercise Simulation Case analysis Course paper Others Methods Midterm Exam Case studies Class Participation Assignment and quizzes Project Presentation/Group Discussion Final Exam Others Total Preparation for class x x Date/deadlines Percentage (%) 20 20 20 40 100 The structure of this course makes your individual study and preparation outside the class extremely important. The lecture material will focus on the major points introduced in the text. Reading the assigned chapters and having some familiarity with them before class will greatly assist your understanding of the lecture. After the lecture, you should study your notes and work relevant problems and cases from the end of the chapter and sample exam questions. Throughout the semester we will also have a large number of review sessions. These review sessions will take place during the regularly scheduled class periods. Withdrawal (pass/fail) This course strictly follows grading policy of the School of Engineering and Applied Sciences. Thus, a student is normally expected to achieve a mark of at least 60% to pass. In case of failure, he/she will be required to repeat the course the following term or year. Cheating/plagiarism Cheating or other plagiarism during the Quizzes, Mid-term and Final Examinations will lead to paper cancellation. In this case, the student will automatically get zero (0), without any considerations. Professional behavior guidelines The students shall behave in the way to create favorable academic and professional environment during the class hours. Unauthorized discussions and unethical behavior are strictly prohibited. Tentative Schedule Weeks Date/Day (tentative) 1 14.02.2013 2 21.02.2013 3 28.02.2013 07.03.2013 4 14.03.2013 5 28.03.2013 6 04.04.2013 7 Topics Introduction to course About lecture Introduction of course materials Installation of Java SDK Setting up development environment Introduction to Java Applications Object-Oriented Programming Languages Object-Oriented Programming Principles Introduction to Java First program in Java Introduction to UML Introduction to Objects and Classes Objects and Classes Methods and Fields Java Data Types Constructors Control Statements and Arrays Selection Statements Repetition Statements Logical Operators Declaring, Creating and Using Arrays Variable Length Argument Lists Deeper Look: Methods and Classes Static methods and Static fields Method Call Stack Access Modifiers (public, private) Overloaded Constructors Garbage Collector in Java Inheritance Introduction to Inheritance Java Method Binding Access Modifiers (protected) Polymorphism Introduction to Polymorphism Abstract classes and abstract methods instanceof Operator final Classes and final Methods 11.04.2013 8 Midterm Exam 18.04.2013 9 Introduction to Java GUI: Swing Introduction to Swing Simple GUI Components GUI Event Handling and Listeners Textbook/Assignments 25.04.2013 10 02.05.2013 11 12 10.05.2013 13 23.05.2013 14 30.05.2013 15 30.05.2013 Containers and Layouts 2D Graphics and Exception Handling Introduction to Graphic Context and Graphic Objects Color and Font Control Java 2D API Exception-Handling Overview Java Exception Hierarchy finally Block Declaring New Exception Types Introduction to Files and Streams Files and Streams Class File Object Serialization Java Data Structures, Searching and Sorting Type-Wrapper Classes Auto-boxing and Auto-Unboxing Linked Lists, Stacks, Queues, Trees Searching Algorithms Sorting Algorithms Generics and Java Collections Introduction to Generics Overloading Generic Methods Generic Classes java.util Package Class Properties Synchronized Collections Multi Threading Introduction to Threads Creating and Executing Threads Thread Synchronization Interface Runnable Introduction to JDBC and Server-Side Applications Relational Databases and SQL Connection to Databases Prepared Statements Callable Statements Transaction Processing HTTP Introduction to Java Web Technologies Sample Web Application using Java Web and JDBC Final Exam 16 This syllabus is a guide for the course and any modifications to it will be announced in advance.