CS04.113: Introduction to Object-Oriented Programming

Catalog Description

Introduces the fundamental concepts of programming from an object-oriented perspective. Topics are drawn from classes and objects, abstraction, encapsulation, data types, calling methods and passing parameters, decisions, loops, arrays and collections, documentation, testing and debugging, exceptions, design issues, inheritance, and polymorphic variables and methods. The course emphasizes modern software engineering and design principles and developing fundamental programming skills in the context of a language that supports the object-oriented paradigm.

Instructor

Name: Dr. Andrea F. Lobo

Email: lobo@rowan.edu

WWW: www.rowan.edu/~lobo/ioop

Office hours: Tentatively scheduled for Mondays 10:40-12:40 and Tuesdays 10-11 (subject to change), and additional hours at other times by prior appointment (lobo@rowan.edu).

Phone: (856) 256-4500, ext. 3815

Objectives

Upon completion of this course, students should be able to:

Major Topics

Introduction to the history of computer science; introduction to computing ethics; introduction to computer systems and environments; basic Unix commands; introduction to the object-oriented paradigm: Abstraction, objects, classes, methods, parameter passing, encapsulation, inheritance, polymorphism; fundamental programming constructs: basic syntax and semantics of a higher-level language, variables, types, expressions, assignment, simple I/O, conditional and iterative control structures, structured decomposition; fundamental data structures: Primitive types, arrays, records, strings and string processing; introduction to programming languages; algorithms and problem-solving: problem solving strategies, the role of algorithms in the problem solving process, implementation strategies for algorithms, debugging strategies, the properties of algorithms.

Prerequisites

Formal and declared status as a Computer Science major or minor or permission of instructor. MATH 01.121 Intermediate Algebra or the high-school equivalent.

Instructional Methods and Techniques

This course comprises of a lecture component and a lab component. Two lectures (1.25 hours each) and one lab (2.5 hours) will be held every week. Students will learn programming concepts in the lectures. These concepts will be revisited in the lab period in the form of programming assignments.

Assignments

Assignments and other reading material will often be made available on the web. Labs comprising of networked personal computers are available all over the campus. Students can use these labs to complete their programming assignments outside class hours.

Textbook

David J. Barnes and Michael Kolling, Objects First with Java: A Practical Introduction Using BlueJ, 4th Edition, , Prentice Hall/Pearson Education, 2009. ISBN 978-0-13-606055-0.

Grading

Your grades will be based on your performance in several components. The relative weights of the components are:

Quizzes 25%

Labs and assignments 15%

Midterm 25%

Final 35%

Quizzes, often unannounced, will emphasize the material that was covered in recent preceding lecture and lab sessions. Attendance to the lectures and labs is mandatory, and there will be no re-quiz for a missed quiz. Please inform the instructor in advance, preferably by email, if you will be absent from a class or lab session.

Only a few, randomly chosen labs will be graded for each student, although all students must complete all labs in preparation for the quizzes, assignments and exams. You will not be allowed into the lab unless you have prepared in advanced by completing the assigned pre-lab. Each lab assignment is due by the beginning of the lecture that follows the lab in which the assignment was worked on. If you finish a lab assignment before the lab is officially over, you may ask the professor for an extra credit assignment or permission to leave early.

Assignments may be programming projects or short written/oral homework. Assignments are always due at the beginning of a lecture or lab session. If you miss a class/lab in which work is assigned, you are still responsible for handing in the work by the due time. Late submissions will be penalized at the rate of 25% points for the first late day, followed by 10% points for each subsequent late day, including weekend days.

Re-tests will be given only in cases of extreme hardship as defined by the rules of Rowan University.

Your letter grades will be computed at the end of the semester from your average numerical score, using the following mapping:

90 and above

A

87 to 90-

A-

84 to 87-

B+

80 to 84-

B

77 to 80-

B-

74 to 77-

C+

70 to 74-

C

67 to 70-

C-

64 to 67-

D+

60 to 64-

D

57 to 60-

D-

Less than 57

F

Remarks

Free tutoring is available, at your request, at the Tutoring Center in Savitz Hall. If you wish, you may let your professor know that you are attending tutoring sessions, and she will coordinate with your tutor.

In accordance with the Rowan University rules of Academic Honesty, students must complete their individual work on their own. In the context of this course, individual work includes your computer programs. In particular, you should never give anyone your code, take someone else's code, or allow your code to be accessed to others either electronically or in hard copy. This applies to entire programs and to parts of programs. Copying a program is like copying a term paper, and may lead to expulsion from the University. For example, if you and a classmate are chatting in the hallway about how difficult a programming assignment is and your classmate opens his/her notebook to show you his/her hand written code, you should decline to see it.

In accordance with Rowan University rules, the authorization of withdrawals from a course after March 9th is not up to the professor.

This document is a draft, open for discussion during the first two class meetings of the semester. Any suggestions or concerns may be brought up during these first two class meetings, and any changes to this syllabus will be made then. The syllabus may not be changed after this discussion period.