User Tools

Site Tools


CSE 2383: Data Structures and Algorithm Analysis - Fall 2022

General Information

This is an evolving document and will almost certainly be updated as the semester progresses. Please keep an updated view of the online version of this document.


When: Tuesday, Thursday - 2:00PM to 3:15PM
Where: Butler Hall, Room 100


Three hours lecture. Non-linear data structures and their associated algorithms. Trees, graphs, hash tables, relational data model, file organization. Advanced software design and development.
*Significant programming is required*


A grade of C or higher is required in the following classes:

  • CSE 1384 - Introduction to Computer Programming
  • MA 1713 - Calculus I


No text is required for this course.

Instructional Staff


J. Adam Jones, PhD
Office: Rice Hall - Room 143 (temporary/current), Butler Hall - Room 323
Office Hours:
Tuesdays & Thursdays, 12:30PM - 2:00PM
Others by appointment
(If you can't make it to my regular office hours, don't hesitate to ask for an appointment at a convenient time!)

SPECIAL ANNOUCEMENT: Later this semester, I will be taking paternity leave. My availability will be limited from Sept. 18 through Sept. 30. Please work closely with the class TAs/helpers during this period.

Office Hours are first-come-first-serve and visits are limited to 15 minutes. Please keep in mind that office hours are for all my students. This includes students from classes, research projects, honors projects, teaching/research assistants, and laboratories.

Class Helpers

Ander Tally,, Office Hours
Tommy Pope,, Office Hours
Derek Willis, (← Expert! Ask him your tough questions!), Office Hours


  • Introduction to the course (1 hr)
  • C++ Refresher (4 hr)
  • Memory & Computation (2 hr)
  • Algorithm Analysis Lists (2 hr)
  • Stacks (2 hr)
  • Queues (2 hr)
  • Tree Structures Binary Trees (1 hr)
  • Tree Traversal Algorithms (2 hr)
  • Search Trees (3 hr)
  • Balanced Trees (3 hr)
  • Heaps (3 hr)
  • Graphs Definitions (1 hr)
  • Representations (2 hr)
  • Minimum Spanning Tree Algorithms (3 hr)
  • Shortest Path Algorithms (3 hr)
  • Hash Tables (3 hr)
  • Tests (3 hr) - is this really a topic though? You decide.

Information for Students

  • You are required to have access to a computer that connects to the internet.
  • The course materials will be accessed through Canvas.
  • You are required to check your MSU email account regularly. This is considered an official means of communication by MSU for distance education students.
  • Assignment submissions will utilize Canvas unless otherwise specified by the instructor.
  • Students should direct correspondence to the instructor directly related to the class via his official MSU email address.
  • Students can correspond with each other via the general course discussion board. Please note that collaboration on individual projects is not acceptable unless otherwise indicated by the instructor.
  • Students should expect to log in to Canvas no less than 3 times per week to access course information, lectures, and updates.



Assessments (percentage of final grade):

Exams (60%)
Quizzes/Class Activities (10%)
Programming Challenges (25%)
C++ Refresher Challenge (5%)

Grading Scale:

(FG = final grade)
A - FG >=90%
B - 80% <= FG < 90%
C - 70% <= FG < 80%
D - 60% <= FG < 70%
F - FG < 60%


Various assessments will be given throughout this course to measure each student’s progress on learning course material. The type of assessments given in this course will include the following:

  • Exams
  • Quizzes/Class Activities
  • Programming Challenges

All assessments in this course (including exams, quizzes, programming challenges, etc.) must be completed individually unless otherwise stated by the instructor. The use of notes, lecture slides, textbooks, and online materials on quizzes and exams is prohibited unless given permission by the instructor. If the Instructor or Teaching Assistant suspects any form of academic misconduct on any assessment given in this course, the student will be referred to the Honor Code Office.


3 tests will be given in this course. A comprehensive final exam will also be offered. If you choose to take the final exam, your final exam score will replace your lowest test grade, provided that any one of your test scores is lower than your final. No student is required to take the final exam. Henceforth, the final exam is optional.

Students will have a set duration of time to take the exam. No makeup exams will be offered after the exam has been given UNLESS the absence is excused. Any students that need an extension must provide documentation of the absence, which must meet University Guidelines to be accepted. Students must contact the instructor before the due date of the exam to schedule a makeup.


Quizzes will be given throughout the semester. Quizzes can cover material from any previous lecture. Quizzes will typically cover material from the most recent lecture but may have questions from earlier lectures. Quizzes will be proctored like exams but will be given a shorter time limit. No make-up quizzes will be given, but if you miss 3 days or less of class, you will be given a replacement quiz grade. The replacement grade will be the average of all quiz grades inclusive of your lowest grade.

