Schedule (click lecture names for notes)
|8/28||Intro; Java Recap; Packages; Subtyping; Inheritance; Virtual methods (app C, D; Prelude)|
|9/4||Interfaces; Polymorphism; Generics; ADTs (interl 1, 3, 7; ch 1)|
|9/11||Bag ADT; Bag implementations (ch 1, 2)|
|9/18||LinkedBag; Algorithm Analysis; Bag analysis (ch 3, 4)|
|9/25||Stack ADT; Stack implementations; Stack analysis (ch 5, 6)|
|10/2||Infix to postfix; Recursion (ch 5, 7)|
|10/9||Divide-and-conquer; Multiple Recursion; Backtracking (ch 7, 18)|
|10/16||no class - ponder on imperialism and colonialism|
|10/23||Exam review; Midterm exam|
|10/30||Exam post-review; Sorting; Selection, bubble, and insertion sort (interl 3; ch 8)|
|11/6||Shellsort; Mergesort; Quicksort (ch 9)|
|11/13||List ADT; List implementations; List analysis (ch 12, 13, 14)|
|11/20||Iterators and Iterable; Tree ADT; Tree implementations (interl 5; ch 15, 23, 24)|
|11/27||Finish tree implementations; Queue ADT; Queue implementations (ch 10, 11)|
|12/4||Binary search tree; Priority queue (ch 23, 25, 26, 10)|
Instructor and office Hours
- Email: email@example.com
- Mailbox: SENSQ 5th floor, box 230
- Office: 6509 SENSQ
- Office hours: Mon 12:00-4:00; Fri: 12:00-2:00
- Grader: Lu Zhang
- Monday recitation TA: Kenneth Choo
- Office hours: Mon 2-4 in 5806 SENSQ
- Thursday recitation TA: Jacob Gilbert
- Office hours: Thu 1-2, Fri 10-12 in 5806 SENSQ
- Friday recitation TA: Joseph Monaco
- Office hours: Mon 9-11, Fri 11-12 in 5806 SENSQ
- CRC hours: Fri 2-5
Tues 6:00-8:30PM, 107 Lawrence Hall
Attendance is not taken, but there will be in-class quizzes (graded on attempt). Also, like, if you don’t come, you’re gonna fail.
Recitation attendance is not required, but you are welcome to work on the labs and ask questions.
- Mon 1:00 PM, 6110 SENSQ (TA: Kenneth Choo)
- Thu 5:00 PM, 5505 SENSQ (TA: Jacob Gilbert)
- Fri 10:00 AM, 5505 SENSQ (TA: Joseph Monaco)
Data Structures and Abstractions with Java (4th edition) (Carrano).
Apparently a 5th edition just came out. If you get that, it’s fine, they just added a chapter. Even if you have the 3rd edition, it’s mostly fine. There are no assignments out of the book, it’s just for reference.
Project and exam grades are weighted according to your grade, to lessen the impact of a really bad grade.
There are 5 projects. The 4 highest project grades are worth 10% each; the lowest grade is worth 5%.
Lecture quizzes are based on participation and attempt. They’re there more to keep you focused than anything else.
The grading scale is as follows:
|73-76%||C (minimum grade needed to count)|
Projects and labs are due for full credit at 11:59PM on the due date. I’m not super strict about it - 15-20 minutes late is no big deal.
They can be turned in late by 11:59PM on the next day. There is a 15% penalty for late submission, taken off after all other grade calculations (e.g. extra credit).
If you have a major problem that means you can’t turn in a project on time, contact me and explain what’s up; I’m pretty accommodating.
Otherwise, you have several weeks to do the projects, and you are welcome to ask questions about things we haven’t covered in class yet. “I didn’t start the project until the day it was due” is not a valid reason to request an extension.
There is a discussion board on the Courseweb page. Please use this for discussion of projects, labs, exam studying etc.
There is also an online chatroom through Discord. Again, email me if you haven’t signed up for it or didn’t get a link. This is more “off-topic” but this is also how I can hold “virtual office hours.”
Please don’t direct message me as your first option when you have questions. I would love to be able to help everyone individually, but there are so many of you, and I have a lot of work to do. Try to ask questions on the Courseweb discussion board first (or maybe it’s already been answered there!).
If a religious observance will prevent you from attending recitation/exams/being around to submit projects, please contact me as early as possible in the term about them so we can make accommodations.
For the projects, you may work with one other person. Both of you must turn in your own, separate projects (no sharing code/circuits), and both of you must notify me in advance of who your partner is, and list your partner when submitting the project.
How far can “working together” go? You can talk about the project. You can talk about how you approached something. But you can’t tell your partner exactly how you did something. You can’t look at each other’s code/circuits. No sending/screenshotting that stuff either.
If you’re not sure whether or not something is allowed, it probably isn’t. Or ask me.
You may not use online resources, such as StackOverflow or projects from previous offerings of this course, to complete your work. If we believe that you have cheated on your assignment, all involved parties will receive a 0 for the assignment. If this is the second offense, you will fail the course.
If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and the Office of Disability Resources and Services (216 William Pitt Union; 412-648-7890; TTY:412-383-7355) as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.
You are expected to behave respectfully to your fellow students, the instructor, and the teaching assistants.
Jokes or comments about sex, gender, race, ethnicity, religion, etc. will not be tolerated. This is not Reddit or 4Chan. Behave as if you were a professional: keep the discussion about the subject at hand and try not to bring personal issues into it.
These rules apply not only to lecture, but also recitations, office hours, online chats, emails, etc.