Dr. John Goulden, Assistant Professor of

advertisement
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
Download