Demonstrate an understanding of and implement linked lists, stacks, and queues.

Demonstrate an understanding of and implement trees and tree algorithms.

Demonstrate an understanding of and implement binary trees and algorithms.

Demonstrate an understanding of and implement heaps and priority queues.

UG

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.

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.

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 InformationSubmit 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.

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.

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).

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.

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.

An inventory of parts is to be processed by part number.

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.

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.

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.

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.

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.

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.

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 EvaluationPlease 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.

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.

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.