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]


Announcements


Labs

  • On Moodle

Course Description

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:
    1. Introduction/hypothesis.
    2. The methods used.
    3. The experiments conducted.
    4. The analysis of the data.
    5. 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:
    1. Introduction/hypothesis.
    2. The methods used.
    3. The experiments conducted.
    4. The analysis of the data.
    5. Conclusion
    6. References

Textbook

  • 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

Grading Policy

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. 

Topics Covered

Changes may be made according to the progress of the course.

  1. Java, Object-Oriented Programming, Collections API
  2. Algorithm Analysis
  3. Sorting Algorithms
  4. Basic Data Structures: Lists, Stacks, Queues, Hash Table
  5. Trees, Binary Search Trees, Red Black Trees, Heaps
  6. 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.