State University of New York at Oswego

  1. COURSE NUMBER AND CREDIT

    CSC 241 - 3 Semester Hours

  2. COURSE TITLE

    Computer Science II

  3. COURSE DESCRIPTION

    Object oriented programming concepts are emphasized throughout the course. Data structures, such as, stack, queue, list, binary search tree, and hash table are discussed and developed in Java; they are also used in meaningful applications. Different implementations of these ADTs are compared and contrasted. Use of recursion in problem solving, analysis of algorithms with Big-O notation, and 0(n lg n) sorting algorithms are also studied. Event-driven programming and using Java's GUI components in application development are introduced.

  4. PREREQUISITES

    CSC 212 - Computer Science I

  5. COURSE JUSTIFICATION

    This course expands on the object oriented concepts introduced in CSC212 with more experience gained in class design and development. Student are introduced to data structures. The programming techniques and the data abstraction concepts learned here are crucial for the rest of the core. Multiple sections of this course with a maximum of fifty students per section will be offered every semester. This course is required for Computer Science and Information Science as well as several other majors.

  6. COURSE OBJECTIVES

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

    1. Write programs in an object oriented programming language (Java).
    2. Develop multiple components in writing programs.
    3. Effectively use the Java API.
    4. Define and implement abstract data types.
    5. Use abstract data types in application programs.
    6. Develop and appreciate efficient internal sort Algorithms.
    7. Analyze algorithms with Big-O notation.

  7. COURSE OUTLINE

    1. Review.
      1. Object oriented concepts.
      2. The syntax and semantics of the Java programming language.

    2. Programming Methodology.
      1. Analysis and specification.
      2. Class design.
      3. Pre/post conditions in method definition.
      4. Algorithm development.
      5. Component implementation and testing.
      6. Integration and testing.

    3. Event-Driven Programming.
      1. Java's event-handling model.
      2. Java's GUI components and Applets.

    4. Recursion.
      1. Tower of Hanoi, parsing, etc.

    5. Algorithm Analysis.
      1. The Big-O notation.
      2. Time/space efficiency.

    6. Abstract Data Types.
      1. Concepts.
      2. Stack & Queue.
        1. Basic concepts.
        2. Dynamic and static representation.
        3. Class/interface definition and implementation.
        4. Analysis.
        5. Use in applications.
      3. List.
        1. Basic concepts.
        2. various types and representations, linked lists, doubly-linked lists, rings, etc.
        3. Definition and implementation.
        4. Analysis.
        5. Use in applications.
      4. Binary Search Tree.
        1. Basic concepts.
        2. Definition and implementation.
        3. Analysis.
        4. Use in applications.
      5. Hash Table.
        1. Basic concepts.
        2. Definition and implementation.
        3. Analysis.
        4. Use in applications.
      6. O(n lg n) sorting techniques and their efficiency.
        1. Quick sort
        2. Merge sort.
        3. Radix sort.
        4. Heap sort.

    7. METHODS OF INSTRUCTION

      1. Lectures.
      2. Discussion.
      3. Lab Modules.

    8. COURSE REQUIREMENTS

      1. Readings from the textbook.
      2. Design and implementation of programs.

    9. MEANS OF EVALUATION

      1. Individual programming projects.
      2. Examinations.

    10. RESOURCES

      No additional resources are required.

    11. BIBLIOGRAPHY

      R. Sedgewick. Bundle of Algorithms in Java (Parts 1-5): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3ed), Addison Wesley, 2002.

      N. Dale, D. Joyce, C. Weems, and Rebelsky S. Data Structures In Java. Jones & Bartlett. 2002.

      F. Carrano and J. Prichard. Data Abstraction and Problem Solving with Java: Walls and Mirrors, Addison Wesley. 2002.

      R. Lafore. Data Structures and Algorithms in Java (2ed), Sams, 2002.

      S. Sahni. Data Structures, Algorithms and Applications in Java, McGraw-Hill, 2001.

      M. Campione, K. Walrath, and A. Huml. The Java(TM) Tutorial: A Short Course on the Basics (3ed), Addison-Wesley, 2000.

      D. Flanagan. Java Examples in a Nutshell: A Tutorial Companion to Java in a Nutshell (Nutshell Handbook) (2ed), O'Reilly & Associates, 2000.

      R. Richard Wiener and L. Pinson. Fundamentals of OOP and Data Structures in Java, Cambridge University Press, 2000.

      M. Weiss. Data Structures & Algorithm Analysis in Java, Peachpit Press, 1998.

      T. Standish. Data Structures in Java, Addison-Wesley, 1998.

      R. Kruse. Data Structures and Program Design in C. Prentice-Hall, 1991.

      R. Kruse. Data Structures and Program Design (2ed), Englewood Cliffs, NJ, Prentice-Hall, Englewood Cliffs, NJ, 1988.


    Document:
    URL:
    Last Update: