CSIS 3103 - Data Structures


Home
Class Info
Schedule
Assignments
Resources
Gradebook

Textbook: Data Structures: Abstraction and Design Using Java, 2nd. ed., by Koffman & Wolfgang, © 2010 Wiley Publishing, ISBN: 0470128704 (book info)

Description:

This course builds on the skills learned in the Programming and Problem Solving sequence. The primary focus of the course is on the definition, specification, implementation, and use of the classic data structures and supporting algorithms that are commonly used in modern software systems. Data structures to be studied include lists, stacks, queues, trees, graphs and hash tables. Algorithm analysis will also be studied, with a focus on the efficiency of searching and sorting methods. Programming projects will provide experience in applying the concepts covered in the course.

Prerequisites:

CSIS 2102 and MATH 2225

Q2:

Parts of this course involve applying mathematical ideas to the course content. This includes, but is not limited to analysis of algorithm complexity, recursion, sets, trees, and graphs.

Course Learning Objectives:

The CSIS Program has established a set of learning goals which form the educational foundation for obtaining employment as a computing professional and/or preparing for graduate studies. The focus of this course is on the Technical Growth Goals, which include improving analytical thinking ability and gaining knowledge and practice in innovative programming and problem solving techniques.

The primary objectives of this course include

  1. Learning the fundamental principles, theories, and concepts of organizing data for efficient and reliable storage and access.
  2. Learning to apply these principles, theories, and concepts to solve software design problems.
  3. Learning to analyze and critically evaluate alternative data structures and their implementations based on their effectiveness and appropriateness for various problem domains.

To achieve these objectives, the concepts to be learned include:

Learning Experiences:
 
The format of this course will include a combination of lectures, readings, labs, programming projects and homework exercises.

Lectures will present concepts related to classic data structures and supporting algorithms. Textbook readings will accompany material covered in class and should be used in conjunction with class meetings. Practice exercises from the textbook will a means of checking your understanding of the concepts covered. Homework exercises may sometimes be collected and graded.

Lab sessions will provide a guided introduction to using the development tools and practice using these tools. Labs will also be used to review Java concepts and introduce software engineering techniques. Lab sessions meet in CC103 on Sep 15, Sep 22, Sep 29, Oct 20, and Oct 27.

Programming projects will provide more in depth practice with the implementation and application of the data structures covered in the course.

Note: Programming related courses are notoriously time consuming. Expect programming assignments to take a significant amount of time to complete.  More than 10 hours per week per assignment is typical.

Grading:

Labs, Homework, Quizzes 15%
Programming assignments 30%
3 Tests (2 @ 20%, 1 @ 15%) 55%

There are two components to learning assessment in this course:

Assignments

The assignments are important. Much learning occurs by solving problems and writing programs. To qualify for a C or better you must satisfactorily complete sufficient materials to earn a C in the assignments, labs and homework components.
 
This course has 5 lab assignments and usually 4 or 5 programming projects.  Other written assignments may be given, such as solving textbook exercises. The actual number of assignments will be determined during the semester.

Programming assignments are due at midnight on the deadline date. Programming assignments will be electronically submitted.

Written assignments are due in class on the date indicated.

Late assignments will be accepted if turned in within one week of the due date, but will be subject to a penalty of up to 25%. Late assignments will not be accepted more than one week after the due date.

Exams

The exams are important. For example, getting an A average on assignments but a B average on the exams can result in a B in the course. By spending enough time on the assignments anyone should be able to do well on them, but scoring well on the exams shows real understanding.

Each of the two exams with the best scores will count as 20% of the final grade and the lowest will count as 15%.

Make-up exams are generally not given unless extreme circumstances occur.

There will be short online quizzes covering material from the text. Dates will be announced in advance. There are no make-ups for quizzes.
 
Evaluation criteria

The expected levels for achieving the major letter grades in this course are
 
A- : 90%, B- : 80%, C- : 70%, D- : 60%.
 
Grades may be "curved" at the discretion of the instructor. The final curve will be determined at the end of the semester and will never be higher than that shown above. If everyone does A work, everyone will get an A grade.

(The above reflects the major grade divisions only. The College's +/- grading scheme will be used within this and will be determined by the actual distribution of total points earned.)

Academic Honesty:

The college Academic Honesty Policy and Procedures will be followed. As stated in these guidelines

 

The College makes two primary demands of its students and staff: 1) that each individual exercise the utmost care in planning and preparing the work presented for academic consideration, and 2) that members of the academic community conscientiously ensure the validity and protect the integrity of academic work and the grades earned for such work.

 

Academic dishonesty is a serious violation of academic policy and the Campus Conduct Code, and is punishable by severe sanctions including suspension and expulsion. The range of sanctions imposed is contingent on several factors, including the decision of the faculty member making the charge, whether it is the student’s first or a repeat offense, and the extent and nature of the offense.

In this course, you are encouraged to discuss homework and programming problems with each other. Most of the labs and programming projects may be done in pairs. All such assignments will specify if they are to be done individually or optionally in pairs. Copying source code files from any source is considered plagiarism -- if you share files with other students, you also will share any points received. Submissions may be checked using automated software.

Attendance:

Attendance at all class sessions is expected. Students are responsible for all material covered or assigned in class.

Home
Class Info
Schedule
Assignments
Resources
Gradebook