COSC-2436 Programming Fundamentals III: Data Structures

Robert Comer

Credit Fall 2022


COSC-2436-006 (47485)


COurse description/Rationale

Course Description:    Investigation of techniques for program design, testing, and debugging. Data structures are studied including stacks, queues, linked lists and binary trees. Searching, sorting, recursion, strings, and arrays are also covered. Taught in appropriate high-level language. (COSC 2415) Course Type: T.

Pre-requisite:  COSC 1337 or department approval.

TSI Skills: Reading and Math

Instructional Methodology: This is a distance learning course which has assignments and examinations equivalent to a campus-based course with 3 hours of lecture and 3 hours of lab a week. All assignments, programs, and exam reviews are located in the class Blackboard site.

This class will not have live or recorded lectures. All course materials will be presented in reading assignments from the textbook as well as some supplemental materials on the class Blackboard site. These supplemental materials are presented in writing in some assignments and in exam review questions (with answers).

The course material will be covered in reading assignments from the textbook and in materials posted on the class Blackboard site. There will not be any live or recorded lectures. All programming assignments will be submitted via Blackboard. Tests will be ltaken in Blackboard and will be proctored by ACC Online Live proctoring.

Course Rationale:  This course is designed to teach students the fundamental data structures and the algorithms used to manipulate them. The data structures and algorithms will be implemented in a modern object-oriented programming language (C++).

Student Learning Outcomes/Learning Objectives

Course Objectives/ Learning Outcomes:

  1. Demonstrate a thorough understanding of the behavior of basic data structures: lists, stacks, queues and trees by developing programs that implement or apply these data structures.
  2. Demonstrate a thorough understanding of how data structures impact the performance of algorithms.
  3. Demonstrate a thorough understanding of the object-oriented concepts of data abstraction and encapsulation by designing and implementing data structures using classes.
  4. Demonstrate a thorough understanding of template classes by developing programs that use them.
  5. Demonstrate an understanding of recursion by applying recursive techniques to solve problems including list and tree processing.
  6. Demonstrate a thorough understanding of searching and sorting algorithms including recursive techniques.
  7. Demonstrate proficiency in implementing data validation code and performing unit and integration testing by developing robust solutions to the assignments in this course.
  8. Demonstrate good documentation style in all of the programs written in this course.


SCANS (Secretary’s Commission on Achieving Necessary Skills):

Refer to for a complete definition and explanation of SCANS. The following list summarizes the SCANS competencies addressed in this particular course:


1.1 Manages Time


2.3 Serves Clients/Customers

2.4 Exercises Leadership

2.5 Negotiates


3.1 Acquires and Evaluates Information

3.2 Organizes and Maintains Information

3.3 Uses Computers to Process Information


4.1 Understands Systems

4.2 Monitors and Corrects Performance

4.3 Improves and Designs Systems


5.1 Selects Technology

5.2 Applies Technology to Task

5.3 Maintains and Troubleshoots Technology


6.1 Reading

6.2 Writing

6.4 Mathematics

6.5 Listening

6.6 Speaking


7.1 Creative Thinking

7.2 Decision Making

7.3 Problem Solving

7.4 Mental Visualization

7.5 Knowing How to Learn

7.6 Reasoning


8.1 Responsibility

8.4 Self-Management

8.5 Integrity/Honesty



Approved Course Text:  Data Abstraction & Problem Solving with C++ 7th Edition by Frank Carrano and Timothy Henry, ISBN13 978-0-13-446397-1, published by Pearson.

See Blackboard for more nformation about the textbook.

Course Requirements

Grade Policy: Grade will be based both on concepts and practical application. Examinations and lab (programming) assignments will be used to determine the student's grade. Numerical scores on exams and assignments will be combined and the resulting score will provide a letter grade based on the following scale.



10 programming assignments evenly weighted (2.5% each)


3 semester exams @ 25% each





Grade Scale:

            90 %  - 100 %         A
            80 %  -  89 %          B
            70 %  -  79 %          C
            60 %  -  69 %          D
              0 %  -  59 %          F

