CIS 292 - Data Structures in Java

Course Objectives

Introduce the structured representation of data in computer systems and programming languages.  Create structures that maintain complex data relationships in order to access, search through and modify that data in an organized and efficient manner.  Analyze the time and size efficiency trade-offs of the various data structures and access algorithms.

Desired Outcomes

Using a programming language to create data structures.  Organizing data into lists, trees, stacks and queues and developing efficient algorithms to access that data using iteration and recursion to solve complex, real-world problems.  Familiarity with other complex data structures such as graphs.

Learning Outcomes

Students will collaboratively design and then individually implement a robust set of tools to efficiently and elegantly organize data, with optimized access methods, in a set of classes and process a dataset developed by the students themselves, but distributed or produced by the instructor.  Students will build test cases to analyze their solutions and have an opportunity to make corrections and adjustments.

Course Focus and Required Software

This course will focus on the abstract theory and practical application of concepts for data organization and access.  The available labs on campus provide the (formerly) Sun Microsystems (now re-branded as Oracle) Java Runtime Environment (JRE) and the Java Standard Edition (Java SE) Development Kit (JDK) command line tools on Windows and Linux workstations.  [Nota Bene, the original corporate identification of Sun Microsystems with the Java language is officially re-branded to Oracle with the release of the Java 7 JDK]

Students may download the free Java Standard Edition Development Kit (Java SE JDK) from Oracle, for any platform (except OS X), to complete their assignments elsewhere than the labs (students using OS X can use the JDK pre-installed by Apple).

There are many free graphical (or visual) Integrated Development Environments (IDEs) for programmers to use with their Java projects.  Some are even provided in the available labs on campus; however, while students may use these to develop their work, they may not use them when submitting their assignments for credit.  Students must demonstrate proficiency with the Command-Line Interface (CLI) on every project they deliver and be able to explain every file in their completed projects.

I will take no class, lab, office or email time teaching, explaining, researching or debugging the various IDE applications as they have almost nothing to do with understanding Java programming and nearly everything to do with confusing it.  These tools, while important for advanced programmers and professionals, obscure some of the important language details for learners.  Programmers should understand the hosting file systems, all of the contents of their projects and the purpose of every resource they employ.  One of the key benefits of IDEs is that they abstract these details (for those that already know what they are doing).

Prerequisites

Successful completion of either:
or their equivalents with grades of Credit or C or higher.

Students who have met the above requirements at other institutions must transfer their records to this institution and make sure the courses on their transcripts map to those delivered here for programmatic clearance of the prerequisites.  Students that feel they have met the prerequisites via equivalences in other ways must complete a Requisite Clearance Request Form, have it signed by the SEM (Science, Engineering and Mathematics) Division Dean, and deliver it to the counseling department (preferably) 10 business days prior to the start of the semester in order to avoid possible delays that could result in missing the enrollment deadline (which is the end of the second week of classes).

Further, as this course draws upon more mathematical concepts than that of any other in CIS, it is strongly recommend that students have successfully completed Math 150 - Precalculus Mathematics, or its equivalent with a grade of Credit or C or higher, or are taking it concurrently with this course.  Please note also that Computer Science transfer students will need to successfully complete Math 170 - Analytic Geometry and Calculus I and Math 190 - Analytic Geometry and Calculus II in order to transfer to a CSU or UC institution.

Required Text Books
 
Data Structures Using Java Data Structures Using Java
D.S. Malik, P.S. Nair
Course Technology, 2003

ISBN 978-0-619-15950-4, 0-619-15950-2



Policies, Grading and Other Information

Grading

Activity 
  Weight
Overall Grade 
  Required Score
Lab Assignments and Quizzes 
  40%

  90%
Midterm Test 
  25%

  80%
Final Exam 
  35%

  70%
   

  60%