Data Structures
Office hours: MWF 1:30-3:00 and TTh 9:30-11:30
You are the reason I am here. Please come see me anytime. For a 20-minute appointment, just sign up on the sheet outside my office door or call me. You do not need to sign up in advance, but if you will please sign when you come, the time will be reserved for you. Also, if someone is in the office and you are signed up, please make your presence known!
Materials:
The required text is Problem Solving with Algorithms and Data Structures using Python, by Bradley N. Miller and David L. Ranum.
Scope:
This course serves as both a second programming course and an introduction to data structures. We will be using Python 2.6 as the standard programming language for the course.
We will cover introductory Python, with special attention given to its built in data structures, as well as classes. We will also explore recursive programming. The abstract data structures covered will include stacks, queues, and trees. This material is found in chapters 1-5 in the text.
Expectations of the Student:
A data structures student will...
- Schedule at least 1 to 2 hours outside of class each day for studying data structures.
- Read each assigned section and program each example.
- Come to class on time every day and stay the entire period,
- Rest and eat before or after, but not during, class
- Write all programs without copying from others, except those pieces specifically found in the book or given in class.
Expectations of the Professor:
I promise to do my best to make every minute of every class a quality learning experience. I will be ...
- Respectful to students.
- Available in my office during office hours, and give priority to anyone signed up.
- Prompt: Start and end class on time, or within 3 minutes of the scheduled time.
- Prepared for class every day.
Grades:
You will need 87.5% for an A, 75% for a B, 62.5% for a C, and 50% for a D. Grades will be based on programs, contests, and a final project. Your final grade is the percentage of the total possible.
- Programs (~400) Approximately 20 programming assignments will be given at 20 points each.
- Each problem is formatted as a programming contest problem,
- Programs will be submitted using the PC2 contest software.
- Programs may be submitted as many times as necessary up to the end of the contest (normally 2 weeks).
- 15 points will be awarded for successfully handling the judge's data. 5 points are reserved for "style points," which includes documentation, readability of code, and meeting the program specs.
- Contests (100) You are required to participate in the two midterm contests (@25) and the final contest (50).
- The final contest is in the CSIT Lab (130 Resch) at 8:00 am on Thursday, May 13.
- Students will be ranked according to their unit scores, and divided into programmers of like abililty. Winners in each division will be awarded 5 bonus points.
- If you have an excused absence, please make arrangements prior to the contest. You will be required to do the contest problems at some time. If, in the opinion of the instructor, missing a contest would not be unavoidable, there will be a 10 percent penalty. For example, if your ride for spring break is leaving on Thursday, this is not unavoidable.
- Project (100)
- Each student may elect to be part of a group of no more than 3 participants in the project.
- Each group will submit a project proposal by 5:00 p.m. Friday, April 2 using the attached form.
- Each group will give a 10 minute demonstration of their project, including a description of the data structures involved to the class.
Electronics:
Electronic communication between students must not be used during lectures or contests. Messaging programs are not to be running, and cell phones, pagers, etc. must be turned off.
Incompletes:
Incompletes for the course require signing a contract for making up work, and must be initiated by the student.
Academic Integrity:
Honesty is a prerequisite for being a competent person. If you copy solutions to problems from any source, you are required to acknowledge the source. This includes copying from friends or old homework files. Working together for inspiration and asking for hints is allowed. However, write-ups must be your own. For more on this subject, see the college policy printed in the handbook.
Disabilities:
Any student who, because of a disabling condition, may require special arrangements in order to meet course requirements should contact the instructor as soon as possible to make necessary accommodations.
Tentative Course Schedule
Class Days | Start | End | Chapter | Topic | Programming Problems |
5 | 1/25 | 2/5 | 1 | Intro to Python Programming | |
| | | | | Hello World |
| | | | | Christmas Trees |
| | | | | Names |
| | | | | Division |
| | | | | Final Patterns |
| | | | | Find and Replace |
| | | | | Paper, Scissors, Rock Tournament |
| | | | | Pig Latin Generator |
3 | 2/8 | 2/12 | | Intro to Classes | |
| | | | | SuperList |
| | | | | Repeating Decimals |
1 | 2/12 | | Contest | Chapter 1 | |
6 | 2/15 | 2/26 | 2 | Stacks, Queues, Dequeues | |
| | | | | Balanced Parentheses |
| | | | | HTML |
5 | 3/1 | 3/10 | 3 | Recursion | |
| | | | | Counting Rearrangements |
| | | | | Pascal's Triangle |
| | | | | Pascal's Beautiful Triangle |
1 | 3/12 | | Contest | Chapter 2,3 | |
6 | 3/22 | 4/2 | 4 | Algorithm Analysis: Searching/Sorting | |
| | | | | Quick Sort |
6 | 4/7 | 4/19 | 5 | Trees | |
| | | | | Parsing Expressions |
6 | 4/21 | 5/3 | 6 | Graphs | |
| | | | | Relations |
| | | | | Measuring Liquids |
2 | 5/5 | 5/7 | Projects | | |
1 | 5/13 | | Final | Chapters 1,2,3,4,5,6 | |
Data Structures Project Proposal
Please print or type.
Title
Programmers
Description
Signed
Instructor
Date
Last Update: January 26, 2010
Ronald K. Smith
Graceland College
Lamoni, IA 50140
rsmith@graceland.edu