OKLAHOMA CITY UNIVERSITY OBJECT-ORIENTED PROGRAMMING IN JAVA MS 5003 01 FALL 2009 DR. JOHN GOULDEN SYLLABUS Office Room Number: Meinders 118C Phone: 208-5042 E-mail: jgoulden@okcu.edu Office Hours: Tuesday and Thursday 9:00 – 12:00 Class Meets: Monday and Wednesday Class Room Number: Lecture Lab 9:00 – 9:50 10:00 – 10:50 Lecture Lab Meinders 203 Meinders 119 OKLAHOMA CITY UNIVERSITY OBJECT-ORIENTED PROGRAMMING IN JAVA MS 5003 02 FALL 2009 DR. JOHN GOULDEN SYLLABUS Office Room Number: Meinders 118C Phone: 208-5042 E-mail: jgoulden@okcu.edu Office Hours: Tuesday and Thursday 9:00 – 12:00 Class Meets: Monday and Wednesday Class Room Number: Lecture Lab 12:30 – 1:20 1:30 – 2:20 Lecture Lab Meinders 207 Meinders 119 Object-Oriented Programming in Java (MS 5003) Oklahoma City University – Fall 2009 Section 01: Lecture Lab MSB 203 MSB 119 9:00 – 9:50 10:00 – 10:50 MW MW Section 02: Lecture Lab MSB 207 MSB 119 12:30 – 1:20 1:30 – 2:20 MW MW Instructor: Dr. John Goulden, Assistant Professor of Computer Science Office Office Hours Voice / Voice Mail E-Mail Web LO 103 TBA 208-5042 (OCU extension 5042) jgoulden@okcu.edu www.okcu.edu/jgoulden Office Hours: The instructor’s office hours and contact information are given on this syllabus and are posted at his office and on his web site. The instructor will make every effort to be in his office and available to students during posted office hours. However, students are welcome to visit the instructor any time that they need assistance. If you wish to make an appointment to see the instructor, you may do so in person, through the department secretary, or via email. Required Text and Materials: Java 6 Illuminated by Julie Anderson and Herve Franceschi, 2nd edition (Jones and Bartlett, 2008) ISBN 9780763749637 All students must obtain a legal copy of the text. Bring your text to lecture and to lab. Course Description: This course is a rapid survey of structured and object-oriented design (OOD) and objectoriented programming (OOP) using the Unified Modeling Language (UML) and Java programming language. Other high-level object-oriented programming languages such as C# and C++ will also be described. Appropriate program structure and style as well as the features of the languages are emphasized. The design and implementation of programs comprises a significant part of the course. Students should be familiar with general programming concepts and have experience programming in at least one high-level language before attempting this course. OOP – Revised 3/6/2016 Prerequisites: MATH 1503 (College Algebra) or permission of instructor Experience in programming with at least one high-level programming language Objectives: Upon completion of this course the student will gain the following knowledge and abilities: Familiarity with and mastery of the essential vocabulary and syntax of high-level objectoriented programming languages (with emphasis on Java) including history of object-oriented design and programming; history and use of important programming languages in OOP; overview and features of modern high-level OOP languages; distinction between interpreted, compiled, and virtual-machine languages; rules and guidelines of programming style and documentation; the nature and use of variable values and references; input and output using the console, GUI, and files; use of the sequence, loops, and branch control structures; functions and the role of functions in program design; single- and multi-dimensional arrays; similarities in differences in current OOP languages including memory management, garbage collection, and automatic boxing of primitives; An understanding of program design and of object-oriented programming including effective use of standard algorithm design tools such as flowcharts; principles of top-down and bottom-up design; modular program design; OO concepts including abstraction, data hiding, polymorphism, encapsulation, and inheritance; objects and classes and their role in OOD and OOP; effective use of UML in class design; and implementation of classes described in UML in an OO language. The ability to design, implement, test, and debug solutions to problems using the Java programming language for both console and GUI interfaces. OOP – Revised 3/6/2016 Grading: You will be evaluated in four categories: daily work (which includes homework, quizzes, and in-class worksheets), lab work, three midterm examinations, and a final examination. The grading scale and percentages for each grade component are as follows: 92.5 – 100 90.0 – 92.5 87.5 – 90.0 82.5 – 87.5 80.0 – 82.5 77.5 – 80.0 72.5 – 77.5 70.0 – 72.5 67.5 – 70.0 62.5 – 67.5 60.0 – 62.5 0.00 – 60.0 A AB+ B BC+ C CD+ D DF Homework / Daily Work / Quizzes Lab and Project Work Four Midterm Exams Final Exam 15 % 25 % 40 % 20 % Incompletes: Incompletes will be granted only in cases of unusual and unforeseeable hardship. Simply falling behind in the course will not be considered a sufficient reason for granting an incomplete. If granted, a report of “incomplete” will be accompanied by a letter grade based on work already completed. If the course is not completed within one year, this letter grade will become the final grade. The University policy on incompletes is found in the 2008-9 undergraduate catalog page 46 and in the 2008-9 graduate catalog page 31. Attendance Policy: Students are expected to attend every lecture and every lab. Three or more absences may result in a penalty of one or more letter grades. However, a historical observation is that students with excessive absences generally fail the course even if this penalty is not applied, and students with good attendance generally earn good grades in the course. If you must miss a lecture or lab due to some unforeseen emergency, please contact the instructor. Late Work Policy: Late work will not be accepted for any reason. Homework or lab work submitted by email or given to the department secretary after class will not be accepted. Students with Disabilities: If you need an accommodation due to a disability under the Americans with Disabilities Act, please contact the Student Health and Disabilities Service Office at 208-5090 or 208-5991. Advance notice is required for many accommodations. OOP – Revised 3/6/2016 Weather Cancellation Policy / Severe Weather Policy: In the event of severe winter weather, the University may cancel classes. To find out if the University has cancelled classes, call the weather hotline at 208-5871. The local television stations will list those schools that cancel classes due to weather. If the instructor must cancel class due to weather, he will make every effort to publish a notification on his web site at www.okcu.edu/jgoulden. Central Oklahoma is subject to severe spring and summer storms which may produce tornadoes. In case of abrupt severe weather, the warning sirens will sound. If this occurs while class is in session, class will be dismissed so that students and faculty can proceed to the nearest storm shelter. Cheating and Plagiarism Policy: This course is governed by both the University-wide Academic Honesty policy (2008-9 undergraduate catalog page 40; 2008-9 graduate catalog pages 32-33) and by the Department of Computer Science Academic Honesty Policy. You will be required to sign and return a copy of the Department policy as an acknowledgement that you have read and understand that policy. Aspects of this course in which these issues are particularly relevant are noted in the paragraphs below and will be discussed in class. Homework Assignments: The midterm study guides attached to the syllabus might be considered homework. This material is designed to allow you to prepare for the midterm and final examinations. This material includes programs (or fragments of programs) that you should implement in the Java programming language. Study guide problems are not collected or graded. However, the instructor will gladly assist you in completing problems or evaluating your work on request. Other homework assignments might be made during the semester. If so, the nature of the assignment and the due date will be provided at that time. This homework will be collected, evaluated, graded, and returned. Make sure that your name is at the top of the first page (no cover pages please) and staple multi-page assignments once in the upper-left corner. In-Class Quizzes: Quizzes, both announced and unannounced, will be administered throughout the semester. The instructor will often use the first five minutes of class time for quizzes. Material is taken from the current lecture material, homework, and reading assignments. Quiz scores will be incorporated into the “daily work” component of your grade. Some quizzes and worksheets are considered to be extra credit and can only increase your grade! OOP – Revised 3/6/2016 Lab Assignments and Programs: This is a programming course, and you will write several programs during the semester. Programs will be graded using several criteria: internal documentation, consistent style, appropriate use of the programming language, and how well they satisfy the specifications given in the problem statement. These grading criteria will evolve as your mastery of the language progresses during the course. A portion of your lab grade will be determined (in most cases) by a worksheet. To complete the worksheet you must design and implement programs in lab. Other, more challenging lab projects will require more extensive write-ups. Some lab work will be submitted on your personal web page provided by OCU, where it will be inspected and evaluated by the instructor at a later date. Lab will often begin with a brief lecture. Thus, it is important that you be on time to labs or you will not hear this important material. Exams: All in-class exams are closed book and closed notes. Exam problems are taken from the lecture material, from the reading, and from the homework assignments. Exam questions may be of any type: problems to be solved, essay, fill-in-the-blank, multiple choice, and so on. Students may not leave the room during an exam for any reason; if you must leave the room, you must also turn in your exam. Book Check: Beginning with the third week of class, the instructor may conduct “book checks” to ensure that each student has a copy of the textbook. Make sure you bring your text to every lecture and lab session. Book check will be incorporated into your homework grade. OOP – Revised 3/6/2016 Proposed Schedule for MS 5003 (Object-Oriented Programming in Java): As is usual in proposed course schedules, this schedule is subject to change. You should read the given chapter from the course text before attending the lecture. Numbers indicate the chapter of the text that should be read before lecture on that day. ‘x’ indicates material that is not in your text. Mon Aug 24 Syllabus and course policies Lab orientation; accessing OCU accounts; first programs Wed Aug 26 1 Overview of Computers and Programming Languages javabat.com orientation; first methods Mon Sep 1 2 Basic Elements of Java; data types; operators; expressions; style LAB: Simple programming problems Wed Sep 3 x Decimal, Binary, Octal, Hexadecimal number systems LAB: More simple programming problems Mon Sep 7 Wed Sep 9 Mon Sep 14 Wed Sep 16 Mon Sep 21 Wed Sep 23 5, 6 Introduction to control structures LAB: Programming using control structures Mon Sep 28 x Flowcharts and algorithm design LAB: Programming from a flowchart Wed Sep 30 7 Object-oriented programming: classes and methods LAB: Programming with loops, branches, classes, methods Mon Oct 5 13 Recursion LAB: Recursion Wed Oct 7 More on Recursion LAB: More recursion Mon Oct 12 More on classes and methods LAB: Classes and methods NO CLASS, NATIONAL HOLIDAY 3 Java class libraries; String functions; LAB: Programming with Strings Java class libraries; Math functions; wrapper classes LAB: Programming with Math 4 Introduction to Applets and Graphics LAB: First applet and web page EXAM I (Chapters 1 – 3, lectures, handouts, labs) OOP – Revised 3/6/2016 Wed Oct 14 EXAM II (Chapters 4 – 7, 13, lectures, handouts, labs) Mon Oct 19 NO CLASS, FALL BREAK Wed Oct 21 8 Single-dimensional arrays LAB: Programming with single-dimensional arrays Mon Oct 26 15 Searching; simple sorting; big-O notation LAB: searching single-dimensional arrays Wed Oct 28 Simple Sorting LAB: simple sorting Mon Nov 2 Advanced Sorting LAB: more sorting Wed Nov 4 Mon Nov 9 More on multidimensional arrays LAB: More programming with multidimensional arrays Wed Nov 11 EXAM III (Chapter 8, 9, 15, lectures, handouts, labs) Mon Nov 16 Wed Nov 18 More on objects, classes, inheritance, containment LAB: Continuation of inheritance lab Mon Nov 23 Abstract classes and methods 9 10 Multidimensional arrays LAB: Programming with multidimensional arrays Objects and classes; OOD / OOP concepts; UML LAB: First lab with inheritance LAB: continuation of inheritance lab Wed Nov 25 NO CLASS, NATIONAL HOLIDAY Mon Nov 30 Wed Dec 2 Graphical User Interfaces; listeners LAB: continuation of GUI application Mon Dec 7 EXAM IV (Chapters 10 – 12, lectures, handouts, labs) 12 Graphical User Interfaces; layouts LAB: first GUI application OOP – Revised 3/6/2016 Wed Dec 9 Review for Final Exam OPEN LAB Mon Wed Dec 14 12:00 Dec 16 8:00 COMPREHENSIVE FINAL EXAM (12:30 section) COMPREHENSIVE FINAL EXAM (9:00 section) OOP – Revised 3/6/2016 For each exam, you are expected to study and review all of the following: Lecture notes, handouts, quizzes, and worksheets Laboratory exercises Bold-faced terms in each chapter (even if no exercises are given for that chapter) Chapter Summary in each chapter (even if no exercises are given for that chapter) As the semester progresses, you will read, analyze, and write Java programs on the midterms. You are expected to be able to write simple Java programs from memory. However, you will never be required to memorize or write GUI methods in Java on a closed-book exam, nor will you be expected to memorize methods of predefined classes beyond what is commonly used in lecture or lab or explicitly given in one of the review problems below. STUDY GUIDE FOR MIDTERM I Chapter 1 Exercises 1 – 30, 35 Chapter 2 Exercises 1 – 50, 52 Chapter 3 Exercises 1 – 56, 71 STUDY GUIDE FOR MIDTERM II Chapter 4 Exercises: NONE, these are mostly GUI-related questions Chapter 5 Exercises 1 – 48, 53 Chapter 6 Exercises 1 – 52, 70-71 Chapter 7 Exercises 1 – 52, 55 – 62, 73 Chapter 13 Exercises 1 – 47, 63 STUDY GUIDE FOR MIDTERM III Chapter 8 Exercises 1 – 61, 73 – 76 Chapter 9 Exercises 1 – 85, 97 Chapter 15 Exercises 1 – 18 STUDY GUIDE FOR MIDTERM IV Chapter 10 Exercises 1 – 46, 57 Chapter 11 Exercises: NONE Chapter 12 Exercises: NONE OOP – Revised 3/6/2016