COSC-2436 Programming Fundamentals III: Data Structures


Bernard Ku

Credit Summer 2024


Section(s)

COSC-2436-004 (79925)
LAB TuTh 2:25pm - 4:40pm DIL DLS DIL

LEC TuTh 12:10pm - 2:25pm DIL DLS DIL

Course Description/Rationale Course Description:

Further applications of programming techniques, introducing the fundamental concepts of data structure and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis.


Prerequisite:

COSC 1337 or instructional program approval. Course Type: T.


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++). Since this course is designed to transfer into a bachelor degree program, check with the college to which you plan to transfer to be sure that they will accept this course.


Instructional Methodology:

This course will have 70% lecture and 30% laboratory. 

The CIS open labs are available for students for work outside of scheduled lab time. 


Grading Policy

Grade will be assigned based both on concepts and practical application. Exams, homework, and lab assignments will be a part of the grade.  An overall grade will be assigned on the following grading scale:

90%  - 100%         A

80%  -  89%          B

70%  -  79%          C

60%  -  69%          D

0%    -  59%          F


Course Requirements

Each student’s grade for this course consists of:

EXAM 1

15% 

EXAM 2

15% 

EXAM 3

15% 

20 Quizzes – 15 Chap + 5 Inter

15%

5 Labs 

35%   

Class Participation and Attendance

 

 5% 

 

Students are expected to read and study the assigned material, per the Course Schedule before each class, including the assignments.


Readings

Approved Course Texts/Readings:

Data Abstraction & Problem Solving with C++: Walls and Mirrors by Carrano, Frank M. / Henry, Timothy M., 7th Edition, PEARSON, ISBN 13 : 9780134463971


Student Learning Outcomes/Learning Objectives

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

RESOURCES

1.1 Manages Time

INTERPERSONAL

2.1 Participates as a member of a team

2.6 Works with Cultural Diversity

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 Monitor and Corrects Performance

4.3 Improve 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.3 Arithmetic

6.4 Mathematics

6.5 Listening

THINKING SKILLS

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.2 Self-Esteem

8.3 Sociability

8.4 Self-Management

8.5 Integrity/Honesty


Course Policies

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.

Software

You should have a DevC++ 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.

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 because of class sessions being missed.

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

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.

All submitted programs must compile and run on DevC++ 5.12 Under Windows 11 or the latest version on the platforms in the CIS Labs. Students can develop their programs on other C++ platforms but they must port the developed codes and able to compile and execute on  DevC++, Students are also expected to understand the proper use of working with their ACC drive for this course and the installed software on the CIS Lab computers.

Submitting Assignments: Programming assignments are 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 .cpp and .h 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.

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 assignment. 0 credit will be given to assignments that are not correctly built as DevC++ programs and/or have compile errors on the ACC CIS workstations.

For details lease refer to grading guidelines posted on Blackboard.

Success in this course depends on the ability understand the course material and 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.

Only assignments submitted to Blackboard will be considered for grading. Never email the instructor your programming assignment.

All programming assignments are due on Sunday before 11:59 pm on the date posted in the Blackboard/Course Schedule as timestamped by Blackboard. Most programming assignments may be submitted late (grace period) up to one day with a late penalty of 20%. Grading feedback may not be provided promptly for work submitted late.  The grace period is not a substitute for the due date, and it is the instructor’s prerogative to end the practice of or change the conditions of the grace period as necessary. Some assignments do not have a grace period and are noted in the Course Schedule.

Program documentation involves the proper use of variable names, indention, comments, etc. It is very important to make the programs as readable as possible and the instructor will strictly enforce the documentation guidelines for this course.

Correct build and testing of DevC++ Programs on the CIS workstations are part of the requirements.

Please contact me if you have questions about the assignment expectations or grading process.

Exams

Exams will cover material from the textbook, lab assignments and instructor’s slides 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 will have a 1 hour and 30 minutes’ time limit (max allowed by DE), but DE Proctoring will likely ask you to arrive 30 minutes early to get checked in.

