COSC-2436 Programming Fundamentals III: Data Structures
Robert Comer
Credit Spring 2023
Section(s)
COSC-2436-002 (55131)
LEC DIL ONL DIL
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:
- 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.
- Demonstrate a thorough understanding of how data structures impact the performance of algorithms.
- Demonstrate a thorough understanding of the object-oriented concepts of data abstraction and encapsulation by designing and implementing data structures using classes.
- Demonstrate a thorough understanding of template classes by developing programs that use them.
- Demonstrate an understanding of recursion by applying recursive techniques to solve problems including list and tree processing.
- Demonstrate a thorough understanding of searching and sorting algorithms including recursive techniques.
- Demonstrate proficiency in implementing data validation code and performing unit and integration testing by developing robust solutions to the assignments in this course.
- Demonstrate good documentation style in all of the programs written in this course.
SCANS (Secretary’s Commission on Achieving Necessary Skills):
Refer to http://www.austincc.edu/cit/courses/scans.pdf for a complete definition and explanation of SCANS. The following list summarizes the SCANS competencies addressed in this particular course:
RESOURCES 1.1 Manages Time |
INTERPERSONAL 2.3 Serves Clients/Customers 2.4 Exercises Leadership 2.5 Negotiates |
INFORMATION 3.1 Acquires and Evaluates Information 3.2 Organizes and Maintains Information 3.3 Uses Computers to Process Information |
SYSTEMS 4.1 Understands Systems 4.2 Monitors and Corrects Performance 4.3 Improves and Designs Systems |
TECHNOLOGY 5.1 Selects Technology 5.2 Applies Technology to Task 5.3 Maintains and Troubleshoots Technology |
BASIC SKILLS 6.1 Reading 6.2 Writing 6.4 Mathematics 6.5 Listening 6.6 Speaking |
THINKING SKILLS 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 |
PERSONAL SKILLS 8.1 Responsibility 8.4 Self-Management 8.5 Integrity/Honesty |
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.
Component |
Weight |
9 programming assignments: |
2% |
3 semester exams: |
25% |
Total |
100% |
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 Monday, April 24. 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.
Incompletes
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:
- The student is unable to complete the course during the semester due to circumstances beyond their control.
- The student must have earned at least half of the grade points needed for a “C” by the end of the semester.
- The request for the grade must be made directly to the insructor via email and necessary documents must be completed.
- 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 https://www.austincc.edu/about-acc/academic-integrity-and-disciplinary-process
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 (kohls@austincc.edu).
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: http://www.austincc.edu/students/students-rights-andresponsibilities/student-complaint-procedures
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 http://www.austincc.edu/emergency
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.
Tutoring
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:
http://austincc.edu/campuscarry
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:
https://drive.google.com/file/d/1o55xINAWNvTYgI-fs-JbDyuaMFDNvAjz/view
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.
http://www.austincc.edu/testctr/
Unless otherwise noted, all exams will be proctored.
For student information see:
Communication
Grades will be posted on the ACC Blackboard system:
Students should use their ACCmail accounts for class communications.
http://www.austincc.edu/accmail/
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:
http://irt.austincc.edu/blackboard/StudentSupport.php
http://www.austincc.edu/google/
We will be using the Blackboard Discussion Board for class discussion. If you have private questions you are welcome to email the instructor directly.
Software
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
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.
Participation
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 contains your C++ program code. 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-7 must be submitted by 11:59 pm on Sunday April 30. The last two programs must be submitted by 11:59 pm on Wednesday May 10.
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.
Exams
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 this 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 deadlines. Deadline: the last day to take exams 1 & 2 is Sunday April 30. The last day to take exam 3 is Wednesday May 10. 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
Week |
Topic |
1 |
Chapter 1 – Data Abstraction |
2 |
Chapter 2 - Recursion |
3 |
Chapter 3 – Array-Based Implementations |
4 |
Chapter 4 – Linked-Based Implementations |
5 |
Chapter 6 – Stacks |
6 |
Chapter 8 – Lists |
7 |
Chapter 10 – Algorithm Efficiency |
8 |
Chapter 11 - Sorting (continued) |
9 |
C++ Interlude 4 – Smart Pointers |
10 |
Chapter 13 – Queues and Priority Queues |
11 |
Chapter 15 – Trees |
12 |
Chapter 16 - Tree Implementations (continued) |
13 |
Chapter 17 - Heaps |
14 |
Chapter 18 – Dictionaries and Their Implementations, and Hash Tables |
15 |
Hash Tables (continued) |
16 |
Exam 3 |
Office Hours
M T W Th 2:00 PM - 4:00 PM Online
NOTE By appointment. Email me if you would like to make an appointment to meet. I generally use Google Meet (voice or video). I generally prefer meeting afternoons or early evening. I can usually meet Monday - Saturday.Published: 01/17/2023 16:19:43