CSC236 Data Structures Section 01
Spring 2023
Monday and Wednesday 12:30 to 3:20
IRC 111

 

data structures diagram

 

Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
- Linus Torvalds (creator of Linux and Git)

 

Professor Emmi Schatz
Email: eschatz@middlesexcc.edu or use the canvas inbox
Phone: 215-839-8209
     Calls: If I don't answer, leave a voicemail that includes your name, and I will return your call.
     Texts: Include your name in your text.
Web Page: http://cs.middlesexcc.edu/~schatz

Office Hours:

Walk In/Zoom Office Hours are Tuesday and Thursday 12:30 to 2:00

By Appointment Hours are Monday and Wednesday 11:30 to 12:30.

Contact me by email, text, or phone at any time. I will respond (usually within a few hours, unless I'm sleeping) and we will resolve your question through email, text, phone, or zoom.

Prerequisite: CSC162 and MAT129

Corequisite: None

Textbook:  Object Oriented Data Structures Using Java, 4th Edition
                  Authors: Nell Dale, Daniel T. Joyce, Chip Weems
                  Jones and Bartlett Learning, 2018

The bookstore has the book available as an ebook for either purchase or rental. Choose the option that suits you best.

Course Description:

Data structures is one of the most important courses in your computer science degree. Not just because many job interview questions are about data structures, but more importantly, because it is the basis of most of your further study in computer science. In a sense, this is your first "real" computer science course, because focusing on data structures means you are focusing on how to develop programs that are efficient and easy to understand and maintain.

In this course we will also emphasize coding skills. As you progress through your studies you need to learn to write longer, more complex programs. Therefore, one of my main goals is that you are a much better coder by the end of the semester.

In this course you will learn different techniques of storing, accessing and processing data as utilized in the development of programs and algorithms. Topics include linked lists, stacks, queues, trees, recursion and graphs. You will study algorithms for applications such as sorting, searching and merging and you will learn how to evaluate and compare the efficiency of solutions.

Course Objectives:

  1. Extend programming ability using an object oriented language.

  2. Demonstrate the ability to use recursion effectively.

  3. Build and manipulate linear and non-linear data structures, including stacks, queues, linked lists, trees, and graphs.

  4. Sort, search, and merge data.

  5. Analyze algorithms to determine time and space complexity.

  6. Choose the appropriate data structure to use in solving typical computer science problems.

Accomodations:

If you need accomodations due to a disability, please contact the Counseling and Career Services Department. Counseling is working remotely at this time, so for accomodations please send an email to Elaine Weir-Daidone at edaidone@middlesexcc.edu.

Attendance Policy:

The student is expected to attend all class sessions. The student is responsible for any material missed because of absence or lateness.

COVID-19 Policy:

Masks: Masks are optional at Middlesex College in all spaces, classrooms and centers. We are a mask-friendly college; any member of the College community who wishes to wear a mask, or not wear a mask, is welcome to do so, and all members of our community are expected to be respectful of each other’s decision.

Vaccines: Vaccines are not required, but highly encouraged. There is no COVID testing requirement for unvaccinated students. For vaccine resources, see the Middlesex County website.

Isolation: If you test positive for COVID-19, stay home for at least 5 days and isolate from others in your home. You are likely most infectious during these first 5 days. If you had no symptoms, you may end isolation after day 5. If you had symptoms, you may end isolation after day 6 if you are fever-free for 24 hours (without the use of fever-reducing medication) and your symptoms are improving. If you still have fever or your symptoms have not improved, continue to isolate until they improve. Remember to wear a high-quality mask indoors through day 10. For more information, see the CDC website.

If you are absent from class due to isolation, contact your instructor for guidance on completing missed coursework.

You should also notify your close contacts that they may have been exposed to COVID-19. Close contacts are defined as anyone who spent 15 minutes or more within a 24-hour period wand was within 6 feet of a person infected with COVID-19 (2 days before onset of symptoms).

Quarantine: As per recent updates to CDC guidance, quarantine is not recommended for exposure to COVID-19, regardless of vaccination status. People exposed to COVID-19 should mask up for 10 days and get tested five days after exposure.

Please visit https://www.middlesexcollege.edu/coronavirus/ for the latest information.

Lab Assignments:

The labs are a critical part of the course. The only way to get better at coding is to do it! If you are having problems with the labs you are STRONGLY encouraged to talk to me! Most likely you will find the labs in data structures more challenging than in your previous courses. This is because we are not just learning about specific data structures, we are also working on building our programming skills.

DO NOT USE THE INTERNET TO GET IDEAS ON HOW TO CODE YOUR LABS. You should be writing your own code without looking at how others have approached similar problems. Copying code found online is cheating; see the Honesty Policy section below.

Make sure that you follow the requirements in the assignment. Do not change the input or the input format; do not change the output format. Use the data structures we study in class, not the Java versions.

Labs will be submitted through Canvas. Labs are not accepted through email.

Ten points will be deducted for a late lab. No lab will be accepted if it is more than 1 week late.

Class Exercises:

Class exercises will give you a chance to practice in class. Some will involve doing problems on paper; some will involve coding. Participation in class exercises will count towards your grade.

Problem Sets:

Problem sets consist of questions and problems for you to do outside of class, including coding problems. These problem sets are very important practice for you to gain the understanding and skills needed in the class. These will be very helpful in preparing you for the labs and exams. Problem sets are not graded; instead the answers to the exercises will be provided. Questions on these problems are welcome, in class or in office hours!

Make-Up Policy:

Exams can be made up only in an emergency with prior permission of the instructor. You must email before the exam and get my approval or you may not be permitted to take a makeup, and will earn a zero for that exam. In addition you will be required to provide documentation of the emergency. Documentation includes a doctor's note, a bill from a car mechanic, or some other proof of the emergency situation. If you have missed a session of class prior to an exam and you return on the day an exam is scheduled, you will be required to take the exam scheduled for that session. Otherwise, a grade of zero will be earned for that exam.

Only one make up exam will be permitted for a given student.

THERE ARE NO MAKE-UPS FOR QUIZZES OR CLASS EXERCISES. If a lecture or lab quiz is missed, a zero is automatically earned for that quiz. The lowest quiz grade will be dropped.

It will be up to you to find out what work has been missed due to absence. Absenteeism due to vacations or business or other obligations will be treated the same as any other absence. You should make arrangements for makeup work before a predetermined absence or right after an unplanned absence.

Cell Phone Guidelines:

All cell phones must be turned off or silenced during class and put away in a pocket, purse, or book bag. Use of your cell phone, even for texting, is very distracting to your fellow students and your instructor. If you anticipate an urgent call that you must take during class, please let me know before class begins. Otherwise you will not be permitted to answer calls or text messages during class.

Honesty Policy:

You are expected to design, code, and debug your programs individually. Under no circumstances may you share a copy of your program with another student. A student who shares their program with another student or copies a program from another student will receive a zero for two assignments. Copying code from a source online is also considered cheating! Any student who cheats on an exam or quiz will receive a zero for that particular instance. Any instance of cheating can result in an F for the course depending upon the circumstances. Two instances of cheating by a student will definitely result in an F for the course.

You may discuss an assignment to clarify what is required. You may discuss a specific statement or a couple of statements in a program to determine what it is doing, or should be doing. However, you may NOT share your program with a classmate, nor may you read or copy another student's program.

Grading Criteria:

Grades will be based on the following breakdown:

21%      Exam 1
21%      Exam 2
16%      Quizzes (lowest grade dropped)
  6%      Class Exercises (lowest grade dropped)
14%      Lab Assignments
22%      Final Exam

Final letter grades will be calculated as follows:
  A 93 - 100 (all assignments must be completed)
  A- 90 - 92
  B+ 87 - 89
  B 83 - 86
  B- 80 - 82
  C+ 77 - 80
  C 70 - 76
  D 60 - 69
  F below 60

 

Class Schedule (subject to change):

 

Week Of Topic Reading (Dale book)
January 23 Review: Complexity Sections 1.1 - 1.6
January 30 Complexity, Stacks Sections 1.1 - 1.6, 2.1 - 2.9
February 6 Stacks, Linked Lists Sections 2.1 - 2.9
February 13 Linked Lists Sections 2.1 - 2.9
February 20 Review: Recursion
College Closed Monday February 20
Sections 3.1 - 3.6
February 27 Queues Sections 4.1 - 4.8
March 6 Collections
EXAM 1
Sections 5.1 - 5.7
March 13 Spring Break  
March 20 Collections, Lists Sections 5.1 - 5.7, 6.1 - 6.6
March 27 Lists Sections 6.1 - 6.6
April 3 Trees Sections 7.1 - 7.10
April 10 Trees
EXAM 2
Sections 7.1 - 7.10
April 17 Priority Queues, Heaps, and Heap Sort Sections 9.1 - 9.4, 11.3

April 24
Graphs Sections 10.1 - 10.5
May 1 Graphs Sections 10.1 - 10.5
May 8 Review  
May 10, 11, 12 FINAL EXAM  


Email Me | Office Hours | My Home Page | Department Home | MCC Home Page

© Copyright Emmi Schatz 2023