Objects and Algorithms

I.     Course Prefix/Number: CSC 255

       Course Name: Objects and Algorithms

       Credits: 3 (3 lecture; 1 lab)

II.    Prerequisite

Recommended: MAT 144 with minimum grade of C. Required: CSC 240, CSC 241, or CSC 242 with minimum grade of C.

III.   Course (Catalog) Description

An intermediate programming course that continues the development of object-oriented techniques and data structures with an emphasis on graphs, sets, maps, hash maps/tables, heaps, and trees; foundational analysis and design of various algorithms that exhibit recursion, backtracking, divide and conquer, greedy strategies, branch and bound, dynamic, and randomization programming techniques and number generation; cryptography; introductory parallel programming techniques; includes an analysis of time and memory complexity using discrete metrics; sorting and searching techniques. The course is offered with an option for choice of programming languages (C++ or Java or Python).

IV.   Learning Objectives

  1. Implement object-oriented programming techniques including the use and development of various data structures via dynamic or static memory allocation.
  2. Classify the algorithmic complexity of functions or discrete code blocks with iteration by using discrete mathematical metrics such as Big-O notation.
  3. Identify or develop the implementation of algorithms to find solutions for various advanced programming problems involving a variety of object-oriented data structures and analyze the results.
  4. Explain the role of using random/pseudorandom number generation in cryptography.
  5. Implement sorting and searching algorithms involving data structures such as binary trees and tables to solve programming problems and analyze the results.
  6. Implement distributed and multi-threaded algorithms through the use of parallel schemes to solve problems and analyze the results.

V.    Academic Integrity and Student Conduct

Students and employees at Oakton Community College are required to demonstrate academic integrity and follow Oakton's Code of Academic Conduct. This code prohibits:

• cheating,
• plagiarism (turning in work not written by you, or lacking proper citation),
• falsification and fabrication (lying or distorting the truth),
• helping others to cheat,
• unauthorized changes on official documents,
• pretending to be someone else or having someone else pretend to be you,
• making or accepting bribes, special favors, or threats, and
• any other behavior that violates academic integrity.

There are serious consequences to violations of the academic integrity policy. Oakton's policies and procedures provide students a fair hearing if a complaint is made against you. If you are found to have violated the policy, the minimum penalty is failure on the assignment and, a disciplinary record will be established and kept on file in the office of the Vice President for Student Affairs for a period of 3 years.

Please review the Code of Academic Conduct and the Code of Student Conduct, both located online at
www.oakton.edu/studentlife/student-handbook.pdf

VI.   Sequence of Topics

  1. Object-Oriented Programming
    1. inheritance
    2. polymorphism
    3. encapsulation
  2. Algorithmic Complexity Metrics
    1. big and little O notation
    2. big omega and theta notation
    3. recurrence relations
  3. Abstract Data Types
    1. sets and multisets/maps
    2. graphs
    3. heaps
    4. hash tables
    5. trees
  4. Algorithmic Paradigms
    1. divide and conquer
    2. greedy methods
    3. back-tracking
    4. random number generators
    5. distributed algorithms

VII.  Methods of Instruction

Lectures, class discussion, individual and group projects, and use of a computer laboratory.
Course may be taught as face-to-face, hybrid or online course.

VIII. Course Practices Required

Reading of the text is required for understanding the material. Use of a computer laboratory is necessary to learn the design of software.

IX.   Instructional Materials

Note: Current textbook information for each course and section is available on Oakton's Schedule of Classes.

Data Structures and Algorithm Analysis in JAVA
Edition: 3rd
Author:
WEISS
ISBN: 9780133001358
Copyright Year: 2012
Publisher: Pearson

and/or

Data Structures and Algorithm Analysis in C++
Edition: 4th
Author:
WEISS
ISBN: 9780133404180
Copyright Year: 2014
Publisher: Pearson

X.    Methods of Evaluating Student Progress

Quizzes, written homework, computer assignments, major examinations and a final examination will be used.

XI.   Other Course Information



If you have a documented learning, psychological, or physical disability you may be entitled to reasonable academic accommodations or services. To request accommodations or services, contact the Access and Disability Resource Center at the Des Plaines or Skokie campus. All students are expected to fulfill essential course requirements. The College will not waive any essential skill or requirement of a course or degree program.

Oakton Community College is committed to maintaining a campus environment emphasizing the dignity and worth of all members of the community, and complies with all federal and state Title IX requirements.

Resources and support for
  • pregnancy-related and parenting accommodations; and
  • victims of sexual misconduct
can be found at www.oakton.edu/title9/.

Resources and support for LGBTQ+ students can be found at www.oakton.edu/lgbtq.