Object-Oriented Programming
CIS*2430 (Fall 2014)
Instructor: Fei Song (Reynolds 215, ext. 58067)
Email: fsong@uoguelph.ca
Office
Hours: Mondays and Fridays, 2:30 – 4:30 pm (Instructor’s
office)
Lab Hours: Wed.
2:30 – 4:20 pm; Tue. 12:30 – 2:20 pm; Thu. 12:30 – 2:20 pm;
Fri. 9:30 – 11:20 am; and
Thu. 2:30 – 4:20 pm (Location: Thornbrough 2420)
Teaching Assistants: TBA
Overview
This is
an introductory course on Object-Oriented Programming (OOP). It assumes that students already know the
basics of a procedural programming language such as C and can write computer
programs independently either through previous courses or working
experience. It is also desirable that students
have some basic understanding of simple data structures such as arrays, linked
lists, and hash tables. The course focuses
on the fundamental concepts and techniques of object-oriented programming along
with suitable applications. Students
will have ample opportunities to improve their development skills with the Java
programming language through assignments and lab exercises.
Preequisite(s): CIS*2500
Evaluation
Programming Assignments (55%)
-
Three assignments @ 15% each
-
Five in-lab assignments @ 2% each
Exams (45%)
-
Two midterms
@ 10% each
-
One final
exam @ 25%
Policies
·
Lecture
attendance is important. The textbook
and lecture notes will not necessarily provide adequate coverage for the course
materials, especially the discussions and question answering we conduct during
the classes.
·
Lab
attendance is required for tutorials, five in-lab assignments, and one lab exam. Each lab assignment will be done in two
weeks; so you should plan on attending at least one of the two sessions.
·
Late
assignments are not accepted for grading and will be given a mark of zero. A reasonable portion of assignment marks are
given for documentation, test plans, and coding style. You will be further ahead to submit a
partially finished assignment on time than to spend effort asking for an
extended submission date. Unless
otherwise specified, assignments are due on or before the midnight of the due
date.
·
Any requests
for the remarking of assignments and exams should be submitted by emails (along
with the hardcopies if relevant) within 5 business days. Any later requests will not be considered.
·
Object-oriented
programming is about code reuse.
However, undocumented use of other people’s code is plagiarism. Plagiarism is not tolerated at the
University of Guelph; any infraction incurs severe penalty as per the rules on
Academic Misconduct in the Undergraduate Calendar: http://www.uoguelph.ca/undergrad_calendar. Code reuse
will be discussed at length in class and all use of libraries and third party
code must adhere to the coding conventions for this class.
Textbook and
Course Website
Text: Walter Savitch. Absolute Java. Fifth Edition. Pearson Education, 2012.
Course website: http://moodle.socs.uoguelph.ca/
Topics to be Covered
·
OOP introduction
·
Class design in terms of variables and
methods
·
Information hiding and encapsulation
·
Inheritance, polymorphism, and
overloading
·
Data structures such as Arrays,
ArrayLists, and HashMaps
·
Exception handling and event-driven
programming
·
UML modeling and OO design patterns
·
Containers and iterators
·
Swings and GUI’s
·
OO analysis and design techniques