CSE3120: Object-oriented Programming 1
Students add to their understanding of programming paradigms by moving from a procedural programming approach, in which modularity is handled through subprograms, to an object-oriented approach, in which it is handled through objects. They learn a simple object-oriented analysis and design approach based on the use of object diagrams and write programs that use objects associated with one another in a client/server relationship.
- Prerequisite: CSE2110: Procedural Programming 1
- explain and represent the nature, rationale and key approaches associated with OOP
- describe the core concepts of OOP including:
- implementation by the exchange of “messages” among “objects”
- an outline of the key features of the OOP approach: e.g. encapsulation, modularity, polymorphism, inheritance
- use of private, public and protected members, accessors and modifiers to control access to data
- use of encapsulation and modularity when writing algorithms and programs
- use of classes and objects
- an outline the paradigm shift that occurred in the move from imperative and procedural programming to OOP
- the advantages of OOP over earlier paradigms
- explain key differences between OOP and procedure-oriented programming in:
- designing programs
- the storage and access of data
- the maintenance of programs
- demonstrate object-oriented design skills by writing algorithms employing an object-oriented approach to solving problems
- write algorithms and programs that deal with a small number of classes with an associative relationship
- use an iterative and incremental approach in the analysis, design and development (architecture) stages of the software development process
- apply an object-oriented design model to solve a data processing problem including:
- requirement analysis
- case analysis
- domain analysis
- use an iterative and incremental approach to refine the architecture into appropriate class or object diagrams showing their relationships
- analyze and refine the diagrams identifying the client/server relationship among the objects and determining the messages that need to be passed between objects and how the objects interface
- draft an informal object message sequence indicating the flow of messages in the system
- complete the object design by adding private methods, functions and data structures required to implement the various objects
- test and modify, as required, the developing algorithm at each stage with appropriate data
- translate algorithms into source code, convert the source code into machine executable form, execute and debug, as required
- use iterative and incremental approaches in the implementation, testing and maintenance phases of the software development process
- break the algorithm into appropriate sections for implementation using a prototype approach
- create the classes necessary to instantiate the objects called for by the algorithm
- as the classes are constructed, use the server classes to create the client classes establishing the client/server relationships called for by the algorithm
- test and modify the sections, as required
- convert an algorithm into a program of linked classes, objects, instances and methods in a manner that reflects the structure of the algorithm using an iterative and incremental approach
- profile and optimize the code to add additional sections and/or features to the growing program
- where appropriate, collaborate with other students to carry out OOP tasks
- create internal and external documentation
1.0 analyze the program and eliminate syntax, run-time and logic errors by using appropriate test data for each programming task at each stage of development
- compare the results of the program with the intent of the algorithm and modify, as required
- demonstrate basic competencies
- demonstrate fundamental skills to:
- communicate
- manage information
- use numbers
- think and solve problems
- demonstrate personal management skills to:
- demonstrate positive attitudes and behaviours
- be responsible
- be adaptable
- learn continuously
- work safely
- demonstrate teamwork skills to:
- work with others
- participate in projects and tasks
- create a transitional strategy to accommodate personal changes and build personal values
- identify short-term and long-term goals
- identify steps to achieve goals