Park Science Building
gtowell at brynmawr dot edu
|Lecture Hours||Tuesday / Friday 11:10-12:30|
|Office Hours|| 2pm - 3pm Tuesday, 3pm-4pm Thursday.|
Also by appointment
In the spring of 2021 all office hours will be by zoom.
|Zoom||Meeting code: 232 840 6920. Password: given in class|
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.
In addition, there will be a significant discussion of Object-Oriented programming and the implementation of object-oriented programming in Java.
|Computer Lab||Park 231|
Instructions for using the lab computers
Remote accessable lab computer status
Do not use the computers in Park 230. They are old and on a different file system.
- Feb 12, First lecture
- Mar 16, First Midterm
- Apr 13, Second Midterm
- Exam period, Final Exam
- Final exam practice questions (These were handed out in class.)
- Obtaining/taking the exam: To get the final, login in on this URL http://18.104.22.168/206/ Use your UNIX id (just the ID, nothing extra) and the password I gave in class. This instructions will also be in an email when the final is available.
In addition, you have 2 (two) 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. You do not need permission, this is merely to inform me that you are using 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.) I repeat, 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. For such issues, you must talk to be more than 24 hours prior to the due date.
Homework assignments are intended to take under 10 hours to complete. That said, some people will require far more that that on some assignments. I strongly encourage everyone to start early. Work some on the assignment. Then go get something to eat, take a nap, etc. Often with programming, getting away from the problem for a while is important.
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 and you have told me of the issue at least 48 hours prior to the due date then I will give bonus points as follows:
3 points for the first issue reported 2 points for the second issue reported 1 point for the third issue reportedOrdering is based on date of email recipt. One bonus per person per assignment.
All assignments must abide by the following standards
- 206 Design Principles
- 206 Code Formatting Standards
- Goolgle's style guideThis is consistent with my documents, but much longer.
All assignments must be accompanied by a README file. See the file for a description of the expected contents.
For detailed, step-by-step precedures for submitting homeworks, see Lab 3
- There had been a "homework 1" due Feb 17. That homework hs been cancelled.
- Homework 1 Due Feb 25 before 11:59:59PM
- Homework 2 Due March 4 before 11:59:59PM
- Homework 3Due March 14 before 11:59:59PM (Note that this is Due Sunday rather than Thursday.)
- Homework 5April 3 befor 11:59:59PM.
- Homework 6 -- Sudoku April 11 before 11:59:59PM. Please note the Sunday night due date. This is to give you the opportunity for a last minute TA consult. I encourage you to start well before the weekend.
- Homework 7 -- Heaps April 22 before 11:59:59PM. As always I encourage you to start early.
- Homework 8 -- Quicksort April 29 before 11:59:59PM. As always I encourage you to start early.
- Homework 9 -- Linked Lists and Baby Names May 6 before 11:59:59PM.
Regardless of whether the lab appears here or only in the lecture notes, the lab should be completed and email sent to gtowell206 prior to the start of the next class.
I intend to post lecture notes here before every class. If you do not see them, tell me.
- Feb 12 -- Introduction
- Feb 16 -- Classes and Inheritance
- Feb 16 -- Inheritance and Exceptions
- Feb 23 -- Software design, Interfaces, ArrayList
- Feb 26 -- Generics, ArrayList
- March 2, how long did that take??
- March 5, Maps and Hashtables
- March 9, Hashtables
- March 12, Finish Hashtables, Review
- March 19: Midterm discussion, SAL, the Comparable Interface
- March 23: Stacks; SAL and the Comparable Interface
- March 26: Queues, Some history and Comparable Rabbits
- April 2:
- April 6: More recursion
- April 9: Yet more recursion; Review
- April 16: Sorting and Heaps
- April 20: Sorting and Heaps
- April 23: Merge sort and quick sort
- April 27: Linked Lists
- April 30: Doubly Linked Lists
- May 4: Trees
- May 7: Trees and Balancing
- May 11: Trees and Balancing
Attendance and active participation are
expected in every class. Participation includes asking questions,
contributing answers, proposing ideas, and providing constructive
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.
GradingGrades will be awarded based on the number of points earned and according to the percentage breakdowns shown.
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. In-class exams will be closed book, closed notes, open minds. Take home exams will be open everything except for other people.
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 (except for labs). 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.
- Kernighan's book on programming style. Most of the examples in this book are in languages rarely if ever used, but the lessons still apply.
Learning AccommodationsStudents 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.
Creating a Welcoming EnvironmentAll members of the Instruction Staff are dedicated to the cause of improving diversity, equity, and inclusion in the field of computing, and to supporting the wellness and mental health of our students.
Diversity and InclusionIt is essential that all members of the course community – the instructor, TAs, and students – work together to create a supportive, inclusive environment that welcomes all students, regardless of their race, ethnicity, gender identity, sexuality, or socioeconomic status. All participants in this course deserve to and should expect to be treated with respect by other members of the community. Class meetings, lab sessions, office hours, and group working time should be spaces where everyone feels welcome and included. In order to foster a welcoming environment, students of this course are expected to: exercise consideration and respect in their speech and actions; attempt collaboration and consideration, including listening to opposing perspectives and authentically and respectfully raising concerns, before conflict; refrain from demeaning, discriminatory, or harassing behavior and speech.
WellnessAdditionally, your mental health and wellness are of utmost importance to the course Instruction Staff, if not the College as a whole. All members of the instruction staff will be happy to chat or just to listen if you need someone to talk to, even if it’s not specifically about this course. If you or someone you know is in distress and urgently needs to speak with someone, please do not hesitate to contact BMC Counseling Serices: 610-526-7360 (610-526-7778 nights and weekends). If you are uncomfortable reaching out to Counseling Services, any member of the Instruction Staff will be happy to contact them on your behalf. We understand that student life can be extremely difficult, both mentally and emotionally. If you are living with mental health issues such as anxiety, depression, ADHD, or other conditions that may affect you this semester, you are encouraged to discuss these with the Instructor. Although the details are up to you to disclose, the Instruction Staff will do their best to support and accommodate you in order to ensure that you can succeed this course while staying healthy.
Created on January 2021. Subject to constant revision.