ITEC 2610 3.0 section M

Object-Oriented Programming

Winter 2013

Instructor: Professor R.Campeanu ()

Homepage:

Lectures – Tuesdays and Thursdays 2:30-4:00 pm in TEL 0006

Labs: 2003/2027/2032 in the TEL building

Important Dates:

Jan.8 Classes start

Feb.5 Test 1

Feb.18-24 Reading Week (no classes)

March 7 Test 2

March 15 Last day to withdraw from the course without receiving a grade

April 4 Final Exam

Online course evaluation

Office Hours – Tuesdays and Thursdays 3:30-4:30 pm in 3059 TEL

Course Description

This is a continuation of problem solving and algorithm development in the context of object-oriented programming techniques. Taught in Java, topics include inheritance, polymorphism, interfaces, events, threads, data structures. Object-oriented design principles will be presented in conjunction with applications in graphics and user interfaces.

Prerequisites: AS/AK/ITEC1620 3.0 or AS/AK/ITEC1020 3.0 or AS/AK/SC/COSC1020 3.0

Course Content and Schedule

1: Programming language alignment, building classes

  • Programming language alignment, feature comparison of different programming languages, how to choose an appropriate language for an application
  • Defining classes in Java
  • Scopes of variables
  • static methods and variables

2: Building multi-class applications, OO design, UML

  • Object-oriented design
  • Using UML for system analysis and design
  • Interactions between classes

3: Inheritance, graphics

  • Inheritance in Java: concepts and usage
  • Java class hierarchy
  • Graphics class, drawing shapes using Graphics
  • JFrame and JApplet classes

4: Interfaces, polymorphism

  • Interfaces in Java: concepts and usage
  • Polymorphism
  • Building extensible applications with interfaces and polymorphism

5: GUI components and event handling

  • AWT and Swing components
  • Building GUI applications with GUI components
  • Event-driven programming in GUI applications

6: Layout managers

  • Basic layout managers: FlowLayout, BorderLayout, and GridLayout
  • Complex GUI design with multiple layers of containers
  • More GUI layout managers: CardLayout

7: Exception handling files and I/O

  • Exception handling in Java
  • Checked and unchecked exceptions

8: External files and I/O

  • Reading and writing text files and binary files
  • Random access files

9: Multithreading and synchronization

  • Multithreading and concurrent programming: motivations and concepts
  • Using threads in Java
  • Threads synchronization
  • Networking with Sockets

10: Animation and sound

  • Animation using threads
  • Flicker-free animation with double buffering
  • Multimedia capabilities of Java

11: Data structures: linked lists and trees

  • Self-referential classes
  • dynamic memory allocation
  • Linked lists
  • Stacks and queues
  • Trees

Textbook Required:

“Big Java” by Cay Horstmann, JohnWiley&Sons 2002, ISBN: 0-471-40248-6;

Useful Web Address for Java APIs:

Useful Tutorials on the Web:

A very Useful Java Glossary:

Code Conventions for Java:

Marking Scheme

Assignments 15%

Test 1 35%

Test 2 30%

Final exam 20%

Class Format

The lectures will emphasize the most important part of the material. Although this material is available on this Web site it is important to know which topics are expected to be known well for the test/exam. Please ask relevant questions during class, or individual questions at the end of class. Questions which require a more detailed answer will be addressed during my office hours.

Late Policy

Late assignments or missed midterm tests will not be penalized if medical documentation is presented. In the case of the missed midterm its weight will be added to the weight of the assignment + final exam. This system will not apply to the assignment, which must be submitted. If submitted late with a doctor’s note there will be no penalty. If no doctor’s note is presented a 5% penalty will be applied for each late day. If you miss the final exam for medical reasons you have to apply for deferred final examination within a week from the exam date.

Academic Honesty

The assignment is supposed to be produced through independent work. You may talk to your classmates but the final form of the assignments must be your own. The penalty for electronically copied assignments is a zero plus the possibility of a disciplinary action.