Course Materials for CIS 300, Spring 2009
- Email: rhowell@ksu.edu
- Office: Nichols 227D
- Office Hours: 1:30-3:00 TT or by appointment
- Phone: 532-7735
TAs:
Claudia Chaudhari
- Email: marincx at ksu.edu
- Office: N227-J
- Office Hours: 10:30-11:30 M, 3:30-4:30 MW
Aaron Chavez
- Email: mchav at ksu.edu
- Office: N219-G
- Office Hours: 2:30-3:30 MWF
SAS Tutor: Chris Ramsey
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 inserting, sorting, and searching an
implementation of a data structure
- Recursion, including recursive definitions of data structures
like lists and trees
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
- Stacks
- Queues
- Lists
- Trees
- Binary search trees
- Tries
- Hashing
- Sorting
Grading
- Programming assignments: 50%
- Exam 1, Feb. 20: 10%
- Exam 2, Mar. 13: 10%
- Exam 3, Apr. 22: 10%
- Final Exam, Thurs., May 14, 11:50-1:40: 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
past the due date.
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
Kansas State University has an Honor & Integrity System based on
personal integrity, which is presumed to be sufficient
assurance in academic matters that one's work is performed
honestly and without unauthorized assistance.
Undergraduate and graduate students, by registration,
acknowledge the jurisdiction of the Honor & Integrity
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.
A component vital to the Honor & Integrity System is 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."
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.
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.
For more information, visit the Honor & Integrity System home web page
at: http://www.ksu.edu/honor.
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
(202 Holton Hall) and/or their instructor.
Copyright © 2009, Rod Howell.
This syllabus, all lectures for this course, and all lecture materials
are copyrighted
materials. 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 Rod Howell.