If you have disability accommodations for quizzes you would like to use, contact the instructor either at the beginning of the semester or as soon as you are given accommodations to discuss arrangements. The instructor must receive official notification of accommodations from the Disability Resource Center (DRC).

Weekly Activities

Weekly activities will be given throughout the semester to support your learning and understanding of the material. These could include discussion on the current course topic, code analysis exercises, code readability improvement, and more. These will be graded at the instructor’s discretion.

Programming Challenges

Programming challenges will be given as part of this course. In programming challenges, students will be given a problem and produce a program solution that applies techniques learned in this course to solve the problem. The purpose of these challenges is to engage and develop the student’s critical thinking and analyzing skills, which is important for success in an Engineering career. Students will use the C++ programming language to complete each challenges.

Course Policies


This section is a face-to-face instructional class. Per Academic Operating Policy 12.09, students are expected to attend all class meetings in person. Should a student expect a university-excused absence from a class, the student should contact the course instructor of record to inform them of the absence and the reason for it. Attendance is required, but you are allowed to miss up to three days without penalty. If you miss three or less days, you will be allowed a replacement quiz grade. See the Quizzes section for more details.

Computer & Software

All students in the Bagley College of Engineering are expected to have a laptop that meets the requirements described at the following link: NOTE: Students that use a Mac book should NOT expect support/troubleshooting from any instructor/TA and Bagley IT. Most software used in the Computer Science/Software Engineering curriculum is only compatible with Windows. If students choose to use a Mac, there is Virtual Machine software available online such as Oracle Virtual Box (free, but buggy) and Parallels(recommended). Students are expected to write programs using the C++ language. The recommended compiler/environment for C++ is Microsoft Visual Studio. The link for Visual Studio can be found at The Community edition is free for students. If you do not have access to a Windows machine or your system does not support Visual studio, you can use alternative compilers, but all code will be graded in Visual studio. Code that does not compile with the C++ standard will NOT be acceptable.

Alternatives to Visual Studio:

Note: The alternative compilers above have native support for code accepted by the C language. Using these compilers will compile valid C code that is not acceptable by C++ standard. Be cautious of using these alternatives and ensure that your code is fully accepted by C++ standards.

Program Grading

Unless otherwise specified by the instructor, any Programming Challenge that requires you to write code MUST be completed in the C++ language. Any Challenge not completed in C++ will automatically be given a grade of zero. All Programming Challenges are completable and must be fully functional at the time of submission. Programming Challenge have a point value of 100 points and are graded based on two criteria: “completion points” - time taken to correctly complete the challenge (90 points) and “submission points” - proper submission of code (10 points). There is a submission window of 6 weekdays for each Programming Challenge (and weekends don’t count as being late!). Here is the breakdown of points for each day of the submission window:

  • Day 1: 90 points
  • Day 2: 80 points
  • Day 3: 70 points
  • Day 4: 60 points
  • Day 5: 50 points
  • Day 6: 40 points

Also, it is expected that students submit code that is syntactically correct. Code that contains syntactical issues will be penalized at the instructor's/Teaching Assistant's discretion, up to a grade of 0 for any points associated with completing code. It is your responsibility to test/run your code BEFORE submitting!


All Submissions must be composed of the correct file formats. These formats are listed as followed:

  • Code: .cpp, .h, .hpp
  • Everything else: .pdf or .txt

Any different file formats will generally NOT be accepted.

Late Policy

Every programming challenge and activity MUST be turned in within the submission window. Programming challenges must be completed within the assigned submission window to receive “completion points”. “Submission points” (up to 10 points) can be awarded for programming challenges submitted at any point prior to the last day of class.

Any extensions on assignments due to illness or planned travel/events MUST be discussed with the instructor in a reasonable time frame, and any such extension will be granted at the discretion of the instructor.

Homework, Quizzes, and Tests are strictly due on the day they are due. There are no late opportunities for submissions after the due date of these items.

Instructional Staff Availability

Throughout the semester, the instructor and teaching assistants for this course will be available by appointment. Students are expected to schedule an appointment using the Instructors/TAs by email. Online appointments will be handled using WebEx software, where access is provided free of charge to Faculty/Staff and students. Students are expected to have this software set up and ready no later than the first week of class.

University Policies

The Mississippi State University Syllabus contains all policies and procedures that are applicable to every course on campus and online. The policies in the University Syllabus describe the official policies of the University and will take precedence over those found elsewhere. It is the student's responsibility to read and be familiar with every policy. The University Syllabus may be accessed at any time on the Provost website under Faculty and Student Resources and at

adam_jones/courses/cse2383_f22.txt · Last modified: 2022/09/15 17:56 by jones