About CS 3331

This page is organized as follows:

  1. Course description
  2. Prerequisites
  3. Course texts
  4. Course objectives
  5. Course outcomes

Course Description

The following description is excerpted from the Undergraduate Course Catalog:

An in-depth exposure to the object-oriented programming paradigm, which builds upon programming experience gained in lower-level computer science classes. Emphasis on programming in an object-oriented language with which students are already familiar, and on requirements, testing, code reading, and comprehension.

Prerequisites

The prerequisite of this course is CS 2402 with a grade of C or better.

Course Texts

The required course textbook is:

Xiaoping Jia, Object-Oriented Software Development Using Java , Addison Wesley, 2003, ISBN 0-201-73733-7

The textbook is available at the UTEP bookstore, and you are expected to acquire a copy for your use in this course, as reading assignments will be taken from the textbook.

In addition to the required textbook, the following books are recommended as references:

Supplemental readings will be taken from the Web or hard copies will be handed out in class.

Course Objectives

The goal of this course is to equip students with advanced design and programming techniques in the object-oriented programming paradigms. To this end, specific goals are:

Learning Outcomes

Level 3: Synthesis and Evaluation

Level 3 outcomes are those in which the students can apply the material in new situations. This is the highest level of mastery.

Upon successful completion of this course, students will be able to

  1. Develop modular solutions to a given problem statement,
  2. Design and implement software employing the principles of encapsulation, information hiding, abstraction, and polymorphism,
  3. Design, implement, and use classes and methods in an object-oriented programming language, employing standard naming conventions and making appropriate use of advanced features such as inheritance, exception handling, I/O, references, and simple GUIs,
  4. Evaluate existing classes and software for the purposes of extension through inheritance,
  5. Use and create standard API documents to understand and document the use of classes and methods,
  6. Design and implement through test suites (unit testing),
  7. Refactor existing software to improve its design or efficiency.

Level 2: Application and Analysis

Level 2 outcomes are those in which the student can apply the material in familiar situations, e.g., can work a problem of familiar structure with minor changes in the details.

Upon successful completion of this course, students will be able to

  1. Use object-oriented design tools such as UML class diagrams to model problem solutions and express inheritance, association, aggregation, and composition relationships among classes,
  2. Recognize and use basic object-oriented design patterns to structure solutions to problems,
  3. Implement association relationships and multiplicities,
  4. Use frameworks, classes, and methods from standard libraries in problem solutions,

Level 1: Knowledge and Comprehension

Level 1 outcomes are those in which the student has been exposed to the terms and concepts at a basic level and can supply basic definitions. The material has been presented only at a superficial level.

Upon successful completion of this course, students will be able to

  1. Explain the fundamentals of software development including development process, quality of software systems, and challenges of software development, and
  2. Define or explain principles of modularity, encapsulation, information hiding, abstraction, and polymorphism.

Last modified by Ernesto Medina: : description.html,v 1.6 2009/1/19 18:48:14 Ernesto Medina Exp $