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: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 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% | A |
90% | |
| Midterm
Test |
25% | B |
80% | |
| Final
Exam |
35% | C |
70% | |
| D |
60% |