Skip to main content

Search Bar Icon Close Menu

Online classes

Effective: Late Fall 8-Week, 2017/2018

CISS 350: Adv. Algorithms & Data Structu

Course Description

Advanced concepts of data, storage, organization, and retrieval. Topics include multiple-linked lists, balanced trees, graphs, abstract data types, classes and methods, object-oriented programming, searching and sorting.

Prerequisite: CISS 245 or 243

Proctored Exams: Final



Syllabus Contents

Textbooks

Required

  • Dale, N., Weems, C., & Richards, T. (2018). C++ Plus Data Structures (6th). Jones & Bartlett Learning.
    • [ISBN-978-1-284-08918-9]
    • Note: This text comes with an access code to supplementary resources. These resources are optional, and are not required for course completion.

MBS Information

Textbooks for the course may be ordered from MBS Direct. You can order

For additional information about the bookstore, visit http://www.mbsbooks.com.


Course Overview

This class will build upon your knowledge of C++ as we examine, analyze, and manipulate more advanced data structures such as binary trees, heaps, stacks, and queues.

By understanding the advantages and disadvantages of these algorithms, you will be able to utilize these tools in real life problems in a better way.



Technology Requirements

Participation in this course will require the basic technology for all online classes at Columbia College:
  • A computer with reliable Internet access
  • A web browser
  • Acrobat Reader
  • Microsoft Office or another word processor such as Open Office

You can find more details about standard technical requirements for our courses on our site.


Course Learning Outcomes

  1. Analyze time and space complexities of basic algorithms.
  2. Demonstrate an understanding of and implement basic sorting algorithms (including selection sort, quick sort, merge sort, heap sort, and counting sort).
  3. Demonstrate an understanding of and implement linked lists, stacks, and queues.
  4. Demonstrate an understanding of and implement trees and tree algorithms.
  5. Demonstrate an understanding of and implement binary trees and algorithms.
  6. Demonstrate an understanding of and implement heaps and priority queues.

Grading

Grading Scale
Grade Points Percent
A 630-700 90-100%
B 560-629 80-89%
C 490-559 70-79%
D 420-489 60-69%
F 0-419 0-59%
Grade Weights
Assignment Category Points Percent
Discussions (8) 120 17%
Programming Assignments (7) 210 30%
Quizzes (6) 120 17%
Midterm Exam 120 17%
Final Exam 130 19%
Total 700 100%


Schedule of Due Dates

Week 1
Assignment Points Due
Discussion 1 15 Wednesday/Sunday
Introduction Discussion - Sunday
Programming Assignment 1 30
Quiz 1 20
Week 2
Assignment Points Due
Discussion 2 15 Wednesday/Sunday
Programming Assignment 2 30 Sunday
Quiz 2 20
Proctor Information N/A
Week 3
Assignment Points Due
Discussion 3 15 Wednesday/Sunday
Programming Assignment 3 30 Sunday
Quiz 3 20
Week 4
Assignment Points Due
Discussion 4 15 Wednesday/Sunday
Programming Assignment 4 30 Sunday
Midterm Exam 120
Week 5
Assignment Points Due
Discussion 5 15 Wednesday/Sunday
Programming Assignment 5 30 Sunday
Quiz 4 20
Week 6
Assignment Points Due
Discussion 6 15 Wednesday/Sunday
Programming Assignment 6 30 Sunday
Quiz 5 20
Week 7
Assignment Points Due
Discussion 7 15 Wednesday/Sunday
Programming Assignment 7 30 Sunday
Quiz 6 20
Week 8
Assignment Points Due
Discussion 8 15 Wednesday/Saturday
Final Exam 130 Saturday
Total Points 700

Assignment Overview

Discussions

There will be a non-graded Introduction Discussion, due Sunday (by 11:59 p.m. CT) of Week 1. Each week you will discuss algorithm design topics with your fellow students. Regular participation in these forums will advance your understanding of algorithm development and problem-solving abilities (as well as improve your grade).

In weeks 1-7, you shall post your initial response by Wednesday (by 11:59 p.m. CT) and at least two responses to classmates by Sunday (by 11:59 p.m. CT). In week 8, you shall post your initial response by Wednesday (by 11:59 p.m. CT) and at least two responses to classmates by Saturday (by 11:59 p.m. CT). Each discussion is set so that you post your original thoughts before reading the posts of your classmates.

The length of each Discussion Post must approximately be 150- 200 words. There must be at least 3 substantial posts/responses. To be considered ‘‘substantial” a post / response must do more than iterate what the question or student stated. The post / response must bring additional thoughts or material into the discussion. No late discussion posts will be accepted.


Programming Assignments

For Weeks 1-7 you will write a program based on the topic we are covering in the text (there is no programming assignment for Week 8).  Use the Microsoft Visual Studio 2015 or Microsoft Visual Studio 2013 C++ compiler. We will be using the Microsoft Compiler for this class, available at http://www.microsoft.com/express/vc/.

The Microsoft compilers are the most accepted tools in the field. You must follow the online help to install the compiler. It may require you to install the .NET framework, which is also free. You should complete assignments in the Microsoft compiler, and then submit the completed zipped project to the course Dropbox by Sunday (by 11:59 p.m. CT) of the assigned week.

Please include comments describing the programming sequence.  Refer to the rubric in the course Content area for additional guidance.

Quizzes

There will be a brief 20-point quiz each week to test your understanding of programming concepts.  The weekly quizzes will cover the reading material from the week, and consist of 10 multiple choice questions. The quiz in each week will open on Monday, 12:01 a.m. CT and close on Sunday, 11:59 p.m. CT. There is a 15 minutes time limit for the quiz, and only one attempt is allowed for it. You will be allowed 5 minutes grace period, post which the quiz will get locked and you will not be able to make any changes. There will be 6 quizzes along with the Midterm Exam in Week 4 and the Final Exam in Week 8.


Exams

Examinations for the course will consist of a non-proctored Midterm Exam in Week 4 and a proctored Final Exam in Week 8. The Midterm Exam will cover all material from Weeks 1 through 4, and will consist of 15 questions (120 points) comprising multiple choice and short essays. The Final Exam will emphasize the material covered in Weeks 5 through 8; however, will also include key questions on material from the first 4 weeks. The Final Exam will consist of 20 questions (130 points), comprising multiple choice and short essays. Each exam has a time limit of 100 minutes, and should be completed in a single sitting. You will be allowed a 5 minute grace period, after which the exam will get locked and you will not be able to make any changes.

The Midterm Exam will open on Monday 12:01 a.m. CT and close on Sunday 11:59 p.m. CT in Week 4. The Final Exam will open on Monday 12:01 a.m. CT and closes on Saturday 11:59 p.m. CT in Week 8. The Final Exam is proctored, and it is your responsibility to arrange an acceptable proctor and submit the correct and completed proctor from in the Proctor Dropbox by the end of Week 2. See the Proctor Policy in the Course Policies section below and the Proctoring Information module in the course Content area for more information and the required form.



Course Outline

Click on each week to view details about the activities scheduled for that week.

Week 1: How to Design Applications and Data for Successful Implementation
Readings
Chapters 1-2
Discussion 1

Describe consequences you will face as a student, for not meeting the goal of completing a software design project on time and within budget? What might be the consequences for a team developing a highly competitive new software product and what steps can we take to keep our product development on schedule? In your response to the consequences for each instance elaborate on what conditions must occur before the consequences emerge. For your responses to other students, consider other consequences the student might have missed and elaborate on those consequences.

Introduction Discussion

Introduce yourself and be sure to include your current job position and any personal information that you are willing to share to help us know you better.

Programming Assignment 1

Write a Program using any one or combination of the following:

  • Array
  • Vector
  • Linked Lists
Quiz 1

The quiz consists of 10 multiple choice questions based on the week's readings.  Each question is worth 2 points.  There is a 15 minute time limit, and only 1 attempt is allowed.  The quiz opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Week 2: Sorted and Unsorted Linked List ADT (Abstract Data Types)
Readings
Chapters 3-4
Discussion 2

What is the difference between an array-based and linked representation of a list? For your response, please provide an example application where you might find each of the lists. Also, provide details for each example of why the specific list is the better choice in each instance? When responding to other students elaborate on other possible benefits of the choices or disadvantages of the choices.

Programming Assignment 2

Write a Program using an Unsorted Linked List.

Quiz 2

The quiz consists of 10 multiple choice questions based on the week's readings.  Each question is worth 2 points.  There is a 15 minute time limit, and only 1 attempt is allowed.  The quiz opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Proctor Information
Submit your proctor form to the appropriate Dropbox folder by the end of the week. Remember to “Save” the form before placing it in Dropbox. See the Content area for more information.
Week 3: ADT Stacks and Queues
Readings
Chapter 5
Discussion 3

Would the below applications be suitable for a queue or a stack? Why? In each case, what are the benefits of choosing one method over another? In your responses to other students, please discuss whether you agree with your classmates’ selections and suggest additional options that might work as well.

  1. An ailing company wants to evaluate employee records so as to lay off some workers on the basis of service time (the most recently hired employees are laid off first).
  2. A program is to keep track of patients as they check into a clinic, assigning them to doctors on a first come, first served basis.
  3. A program to solve a maze is to backtrack to an earlier position (the last place where a choice was made) when a dead-end position is reached.
  4. An inventory of parts is to be processed by part number.
  5. An operating system is to process requests for computer resources by allocating the resources in the order in which they are requested.
Programming Assignment 3

Write a Program using a Queue structure.

Quiz 3

The quiz consists of 10 multiple choice questions based on the week's readings.  Each question is worth 2 points.  There is a 15 minute time limit, and only 1 attempt is allowed.  The quiz opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Week 4: Lists plus - Circular, Singly Linked, Doubly Linked, Header/Trailer
Readings
Chapter 6
Discussion 4

Of the three variations of linked lists (circular, with header and trailer nodes, and doubly linked), which would be most appropriate for each of the following applications? Why? In each case, what are the benefits of choosing one method over another? In your responses to other students, please discuss whether you agree with your classmates’ selections and discuss additional options that might work as well.

  1. You want to search a list for a key and return the keys of the two elements that come before it and the keys of the two elements that come after it.
  2. A text file contains integer elements, one per line, sorted from smallest to largest. You must read the values from the file and create a sorted linked list containing the values.
  3. A list is short and frequently becomes empty. You want a list that is optimal for inserting an element into the empty list and deleting the last element from the list.
Programming Assignment 4

Write a Program using a Circular Linked List.

Midterm Exam

The non-proctored midterm exam consists of 15 multiple choice and short essay questions that cover content from Weeks 1-4.  There is a 100 minute time limit, and only 1 attempt is allowed.  It opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Week 5: Recursion
Readings
Chapter 7
Discussion 5

Which data structure would you most likely see in a non-recursive implementation of a recursive algorithm? In your response discuss how you might go about implementing this process and any other programming tools that might be needed to complete the implementation. When responding to other students discuss their solution.  Do you feel they have all the needed processes in place to complete the implementation?

Programming Assignment 5

Write a Program using a Recursive Function.

Quiz 4

The quiz consists of 10 multiple choice questions based on the week's readings.  Each question is worth 2 points.  There is a 15 minute time limit, and only 1 attempt is allowed.  The quiz opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Week 6: Binary Search Trees
Readings
Chapter 8
Discussion 6

What does the level of a binary search tree mean in relation to its searching efficiency?

In your response discuss what the maximum number of levels to implement a search tree with 100 nodes and what is the minimum number of levels for 100 nodes.

In your response to other students discuss if you agree with the other student’s number of levels, how the number of levels was determined and the Big-O efficiency of the maximum and minimum number of levels.

Programming Assignment 6

Write a Program using a Binary Search Tree.

Quiz 5

The quiz consists of 10 multiple choice questions based on the week's readings.  Each question is worth 2 points.  There is a 15 minute time limit, and only 1 attempt is allowed.  The quiz opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Course Evaluation
Please evaluate the course. You will have an opportunity to evaluate the course near the end of the session. A link sent to your CougarMail will allow you to access the evaluation. Please note that these evaluations are provided so that I can improve the course, find out what students perceive to be its strengths and weaknesses, and in general assess the success of the course. Please do take the time to fill this out.
Week 7: Heap Sorts and Priority Queue
Readings
Chapter 9 & 11
Discussion 7

Discuss Hashing and how it is utilized within the IT industry.  Also, discuss how Hashing can improve our sorting and searching routines and how it can affect the running time or Big-O of our algorithms.

In your responses to other students, discuss the issues that might occur when using Hashing functions and methods for minimizing and resolving the issues.

Programming Assignment 7

Write a Program on Priority Queue.

Quiz 6

The quiz consists of 10 multiple choice questions based on the week's readings.  Each question is worth 2 points.  There is a 15 minute time limit, and only 1 attempt is allowed.  The quiz opens Monday 12:01 a.m. CT and closes on Sunday 11:59 p.m. CT.

Week 8: Sorting Algorithms
Readings
Chapter 12
Discussion 8

A very large array of elements is to be sorted. The program will be run on a personal computer with limited memory. Which sort would be a better choice: A heap sort or a merge sort? Describe the Big-O of each algorithm.

In your response discuss why you chose the heap sort or merge sort, as well as the benefits one sort would have over the other in a computer with limited memory.

In your response to other students discuss if you agree with the student’s assessment, if RAM is really a concern in today’s PC computing environment, and areas in today’s computing world where RAM might come into play for a programmer’s applications.

Final Exam

The proctored final exam consists of 20 multiple choice and short essay questions that cover content from Weeks 5-8, along with key questions on material from the first 4 weeks.  There is a 100 minute time limit, and only 1 attempt is allowed.  It opens Monday 12:01 a.m. CT and closes on Saturday 11:59 p.m. CT.



Course Policies

Student Conduct

All Columbia College students, whether enrolled in a land-based or online course, are responsible for behaving in a manner consistent with Columbia College's Student Conduct Code and Acceptable Use Policy. Students violating these policies will be referred to the office of Student Affairs and/or the office of Academic Affairs for possible disciplinary action. The Student Code of Conduct and the Computer Use Policy for students can be found in the Columbia College Student Handbook. The Handbook is available online; you can also obtain a copy by calling the Student Affairs office (Campus Life) at 573-875-7400. The teacher maintains the right to manage a positive learning environment, and all students must adhere to the conventions of online etiquette.

Plagiarism

Your grade will be based in large part on the originality of your ideas and your written presentation of these ideas. Presenting the words, ideas, or expression of another in any form as your own is plagiarism. Students who fail to properly give credit for information contained in their written work (papers, journals, exams, etc.) are violating the intellectual property rights of the original author. For proper citation of the original authors, you should reference the appropriate publication manual for your degree program or course (APA, MLA, etc.). Violations are taken seriously in higher education and may result in a failing grade on the assignment, a grade of "F" for the course, or dismissal from the College.

Collaboration conducted between students without prior permission from the instructor is considered plagiarism and will be treated as such. Spouses and roommates taking the same course should be particularly careful.

All required papers may be submitted for textual similarity review to Turnitin.com for the detection of plagiarism. All submitted papers may be included in the Turnitin.com reference database for the purpose of detecting plagiarism. This service is subject to the Terms and Conditions of Use posted on the Turnitin.com site.

Non-Discrimination

There will be no discrimination on the basis of sex, race, color, national origin, sexual orientation, religion, ideology, political affiliation, veteran status, age, physical handicap, or marital status.

Student Accessibility Resources

Students with documented disabilities who may need academic services for this course are required to register with the office of Student Accessibility Resources. Until the student has been cleared through this office, accommodations do not have to be granted. If you are a student who has a documented disability, it is important for you to read the entire syllabus as soon as possible. The structure or the content of the course may make an accommodation not feasible. Student Accessibility Resources is located in Student Affairs in AHSC 215 and can be reached by phone at (573) 875-7626 or email at sar@ccis.edu.

Online Participation

You are expected to read the assigned texts and participate in the discussions and other course activities each week. Assignments should be posted by the due dates stated on the grading schedule in your syllabus. If an emergency arises that prevents you from participating in class, please let your instructor know as soon as possible.

Attendance Policy

Attendance for a week will be counted as having submitted any assigned activity for which points are earned. Attendance for the week is based upon the date work is submitted. A class week is defined as the period of time between Monday and Sunday (except for week 8, when the work and the course will end on Saturday at midnight.) The course and system deadlines are based on the Central Time Zone.

Cougar Email

All students are provided a CougarMail account when they enroll in classes at Columbia College. You are responsible for monitoring email from that account for important messages from the College and from your instructor. You may forward your Cougar email account to another account; however, the College cannot be held responsible for breaches in security or service interruptions with other email providers.

Students should use email for private messages to the instructor and other students. The class discussions are for public messages so the class members can each see what others have to say about any given topic and respond.

Late Assignment Policy

An online class requires regular participation and a commitment to your instructor and your classmates to regularly engage in the reading, discussion and writing assignments. Although most of the online communication for this course is asynchronous, you must be able to commit to the schedule of work for the class for the next eight weeks. You must keep up with the schedule of reading and writing to successfully complete the class.

No late discussion posts will be accepted.

No late assignments will be accepted.

Course Evaluation

You will have an opportunity to evaluate the course near the end of the session. A link will be sent to your CougarMail that will allow you to access the evaluation. Be assured that the evaluations are anonymous and that your instructor will not be able to see them until after final grades are submitted.

Proctor Policy

Students taking courses that require proctored exams must submit their completed proctor request forms to their instructors by the end of the second week of the session. Proctors located at Columbia College campuses are automatically approved. The use of ProctorU services is also automatically approved. The instructor of each course will consider any other choice of proctor for approval or denial. Additional proctor choices the instructor will consider include: public librarians, high school or college instructors, high school or college counseling services, commanding officers, education service officers, and other proctoring services. Personal friends, family members, athletic coaches and direct supervisors are not acceptable.


Additional Resources

Orientation for New Students

This course is offered online, using course management software provided by Desire2Learn and Columbia College. The course user guide provides details about taking an online course at Columbia College. You may also want to visit the course demonstration to view a sample course before this one opens.

Technical Support

If you have problems accessing the course or posting your assignments, contact your instructor, the Columbia College Helpdesk, or the D2L Helpdesk for assistance. Contact information is also available within the online course environment.

Online Tutoring

Smarthinking is a free online tutoring service available to all Columbia College students. Smarthinking provides real-time online tutoring and homework help for Math, English, and Writing. Smarthinking also provides access to live tutorials in writing and math, as well as a full range of study resources, including writing manuals, sample problems, and study skills manuals. You can access the service from wherever you have a connection to the Internet. I encourage you to take advantage of this free service provided by the college.

Access Smarthinking through CougarTrack under Students -> Academics -> Academic Resources.


+

Request info