CTSPlanner
Sign-in not configured
Computing Science

CSE3120 Object-Oriented Programming 1

Advanced · 1 credit · BIT - Business, Admin, Finance and IT

Description
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
Parameters
Access to appropriate computer equipment, software, the Internet and support materials. Access to an object-oriented programming (OOP) environment that encourages a formal treatment of objects.
Supporting courses
CSE3010: Computer Science 3 CSE3110: Iterative Algorithm 1

Outcomes The student will:

  • 1 explain and represent the nature, rationale and key approaches associated with OOP

    • 1.1 describe the core concepts of OOP including:

      • 1.1.1 implementation by the exchange of “messages” among “objects”

      • 1.1.2 an outline of the key features of the OOP approach: e.g. encapsulation, modularity, polymorphism, inheritance

      • 1.1.3 use of private, public and protected members, accessors and modifiers to control access to data

      • 1.1.4 use of encapsulation and modularity when writing algorithms and programs

      • 1.1.5 use of classes and objects

      • 1.1.6 an outline the paradigm shift that occurred in the move from imperative and procedural programming to OOP

      • 1.1.7 the advantages of OOP over earlier paradigms

    • 1.2 explain key differences between OOP and procedure-oriented programming in:

      • 1.2.1 designing programs

      • 1.2.2 the storage and access of data

      • 1.2.3 the maintenance of programs

  • 2 demonstrate object-oriented design skills by writing algorithms employing an object-oriented approach to solving problems

    • 2.1 write algorithms and programs that deal with a small number of classes with an associative relationship

    • 2.2 use an iterative and incremental approach in the analysis, design and development (architecture) stages of the software development process

    • 2.3 apply an object-oriented design model to solve a data processing problem including:

      • 2.3.1 requirement analysis

      • 2.3.2 case analysis

      • 2.3.3 domain analysis

    • 2.4 use an iterative and incremental approach to refine the architecture into appropriate class or object diagrams showing their relationships

    • 2.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

    • 2.6 draft an informal object message sequence indicating the flow of messages in the system

    • 2.7 complete the object design by adding private methods, functions and data structures required to implement the various objects

    • 2.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

    • 3.1 use iterative and incremental approaches in the implementation, testing and maintenance phases of the software development process

    • 3.2 break the algorithm into appropriate sections for implementation using a prototype approach

    • 3.3 create the classes necessary to instantiate the objects called for by the algorithm

    • 3.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

    • 3.5 test and modify the sections, as required

    • 3.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

    • 3.7 profile and optimize the code to add additional sections and/or features to the growing program

    • 3.8 where appropriate, collaborate with other students to carry out OOP tasks

    • 3.9 create internal and external documentation

    • 3.10 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

    • 5.1 demonstrate fundamental skills to:

      • 5.1.1 communicate

      • 5.1.2 manage information

      • 5.1.3 use numbers

      • 5.1.4 think and solve problems

    • 5.2 demonstrate personal management skills to:

      • 5.2.1 demonstrate positive attitudes and behaviours

      • 5.2.2 be responsible

      • 5.2.3 be adaptable

      • 5.2.4 learn continuously

      • 5.2.5 work safely

    • 5.3 demonstrate teamwork skills to:

      • 5.3.1 work with others

      • 5.3.2 participate in projects and tasks

  • 6 create a transitional strategy to accommodate personal changes and build personal values

    • 6.1 identify short-term and long-term goals

    • 6.2 identify steps to achieve goals

Program of Studies 2009. Source document, © Alberta Education.