Welcome to Data Structures and Algorithms!
All the projects/labs/lectures will be distributed on Moodle.
Instructor Information
- Lecture Instructor: Prof. Jia Tao
- Email: taoj at lafayette dot edu
- Office: RISC 563
- Office Phone: (610) 330-3336
- Office Hours: see Moodle
- Lab Instructor: Prof. Jonathan Dahl
- Email: dahlj at lafayette dot edu
- Office: RISC 467
- Office Phone: (610) 330-5270
- Office Hours: see Moodle
Course Information
- Textbooks:
zyBooks CS150: Data Structures and Algorithms.
-
Prerequisite:
CS104, CS105, CS106, CS AP Score >=4 , or an approved equivalent.
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.
Course Goals and Outcomes
Course Goals:
After successfully completing this course, the student will be able to:
- Students will demonstrate the ability to analyze, design, apply and use data structures on various problems both in lab and as projects. The data structures include the important collection classes such as array list, linked list, stack, queue, binary search tree, tree map/set, heap, hash-map/-set, and weighted graph.
- Students will be able to design, implement and evaluate their solutions to problems assigned in lab and in the classroom.
- Students will demonstrate the ability to analyze, design, apply and use data structures to solve problems.
- Students will be able to work in teams to analyze problems and design different solutions (based on needs) to problems presented in the classroom. The solutions will require the use of a variety of data structures and accompanying techniques/algorithms.
- 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.
- Students will learn how to experimentally and analytically determine the complexity of various algorithms and operations on data structures. The information will be used to determine the appropriate design choice of data structure and algorithms to solve problems.
Course Outcomes:
At the conclusion of this course students will be able to do the following.
- ABET/CAC Outcome 1: Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- ABET/CAC 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.
- ABET/CAC Outcome 5: Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- ABET/CAC Outcome 6: Apply computer science theory and software development fundamentals to produce computing-based solutions.
Course Schedule
Students are expected to read the specified chapters in the textbook and assigned articles before coming to class. This will enable students to participate fully in the class discussions and exercises, and gain the maximum benefit out of the class meetings.
The schedule below is tentative and will be updated as needed.
WEEK | DATE | TOPICS | COMMENTS |
---|---|---|---|
1 | 8/28-9/1 | Introduction | |
2 | 9/4-9/9 | Classes and Inheritance Generics, Exceptions |
9/8: Add/Drop deadline |
3 | 9/11–9/15 | More Exceptions Lists and ArrayLists |
|
4 | 9/18–9/22 | Recursion | |
5 | 9/25–9/29 | Complexity | |
6 | 10/2–10/6 | Sorting | |
7 | 10/9–10/13 | Advanced Sorting, Trees | 10/9-10: Fall break! |
8 | 10/16–10/20 | Balanced Trees | 10/20: Mid-term grades due |
9 | 10/23–10/27 | Balanced Trees | |
10 | 10/30–11/3 | Advanced Trees | |
11 | 11/6–11/10 | Heaps | |
12 | 11/13–11/17 | Graph Basics | 11/14: Last day to withdraw |
13 | 11/20–11/24 | Advanced Graphs | 11/22-24: Thanksgiving break! |
14 | 11/27–12/1 | Hashing, Dictionaries | |
15 | 12/4–12/8 | Review | 12/8: Last day of class |
Important Dates:
- Normal Add/Drop deadline: September 8
- Fall break: October 9-10
- Midterm grades due: October 20
- Last day to Withdraw (WD): November 14
- Thanksgiving holiday: November 22-24
- Classes end: December 8
- Reading days: December 9-11
- Final Exams: December 12-19
Grading
Evaluation methods:
The course grade will be computed as a weighted average of different components listed below:
zyBook readings | Projects | Lab Assignments | Midterm | Final Exam | Lab Exam | |
15% | 20% | 20% | 20% | 25% | A student must pass the lab exam in order to pass the course |
Grading Scale:
Typically, grades are assigned as follows from your final numerical grade:
Excellent | Good | Satisfactory | Passing | Failure |
A: >=93 | B+: >=87 and <90 | C+: >=77 and <80 | D+: >=67 and <70 | F: <60 |
A-: >=90 and <93 | B: >=83 and <87 | C: >=73 and <77 | D: >=63 and <67 | |
B-: >=80 and <83 | C-: >=70 and <73 | D-: >=60 and <63 |
As per college policy, the course letter grade of “A” indicates excellent, “B” indicates good, “C” indicates satisfactory, and “D” indicates passing.
Assignment Grading:
Your submitted programs (for labs, projects, and exams) would be graded based on:
- Correctness: Correctness is an objective criterion, which means that the program behaves according to the requirements explained in the assignment in all possible cases.
- Good Style: Good style refers to the way the program text looks. This includes commenting and correct indentation. We will discuss different aspects of good programming style as we learn how to program.
- Good Design: Good design is a harder criterion to describe. It affects both the execution of the program and its readability. Characteristics of a good design will be illustrated throughout the course.
Course Policies
Submission for assignments
- You must submit your assignments by due time.
- If your project does not work as described in the assignment, you are required to hand in an additional text document which specifies what does not work.
- NO LATE SUBMISSION IS ACCEPTED unless you have a Dean’s Excuse. Moodle assignment submission link will be closed promptly at the deadline. Submissions made after the due time (for example, via email) will not be graded. If you cannot finish the project before the deadline, please make sure to submit what you have before the deadline.
Lab Attendance
You must attend your lab period if you have not submitted the current lab for grading. Failing to attend lab unexcused will result in inability to submit that week’s lab (unless the lab has already been submitted).
Repository and Intellectual Property Policy
- Digital repositories have become a common tool for collaboration. These repositories include: GitHub, Google drive, etc. Do not default to public permissions! Make your work private.
- If you are working with a group, have one group member create a separate repository for the group, with only the group members having access permission.
Proper Usage of Course Material and Classroom Recordings
At Lafayette College, all course materials are proprietary and for class purposes only. This includes posted recordings of lectures, worksheets, discussion prompts, and other course items. Reposting such materials or distributing them through any means is prohibited. Such materials should not be reposted or distributed through any means. You must request my permission prior to creating your own recordings of class materials, and any recordings are not to be shared or posted online even when permission is granted to record. If you have any questions about proper usage of course materials please ask me. Please also be in contact with me if you have any concerns with being recorded during the course.
Online discussions in Moodle occurring during synchronous class sessions should also remain private and not be shared outside of the course. Courses using Moodle will make student information visible to other students in this class. Student information in courses is protected by the Family Educational Right to Privacy Act (FERPA). Disclosure of student information to unauthorized parties violates federal privacy laws and it must not be shared with anyone outside the class. Questions can be referred to the Registrar’s Office.
Electronic Devices in the Classroom:
You should use your computer for learning only. No other use of electronic devices is permitted during class time, including listening to music, watching a movie, emailing, surfing the Internet, texting, tweeting, Facebook surfing, etc. There will be grade or other penalties for violations of this policy.
Intellectual Honesty:
The college has strict guidelines on intellectual honesty. Please read the policy here.
- All students are expected to adhere to the college policy on academic honesty as listed in the Student Handbook. Discussion of concepts with others is encouraged, but all assignments must be done by yourself or your own team as specified in each assignment requirements. If you use any source other than the text, reference it/him/her, whether it is a person, a book, a solution set, a web page or whatever. You MUST write up the solutions in your own words.
Any violation of these principles may result in a failing grade in this course. - 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, including:
- Sharing code: copying, retyping, looking at, supplying file.
- Describing code: Verbal description of code from one person to another.
- Helping write code line by line.
- Searching web for solutions.
- Submission of the same work in more than one course
What is not cheating?
- Talking about general concepts or high level design.
Students are also not allowed to use advanced automated tools (artificial intelligence or machine learning tools such as ChatGPT or Dall-E 2) on assignments in this course. Each student is expected to complete each assignment without substantive assistance from others, including automated tools.
The use of any prohibited AI tools in this class will be regarded as plagiarism. If you are uncertain whether the AI tools you are utilizing comply with the AI policy of this course, I encourage you to discuss it with me without hesitation. Maintaining academic integrity is of utmost importance, and I am here to clarify any concerns you may have regarding the AI tools you plan to use. It is your responsibility to ask questions if you are uncertain about the usage of any generative AI tools in this course.
A student who commits academic dishonesty is subject to disciplinary actions including suspension or expulsion.
Respect for classmates, colleagues and team members:
All students are expected to show respect and courtesy to each other. Mutual respect is a high ideal in academic, business, and personal life. It is central to learning well together. Disagreements over ideas or constructive criticism of someone’s work is in keeping with this ideal. Attacking or disparaging someone is not, and will not be tolerated. In group projects, mutual respect also includes reliably contributing to the project and keeping your commitments to the group.
We follow the College Diversity Statement which says in part:
All members of the College community share a responsibility for creating, maintaining, and developing a learning environment in which difference is valued, equity is sought, and inclusiveness is practiced.
Privacy:
Moodle contains student information that is protected by the Family Educational Right to Privacy Act (FERPA). Disclosure to unauthorized parties violates federal privacy laws. Courses using Moodle will make student information visible to other students in this class. Please remember that this information is protected by these federal privacy laws and must not be shared with anyone outside the class. Questions can be referred to the Registrar’s Office.
Equal Access:
In compliance with Lafayette College policy and equal access laws, I am available to discuss appropriate academic accommodations that you may require as a student with a disability. Requests for academic accommodations need to be made during the first two weeks of the semester, except for unusual circumstances, so arrangements can be made. Students must register with the Office of the Dean of the College for disability verification and for determination of reasonable academic accommodations.
Federal credit hour statement:
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 Registrars Office Website (http://registrar.lafayette.edu/additional-resources/cep-course-proposal/) for the full policy and practice statement.
Useful Links
- Java documentation
This will be where you will go for a reference.