The student must score 60% or above to pass the course.

Course/Class Policies

Attendance/Class Participation

Regular and timely class participation in discussions and laboratory attendance is expected of all students.  If attendance or compliance with other course policies is unsatisfactory, the instructor may withdraw students from the class.

In the event the college or campus closes due to unforeseen circumstances (for example, severe weather or other emergency), the student is responsible for communicating with their professor during the closure and completing any assignment or other activities designated by their professor as a result of class sessions being missed.

Since this class will likely be entirely online, you are expected to check your ACC email messages regularly and check Blackboard regularly.

Withdrawal Policy

It is the responsibility of each student to ensure that his or her name is removed from the roll should he or she decides to withdraw from the class.  The instructor does, however, reserve the right to drop a student should he or she feel it is necessary.  If a student decides to withdraw, he or she should also verify that the withdrawal is submitted before the Final Withdrawal Date.  The Final Withdrawal Date for this semester is Thursday, November 17.  The student is also strongly encouraged to keep any paperwork in cases a problem arises.

Students are responsible for understanding the impact that withdrawal from a course may have on their financial aid, veterans’ benefits, and international student status.  Per state law, students enrolling for the first time in Fall 2007 or later at any public Texas college or university many not withdraw (receive a W) from more than six courses during their undergraduate college education.  Some exemptions for good cause could allow a student to withdraw from a course without having it count towards this limit.  Students are strongly encouraged to meet with an advisor when making decisions about course selection, course loads, and course withdrawals.

Students who do not complete the orientation during the first week of class and do not contact the instructor will be withdrawn from the class.

Course Schedule

Please note that schedule changes may occur during the semester.  Any changes will be reflected in the schedule in Blackboard and will be accompanied by a notification to all students.  If the college or campus closes due to unforeseen circumstances (for example, severe weather or other emergency), the student is responsible for communicating with their professor during the closure and completing any assignments or other activities designated by their professor as a result of class sessions being missed.


A student may receive a temporary grade of “I” (Incomplete) at the end of the semester only if ALL of the following conditions are satisfied:

  1. The student is unable to complete the course during the semester due to circumstances beyond their control.
  2. The student must have earned at least half of the grade points needed for a “C” by the end of the semester.
  3. The request for the grade must be made directly to the insructor via email and necessary documents must be completed.
  4. To remove an “I”, the student must complete the course by two weeks before the end of the following semester.  Failure to do so will result in the grade automatically reverting to an “F”.

Statement on Scholastic Dishonesty

Austin Community College values academic integrity in the educational process. Acts of academic dishonesty/misconduct undermine the learning process, present a disadvantage to students who earn credit honestly, and subvert the academic mission of the institution. The potential consequences of fraudulent credentials raise additional concerns for individuals and communities beyond campus who rely on institutions of higher learning to certify students' academic achievements, and expect to benefit from the claimed knowledge and skills of their graduates. Students must follow all instructions given by faculty or designated college representatives when taking examinations, placement assessments, tests, quizzes, and evaluations. Actions constituting scholastic dishonesty include, but are not limited to, plagiarism, cheating, fabrication, collusion, falsifying documents, or the inappropriate use of the college’s information technology resources. Further information is available at

A student is expected to complete his or her own projects and tests in this course.

For this course, the penalty for scholastic dishonesty will be in accordance with ACC policy and may result in a grade of ‘F’ for the course.

Student Rights and Responsibilities

Academic freedom is a foundation and hallmark of higher education. In the context of college-level courses, it specifically refers to the rights of free expression and respect for others with differing opinions. Students at the college have the rights accorded by the U.S. Constitution to freedom of speech, peaceful assembly, petition, and association. This concept is accompanied by an equally demanding concept of responsibility on the part of the student. Just as you are expected to exercise these rights with respect for state and federal law in the larger world, you are expected to exercise these rights as a student with respect for the college’s standards of conduct. These rights carry with them the responsibility to accord the same rights to others in the college community and not to interfere with or disrupt the educational process. Students and faculty alike should enable a climate of mutual respect and civility while fostering the freedom to debate and discuss the merits of competing ideas.

