Fall 2020

Instructor: Anya E. Vostinar

Prefect: See Moodle

Course materials: All materials, including readings, will be linked through Moodle.

Drop in hours: (All times in US Central) Mondays 12:45-1:45pm, Wednesdays 3:45-4:45pm, Thursdays 1:30-2:30pm All drop in hours will be in my Zoom ‘Office’ Make sure you are signed in to your Carleton Zoom otherwise you won’t be able to get in! Remember that you are always welcome to schedule an appointment with me outside of these times. To schedule an appointment, please see my calendar, find a time that isn’t marked ‘Busy’ and either send an invite to an event, email me, or message me on Piazza to ask for that meeting time.

Overview and Learning Goals

Welcome to Data Structures! In this course, you’ll be learning about how to work with data, how to design solutions that are efficient for a particular application, and developing more complex programs than in the introductory CS course. Whether or not you’re interested in taking future computer science courses, this class should help you to develop your problem solving and analysis skills as well as learn coding skills that you can apply in a variety of domains. If you are interested in more computer science courses, data structures will prepare you for the upper level courses and give you a foundation in some of the ideas underlying much of the field.

By the time you complete this course, you’ll be able to do the following:

  • Read a problem description and think through the pros and cons of different data representations and implementations.
  • Work with basic programming building blocks (data structures and abstract data types), including lists, arrays, stacks, queues, trees, maps, and graphs.
  • Analyze the efficiency of an algorithm to understand how the time and space the algorithm needs varies with the size of the data it’s working on.
  • Create non-trivial Java programs.

Prerequisites: CS111 (Introduction to Computer Science) or an introductory computer science course completed elsewhere. Please talk to me if your background is something other than CS111 or AP CS in high school.

Course expectations

Because we’re online this term, our interactions will be a little different from how they would have been at Carleton. In these unprecedented times, we will need to exhibit flexibility and patience with each other throughout the term. I have done my best to design the course so that everyone can be successful, regardless of personal circumstances. Communication will be key; please keep me updated about your situation in addition to reaching out to the other relevant offices on campus. If you experience significant technological problems that limit your ability to participate, please contact the ITS Helpdesk at 507-222-5999 or For announcements of known technical issues, visit the Helpdesk portal. If your personal situation (due to COVID-19 illness or other circumstances) begins to impact your ability to engage with the course, please contact the Dean of Students Office and also let me know.

I expect you to log in to Moodle every day for updates on activities and assignments. When engaging with course activities online, use your Carleton Gmail/Google account; do not use other personal email accounts. I will show you civility and respect and expect you will do the same to me and each other in both asynchronous and synchronous discussions, at the whole class level, and when in small groups. Whole class synchronous activities will only be scheduled during designated class meeting times, but opportunities for small group or one-on-one synchronous engagement may be scheduled flexibly at other times. I look forward to working with you to find ways for you to effectively engage with the course given your circumstances.

I have a separate page with specific expectations I have for you and the expectations that you can have for me; please make sure that you have read it. All out of class written communication will happen via the Moodle announcement forum and via Piazza. Please make sure you are reading your emails regularly and have not turned off emails from Piazza in your settings. Each class day will have activities for you to complete and a page titled something like “Week 1, Day 1 Activities” to guide you through what you should do. All materials will be released at least 48 hours before they are due.

Types of Engagement and Collaboration Policies

We’ll have lots of different ways of engaging with the course material:

  • Videos that I make to introduce content and activities, and show you my problem solving process. Videos often include embedded questions or start you on an activity.
  • Readings, which will introduce ideas and provide more details than the videos. Readings sometimes include embedded activities to help you check your understanding.
  • Activities for problem solving and practicing writing small pieces of code. These will help you apply and process the ideas from videos and readings, and you can complete them collaboratively to learn from one another.
  • Labs for writing somewhat longer code with significant guidance from the instructions in order to make ideas from class more concrete.
  • Homework where you complete more extended projects to provide opportunities to design solutions and see the ideas from class applied in real contexts.
  • Daily and weekly quizzes, where daily quizzes provide you with a quick check of your understanding and formative feedback and weekly quizzes provide you with a check on whether you’ve understood the key ideas from the previous week and are more summative.

I believe each of these types of activities will give you a different lens on the core class ideas and help you to deeply learn and understand the material. In many of these activities you’ll have the option to work collaboratively, and throughout the course, you’ll have a collaborative learning group with whom you can talk about course ideas and work with on course activities. Please read this linked page for more information on collaborative learning groups and the collaboration and academic honesty policies for this course.

Evaluation and Grading

I want you to know that I recognize that the global pandemic is likely to affect your ability to focus and work on this class. However, mastery of this material is important: if you go on to future CS courses or intend to interview for CS internships and jobs, you’ll be expected to know this material (CS201 is widely cited by more senior students and alumni as having the key material for doing well in job interviews). For this class, I will be grading as follows: At the end of the term, I addup your numerical scores for each component, multiply them by the weight for that component, and add up all components. I’ll then check what your percentage is compared to this breakdown:

