COSC2100/COSC2010: Data Structures and
This course introduces students to the basic data structures, and the
analysis and design of basic algorithms. Data structures and types covered
include: stacks, queues, lists, trees, graphs, and hash tables, and algorithms covered include
recursion, sorting, and selection.
Upon successful completion of this course, students will be able to do the following:
- Demonstrate the familiarity with basic data
structures and sorting algorithms.
- Describe basic data structures, implement and
- Analyze the asymptotic performance of
- Implement, analyze, and apply basic sorting and searching
Meeting place: Cudahy Hall
Instructor: Rong Ge
Office hours: MW 9:30 - 11:00AM at CU320 or by appointment
through email rong dot ge at
marquette dot edu or phone call (414)288-6344
Object-Oriented Data Structures Using Java,
Jones & Bartlett Learning, 2012. ISBN:
COSC 1010 or EECE1610; knowledge of JAVA
COSC1020, and MATH2100, which can be concurrently
This course teaches the basic techniques for
analyzing and designing data
structures and algorithms that apply to all programming languages. In practice,
JAVA is adopted for algorithm implementation in this course. While students are free to use any
integrated development environment for
programming assignments, they are encouraged to use
Eclipse, which is installed on
computers at CU310 and CU101. If a student would like to use his/her own
computer for assignments, he/she takes the full responsibility to build and maintain the environment.
Students will read each chapter of the textbook. Corresponding quiz
assignments will be posted on D2L and are due at noon on the day the chapter is
assignments will be given during
the semester. Assignment problems are designed to reinforce the understanding
of the course material through practice, and prepare students for tackling
real-world problems. They are also helpful for preparing the exams. The assignments and due dates will be
the schedule at the course website.
There will be a detailed description for each
programming problem. Students are supposed to generate test cases and test the
programs themselves. The source codes will be submitted through turnin system. Late assignments
within a certain period will be accepted but with penalties.
Two in-class midterm exams and one final exam
are scheduled for this course. The dates for the midterms are tentative.
Midterm exam I: Sept. 29
Midterm exam II: Nov. 3
Final exam: Dec. 10, Wednesday 1:00-3:00PM
Quiz -- 10%
Assignment -- 50%
Midterm exam I -- 10%
Midterm exam II -- 10%
Final exam --
grading error should be brought to
the instructor's attention within one week after grades are posted.
||92 and above
||55 and below
Students must pass BOTH the exam portion of the grade AND the homework
assignment portion of the grade to pass the course overall.
- Students are responsible for checking the
course website for announcements, assignments and due dates, and lecture
- Attendance will be taken every class. Each
student is allowed a total of three excused absences without losing
attendance points in this course. More than three excused absences are
treated as unexcused. The first unexcused absence results in a loss of one
point, and the second/third unexcused absence results in a loss of two
points. Student exceeding six excused absences or three unexcused absences
may be Withdrawn for Excessive Absences (WA) by the deadline of 11/14/2014.
- Late Assignments: 10% penalty for 1-2 days
late; 25% penalty for 3-4 days late; 40% penalty for 5 days late. After 5
days no submissions will be accepted. Note weekends count.
- There will be both individual and team
assignments. Each student should write the codes and solutions by
herself/himself for individual assignments, and may not share
source code with others. Plagiarism will result in a score
of zero on the assignment or exam, and/or dismissed from the course. Review
honesty code for details.
- It is acceptable to discuss with classmates a
programming assignment in a general way, i.e., to discuss the nature of the
assignment. Students may help (and get help) with debugging.
Debugging is part of the
programming assignment. If help from the instructor for
debugging is really needed as the last resort, go to the instructor's office hours or make an appointment. Do
not send source codes in emails.
- Exams must be taken on the hour that are
scheduled. They can be rescheduled for individuals only if
documented evidence of medical or family emergency is presented
before the time of the exam.