Course credit
4 credit hours
Course description
Introduction to use and implementation of data and file structures such as sets, hash tables, stacks, trees, queues, heaps, and graphs. Basic algorithm analysis. Searching and sorting. Basic object-oriented analysis, design, and modeling tools.
Delivery
This course is available in a web-based format, utilizing web pages and MyCourses, a computer conferencing program. MyCourses requires Internet access and a web browser — no additional software is required. Students may need access to someone who can assist with computer set-up.
Prerequisites
UNI students: Introduction to Computing (810:051) or equivalent. If your equivalent course did not use the Python programming language, it is not a big problem. The same introductory programming concepts apply. You will just need to do some additional reading in the textbook (Chapters 1-10) to understand the Python syntax of “if” statements, “for” statements, etc. The textbook author has an overview of all the essential differences between Python, Java, and C++ at his web-site: http://home.wlu.edu/~lambertk/python/. Plus, there are many free, on-line Python tutorials at http://www.python.org/
Instructor
Mark Fienup, Associate Professor of Computer Science
Fienup is an Associate Professor of Computer Science. He received his B.A. from the University of Northern Iowa in Mathematics and Chemistry. He earned both his M.S. and Ph.D. in Computer Science at Iowa State University. He has been a faculty member of the Computer Science Department at the University of Northern Iowa since 1985.
Fienup regularly teaches Introduction to Computing, Data Structures, Computer Organization, and Computer Architecture. His current research activity centers on the Bioinformatics topic of automatics, three-dimensional protein structure prediction.
Evaluation
12 quizzes, 12 laboratories, 6 programming projects, 2 exams
Overview
This course is the second-semester programming course after Introduction to Computing (810:051 or equivalent). It is designed to improve your programming analysis, design, and implementation skills from the “toy-program” level of a beginning programming course to “medium-size” programs. The design, implementation and analysis of in-memory data structures (stacks, queues, lists, strings, trees, and graphs) and the algorithms for manipulating them are a major focus of the course.
Course Objectives
After this course, you should be able to:
|
Course organization
Written Assignments:
Assignments are organized around the Chapters 11 through 20 of the textbook which you should cover sequentially. For each chapter, you should follow these steps:
1) Read the chapter thoroughly.
2) Work through the laboratory assignment(s) related to the chapter (usually there is only one lab per chapter). Each lab will consist of short-answer questions and programming exercises where you will be modifying and writing small sections of Python code. Using a word processor program (Word, Open-Office, etc.), save your short-answer responses to a file in Rich-text format (.rtf). Zip this file and your Python programming files together and submit the .zip file via the Assignments tool.
3) Take the True/False and Multiple Choice Chapter Quiz via the Assessments tool.
4) Check the outline below to see if the you should complete a Programming Project at the end of the chapter. Programming projects require you to write larger, complete programs so you can improve your program design, implementation, and testing skills.
Examinations:
There will be two proctored exams. A mid-term exam after chapters 11-15, and a comprehensive final exam after chapters 16-20.
Grading
| Chapter | Topic | Laboratories | Programming Projects |
| 11 | Searching, Sorting, and Complexity. | Lab 1
Lab 2 |
Project 1 |
| 12 | Tools for Design, Documentation, and Testing. | Lab3 | |
| 13 | Collections, Arrays, and Linked Structures. | ||
| 14 | Stacks. | Lab 4 | Project 2 |
| 12 | Queues. | Lab 5
Lab 6 |
Project 3 |
| Mid-term exam: covering chapters 11 -15 | |||
| 16 | Linked Lists. | Lab 7 | Project 4 |
| 17 | Recursion. | Lab 8 | |
| 18 | Hierarchical Collections: Trees. | Lab 9
Lab10 |
Project 5 |
| 19 | Unordered Collections: Sets and Dictionaries. | Lab 11 | Project 6 |
| 20 | Graphs. | Lab 12 | |
| Final exam: comprehensive, but focusing on details of chapters 16-20 | |||
Grading policy
Course components are weighted as:
Chapter quizzes: 10%
Laboratories: 15%
Programming Projects: 25 %
Mid-term exam: 25 %
Final exam: 25 %
Course grades will be assigned based on the following grading scale:
100-90 = A
89 - 80 = B
79 - 70 = C
69 - 60 = D
Below 59 = F
Plus and minus grades will be assigned for scores within two percentage points from a grade cutoff (e.g., 91.9 to 90 is an A-, and 89.9 to 88 is a B+).
UNI Guided Independent Study requires that you complete all assignments and exams to pass the course.
Resources
Textbook:
Kenneth A. Lambert, Fundamentals of Python: From First Programs through Data Structures, 1st Edition, 2010, ISBN-10: 1-4239-0218-1, ISBN-13: 978-1-4239-0218-8. The Data Structures course covers chapters 11 to 20.
Software Tools:
You will need to download and install the free Python development package (version 2.x and NOT version 3.x) from the Python Web-site: http://www.python.org/. Appendix A of the textbook walks you through the installation of Python.
Texts are available from www.bookfinder.com
University Book and Supply carries most books used in guided independent study.
To search for textbooks by course, click on "Select a Campus Term" and select Univ.Northern Iowa - Guided Independent Study
Visit the store at 1009 West 23rd Street, Cedar Falls, IA 50613
Phone: 319-266-7581 or 800-728-7581
Fax: 319-277-1266
E-mail: bookstore@panthersupply.com
To enroll
ONLINE
GIS enrollment information
IN PERSON
UNI Continuing and Distance Education
2637 Hudson Road (corner of 27th St. and Hudson Rd.)
Cedar Falls, IA 50614-0223
Campus map (Look for Building 31)
For more information
Cindy Klodt, Guided Independent Study
UNI Continuing and Distance Education
319-273-2123 or 800-772-1746
ContinuingEd@uni.edu