You may use up to 3 pages (of size 8.5 x 11" maximum) of notes for each exam. You may print or write on both sides of the page. 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: Since this is a Synchronous Online class, all students will need to take the exams on the same day and at the same time, just like in person class. Tentative exam dates are set as June 20 (Thurs), July 11 (Thurs) and July 25 (Thurs) from 12:10 pm to 1:40 pm. Instructor will share the DE proctoring information for students to sign up in advance. Students should sign up as soon as the information is available. Failure to sign up or no shows on the exam dates will automatically result in a zero grade.

There will be no makeup exams in this courseUnder extreme circumstances or ACC allowed scenarios (Example: hospitalization) if a student has appropriate documentation an exam may be rescheduled in advance. This is at the sole discretion of the instructor, and you must obtain the consent of your instructor no later than 10 days in advance of the regularly scheduled exam during office hours.

Under no circumstances will a rescheduled exam, makeup exam, or replacement grade be given to a student who does not maintain regular and punctual attendance in lecture and lab, has unsatisfactory grades, or whose compliance with other course and grade policies is unsatisfactory.

 


Course/Class Policies Attendance/Class Participation

Regular and punctual class 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.  


Withdrawal Policy

t 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 last date to withdraw for this semester is  July 15, 2024. The student is also strongly encouraged to retain their copy of the withdrawal form for their records.

Students who enroll for the third or subsequent time in a course taken since Fall, 2002, may be charged a higher tuition rate, for that course. State law permits students to withdraw from no more than six courses during their entire undergraduate career at Texas public colleges or universities. With certain exceptions, all course withdrawals automatically count towards this limit. Details regarding this policy can be found in the ACC college catalog.


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:

  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 in person at the instructor’s office and necessary documents 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

A student attending ACC assumes responsibility for conduct compatible with the mission of the college as an educational institution. Students have the responsibility to submit coursework that is the result of their own thought, research, or self-expression. 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, and falsifying documents. Penalties for scholastic dishonesty will depend upon the nature of the violation and may range from lowering a grade on one assignment to an “F” in the course and/or expulsion from the college.

See the Student Standards of Conduct and Disciplinary Process.

For this course, the penalty for scholastic dishonesty is a grade of ‘F’ for the course.


Student Rights and Responsibilities

Students at the college have the rights accorded by the U.S. Constitution to freedom of speech, peaceful assembly, petition, and association. 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. Opportunity for students to examine and question pertinent data and assumptions of a given discipline, guided by the evidence of scholarly research, is appropriate in a learning environment. This concept is accompanied by an equally demanding concept of responsibility on the part of the student. As willing partners in learning, students must comply with college rules and procedures.


Statement on Students with Disabilities

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

Austin Community College is committed to providing a safe and healthy environment for study and work. You are expected to learn and comply with ACC environmental, health and safety procedures and agree to follow ACC safety policies. Because some health and safety circumstances are beyond our control, we ask that you become familiar with the Emergency Procedures poster and Campus Safety Plan map in each classroom.

Please note, you are expected to conduct yourself professionally with respect and courtesy to all. Anyone who thoughtlessly or intentionally jeopardizes the health or safety of another individual will be immediately dismissed from the day’s activity, may be withdrawn from the class, and/or barred from attending future activities.


Testing Center Policy


Freedom of Expression Policy

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


Tutoring

Free tutoring is provided for this course both on line and face-to-face.  For online schedules and details please refer to http:://www.austincc.edu/cit .


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.


Use of Electronic Devices (for on-ground classes)

The use of cell phones, music players and other electronic devices is not allowed at any time in the class or lab.  Cell phones must be turned off and out of sight. The use of a laptop computer in class or lab is restricted to instructor approved activities. Using your cell phone in class will directly affect your class participation grade.


Concealed Handgun Policy

ACC faculty may notify students in their classes or learning environment about the Texas Campus Carry law taking effect at Austin Community College (and other Texas community colleges) on August 1, 2017. The following is recommended syllabus language, approved by legal counsel and the college. For courses including ACC-sponsored field activities, language is still being drafted.

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.

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.

1. Statement for standard classroom courses (non-exclusion zone)

Refer to the concealed handgun policy online.

2. Statement for classroom courses with physical activity (non-exclusion zone)

IMPORTANT: (Class name) classes may involve considerable physical activity. Bending, stretching, lifting, and other rigorous activities associated with (class name) occur regularly in class. Such activities may expose concealed weapons and place the license holder in violation of state law. Therefore, it is recommended that concealed weapons be stored in a secure place as defined by college policy prior to entering the classroom, studio, or learning space.

Refer to the concealed handgun policy online.

3. Statement for classroom courses in exclusion zones

IMPORTANT: (class name) classes are held in an area designated as an exclusion zone as defined by state law or the college’s concealed handgun policy. Concealed carry is prohibited in exclusion zones. Concealed weapons must be stored in a secure place as defined by college policy prior to entering the classroom, studio, or learning space.

Refer to the concealed handgun policy online.

4. Facts

  • All public Texas colleges and universities must abide by the law.

  • Private institutions may opt out of implementing the law.

  • The concealed campus carry law does not allow open carry on campus.

  • A person must have a License to Carry a Handgun (LTC).

  • A person must be at least 21 to obtain a LTC, unless he/she is active duty military or a police officer.

  • Faculty and staff do not have authority to ban handguns from classrooms.

  • Campus carry laws exist in eight states (Texas, Colorado, Utah, Idaho, Mississippi, Kansas, Oregon, and Wisconsin).

  • Licensed gun owners have been allowed to carry concealed handguns on public campuses (but not in buildings) for 20 years.

  • While Texas is currently in a legislative session, there are no indications lawmakers will change the law.

 

 

 


Use of ACC E-mail

All College e-mail communication to students will be sent solely to the student’s ACCmail 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 ACCmail account when communicating with instructors and staff. Instructions for activating an ACCmail account.


Student and Instructional Services

ACC strives to provide exemplary support to its students and offers a broad variety of opportunities and services. Information on these services and support systems is available here. Links to many student services and other information can be found at Current Students. ACC Learning Labs provide free tutoring services to all ACC students currently enrolled in the course to be tutored. The tutor schedule for each Learning Lab may be found here. For help setting up your ACCeID, ACC Gmail, or ACC Blackboard, see a Learning Lab Technician at any ACC Learning Lab.


Course Subjects

Further applications of programming techniques, introducing the fundamental concepts of data structure and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis.


Course Schedule

Summer 2024 Schedule – COSC 2436 -004 - Tentative                        

Lecture     D   M                                         Topic

1 T

28 May

Introduction, Syllabus, Ch 1 Abstract Data Type (ADT)

1 T

28 May

Lab 0 IPO, Discussions and Demo

2 R

30 May

Ch 2 Recursion – Part 1

2 R

30 May

Refresh on Advanced C++

3 T

  4 Jun

Ch 5 Recursion Part 2

3 T

   4 Jun

Lab 1 IPO, Discussions and Demo

4 R

 6 Jun

Ch 3 Array ADT and Implementation

4 R

6 Jun

Inter 1 and Inter 2/ Lab 2 IPO, Discussions and Demo

5 T

11 Jun

Ch 4 Link ADT and Implementation

      5 T

11 Jun

Ch 6/7 Stack ADT and Implementation

  6 R

13 Jun

Lab 1 Team reports/Inter 3

  6 R

13 Jun

Lab 3 IPO, Discussions and Demo

  7 T

18 Jun

Exam 1 Review (Ch 1-7, Inter 1/2, Lab 0/1 Applications)

  8 R

20 Jun

                 EXAM 1 (12:10 pm - 1:40 pm)

     9 T

  25 Jun

Ch 8/9 List ADT and Implementation

  9 T

  25 Jun

Inter 4

   10 R

  27 Jun

Ch 10 Algorithm Efficiency Ch 11/12 Sorting Algorithms

10 R

  27 Jun

Lab 4 IPO, Discussions and Demo

11 T

    2 Jul

Ch 13/14 Queue ADT and Implementation

11 T

 2 Jul

Inter 5

 

 4 Jul

                  NO CLASS

12 T

  9 Jul

Exam 2 Review (Ch 8-14, Inter 4/5, Lab 3/4 Applications)                  

13 R

11 Jul

                  EXAM 2 (12:10 pm - 1:40 pm)

13 R

11 Jul

Ch 15/16 Binary Search Tree ADT and Implementation

14 T

 16 Jul

Lab 5 IPO, Discussions and Demo/ Lab 4 Team reports

14 T

 16 Jul

Ch 17 Heap ADT and Implementation /Inter 6

15 R

 18 Jul

Ch 18 Dictionary ADT and Implementation

15 R

 18 Jul

Ch 18 Hashing and Hash Table Implementation and Demo

16 T

 23 Jul

Exam 3 Review (Ch 15-18, Inter 6, Lab 5 Applications)

17 R

 25 Jul

                      EXAM 3 (12:10 pm - 1:40 pm)

 

As the instructor for this course, I reserve the right to adjust the schedule in any way that serves the educational needs of the students enrolled in this course. – Bernie Ku

 

Students are expected to read and study the assigned material, per the course schedule, BEFORE each class, this includes the laboratory assignments!!15-  


Office Hours

M 10:00 AM - 11:00 AM Class Zoom Link on Blackboard

NOTE

Published: 05/30/2024 11:07:49