click here to return to the home page, logo image
NSEN-6305 Object-Oriented Programming

Contributing Scholar - Avinash Kak, Purdue University

 

3 Semester Credit Hours

 

Course Description

This course focuses on the C++ and Java programming languages, including classes, inheritance, encapsulation, polymorphism, class derivation, abstract classes, interfaces, static class members, object construction and destruction, namespaces, exception handling, function overloading and overriding, function name overload resolution, container classes, template classes, Unified Modeling Language (UML), graphical user interfaces (GUIs), multithreading, networking, and database programming.

 

Prerequisities

Experience in writing software programs

 

Proficiency in programming in the C language. Mastery of the following topics: arrays, structures, pointers, dynamic memory management, writing multifile programs, and the use of file/program management utilities e.g. "make"

 

Basic knowledge of object-oriented programming principles

 

General prerequisite: Students must have the knowledge resulting from completing all coursework in the curriculum for a BS degree in Computer Science or Computer Engineering from a regionally-accredited institution in the United States, or for a BS degree in engineering from an ABET-accredited engineering program in the United States or a CEAB-accredited program in Canada with a minor in computing systems, or the equivalent from a foreign institution; performance level in this coursework should be equivalent to a cumulative undergraduate GPA of 2.9 or better on 4.0 scale

 

Course Objectives

To introduce students to object-oriented programming using C++ and Java, two closely-related languages. Instruction in this course will take advantage of the process of "learning by comparison" through simultaneous introduction of similar concepts from C++ and Java, followed by discussion of their similarities and differences. Topics from basic language constructs to how both languages are used in application-level programming will be covered, including topics such as graphics programming, network programming, and database programming.

 

Course Topics

 

1. Course Introduction
2. Comparison of C, C++, and Java Programs, Preview of Classes
3. Introduction to Class and other Key OO Ideas
4. Subclasses, Polymorphism, Static Members, Print Representation and Object Destruction
5. Packages and Namespaces
6. Access Control, Abstract Classes, Object Comparison, Template Classes
7. Review of Strings in C
8. Strings in C++
9. Strings in Java
10. Container Classes in C++, Part 1
11. Container Classes in C++, Part 2
12. Container Classes in Java
13. Primitive Types
14. I/O Streams
15. Declarations, Definitions, and Initializations
16. Arrays Initialization in C++ and Java
17. Macros, Constants, Enumerations
18. Object Reference, Memory Allocation, Structs in C++
19. Functions and Argument Passing Modes
20. References, Const, Inlining, Static, Array Arguments, Overload Resolution
21. Exception Handling in C and C++
22. Exception Handling Differences Between C++ and Java, Exception Handling in Java
23. Access Control of Constructors in C++ and Java, and Static-Member Initialization and Destruction in C++
24. Static Members in Java, const Member Functions in C++, Self-­Reference, and Destructors in C++
25. Copy Assignment Operators and Copy Constructors in C++, Cloning in Java
26. Operator Tokens and Functions, Global and Member Overloading
27. Overloading Unary Operators
28. Overloading of Dereferencing Operators, User-Defined Conversion, Advanced Overloading  
29. Template Classes and Methods, Linked List Example
30. Function Templates, Template Specialization, General Syntax, Parameterized Classes and Types in Java
31. Introduction to UML, Use Case Diagrams
32. Class Diagrams, Associations, Aggregation, Composition, Representing Attributes and Operations
33. Interaction, Sequence, Collaboration, Package, Statechart, and Activity
34. Diagrams Derived Classes in C++
35. Virtual Functions and Static vs. Dynamic Binding
36. Virtual Destructors, Constructor Order Dependencies, and Abstract Classes in C++
37. Extending Classes in Java
38. Multiple Inheritance in C++
39. Issues that Arise with Repeated Inheritance
40. Mixin Classes and Role-Playing as Panaceas for the Ills of MI
41. The Component Classes of Java AWT/Swing and C++ Qt
42. Layout Managers for GUI Programming
43. Event Processing in Java AWT/Swing
44. Event Processing in C++ Qt Java Applets,
45. Security
46. Multithreaded OO Programming, Runnable Interface, Thread States, Threads in Java, Interference
47. Thread Synchronization in Java, Deadlock Prevention, Intra-Thread Communication, Applet Threads
48. Event Dispatch Threads
49. Mulithreaded Programming in C/C++, Thread Interference with Posix Threads
50. POSIX Thread Synchronization and Multithreading Programming with C++
51. Network Programming in Java
52. Network Programming in C++
53. Modern Databases
54. SQL for Communicating with Databases
55. Object Oriented Database Programming with Java and C++

 

Technical Requirements

Students must have access to Java 2 Platform Standard Edition Development Kit (JDK)

 

(http://java.sun.com/j2se/1.5.0/download.jsp), Cygwin  (http://www.cygwin.com/), ArgoUML (http://argouml.tigris.org/), Eclipse SDK (http://www.eclipse.org/downloads/), and Eclipse CDT (http://www.eclipse.org/cdt/) in order to take this course.  .  In addition, you will be required to have Windows Media Player to view the lectures. For the standard technical requirements, please go to the link below: http://www.waldenu.edu/c/Files/DocsGeneral/Getting_Started_Guide.pdf

 

Textbook

Required: Programming with Objects: A Comparative Presentation of Object-Oriented Programming with C++ and Java, Avinash C. Kak, Wiley, 1st ed, 2003, ISBN 0-471-26852-6.

 

Disclaimer: The course syllabus may differ slightly from this.  Course descriptions will be provided in your online course. Textbook information is provided only to give more information about the course.  Do Not use this information to purchase a textbook.  Up-to-date information will be provided when you register.



Google Custom Search
Walden University is accredited by The Higher Learning Commission and a member of the North Central Association, www.ncahlc.org; 312-263-0456. © Copyright 2007 Walden University; Telephone: 800-925-3368