Course Syllabus

Course Information

Course name and number: CPSC 2108 - Data Structures

Credit Hours: 3

Course Description: This course extends the concepts of primitive data types by teaching the student a set of data structures that pervades both the theoretical and practical domains of computer science.

Required Competencies/Prerequisites: CPSC 1302K with a minimum grade of "C" and MATH 2125 with a minimum grade of "C".

Course Offering (days/times and room): 9:30 – 10:45 AM Tuesdays and Thursdays in SCCT 407

Section: 01

Course Registration Number (CRN): 21415

Websites:

The last day to drop without a grade and receive a 100% refund: Friday, January 12, 2024

Deadline to withdraw with a WP (Withdraw Pass):  Friday, March 1, 2024

Instructor Information

Textbooks and Materials

Required Textbook

We will use the free OpenDSA Data Structures and Algorithms Modules Collection. Additionally, direct links to other resources will be found on the calendar webpage.

Other Textbooks

You may also find the following free textbooks helpful:

Modules

  1. Orientation & Review
  2. Computational Complexity
  3. Recursion
  4. Generic Type, Comparator Class, Search Algorithms
  5. Sorting Algorithms
  6. Hashing
  7. Linked Lists, Stacks and Queues
  8. Trees
  9. Heaps
  10. Graphs

Course Learning Outcomes

By the end of this course you should be able to:
  1. Explain the principles of algorithmic efficiency.
  2. Specify, design, and implement abstract data types.
  3. Describe, implement, and use data structures such as lists, stacks, and queues.
  4. Define recursion as a programming technique and use it.
  5. Describe, implement, and use binary search trees and graphs.
  6. Describe, implement, and use common searching and sorting algorithms.
  7. Describe, implement, and use priority queues and heaps.

Activity Expectations and Assignment Requirements

Attendance

Attendance is required by the university and will be recorded at the beginning of each class. It may also be used in determining grades. Additionally, it is the student's responsibility to independently cover any materials missed. Makeup exams or quizzes are generally not given, so please make sure you are present for all exams and quizzes.

I expect each student to be in attendance for each class in-person. Attendance will be calculated by your arrival and duration in class. It is your responsibility to make sure your attendance gets recorded correctly for every class meeting (see under Student Responsibilities below). If you can not make a class, please inform me and get the relevant materials from a classmate.

Computers are permitted in lecture for note taking and completing exercises. Other activities such as web surfing, stock trading, and social networking are inappropriate. Not only do they distract you but also others.

