guided independent study

810:052 Data Structures
Course Details        Return to course list         Enrollment information

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

web 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:

  • write “medium” sized programs using algorithmic problem solving and functional decomposition in analysis, design, and implementation,
  • implement and understand the algorithms for manipulating the abstract data types (ADTs) stacks, queues, lists, strings, trees, and graphs, and
  • select appropriate data structures when writing medium size programs.

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