Percentage Letter Grade
93-100% A
90-93% A-
87-90% B+
83-87% B
80-83% B-
77-80% C+
70-77% C
60-70% D
0-60% F

Note that there is overlap; I will always go with the higher letter grade in the extraordinary circumstance that someone is at exactly 93%. If someone is really really close to a cutoff, I’ll bump them up, so don’t worry about being at 89.99% and getting a B+ instead of an A-. If an exam is much harder than I meant it to be, I will adjust scores so that it is a better reflection of your learning. My goal is for everyone who puts in the effort to get an A!

Here is how activities this term will be factored into your grade:

Component Method of evaluation Contribution to overall grade
Embedded quizzes and activities in reading and videos Evaluated only on effort and completion; you can answer these as many times as you like. 10%
Labs and activities Evaluated only on effort. You must turn them in and make an effort to complete all parts, including seeking out assistance if you’re struggling on a particular part (e.g., by reaching out to your collaborative learning group or asking on Piazza). 10%
Homework Evaluated based on correctness, including exhibiting correct behavior and good style and design choices. 40%
Final project Evaluated based on correctness, including exhibiting correct behavior and good style and design choices. 25%
Daily quizzes Evaluated only on effort. You must turn them in and make an effort to complete all parts. 5%
Weekly quizzes Evaluated based on correctness. You will have two chances to complete each quiz. Lowest quiz score will be dropped. 10%

How to Succeed in this Class

  • Keep trying and ask for help: Learning a new topic can be challenging, and one of my hopes for this class is that you’ll struggle at times and learn more because you had to really work to understand something. That means you’re expected to be willing to try again when things don’t work the first time, and to seek out help when you’re truly stuck. (See below for more on seeking help!)
  • Work consistently: For all learning, but especially learning online, engaging with the material in shorter, more frequent sessions is likely to be helpful. Set aside time each day to work on the course, and make sure that you’re keeping up with the daily activities. Try to find a space that you can just use for studying, and if that’s not possible, have a way to physically cue to yourself that this is studying time, such as by getting out a specific notebook for this course.
  • Minimize distractions: There’s a lot going on in the world right now, and it can be tough to ignore that. However, you’ll learn more and likely be happier if you can minimize those distractions during the time you’re working on the course. When you’re working on 201, put your phone away unless that’s what you’re using to access materials, and close your email and any browser windows that aren’t being used for this course. Set a time limit for how long you’ll work, and don’t check those things until the time limit is up. People tend to believe they’re good at multitasking, but in actuality, multitasking hurts productivity and learning.
  • Monitor your own learning: After each activity or work session, write down (on paper) a few things about what you learned and any questions that you have. Look back at those questions as you work through more activities, and if you aren’t able to resolve the questions on your own, ask about them on Piazza.
  • Take notes: Research has shown that writing things down in your own words helps you to remember and understand it better. Take handwritten notes when watching videos and reading from the textbook. Research has also shown that handwritten instead of typed notes help you retain the information better.
  • Pay attention to longer-term homework assignments and start early: When I’ve asked students what advice they’d give to future 201 students, the most common thing they said was to start the homework early! The homeworks are likely slightly longer than you experienced in intro, as the goal is to help you learn to create more complex programs and make design decisions. By starting early, you have more opportunities to work through problems that come up and time to ask for help! Even if you can’t immediately start on the homework, read over the prompt so that your brain can start thinking about it in the background; it really does help!
  • Ask questions and reach out for help: Even though we aren’t face to face this term, there are still lots of ways to get help. If you have a question about something, chances are other people do too. By asking questions during our synchronous Q&A time, on Piazza, and in office hours, you’ll keep up with the course and gain a deeper understanding of the concepts.

Late Policies

Because I know that personal or tech difficulties may arise at times during the term, all homework assignments have a 48-hour, no questions asked extensions policy. If you have a tech issue, a health issue, or some other issue that impedes making the deadline, use this policy. You need to just notify me that you’re using the policy before the deadline. If you are unable to notify me, please just still let me know when you are able and I’ll work with you. Extensions beyond the 48-hour policy will only be considered in extenuating circumstances.

Activities and quizzes do not have a built in extensions policy. If something is interfering with your ability to do your work, please reach out. Generally, late work outside of the 48 hour homework extension will not be accepted unless we have had a conversation and I agree that an extension makes sense. If at all possible, this conversation should occur prior to the late work (you might have this conversation in writing by reaching out privately on Piazza), and if that is not possible, you should reach out to me as soon as possible after you realize that extenuating circumstances will lead the work to be late. Depending on the nature of the circumstances, I may also ask you to chat with someone in the Dean of Students office, as they can assist you in managing circumstances that may require accommodations in multiple classes.

How to Get Help

