Course Materials for CIS 300, Fall 2009
- Email:
rhowell@ksu.edu
- Office: Nichols 227D
- Office Hours: 1:30-3:00 MW or by appointment
- Phone: 532-7735
TAs:
Claudia Chaudhari
- Email: marincx at ksu.edu
- Office: N227-J
- Office Hours: 3:30-4:30 TT, 11:30-12:30 F
Vijay Kolli
- Email: vijayk at ksu.edu
- Office: N19-L
- Office Hours: 2:00-3:30 TT
SAS Tutor: Matt Hudson
ACM Help Sessions
- Tuesday evenings, 7:00-9:00, N126.
Recommended Textbooks
I have been unable to find an appropriate data structures textbook
that uses C#, which will be the programming language used in
this class. For this reason, I will not be following any
specific textbook. If you would like to refer to a textbook
that uses Java, which is similar to C#, I can recommend the
following:
- Data Structures and Other Objects Using Java, Michael
Main.
- Data Structures and Algorithms in Java, Michael
T. Goodrich and Roberto Tamassia.
- Data Structures and Problem Solving Using Java, Mark Allen
Weiss.
If you would like to refer to a textbook on programming in C#, I can
recommend:
- Programming in the Key of C#: A Primer for Aspiring
Programmers, Charles Petzold.
Prerequisite
The prerequisite for this course is CIS 200 with a C or better. If
you do not meet the prerequisite requirement for this course, you
should see me immediately. It your responsibility to drop
this course if you do not meet the prerequisite requirement. The
department and the College of Engineering reserve the right to drop
you from this course if you do not meet the listed prerequisites.
Goals
Students should master the following knowledge and skills:
- Interfaces to (partially) define a data structure
- Standard versions of classic data structures: lists, stacks,
queues, trees, and hash tables
- Elementary algorithms for searching and manipulating an
implementation of a data structure
- Recursion, including recursive definitions of data structures
like lists and trees
- Algorithms for sorting
In addition, students should become familiar with the following:
- Time-complexity classes and their application to evaluating
performance of data-structure implementations
Programming Environment
This course will require a significant amount of programming using
Microsoft Visual C# 2008. Examples shown in class will use Microsoft
Visual C# 2008 Express Edition, which is available for free
from Microsoft.
Topics
Time permitting, I would like to cover the following topics (not
necessarily in this order):
- Using Visual C# to construct GUIs
- Event-driven programming in C#
- Stacks
- Queues
- Lists
- Trees
- Binary search trees
- Priority queues
- Tries
- Hashing
- Sorting
Grading
- Programming assignments: 50%
- Exam 1, Sept. 23: 10%
- Exam 2, Oct. 21: 10%
- Exam 3, Nov. 18: 10%
- Final Exam, Thurs., Dec. 17, 4:10-6:00: 20%
Programming assignments will be given roughly once per week. All
solutions must be submitted electronically through K-State Online by the
given due date. Late submissions will be accepted with a penalty
of 1 point (out of 100) per hour, or any portion of an hour, late;
thus, if a submission is 1 minute late, the penalty is 1 point. If
multiple solutions are submitted for the same assignment, only the
last one will be graded. No submissions will be accepted after
three days (i.e., 72 hours) past the due date. The lowest score
you receive on these assignments will not be counted toward your
final grade.
Each of the first three exams will be a 50-minute exam covering
roughly 25% of the course material. The Final Exam will be
comprehensive. Except under extreme circumstances (as judged
by me), no make-up exams will be given.
Final grades will be assigned according to the following scale:
- 90%-100%: A
- 80%-89%: B
- 70%-79%: C
- 60%-69%: D
- Below 60%: F
In addition, in order to pass the class with at least a D, you must
obtain a total of at least 60% of the points on the four exams
combined.
Academic Honesty and Classroom Conduct
Kansas State University has an Honor System based on personal
integrity, which is presumed to be sufficient assurance that, in
academic matters, one's work is performed honestly and without
unauthorized assistance. Undergraduate and graduate students, by
registration, acknowledge the jurisdiction of the Honor
System. The policies and procedures of the Honor System apply to
all full and part-time students enrolled in undergraduate and
graduate courses on-campus, off-campus, and via distance
learning. The honor system website can be reach via the following
URL: www.ksu.edu/honor. A
component vital to the Honor System is
the inclusion of the Honor Pledge which applies to all
assignments, examinations, or other course work undertaken by
students. The Honor Pledge is implied, whether or not it is
stated: "On my honor, as a student, I have neither given nor
received unauthorized aid on this academic work." A grade of XF
can result from a breach of academic honesty. The F indicates
failure in the course; the X indicates the reason is an Honor
Pledge violation.
In this class, you may discuss programming assignments with others,
and you may help each other to find errors in your code; however,
you must write up your own solutions yourself, without using
either complete or partial solutions from your classmates, the
internet, or other sources. You must do the exams with no
assistance from others. If you are in doubt about what is
permissible, please ask me.
All student activities in the University, including this course, are
governed by the Student Judicial Conduct Code as outlined in the
Student Government Association By Laws, Article VI, Section 3,
number 2. Students that engage in behavior that disrupts the
learning environment may be asked to leave the class.
K-State Online
All assignments and other course materials will be distributed via K-State Online. Grade
information may be accessed there, and announcements will be
posted from time to time. Important class messages will be
emailed to your KSU email accounts and posted as announcements.
You must be enrolled in the course to access K-State
Online.
Disabilities
Any student with a disability that needs a classroom accommodation,
access to technology or other assistance in this course should
contact Disability Support
Services and/or their instructor.
Copyright © 2009 (Rod Howell) as to this
syllabus and all lectures. During this course students are
prohibited from selling notes to or being paid for taking notes
by any person or commercial firm without the express written
permission of the professor teaching this course.