CS230 P: Data Structures

(with Daily Practice in Java)

Fall 2024

about us
DrJava

About CS230P

big ideas in this course


  • Data Abstraction - Separate a program's behavior from its implementation
  • Modularity - Reusable components with standard interfaces
  • Performance Analysis - How efficient is your code with respect to space and time?
  • Standard Abstract Data Types - We'll cover the classical data structures including lists, stacks, queues, trees, tables and graphs.

learning goals for CS230P


Upon completion of this course, students should be able to:

  • Solve substantial computational problems by using the Java programming language.  
  • Identify abstract data types and fundamental algorithms and summarize their typical uses, strengths, and weaknesses.
  • Use and modify various data structures including lists, stacks, queues, trees, tables and graphs.
  • Understand tradeoffs between different implementations of an abstract data type.
  • Analyze runtime efficiency of searching and sorting algorithms and abstract data type operations.

Meet your instructors & tutors

Click here for CS230P drop-in calendar


Click here for Schedule


Administrative details



Welcome to CS230P

The Wellesley course on Data Structures (in Java) is the main gateway to several majors, especially for a CS major and it is taught in three versions: CS230P, CS230R, and CS230X. CS230P covers essentially the same topics as the other CS230 sections. A difference is that CS230P puts more emphasis on coding practice and less emphasis on software design techniques.
The CS230P version is designed to be low-stress regarding grades, while rewarding students’ own learning efforts. Students are rewarded for taking the time to learn through daily Practice (that’s what the P means in CS230P). Learning well takes time, and students should be allocating at least 2 hours a day to practice the material.
Passing CS230P guarantees that you are a competent programmer and that you have the skills to succeed in the CS major.

Required Textbook. An essential instrument of the course is an online interactive textbook, the CS230P zybook, especially designed for this section. Every student is required to purchase access to the interactive book, and that costs $99. We understand that the cost of textbooks can be a significant financial burden for some students. To ensure that all students have equal access to the course materials, we offer a limited number of scholarships to cover the full cost of the required textbook. If you are experiencing financial difficulties and would benefit from this assistance, we encourage you to apply for a textbook scholarship. All applications will be reviewed confidentially by the CS Academic Administrator (not your instructors), and recipients will be notified promptly. Follow these instructions to access your copy of the book:

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBook code: WELLESLEYCS230PFall2024
  3. Subscribe

Reading and Practicing. Students are required to read the assigned sections and complete the assigned activities.
You are expected to allocate 2-3 hours every day practicing the course material. Studying the material daily is much more effective than spending several hours once a week.
Keeping up with the reading and practicing is essential to succeeding in the course and in learning the material well. Your instructors can only do the teaching and help you with your study, but they cannot force you to learn the material.
Learning is something that only you, the student, can do.

The book has three kinds of practicing color-coded activities:

How to succeed in CS230P

Look at your calendar and allocate the hours that you will be working on the course activities. They do not have to be consecutive hours, in fact it would be better if they spread out over the period of a day because our brains need time to digest what we learn.
Think of your practicing hours as meeting times for the course.

Your instructors want you to succeed, and we will do all we can to help you learn the material and become a strong programmer. Here are a few things you can do to succeed in this course.

The Prerequisite for CS230P is CS111, Computer Programming and Problem Solving.
If you have not completed successfully CS111, you must obtain permission by the instructor to enroll to this course.

Using your own computer: Programming in CS230P will be done using the programming environment in the interactive zyBook and the BlueJ environment. If you want, you can use your own computer but you will have to maintain the software, and be prepared to use the department's machines if yours has problems. Sorry, the course instructors will not be able to help you trouble-shoot problems in your own computer.

Course Discussion This semester we will be using the cs-230p-01-fa24@wellesley.edu group email address for class discussion. If you have registered in the course, you already have access to this resource. When you send a message there, every student in the class receives it. (This means, if you need to talk to the instructors confidentially, email them directly.)
The group email is useful to getting you help from classmates, the tutors, and the instructors. We encourage you to email your questions using an appropriate subject line.
Your instructors will use cs-230p-01-fa24@wellesley.edu for several purposes. We will use it to make class announcements, such as corrections and clarifications of material discussed in class. We encourage you to post questions or comments that are of interest to students in the course.
Please do not post significant amounts of Java code (i.e. more than one or two lines of code) in your messages on the group! The instructors and TAs will read messages posted in the group on a daily basis and post answers to questions found there.
Please note that this is a tool for you to interact with your peers. Answering questions is one of the best ways to learn something, so try to answer each other's questions. Also, as a reminder, there are no such things as stupid questions, and the act of formulating your question carefully is also an important part of the learning process. Writing is thinking. So please don't be shy to ask any question that might pop up. To encourage this, please make sure that your questions are public to your peers as well as your instructors.

Java Documentation Being able to understand and use the official Java Documentation is a characteristic of every successful programmer. Become familiar with it!

Learning together. You are strongly encouraged to form study teams when reading and complete Participation Activities. You cannot get those wrong, but you need to learn why you got it wrong and correct it. In addition, students are required to complete the zyLabs on their own. In all types of activities you get credit for completing them.


Course Requirements

Attend Lectures There are two 75-minute lectures on Mondays and Wednesdays that will introduce the main content of the course. These lectures are at the end of the day, and you are strongly encouraged to stay after class to work on the course material.