I want to see all of you succeed in this class, and I believe you can succeed if you engage with the class material and activities consistently and reach out for help when you’re confused. To learn computer science, you’ll need to be willing to try new things and experiment with different solutions. Cultivating persistence to keep trying will be helpful not only in this course, but in any other problem solving activities. Sometimes, you may need assistance - here’s how you get it:

  • Take a break: Often, taking a break from homework will help you to regroup and you’ll be able to succeed when you come back to it. Leave yourself enough time to be able to take breaks!
  • Prefect sessions: This course has a prefect. The Prefect Program offers synchronous videoconferencing tutoring and/or optional collaborative learning sessions for participating classes. Prefect sessions review course concepts and often focus on critical thinking and problem-solving exercises centered on the course material. Our course prefect(s) will use email or Moodle to inform everyone in the class about upcoming sessions and availability for 1:1 tutoring.
  • Piazza: You’re welcome to post questions about videos, readings, and activities on Piazza, as well as about homework. You shouldn’t post much homework code on Piazza, but you can post code related to other assignments. If you’re unsure if a question contains too much detail about the homework, you may still post it on Piazza but mark it as private, sent just to me. Please use Piazza, rather than email, for all written communication.
  • Talk to me: I have both drop in office hours and office hours that are by appointment (for one on one conversations). See links at the top of Moodle for more details. Talking to students is literally my favorite part of this job, please talk to me!
  • Other Carleton resources: There are lots of resources to help you at Carleton, and these resources have persisted in virtual form. Lab assistants are available via video conference; see the top of Moodle for details. They can help you with debugging and making progress on your homework, or if you’re having trouble understanding something about Java. The Academic Skills center is a wonderful resource for helping you develop study skills, improve your ability to prep for exams, or manage procrastination. Oscar Alarez is an academic skills coach in the office with whom you can make individual video conferencing appointments.

Inclusivity and Universal Learning

I strive to create an inclusive and respectful classroom that values diversity. Our individual differences enrich and enhance our understanding of one another and of the world around us. This class welcomes the perspectives of all ethnicities, genders, religions, ages, sexual orientations, disabilities, socioeconomic backgrounds, regions, and nationalities.

My goal is that everyone should be able to learn from this class and feel comfortable asking questions and participating. In class, on the forums, and when working with one another, be respectful and inclusive. If something makes you uncomfortable or you’re concerned about an interaction, please come talk to me!

Carleton College is committed to providing equitable access to learning opportunities for all students. The Disability Services office (Henry House, 107 Union Street) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations. If you have, or think you may have, a disability (e.g., mental health, attentional, learning, autism spectrum disorders, chronic health, traumatic brain injury and concussions, vision, hearing, mobility, or speech impairments), please contact or call Sam Thayer (’10), Accessibility Specialist (x4464) or Chris Dallager, Director of Disability Services (x5250) to arrange a confidential discussion regarding equitable access and reasonable accommodations. If you’ve already arranged accommodations, please let me know if there’s anything you want me to know beyond what’s in the accommodations letter or if there are particular challenges that online learning poses for your specific circumstances. If you do not have official accomodations, I am still happy to discuss with you ways in which I can help you succeed in this class.

The Assistive Technologies program brings together academic and technological resources to complement student classroom and computing needs, particularly in support of students with physical or learning disabilities. Accessibility features include text-to-speech (Kurzweil), speech-to-text (Dragon) software, and audio recording Smartpens. If you would like to know more, contact or visit

Carleton College urges you to make yourself –- your own health and well-being –- your priority throughout this ​term and your career here. It is important to recognize stressors you may be facing, which can be personal, emotional, physical, financial, mental, or academic. Sleep, exercise, and connecting with others can be strategies to help you flourish at Carleton. If you are having difficulties maintaining your well-being, please contact me and/or pursue other resources, such as Student Health and Counseling or resources on the Office of Health Promotion website. Student Health and Counseling is currently offering telehealth services.

Carleton is committed to fostering an environment free of sexual misconduct. Please be aware all Carleton faculty and staff members, with the exception of Chaplains and SHAC staff, are “responsible employees.” Responsible employees are required to share any information they have regarding incidents of sexual misconduct with the Title IX Coordinator. Carleton’s goal is to ensure campus community members are aware of all the options available and have access to the resources they need. If you have questions, please contact Laura Riehle-Merrill, Carleton’s Title IX Coordinator, or visit the Sexual Misconduct Prevention and Response website:

Academic Honesty and Collaboration Policy

As noted in Carleton’s policy on academic integrity, violations of academic honesty are dealt with at the college level. If I suspect academic dishonesty, I will refer the case for appropriate action to the Academic Standing Committee (ASC) via the Associate Dean of Students or the Associate Dean of the College. Please familiarize yourself with Carleton’s academic integrity policies and make sure that you have read the collaboration and academic honesty policies for this course. A possible penalty for academic dishonesty in a course is an F in the course. It’s not worth it – please seek help using the resources above instead.

This syllabus is based heavily on the syllabus from Anna Rafferty.