CS 150 - Data Structures and Algorithms, Spring 2020 |
Lecture:
Section 1: MWF 9:00 - 9:50 am in RISC 562
Section 2: MWF 11:00 - 11:50 am in RISC 562
Instructor: Ge (Frank) Xia
Office: RISC 567
Phone: 610-330-5415
Office hours:
MWF 10:00 - 11:00 am
Labs:
Section 01: MW 1:15-2:30 pm in RISC 360
Section 02: MW 2:45-4:00 pm in RISC 360
Section 03: MW 9:30-10:45 am in RISC 460
|
[Announcements]
[Labs]
[Description]
[Textbook]
[Grading]
[Schedule]
This course continues the development of object oriented approaches to the design and implementation of software systems.
Students will learn to analyze problems, algorithms and develop object-oriented solutions to problems.
Students will also learn to use multiple data structures and the accompanying algorithms to store,
index and retrieve data. Lecture/laboratory. (Formerly CS 103: Principles of Computer Science II.)
Prerequisite: CS104, CS105, or CS106 (CS I)
Course Objectives:
- (ABET Outcome 1) Analyze a complex computing problem and to
apply principles of computing and other relevant disciplines to
identify solutions.
- Students will demonstrate the ability to analyze, design,
apply and use data structures on various problems both in labs and
projects. The data structures include array list, linked list, stack, queue, binary
search tree, tree map/tree set, heap, hash map/hash set, and weighted graph.
- (ABET Outcome 2) Design, implement, and evaluate a
computing-based solution to meet a given set of computing
requirements in the context of the program's discipline.
- Students will be able to design, implement and evaluate their
solutions to projects assignments.
- (ABET Outcome 5) Function effectively as a member or
leader of a team engaged in activities appropriate to the
program's discipline.
- Students will be able to work in teams to analyze problems and
design solutions (based on needs) to problems presented. The solutions will require the use of a variety
of data structures and accompanying techniques/algorithms.
- (ABET Outcome 6) Apply computer science theory and
software development fundamentals to produce computing-based
solutions.
- Students will demonstrate the ability to apply current data
structures and algorithms to solve problems. In addition, students
will use current testing tools and approaches to evaluate and test
their solutions.
Writing Requirements:
This course satisfies the writing requirements (W) and as such:
- There will be at least 3 lab reports where students are required
to write reports of 3-5 pages. Each report will have the following
sections:
- Introduction/hypothesis.
- The methods used.
- The experiments conducted.
- The analysis of the data.
- Conclusion
- For each project (there are 3), students are required to write a
report of 5-8 pages. Each report will have the following sections:
- Introduction/hypothesis.
- The methods used.
- The experiments conducted.
- The analysis of the data.
- Conclusion
- References
-
Data Structures and Problem Solving Using Java 4th edition, by Mark
Allen Weiss, 2009. ISBN: 0321541405.
Optional Reading
- Head First Java, by Kathy Sierra and Bert Bates
- Effective Java, by Joshua Bloch
- Algorithms in Java, by Robert Sedgewick
The grades will be assigned based on a combination of lab assignments, projects, and exams. A sample of the
distribution of the course grade is shown below:
- Teamwork and classroom participation - 5%
- Midterm exam and quizzes - 35%
- Final exam - 25%
- Programming projects - 15%
- Lab assignments - 20%
- Lab Exam - pass/fail. A student must pass the lab exam in order to pass the course.
All assignments are to be turned in before the specified deadlines.
Assignments turned in later will not receive credit, unless the student has an allowed excuse.
An allowed excuse is an approved Dean's excuse or the instructor's
permission obtained prior to the fact.
Quizzes will be given in class
without prior announcement. If a student misses a quiz without an allowed
excuse, no credit will be given to the missing quiz. Midterm exam will be scheduled in advance.
Final letter grades for the course will be assigned based on the weighted
total of points earned, except in the case of a failed lab exam. A final grade of F will be assigned for the course if a student fails the lab exam.
Academic Honesty
All students must adhere to the college academic honesty policy in the Student Handbook. Discussion of concepts
with others is encouraged, but the work you submit in this course must be your own work, unless otherwise instructed.
Copying is strictly forbidden.
The Student Handbook of Lafayette College has a section on
Principles of Intellectual Honesty that defines academic dishonesty to
include:
- Use of other persons' writings without proper
acknowledgment,
- Use of reference material without properly crediting
sources used,
- Use of other students' work, with or without revision,
- Collaboration beyond the limits established by the
instructor,
- Submission of the same work in more than one course
A student who commits academic dishonesty is subject to disciplinary
actions including suspension or expulsion.
Attendance
Students are expected to attend classes unless there is an allowed excuse. If
a student misses a quiz without an allowed excuse, zeros will be given to
the missing quiz.
If a class is canceled due to weather or
other reason, you will receive an announcement from the instructor before
the class. Otherwise, you can expect the class to be held at the scheduled
time and place despite the weather. Canceled classes will be made up at
another time.
Changes may be made according to the progress of the course.
- Java, Object-Oriented Programming, Collections API
- Algorithm Analysis
- Sorting Algorithms
- Basic Data Structures: Lists, Stacks, Queues, Hash Table
- Trees, Binary Search Trees, Red Black Trees, Heaps
- Graphs, Graph Representations, Basic Graph Algorithms
Federal Credit Hours:
The student work in this course is in full compliance with the federal
definition of a four [two or one as appropriate for half and quarter
unit courses] credit hour course. Please see the Registrar’s Office web
site (http://registrar.lafayette.edu/additional-resources/cep-course-proposal/)
for the full policy and practice statement.
|