Students that do not attend both of the first two lectures may be dropped from the course. Refer to the CSU Catalog (https://catalog.columbusstate.edu/academic-regulations/undergraduate-academic-regulations/) for more information on class attendance and withdrawal.

Practice Assignments

You have the opportunity to complete practice assignments this semester to help you learn and retain the techniques that you will learn. For the practice assignments hosted on codePost.io, you can submit them late for reduced points (half off each week that it's late).

Projects

There will be multiple projects in this course. Projects must be written in Java. They are due at 10:00 PM Eastern Time on the assigned due date (unless indicated otherwise). A total of at most 3 late days will be granted for the entire semester for projects (and only for projects). (Sunday and Monday are counted as 1 day late.) For example, if Project 2 is turned in two days late and Project 3 is turned in one day late, then all of the late days for the semester have been used.

If an assignment contains portions that are more than 75% similar to other material (not provided by the instructor), zero points will be awarded Additionally, an Academic Misconduct incident may be reported as well.
Students missing two or more projects will receive an F or FA in this course. It is recommended that you regularly keep a copy of your projects on a second device.

Project Late Policy

A total of at most 3 project late days will be granted for the entire semester for projects (and only for projects). For example, if Project 2 is turned in two days late and Project 3 is turned in one day late, then all of the late days for the semester have been used.

Exams

There will be two exams during the regular semester (in addition to the final). They will be proctored using Respondus LockDown Browser. It is known to not work with the following devices:

If you do not have a compatible laptop or desktop, you will need to find an alternative method to take each of the exams. Some options include:

Final Exam

The course final is comprehensive. Respondus Lockdown Browser is required for the final exam. It is scheduled for Friday, May 3, 2024, 8:00 – 10:30 AM in the same room as the classroom. Failing the final may result in not passing the class.

Grading

Category Percentage
Practice Programming Assignments & Homework  20%
Programming Projects   30%
Exams (17% each) 34%
Final Exam 16%

Each of the grading categories is capped at 100%.

Course letter grades are determined by the final course average according to the following chart:
Final Grade Calculation
% Range Course
Grade
90 – 100 A
80 – 89 B
70 – 79 C
60 – 69 D
<60 F

Expectations

WHAT YOU CAN EXPECT FROM ME

WHAT IS EXPECTED FROM YOU

Information regarding student rights and responsibilities can be found in the CSU Student Handbook.

As a student in this course, you are responsible to:

Tutoring Help

Computer Science Tutoring

Tutoring hours are Monday through Thursday, 10 am to 7 pm, and Fridays 10 am to 4 pm. Tutors will not be available outside of those hours to assist. If you would like to come to tutoring in person, you may do so. Our tutors are located in SCCT 450.

Please note, a tutor's duty does NOT include doing your work for you. That would be a form of academic dishonesty. Your work is yours to complete. They are here to help when you get stuck, point you in the right direction, point out in the book where you can find the topics, explain a topic better, etc. Abusive behavior (physical or emotional, including outbursts) will NOT be tolerated and you will be asked to leave and you could be banned from the lab for at least the remainder of the semester, or longer depending on the situation. Abusive behavior can and will be reported if necessary. The safety of everyone in the lab is a top priority. This is an institute of higher learning, and your behavior should reflect that. Please see the student handbook for more information .

Live tutoring is available from Monday through Friday whenever the lab is staffed (check the calendar). If you have questions about the online tutoring, please contact stone_jennifer2@columbusstate.edu or brumbaugh_elke@columbusstate.edu.

If you would like an appointment while a tutor is in the lab, please make the appointment by sending them an email or a message in the online tutoring chat. Be sure to email the tutor at least a few hours before your appointment, preferably a day before. Make sure the tutor confirms the appointment. Also, please be aware that the lab can get busy, and to be on time for your appointment. After 5 minutes if you have not arrived for your appointment or not messaged the tutor, they will move on to assist another student.

You can also get help with a tutor even if you do not have an appointment. To access the online tutor video chat room either visit https://teams.microsoft.com/l/team/19%3a7kA90f1qNXfKkPrjaGnGJDquWWt9164cFwdGa4dMtSI1%40thread.tacv2/conversations?groupId=0baf2b03-84bf-4980-8d95-f1562b292a8d&tenantId=0f04a099-6dc7-44fd-a875-00922906fc9b. Additionally, you can go to the "Computer Science Online Tutoring" CougarVIEW page for more information.

Academic Center for Tutoring (ACT)

The ACT at CSU offers the following services free for all enrolled CSU students:

  1. Appointment-based one-on-one or small group tutoring in a variety of core courses, writing help in all courses, and assistance with general study skills and online learning skills. Sessions can be online or face-to-face in the center located in Simon Schwob Memorial Library, second floor. Use Accudemia to make an appointment or contact the center for assistance.
  2. Drop-in math lab in the library basement (room 019) that is open for limited hours (see website for exact days/times).
  3. A limited amount of after-hours online tutoring through tutor.com. Access is through your courses in CougarVIEW.
Visit the ACT website for more information about the ACT and tutor.com: https://www.ColumbusState.edu/academic-center-for-tutoring/. If you have any questions or need help you can email act@ColumbusState.edu or call 706-507-8646.

Course Communication

E-mail

Time Commitment

The amount of time it will take you to complete the work for the course will depend on many factors, which will vary with each individual. The ACM recommends the following: "As a general guideline, the amount of out-of-class work is approximately three times the in-class time. Thus, a course that is listed as requiring 3 hours typically entails a total of 12 hours (3 in class and 9 outside)." Student in my classes typically spend more time than this guideline. This time commitment increases for partially or fully on-line courses. Students will be expected to spend this time outside class reading the book, online materials and other materials; writing solutions to exercises and programming projects. It will be helpful to set aside regular study time when you can work uninterrupted.

Technical Requirements/ Support

See the CougarVIEW Starter Guide for support with navigating this system.

Hardware Requirements

See the System Checker here. (GeorgiaVIEW’s system checker is compatible with CougarVIEW.)

Software Requirements

Browser Plugins (.pdf files, QuickTime files, .mp4 files) can be obtained at a browser's website:

Privacy Policies

Below are the links to the privacy policies for the tools that we will be using in this course: