SYLLABUS Course: Programming I - CSIT-165 Semester: Fall, 2013. Instructor: Kingsley C. Nwosu, Ph.D. Text Book: Java Concepts Early Objects (Seventh Edition) Authors: Cay Horstmann Office: TECH 221 Office Hours: Monday (9:30AM-10:30AM) Tues. (9:30AM-10:30AM and 2:00PM-3:00PM) Thurs. (9:30AM-10:30AM) Fri. (9:30AM-10:30AM) Phone: 732-255-0400 Ext. 2168 E-mail: knwosu@ocean.edu or kingsley_nwosu@portal.ocean.edu Website: Course Description: This course introduces the student to the fundamental techniques used in the development of software applications. The course teaches object-oriented programming concepts and principles using Java (via an interactive visual system interface) as the primary programming language with references to other object- oriented languages such as C++, Objective-C, and C#, when necessary. Students will learn good object- oriented and software development practices through the development of various programs. The topics covered include basic data types, operators and decision/control constructs, classes, objects, object interaction, methods and encapsulation, algorithms, arrays, messages, and exceptions. Working knowledge of windows required. Open lab time required. Upon successful completion of this course, the student should be able to review, take, and pass the Oracle Certified Associate, Java SE 7 Programmer certification (Exam 1Z0-803). Text/Materials: Text: Java Concepts Early Objects (7th Edition) by Cay Horstmann. Required Software: Windows XP (SP3), 8/7, Mac OS X, UNIX/LINUX OS. • JDK Download from http://docs.oracle.com/javase/7/docs/webnotes/install/ for Windows, Linux and Solaris platforms Download from http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html for MAC platform • See http://www.oracle.com/technetwork/java/javase/config-417990.html for minimum requirements • Eclipse IDE for Java Developers Download from http://www.eclipse.org/downloads/ for Windows Download from http://www.eclipse.org/downloads/?osType=macosx for MAC Download from http://www.eclipse.org/downloads/?osType=linux for Linux Handouts: Additional handouts may be required. Information will be provided on how to obtain this material. Teaching Methods: 1. Lectures: Important material from the text and outside sources will be covered in class. Students should plan to take careful notes as not all material can be found in the texts or readings. Students should expect frequent in-class programming exercises. 2. Assignments: Several programming assignments will be given. These assignments can be done at home or the school lab. 3. Quizzes: Several closed-books quizzes will be given. 4. Exams: Four exams and a comprehensive final exam will be given. The exams will test related materials discussed in class. Course Objectives: Upon successful completion of this course, you should understand the following: • Java Basics • Working with Java Data Types • Using Operators and Decision Constructs • Creating and Using Arrays • Using Loop Constructs • Working with Methods and Encapsulation • Working with Inheritance • Handling Exceptions Grading: Total points will be computed as follows. Exam #1: 10% Exam #2: 10% Exam #3: 10% Exam #4: 10% Exam #5 (Final - Comprehensive) : 20% Quizzes: 15% Assignments/Projects: 25% A >= 90 B+ >= 85 B >= 80 C+ >= 75 C >= 70 D >= 60 F >= 0 Course Policies: Attendance Policy: The College’s absence policy is 10%. If the student has missed more than 1.5 weeks (10%) or has not submitted the assignments, the student will be denied access to the course. If it is on or before November 7, 2013, last date to withdraw for Fall 2013 semester, the student will be dropped from the course with a grade of "W". After November 7, 2013, the student will be dropped from the course with a grade of "F" (OCC Attendance Policy Adopted August 2008). Missed Classes: The student is responsible for obtaining material distributed on class days when he/she was absent. This can be done through contacting a classmate who was present or by contacting the instructor during his office hours or other times. Missed or late exams cannot be made up under any circumstances but with good cause and adequate notice, an early exam may be given. Academic Dishonesty: Plagiarism and cheating are serious offenses and may be punished by failure on exam, paper or project; failure in course; and or expulsion from the University. For more information refer to the "Academic Dishonesty" policy in the University Undergraduate Catalog. For this class, it is permissible to assist classmates in general discussions of computing techniques. General advice and interaction are encouraged. Each person, however, must develop his or her own solutions to the assigned projects, assignments, and tasks. In other words, students may not "work together" on graded assignments. Need for Assistance: If you have any condition, such as a physical or learning disability, which will make it difficult for you to carry out the work as I have outlined it, or which will require academic accommodations, please notify me as soon as possible. Internet Support: Check the class Web page for additional information about applications covered, assignments, or to post a question about this course. Incomplete Policy: Students will not be given an incomplete grade in the course without sound reason and documented evidence as described in the Student Handbook. In any case, for a student to receive an incomplete, he or she must be passing and must have completed a significant portion of the course. Civility Statement: Ocean County College defines civility primarily as the demonstration of respect for others, basic courtesy, reciprocity (treating others as we wish to be treated), and behaviors that create a positive environment in which to learn and to work. [See www.ocean.edu/civility.htm]. Course Outline 1. Introduction a. Computers and Computer Programming b. Programming Environment c. Object Oriented Concepts i. Objects ii. Classes iii. Inheritance iv. Interface v. Packages 2. Language Basics a. Variables i. Primitive Data Types ii. Arrays b. Operators i. Assignment, Arithmetic, and Unary Operators ii. Equality, Relational, and Conditional Operators iii. Bitwise and Bit Shift Operators c. Expressions, Statements, and Blocks d. Control Flow Statements i. The if-then and if-then-else Statements ii. The switch Statement iii. The while and do-while Statements iv. The for Statement v. Branching Statements EXAM I | 3. Classes and Objects a. Classes i. Declaring Classes ii. Declaring Member Variables iii. Defining Methods iv. Providing Constructors for Your Classes v. Passing Information to a Method or a Constructor b. Objects i. Creating Objects ii. Using Objects c. More on Classes i. Returning a Value from a Method ii. Using the this Keyword iii. Controlling Access to Members of a Class iv. Understanding Instance and Class Members v. Initializing Fields EXAM II 4. Interfaces and Inheritance a. Interfaces i. Defining an Interface ii. Implementing an Interface iii. Using an Interface as a Type iv. Rewriting Interfaces b. Inheritance i. Overriding and Hiding Methods ii. Polymorphism iii. Hiding Fields iv. Using the Keyword super v. Object as a Superclass vi. Writing Final Classes and Methods vii. Abstract Methods and Classes EXAM III 5. Numbers and Strings a. Numbers i. The Numbers Classes ii. Formatting Numeric Print Output iii. Beyond Basic Arithmetic b. Characters c. Strings i. Converting Between Numbers and Strings ii. Manipulating Characters in a String iii. Comparing Strings and Portions of Strings iv. StringBuilder Class EXAM IV 6. Exception Handling a. Exceptions i. RuntimeExceptions and Errors ii. Catching and Handling Exceptions iii. How to Throw Exceptions iv. Common Exception Classes and Categories EXAM V - FINAL