CS/COE 445: Data Structures
Course Information and Policies
Course Description and Rational:
This course emphasizes the study of the basic data structures of computer science (stacks, queues, trees, lists, graphs) and their implementations using the Java language. Included in this study are programming techniques which use recursion and reference variables. Students in this course are also introduced to various searching and sorting methods and are also expected to develop an intuitive understanding of the complexity of these algorithms.
By the end of the semester, you should be able to:
- explain the differences, advantages, and disadvantages to basic data structures
- decide which data structure is best for a given problem
- write your own implementation of stacks, queues, trees, lists, and graphs; including how to traverse and manipulate these data structures
- write common algorithms, including search, sort, and recursive algorithms
Textbook:
- Title: Data Structures and Abstractions with Java (4th Edition)
- Author: Frank M. Carrano & Timothy Henry
- ISBN-13: 978-0-133-74405-7
A good Java reference would also be useful, such as the one from CS/COE 401:
- Title: Starting Out with Java: From Control Structures through Data Structures (Second Edition)
- Author: Tony Gaddis & Godfrey Muganda
- ISBN-13: 978-0-321-54586-2
- Not required, but recommended.
Additional Material:
It is highly recommended that you have a removable storage device to store your programs on while you work on them. A small, inexpensive USB flash drive that has at least 64 MB should be enough for this class.
You will need access to a computer capable of compiling and running Java programs. Most computer labs on campus meet this requirement. If you would like to use your own computer, it is recommended you install a Java Integrated Development Environment (IDE). Below are some free options:
- Notepad++ - Installed on many computer labs on campus
- Eclipse - Installed on the Computer Science department lab computers
- NetBeans - Installed on the Computer Science department lab computers
- Geany - Used during lecture
Grade Scale:
Percentage |
Letter Grade |
above 100 |
A+ |
93 – 100 |
A |
90 – 92 |
A- |
87 – 89 |
B+ |
83 – 86 |
B |
80 – 82 |
B- |
|
Percentage |
Letter Grade |
77 – 79 |
C+ |
73 – 76 |
C |
70 – 72 |
C- |
67 – 69 |
D+ |
63 – 66 |
D |
60 – 62 |
D- |
less than 60 |
F |
|
When a percentage falls exactly between two letter grades, the round half up method will be used for breaking this tie. For example, if a student has a final grade of 82.50%, the grade will be rounded up to 83% (B). However, if the final grade is 82.49%, then the grade will be rounded down to 82% (B-).
General Information:
- Students should attend all lectures, which may include material that is not directly taken from the text. If a student misses a lecture, he/she is still responsible for the material covered. While lecture notes will be available from the Daily Schedule, anything written on the board or programmed may not be available from anywhere other than a classmate. Additionally, participation is partially dependent on attending lecture.
- Information, including announcements, handouts, review sheets, and solutions, will be posted on the Daily Schedule. Students are expected to be aware of all information that is posted on this page.
- Each student is expected to do his/her own work. For a first offense, a student caught collaborating/cheating in any way will receive a zero for the exam/project/quiz. In the event of a second offense, the student will receive an F for the course and may be subject to stronger actions.
Note: Submissions that are alike in a substantive way (not due to coincidence) will be considered cheating by ALL parties involved. Be sure to protect yourself by storing your files in private directories and retrieving printouts promptly.
- It is recommended that students save their work frequently and maintain backups of their computer and, especially, any programs being written for this class. Failing to turn in an assignment on time because "my computer crashed" or "I lost my usb drive" are not valid excuses for turning an assignment in late.
- All material that a student turns in should also be saved in a safe place until the term has ended and he/she has received and accepted his/her final grade. Do not assume that uploading your project means you no longer need to keep a copy of it.
- All programs must be written in Java.
- Grade Appeals: Grades can be appealed up to two weeks after they have been posted; no appeals will be considered after that time. Please note that the entire assignment will be regraded upon appeal.
- If a student is having issues that can affect his or her grade, it is better to talk to the instructor sooner rather than later.
Assignments:
- There will be four or five equally-weighted programming assignments assigned throughout the term.
- Assignments will be discussed primarily in office hours.
- Assigned projects can be found on the daily schedule once they are assigned.
- On-time projects must be received at the submission site by 11:59 pm on the due date. Projects submitted after that time will be graded as late submissions. Note: Submissions received at 11:59:01 pm are considered late.
- Projects will be accepted late, but will face a reduction in the assignment's final grade.
- For each day the assignment is late, there will be a 10% deduction (so, if it is two days late, there will be a 20% deduction).
- Any project more than two days late will receive a zero. However, you may still submit it for feedback.
Exams:
- Exam dates will be listed on the daily schedule. Exams will be announced at least two weeks before the date.
- The midterm will be during lecture and the final will be during final exam week.
- Students are expected to be present for each exam. Make-up exams will only be given in the event of a properly-documented emergency, and only if the instructor is informed in advance. If you cannot contact your instructor directly, send him an email or call the CS department (412-624-8490). Failure to notify your instructor prior to missing an exam will result in a zero for the exam.
- The final exam will be cumulative.
Quizzes:
- Quizzes will be listed on the daily schedule at least one lecture before the quiz will be given.
- Quizzes will be in recitation and cannot be made up if missed. If you will miss a quiz, let me and/or the TA know ahead of time.
Participation:
- There are many ways to earn participation points:
- Ask on-topic questions during lecture
- Answer questions during lecture
- Visit office hours regularly
- Complete the ungraded surveys on CourseWeb
- There will be "quick quizzes" at the end of many lectures. These quick quizzes will ask basic questions from material covered during lecture that day and previous lectures.
Disability Services:
If you have a disability, please have the Office of Disability Resources and Services (DRS) send a confirmation letter. Upon receiving the letter, we can discuss accommodations.
"The Office of Disability Resources and Services (DRS) provides a broad range of support services to assist students with disabilities. Services include, but are not limited to, tape-recorded textbooks, sign language interpreters, adaptive and transportation. Contact DRS at 412-648-7890 or 412-383-1355 (TTY) in 216 William Pitt Union or see www.drs.pitt.edu for more computer technology, Braille translation, and nonstandard exam arrangements, DRS can also assist students with accessibility to campus housing information." (quoted from the Undergraduate Bulletin)
Academic Integrity:
Each student is expected to do his/her own work. For a first offense, a student caught collaborating/cheating in any way will receive a zero for the exam/project/lab/quiz/homework. In the event of a second offense, the student will receive an F for the course and may be subject to stronger actions.
Note: Submissions that are alike in a substantive way (not due to coincidence) will be considered cheating by ALL parties involved. Be sure to protect yourself by storing your files in private directories and retrieving printouts promptly.
Note: To decrease the chance of being accused of cheating, always fill out the assignment information sheet and turn it in with any assignment.
"As members of the University of Pittsburgh community, A&S students are expected to meet the obligation to exhibit honesty and to respect the ethical standards of the University community and of their chosen field of study in carrying out academic assignments. A&S students are therefore expected to familiarize themselves with the published rules and regulations go to http://www.provost.pitt.edu/info/ai1.html" (quoted from the Undergraduate Bulletin)