Data Structure and Algorithm Design
Course Introduction
Xingang (Ian) Fang
Introduction to HTML Slides
Introduction to the COP3530 course
Course Description
Instructor Info
Course contents
Communication
Course Description
Description:
This course covers the design and implementation of algorithms and data structures. Topics include: algorithm analysis, abstract data types, recursion, sorting and searching, lists, stacks, queues, trees, graphs, and hashing.
Keywords:
Abstract Data Type (ADT); Data Structure; Algorithm; Algorithm Analysis; Recursion; Sorting; List; Stack; Queue; Tree; Graphs; Hashing
Course Objective
Learn to design and implement algorithms to solve problems
Learn C++ fundamentals to construct essential data structures
Learn abstraction and modularity to build large programs
Learn abstract data types and data structures
Learn to analyze the efficiency of algorithms
Learn to choose the right data structure for a given problem
Instructor Info
Xingang Fang
Lecturer, CS department, UWF
email: xfang@uwf.edu
Zoom link: https://uwf.zoom.us/my/xfang
Canvas Course Shell
Learn Canvas LMS: Notification tool, calendar, mobile app
Front page gives a calendar view of the course schedule
Follow the links to modules, pages, and assignments
Zoom tab
Find prospective meetings
View recordings of past classes
Use Class Time as Your Primary Workspace
During the first weeks, actively follow the live walkthroughs for the course setup, Canvas layout, Git, Classroom 50, labs, and projects.
Take notes and ask questions as soon as a step is unclear. Reconstructing a missed technical workflow later is usually slower and more stressful.
Flexible attendance does not change your responsibility to learn workflows demonstrated in class. Later assignments build on these skills.
Before asking for help:
Read the lab or project instructions and locate the relevant Canvas module.
Review the class Zoom recording if you missed or need to repeat a demonstration.
Reproduce the problem and copy the exact command and error message.
Push your current code before requesting help with a programming problem.
Supplement Materials
Provided by the instructor as a supplement to the textbook
Supplemental Material Website
Code Example Repository
Communication
Keep updated 🔔
Group email
Canvas announcement
Discord @everyone message
Get help
Discord - sharable questions
Email; Discord DM - private questions, identify yourself first
Zoom (Office hour, appointment, etc.)
Always share your whole project by pushing to GitHub when asking help on code
Avoid 🚫
Canvas/Navigation messages
Provide error messages or screenshots without code
Exams
Two midterm exams
75 minutes
First class meeting time in week 6 and 11
Comprehensive final exam
150 minutes
during final exam week
University schedule
Assignments
Labs: 1 week to finish, no grace period
Review quizzes: due on class meeting day, no grace period
Programming projects: 3 weeks to finish
Checkpoint projects: 2 weeks to finish
Late submission policy for projects and checkpoints:
Two days of grace period. Not accepted after that.
Last project is due on Friday without grace period!
Late penalty: 10% < 1 day, 30% < 2 days
Exceptions: medical emergency, family emergency, etc. that will affect your work over many days. Please contact me as soon as possible.
🚫 Excuses caused by poor time management, unreasonable personal engagement, situations that only affect a few days, forget the deadline, will not be considered for fairness to other students who finish on time.
Plan ahead and start early!
ADT, Data Structure, Algorithm