Attending one 110-minute in-person lab each week is a requirement for all students. There are two types of Practice Labs: zyLabs included in the book, and in-person Tuesday Lab work includes exercises to review and reinforce the lecture material and to develop general programming, testing and debugging skills. The labs will also provide further opportunity to ask questions about course material.
In labs you will be working either with a partner, or individually. In general, note that some labs might contain more tasks than can reasonably be done in the available class time. This is on purpose! Labs are not a race to the finish line, but are your opportunity to practice and explore the material together with your partner.

Tutors: CS230P is fortunate enough to have a number of excellent peer tutors: students who have taken the course in the past and want to help others to succeed. They each hold café (drop-in) hours for two hours each week, and they are also available for one-on-one tutoring. Here are some norms you should remember:

Project: Throughout the semester, project teams of 3-4 students work on an extended programming project from scratch. Your instructors will provide the general description of the project and you will have to write the specifications, and implement it based on the specifications.


Learning Evaluations (aka: Grading Policy)

Active class participation is expected of every student who wants to succeed in the course, and includes (but is not limited to) attendance, participation in class discussions, and completing lab tasks and activities. Please note that if you miss class for any reason, it's your responsibility to obtain the class notes and topics from fellow peers (Courselore can be a resource here!).

You will be assessing your learning through weekly progress assessments (typically on Mondays). Progress assessments are of the same complexity as the weekly Activities and the zyLabs, but selected so that they can be completed in 20 minutes on paper, at the beginning of the class. They serve as incentives to solidify your learning without falling behind. They are on the topics covered in the course since the beginning of the semester (not just the previous week).

Final Grades Grades will be recorded in gradescope. Your final grade for the course will be computed as a weighted average of several components. The relative weight of each component is shown below:

There is no arbitrary limit on the number of A's, B's, C's etc., and every student will be assigned the grade they earn and deserve according to the grading standards of the college.

Collaboration Policy

Here is overview on our collaboration policy, and it is followed by a more detailed explanation below:

We believe that collaboration fosters a healthy and enjoyable educational environment. For this reason, we encourage you to talk with other students about the course material and to form study groups.

Programming in this course can be challenging. Also teamwork and large-scale collaboration is the norm in the CS industry. Given the above, some of the assigned work is required to be done paired with a partner from the class, while some is required to be done individually. Each task will be clearly marked as either 'individual' or 'pair-programming'. The two team members must work closely together on the pair-programming tasks, and turn in a single copy of work they did together.

Pair Programming

Pair-programming tasks are subject to the following ground rules:

In general, teams are allowed to discuss tasks with other teams and exchange ideas about how to solve them. However, there is a thin line between collaboration and plagiarizing the work of others. Please do not cross this line.

Each team or individual student must compose their own solution to each task. Discussing strategies and approaches with classmates and receiving general debugging advice from them is acceptable and encouraged. However you (and your partner) are required to write and debug all of your code. Furthermore, you should never look at another student's code. For example, it is OK to borrow code from the textbook, from materials discussed in class, and from other sources as long as you give proper credit. However, it is unacceptable and constitutes a violation of the Honor Code (1) to write a program together with someone not part of your team and turn in two copies of the same program, (2) to copy code written by your classmates, (3) to read another student's or team's code (4) to view assignments, exams and solutions from previous terms of CS230P, (5) to make any of the assignments, exams and solutions available to others online or off-line, or (6) to use generative AI tools such as ChatGPT or Github Co-pilot or any other language generation model. In keeping with the standards of the scientific community, you must give credit where credit is due (i.e. write their names at the top of the file). If you make use of an idea that was developed by (or jointly with) others, please reference them appropriately in your work. It is unacceptable for students to work together but not to acknowledge each other in their write-ups.


On using Generative AI tools in CS230P

Our Policy

In CS230P, the use of generative AI tools such as ChatGPT, Copilot, Bard, or similar platforms is strictly regulated to maintain academic integrity and the standards of the Honor Code. Specifically:

Important Considerations:

Remember, the goal of CS230P is to enhance your learning experience, not to bypass it. Use generative AI tools to support your understanding, not as a shortcut for completing assignments.


Computer Science Department Guidelines

As a part of this course, students and faculty are expected to adhere to the Computer Science Department Guidelines, which are designed to create a positive and productive learning environment. These guidelines emphasize respect, integrity, inclusivity, and transparency, ensuring that our department prepares students to lead in a world shaped by computation and data. For a detailed description of these principles and guidelines on attendance, timeliness, respect for others, exam policies, and how to share your thoughts with us, please refer to the Computer Science Department Guidelines.

Health and Safety Guidelines

For questions related to keeping yourself and the Wellesley community healthy during the pandemic, please check the Keeping Wellesley Healthy page regularly.

 

Disability Accommodations

If you have a disability or condition, either long-term or temporary, and need reasonable academic adjustments in this course, please contact Disability Services to get a letter outlining your accommodation needs, and submit that letter to your instructor. You should request accommodations as early as possible in the semester, or before the semester begins, since some situations can require significant time for review and accommodation design. If you need immediate accommodations, please arrange to meet with your instructor as soon as possible. If you are unsure but suspect you may have an undocumented need for accommodations, you are encouraged to contact Disability Services. They can provide assistance including screening and referral for assessments.

Disability Services can be reached at disabilityservices@wellesley.edu, at 781-283-2434, by scheduling an appointment online at their website , or by visiting their offices on the 3rd floor of Clapp Library, rooms 316 and 315.

Anonymous Feedback Form

Tell us what's on your mind

To give anonymous feedback to the CS230P instructors about the course, please use the Anonymous Feedback Form

---