[Home | Assignments | Links | Grades | CIS 313]
CIS 323 - Data Structures Lab
Winter 2010
News updates, comments and more can be found on the course blog
Course details
- Time/Location: Thursdays, 8.30am - 9.50am / 105 Eslinger
- H.E.L.P sessions (Help Enhances the Learning Process), hands-on programming help: Mondays, 5pm - 6pm / 100 Deschutes
-
Instructor: David Lebech
- Office: 254 Deschutes Hall, phone 346-4436
- Office Hours: Monday 4pm - 5pm, Thursday 11am - 12pm, or by appoinment, or just drop by and see if I'm in.
- Email: lebech at cs.uoregon.edu
- Credit Hours: 2 Credits P/NP
- Official Info: CIS 323 at classes.uoregon.edu
-
Evaluation:
- There will be 5 assignments.
- Grade weighting is 80% assignments and 20% participation.
- 380 points are needed to pass the course. The 5 assignments are each worth 100 points and there is a 50 points winter warmup, for a total possible 550 points.
- Text: Cormen, Leiserson, Rivest, & Stein, Introduction to Algorithms, 3rd Edition, MIT Press, 2009. (text homepage)
- This course is related to CIS 313 Intermediate Data Structures.
Course Objectives:
The goals of the course are:
- To implement various data structures learned in the companion course, CIS 313.
- To become familiar with integrated development environments, debugging tools, version control, good coding style, and basic UNIX commands.
- To become comfortable programming in both C++ and Java.
- To realize why studying computer science is the best thing you will ever do :-)
Tentative Schedule
We will follow the topics from CIS 313 closely so please also check the syllabus for this course.
Date | Lecture Topic(s) | Comments |
Jan 7 | Welcome! Syllabus and introductions. Winter warmup exercise: Hello world Assignment 1: Linked Lists | Feedback survey results |
Jan 14 | How a computer science lab lecture works Basics elaborated: C++, compiling, Eclipse and command line. A note on Lists Remember the running time and the output format Questions about assignment 1 | Due date for Winter Warmup exercise Slides from today Good programming style and bad programming style Feedback survey results |
Jan 21 | Good coding guidelines or: How to not frustrate your colleagues (and yourself) From pseudo code to implementation code Assignment 2 is announced | Due date for Assignment 1 Slides for today Stack and queue implementation, as seen in class Feedback survey results |
Jan 28 | Searching for stuff. Binary search trees versus Linked Lists Questions about assignment 2 | Slides from today Null1 example that works Null2 example that does not work Linked List used for the sorted printing analysis The testcases can also be found there Feedback survey results |
Feb 4 | Balanced Trees Something new and exciting Left-leaning red-black trees Assignment 3 is announced | Due date for Assignment 2 Slides Robert Sedgewick's LLRB slides Midterm survey results |
Feb 11 | Balanced Trees Assignment 3 walkthrough and questions | Slides from today Feedback survey results |
Feb 18 | Heaps Prioritizing you elements Assignment 4 is announced | Due date for Assignment 3 Slides from today Max-heap example and heapsort |
Feb 25 | Questions about assignment 4 Assignment 5 announced Better design Other programming languages | Slides from today |
Mar 4 | Sorting Speeding things up Assignment 5 questions | Due date for Assignment 4 Slides from today |
Mar 11 | No class | Due date for Assignment 5 |
Find all slides here
Find all examples here
Find all surveys here
Assignments
- You will be expected to program in C++ for the most part. We understand that you may have never programmed in C++ before this course and will have to learn as you go. This is part of being a computer scientist.
- The assignments will not be handed out in class. You will find them on this website under assignments.
- Grading will be based roughly on the following guidelines: 30% correct I/O, 30% correct timing, 20% style and 20% documentation.
- If your program does not compile, it cannot be graded and will receive a zero.
Late policy
- Assignments are due by 11:59pm of the stated due date.
- Late assignments are subject to a 10% per day penalty. After 3 days, submission closes.
- Late assignments will not be accepted once they are graded, returned or solutions are posted.
- Any exceptions must be communicated to and resolved with the instructor well in advance of the due date (such as family emergencies).
Academic Honesty (cheating):
Generally:
- Finding solutions online is cheating.
- Reading someone else's solution is cheating.
- Looking at solutions from previous years is cheating.
- DO NOT COPY A SOLUTION!
- Cheating will result in a zero for the assignment or failing the course.
Other good hints on academic honesty:When you turn in a paper with your name on it, you are stating that it is your work (or your team's work, in the case of team learning) exclusively, so please make sure that it is.
To turn in another's work under your name is plagiarism, and qualifies as academic dishonesty. The results can be quite serious. Basing your assignment on work done in a previous year is also prohibited, as is using the work of students not presently enrolled in the course. Also, do not hand your work over to another student to read. If you allow anyone to copy your work, in part or in whole, you are liable as well.
Academic dishonesty (e.g., plagiarism, cheating on exams, etc.) is a serious violation of the rules of fair play; the consequences can be both severe and permanent, up to and including expulsion.
- Talk with me if you are in doubt.
- Finding information on C++ or pseudocode for the algorithms online is background reading and ok.
- Give credit to any hints you may get in the comments of your assignments.
Feedback
As part of my effort to improve the lectures, I collect feedback from every class. Result summaries can be found here