Enrollment in the college indicates acceptance of the rules set forth in the student standards of conduct policy, which is administered through the office of the campus dean of student services. Due process, through an investigation and appeal process, is assured to any student involved in disciplinary action.

Student Complaints

A defined process applies to complaints about an instructor or other college employee. You are encouraged to discuss concerns and complaints with college personnel and should expect a timely and appropriate response. When possible, students should first address their concerns through informal conferences with those immediately involved; formal due process is available when informal resolution cannot be achieved.Please start with contacting your instructor and/or the department chair. The Computer Science & IT Department Chair is Mary Kohls (

Student complaints may include (but are not limited to) issues regarding classroom instruction, college services and offices on the basis of actual or perceived race, color, national origin, religion, age, gender, gender identity, sexual orientation, political affiliation, or disability.

Further information about the complaints process, including the form used to submit complaints, is available at:

Statement on Privacy

The Family Educational Rights and Privacy Act (FERPA)  protects confidentiality of students’ educational records. Grades cannot be provided by faculty over the phone, by e-mail, or to a fellow student.  Individual student grades are posted in BlackBoard.

Students Accessibility Services 

Each ACC campus offers support services for students with documented disabilities. Students with disabilities who need classroom, academic or other accommodations must request them through the office of Student Accessibility Services (SAS).  Students are encouraged to request accommodations when they register for courses or at least three weeks before the start of the semester, otherwise the provision of accommodations may be delayed. Students who have received approval for accommodations from SAS for this course must provide the instructor with the ‘Notice of Approved Accommodations’ from SAS before accommodations will be provided. Arrangements for academic accommodations can only be made after the instructor receives the ‘Notice of Approved Accommodations’ from the student. Students with approved accommodations are encouraged to submit the ‘Notice of Approved Accommodations’ to the instructor at the beginning of the semester because a reasonable amount of time may be needed to prepare and arrange for the accommodations.

Safety Statement 

Health and safety are of paramount importance in classrooms, laboratories, and field activities. Students are expected to learn and comply with ACC environmental, health and safety procedures and agree to follow ACC safety policies. Emergency Procedures posters and Campus Safety Plans are posted in each classroom and should be reviewed at the beginning of each semester.

All incidents (injuries/illness/fire/property damage/near miss) should be immediately reported to the course instructor. Additional information about safety procedures and how to sign up to be notified in case of an emergency can be found at

Everyone is expected to conduct themselves professionally with respect and courtesy to all. Anyone who thoughtlessly or intentionally jeopardizes the health or safety of another individual may be immediately dismissed from the day’s activity and will be referred to the Dean of Student Services for disciplinary action.

In the event of disruption of normal classroom activities due to an emergency situation or an illness outbreak, the format for this course may be modified to enable completion of the course. In that event, students will be provided an addendum to the class syllabus that will supersede the original version.

Emergency Situation

In the event of disruption of normal classroom activities due to an emergency situation or an illness outbreak, the format for this course may be modified to enable completion of the course.  In that event, students will be provided an addendum to the class syllabus that will supersede the original version.

Freedom of Expression Policy

It is expected that faculty and students will respect the views of others when expressed in classroom discussions. This includes online discussions.


Free tutoring is provided for this course. Tutoring for some courses is provided in both online and face-to-face.  For online schedules and details please refer to:

Be sure to scroll down to view the whole page.

Please note that this is an advanced course and some of the tutors will not be familiar with the course material. I strongly encourage you to contact your instructor if you run into problems with this course.

Campus Carry

The Austin Community College District concealed handgun policy ensures compliance with Section 411.2031 of the Texas Government Code (also known as the Campus Carry Law), while maintaining ACC’s commitment to provide a safe environment for its students, faculty, staff, and visitors. Beginning August 1, 2017, individuals who are licensed to carry (LTC) may do so on campus premises except in locations and at activities prohibited by state or federal law, or the college’s concealed handgun policy. In addition, concealed weapons are not allowed on ACC-sponsored field trips where the school owns or has chartered or leased vehicles for transportation. It is the responsibility of license holders to conceal their handguns at all times. Persons who see a handgun on campus are asked to contact the ACC Police Department by dialing 222 from a campus phone or 512-223-7999. Please refer to the concealed handgun policy online at:

Student Files – Privacy

Their instructor for educational and academic reasons may view the information that a student stores in his/her student volume in the Computer Studies Labs. Students in online courses will typically not be able to store files on our lab servers.

Discrimination Prohibited

The College seeks to maintain an educational environment free from any form of discrimination or harassment including but not limited to discrimination or harassment on the basis of race, color, national origin, religion, age, sex, gender, sexual orientation, gender identity, or disability.  Faculty at the College are required to report concern regarding sexual misconduct (including all forms o sexual harassment and sex and gender-based discrimination) to the Manager of Title IX/Title VI/ADA Compliance.  Licensed clinical counselors are available across the District and serve as confidential resources for students.  Additional information about Title VI, Title IX, and ADA compliance can be found in the ACC Compliance Resource Guide available at:

Use of ACC E-mail

All College e-mail communication to students will be sent solely to the student’s ACC mail account, with the expectation that such communications will be read in a timely fashion. ACC will send important information and will notify you of any college related emergencies using this account. Students should only expect to receive email communication from their instructor using this account. Likewise, students should use their ACC mail account when communicating with instructors and staff.

Classroom Behavior

Students are expected to demonstrate proper classroom behavior.  The professor has the prerogative to request any student that demonstrates improper and disruptive classroom behavior to leave the classroom.  Improper and disruptive behavior includes, but is not limited to: profanity, verbal outbursts, unwarranted physical activity, and lack of respect for fellow students and/or the professor.                                          

ACC DIstance Learning Support Services

The Help! For Distance Learning Students page contains support links and reference information that students need to successfully complete a Distance Learning course:

Help! For Distance Learning Students

Testing Center Policy

All exams will be taken online but we will be following basic ACC Testing Center rules.

For student information see:


Grades will be posted on the ACC Blackboard system:

Students should use their ACCmail accounts for class communications.

Course materials including assignments, assignment due dates, exam reviews and exam due dates will be posted in Blackboard.

You will need access to the web to periodically check for updates to course information. A log of changes will be posted on the class home page. It is your responsibility to check for any new information or changes. All students are expected to check the class on Blackboard and their ACCmail accounts on a regular basis.

For information on how to log onto Blackboard and ACCmail please visit the following sites:

We will be using the Blackboard Discussion Board for class discussion. If you have private questions you are welcome to email the instructor directly.


You should have a C++ compiler that supports ANSI standards installed on your computer. In addition, the Computer Science & Information Technology Department has an agreement with Microsoft Corporation called the Microsoft Academic Alliance. This agreement allows students to obtain compilers and certain other software at a greatly reduced cost. Contact your instructor for more information.


Orientation is required. Students who do not complete orientation during the first week of class and do not contact the instructor will be dropped from the class.

Class progress

Students are expected to keep up with the schedule of the class. In this course, each new concept builds on previous concepts so that regular progress through the material is crucial to success on tests and assignments.


Students are expected to participate in discussions. Questions and comments of general interest should be posted on teh Blackboard Discussion Board so that everyone can benefit from the discussion. Other questions, such as questions about your grades, should be sent directly to the instructor. Students are encouraged to ask questions. There are no "dumb" questions! The instructor knows that the material is difficult to grasp at times and will be glad to give additional examples or one-to-one assistance when asked.

Programming Assignments

Success in this course depends on the ability to successfully complete the assigned homework. Students are expected to do the assignments, which are designed to provide experience and practice with the concepts and techniques covered in the course.

Submitting Assignments: Programming assignments are located in Blackboard. Assignments must be submitted by clicking the assignment link in Blackboard and attaching the program source code to the assignment. Do not submit executable files, object files, project files, make files, etc. I only want you to submit files that contain C++ code that you wrote. Do not post program code to the class discussion board.

Due Dates: Programming assignment due dates will be posted on the course schedule. You should try to have assignments completed by the due date. In general you should avoid turning in incomplete assignments - it is not a problem to take a few extra days to complete the assignment. Programs are due by 11:59 pm on the due date.

Deadlines: Programs 1-8 must be submitted by 11:59 pm on Monday November 28. The last two programs must be submitted by 11:59 pm on Wednesday, December 7.

A portion of your grade on every assignment will be based on your program style and documentation. Program documentation involves the proper use of variable names, indention, comments, etc. It is important to make the programs as readable as possible and style requirements will be included with each asssignment.


The material covered in each chapter of the textbook builds on material covered in previous chapters. For this reason, the second and third exams will include material from previous exams. If a mistake is made related to material covered on a previous exam, points will still be deducted. Exams will cover material from the textbook and may include supplemental material from the class Blackboard site. Topics for each exam will be listed on the Exam Review web pages.

All exams will be administered in Blackboard and will be proctored by the ACC Distance Proctoring team. More testing information will be provided on the class Blackboard site. Each exam wil have a two hours time limit, but DE Proctoring will likely ask you to arrive 30 minutes early to get checked in..

You may use up to 3 pages (8.5 x 11" maximum) of notes for each exam. You may print or write on both sides of the page. If you do not have a printer, I will request that students be allowed to use 6 pages of electronic notes in Word or PDF format as a replacemement for the 3 physical pages. Exams will be graded and recorded in Blackboard. The instructor will email you with comments on problems you mssed on request. A student wishing to discuss the test with the instructor may do so by scheduling an appointment with the instructor (normally htis would be an online appointment). After you have submitted an exam you will not be able to review your answers again.

Due dates and Deadlines: I will post due dates for exams on the course schedule. Try to take each exam by the due date. In general you should not take an exam if you are not prepared. In general it is okay to miss the due date by a few days. However you must meet the following Delines. Deadline: the last day to take exams 1 & 2 is Monday November 28. The last day to take exam 3 is Wednesday December 7. Otherwise, see section above on Incomplete grades.

Late Policy for Exams and Programming Assignments

It is okay to miss a due date by a few days. But as the end of the semster approaches it is important to be caught up..Important: all exams and programming assignments are subject to the absolute deadlines posted above. There is no grace period for the final exam and the last two programming assignments.

Course Subjects

Course Schedule:

A typical 16 week scheludes is included below. For a detailed course schedule, see Blackboard:

Tyoical 16 Week Schedule




Chapter 1 – Data Abstraction
C++ Interlude 1 – C++ Classes


Chapter 2 - Recursion


Chapter 3 – Array-Based Implementations
C++ Interlude 2 - Pointers, Polymorphism and Memory Allocation


Chapter 4 – Linked-Based Implementations
Chapter 5 - Recursion as a Problem-Solving Technique (selected sections)


Chapter 6 – Stacks
C++ Interlude 3 – Assertions
Chapter 7 – Implementation of the ADT Stack


Chapter 8 – Lists
Chapter 9 – List Implementations
Exam 1


Chapter 10 – Algorithm Efficiency
Chapter 11 – Sorting


Chapter 11 - Sorting (continued)


C++ Interlude 4 – Smart Pointers
C++ Interlude 5 - Class Relationships and Reuse
Chapter 12 – Sorted Lists and Their Implementation


Chapter 13 – Queues and Priority Queues
Chapter 14 – Queues and Priority Queue Implementations
C++ Interlude 6 – Overloaded Operators and Friend Access


Chapter 15 – Trees
Chapter 16 – Tree Implementations
Exam 2


Chapter 16 - Tree Implementations (continued)


Chapter 17 - Heaps


Chapter 18 – Dictionaries and Their Implementations, and Hash Tables


Hash Tables (continued)


Exam 3


Published: 08/24/2022 13:46:57