Bev Facey Community High

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.

  1. explain and represent the nature, rationale and key approaches associated with OOP
    1. describe the core concepts of OOP including:
      1. implementation by the exchange of “messages” among “objects”
      2. an outline of the key features of the OOP approach: e.g. encapsulation, modularity, polymorphism, inheritance
      3. use of private, public and protected members, accessors and modifiers to control access to data
      4. use of encapsulation and modularity when writing algorithms and programs
      5. use of classes and objects
      6. an outline the paradigm shift that occurred in the move from imperative and procedural programming to OOP
      7. the advantages of OOP over earlier paradigms
    2. explain key differences between OOP and procedure-oriented programming in:
      1. designing programs
      2. the storage and access of data
      3. the maintenance of programs
  2. demonstrate object-oriented design skills by writing algorithms employing an object-oriented approach to solving problems
    1. write algorithms and programs that deal with a small number of classes with an associative relationship
    2. use an iterative and incremental approach in the analysis, design and development (architecture) stages of the software development process
    3. apply an object-oriented design model to solve a data processing problem including:
      1. requirement analysis
      2. case analysis
      3. domain analysis
    4. use an iterative and incremental approach to refine the architecture into appropriate class or object diagrams showing their relationships
    5. 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
    6. draft an informal object message sequence indicating the flow of messages in the system
    7. complete the object design by adding private methods, functions and data structures required to implement the various objects
    8. test and modify, as required, the developing algorithm at each stage with appropriate data
  3. translate algorithms into source code, convert the source code into machine executable form, execute and debug, as required
    1. use iterative and incremental approaches in the implementation, testing and maintenance phases of the software development process
    2. break the algorithm into appropriate sections for implementation using a prototype approach
    3. create the classes necessary to instantiate the objects called for by the algorithm
    4. as the classes are constructed, use the server classes to create the client classes establishing the client/server relationships called for by the algorithm
    5. test and modify the sections, as required
    6. 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
    7. profile and optimize the code to add additional sections and/or features to the growing program
    8. where appropriate, collaborate with other students to carry out OOP tasks
    9. 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
  4. compare the results of the program with the intent of the algorithm and modify, as required
  5. demonstrate basic competencies
    1. demonstrate fundamental skills to:
      1. communicate
      2. manage information
      3. use numbers
      4. think and solve problems
    2. demonstrate personal management skills to:
      1. demonstrate positive attitudes and behaviours
      2. be responsible
      3. be adaptable
      4. learn continuously
      5. work safely
    3. demonstrate teamwork skills to:
      1. work with others
      2. participate in projects and tasks
  6. create a transitional strategy to accommodate personal changes and build personal values
    1. identify short-term and long-term goals
    2. identify steps to achieve goals