COSC2100/COSC2010: Data Structures and
Algorithms I
Syllabus
Course Objectives
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
apply them.
- Analyze the asymptotic performance of
algorithms.
- Implement, analyze, and apply basic sorting and searching
algorithms.
General Info
Meeting
hours:
MW
2:00 -
3:15PM
Meeting place: Cudahy Hall
114
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
Textbook
-
Object-Oriented Data Structures Using Java,
3rd edition.
Jones & Bartlett Learning, 2012. ISBN:
9781449613549. [Required]
Course Website
http://www.mscs.mu.edu/~rge/cosc3100
Prerequisites
COSC 1010 or EECE1610; knowledge of JAVA
or
COSC1020, and MATH2100, which can be concurrently
taken.
Computing Environments
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.
Assignments
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
introduced.
Programming
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
posted on
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.
Exams
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
Grading
Attendance --
5%
Quiz -- 10%
Assignment -- 50%
Midterm exam I -- 10%
Midterm exam II -- 10%
Final exam --
15%
Grades:
A |
92 and above |
AB |
86-91 |
B |
80-85 |
BC |
74-79 |
C |
68-73 |
CD |
62-67 |
D |
56-61 |
F |
55 and below |
A
grading error should be brought to
the instructor's attention within one week after grades are posted.
*Note:
Students must pass BOTH the exam portion of the grade AND the homework
assignment portion of the grade to pass the course overall.Course Policies
- Students are responsible for checking the
course website for announcements, assignments and due dates, and lecture
notes.
- 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
the Academic
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.