General Information

Instructor:

Geoffrey Towell
Park Science Building
526-5064
gtowell at brynmawr dot edu
http://cs.brynmawr.edu/~gtowell

Lecture Hours: Tuesday / Friday 1:10-2:30
Room: Park 25
Lab: Friday 2:40-4:00
Office Hours: 4-6pm Wednesday and Thursday
Office hours will be by zoom. Meeting code: 232 840 6920. I have provided the password in email

Course Description: An introduction to the fundamental data structures of computer science: lists, stacks, queues, trees, Binary Search Trees, graphs, sets and their accompanying algorithms. Principles of algorithmic analysis and object reasoning and design will be introduced using mathematical techniques for the notions of both complexity and correctness.


Text

There will be no official textbook for this class. The following are pretty good books on Data Structures. The first of these I will refer to in the Syllabus with chapter references. I will not do so for the other books. You will only be responsible for material discussed in class. These books should only be used to provide additional viewpoints and alternate explanations.
Data Structures and Algorithms in Java by Goodrich, Tamassia, and Goldwasser
A pdf of the book
Introduction to Java Programming and Data Structures by Y. Daniel Liang


Important Dates

  • instructions for taking the final Note these instructions will not be truly final until Dec 12, not will the exam be available before then
  • A set of practice questions
  • Answers to the review questions
  • Final Exam (login required)


  • Assignments

    There will 10-11 weekly homework assignments. Homework will be electronically submitted. All work must be turned in by the due date or it will not be considered. That said, you have 3 (three) 24 late passes to be used at your discretion during the semester. To use a late pass you merely have to send me an email saying that you intend to use a late pass. This email MUST be sent prior to the due date. (I have received email with time stamps less than one minute before the due date.) Approval is automatic. You can use more than one late pass on an assignment. These late passes are intended to give you a little scheduling flexibility. For major issues requiring more than 24 hours, talk to me and/or your dean.

    Despite my best efforts, homeworks may have sections that are not quite correct. If you find one, let me know. If I agree that the issue is an issue, bonus points will be awarded as follows:
    3 points for the first issue reported
    2 points for the second issue reported
    1 point for the third issue reported
    
    Ordering is based on date of email recipt. One bonus per person per assignment.

    All assignments must abide by the following standards

    Posted code samples will adhere to these standards. (Code shown in class may not so that it can fit on screens)

    In addition, all assignments must be accompanied by a README file. See the file for a description of the expected contents.

    1. Getting started Due Sep 17, 11:59 pmSep 18, 11:59pm due to issues with Lab.
    2. Zip Codes using Arrays Due Sep 24, 11:59pm
    3. Zip Codes using ArrayList Due Oct 1, 11:59pm
    4. Counting Words Due Oct 15, 11:59pm
    5. Working with Stacks Due Oct 22, 11:59pm
    6. Priority Queues Due Oct 30, 11:59pm Nov 2, 11:59pm
    7. Sudoku with recursion Due date TDB
    8. Quicksort Due date TDB
    9. BabyNames Wed Dec 2
    10. EXTRA CREDIT: The towers of Hanoi, home edition.
    11. Babies in trees -- rock-a-bye?? Fri Dec 11

    Labs

    1. Sep 11
    2. Sep 18
    3. Sep 25
    4. Oct 2
    5. Oct 9
    6. Oct 23
    7. Nov 6 Also, to do this lab, and to be better at using VSC, you should read (and understand) My document on breakpoints in VSC
    8. If you were not in class on Nov 6, rather than doing the lab that is struck out above, do the following:Nov 6

    Lectures

    Course Policies

    Communication

    Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments.

    Please stay in touch with me, particularly if you feel stuck on a topic or assignment and can't figure out how to proceed. Often a quick e-mail, or face-to-face (via zoom in fall 2020) conference can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments early.

    Grading

    Grades will be awarded based on the number of points earned and according to the percentage breakdowns shown.
    Homework45%
    Lab5%
    Midterms (2)32%
    Final exam18%

    Mid-terms will be in class (or possibly take-home). If take-home then the time to complete will be no more than 2 hours. Closed book, closed notes, no electronic devices unless otherwise instructed.

    Incomplete grades will be given only for verifiable medical illness or other such dire circumstances.

    ALL work submitted for grading should be entirely YOUR OWN (or that of a group if you are working in a group). Sharing of programs, code snippets, etc. is not permitted under ANY circumstances. That said, I encourage you to discuss assignments at an algorithmic level with other students.

    Submission, Late Policy, and Making Up Past Work


    No assignment will be accepted after it is past due.
    No past work can be "made up" after it is due.


    Links


    Learning Accommodations

    Students requesting accommodations in this course because of the impact of disability are encouraged to meet with me privately early in the semester with a verification letter. Students not yet approved to receive accommodations should also contact Deb Alder, Coordinator of Accessibility Services, at 610-526-7351 in Guild Hall, as soon as possible, to verify their eligibility for reasonable accommodations. Early contact will help avoid unnecessary inconvenience and delays.

    This class may be recorded.


    Created on July 2020. Subject to constant revision.