From brand guide: https://flsouthern.mediavalet.com/portals/fsc-brand-guidelines
CSC 3380: Algorithms
(Spring 2025)

Syllabus

LMS

Teachers

Assignments
Assignments


Other Pages
Syllabus

Course Description

Please see the academic catalog for important stats (credits, catalog description, pre/co-requisites, etc).

Goals

Successful students will:

  • Understand the interfaces and implementations of different data structures.
  • Understand the roles and uses of different data structures.
  • Be comfortable using asymptotic terminology to express algorithm running time.
  • Consider creative solutions to programming problems.

Helpful Humans

Contacting Kyle

I love answering your questions! The basic rule of thumb for contacting me is: in-person > Slack > email. (People in person generally have priority over Slack messages, which generally have priority over emails.) The absolute best way to get in touch with me is to physically come to my office (check my schedule to see when I'm likely around). If I'm not in at the moment you arrive, I have a wheel to let you know where I'm at. If you need to schedule a time outside of my office hours, that's fine. If you just drop by to see if I'm there, that's great too! Please feel free to swing by and ask me questions even if I'm not expecting you. Getting in-person help is often the best way to clear something up!

If you can't reach me in person, the next best thing to do is to use Slack. You can find me on the department server and reach out in the course channel (tagging me is fine) or as a direct message to me. If you have something more serious that you want a better "paper" trail for, then I recommend emailing me (kburke@flsouthern.edu). I try to respond to all my email at least once per work day, but sometimes I don't keep up. If you don't hear from me via email after 24 hours during a work week, feel free to reply to the email with just the word "Bump" to get it back up to the top of my inbox. If you send me a message any other way, please do not wait for me to respond, as I probably won't see it. (E.g. via Canvas.)

When communicating with me, it is perfectly okay to call me "Kyle". (This is not true for everyone; please make sure you are respectful to other faculty members.)

Texts/Resources

Required:

Recommended:

Grading

Rubric
ABCDF
Homework ≥ 85%Homework ≥ 75%Homework ≥ 65%Homework ≥ 55%Homework ≥ 0%
ANDANDANDANDAND
Projects ≥ 90%Projects ≥ 80%Projects ≥ 70%Projects ≥ 60%Projects ≥ 0%
ANDANDANDANDAND
Exams ≥ 85%Exams ≥ 75%Exams ≥ 65%Exams ≥ 55%Exams ≥ 0%

At the end of the semester, the final grade will be determined by the highest letter grade for which all minimum requirements are met according to the table above.

I am dedicated to getting your grade right. If you ever think I graded something incorrectly or you didn't understand how something was graded, please come talk to me about it. Grading is hard; I'm often fixing grading mistakes I made. However, I will never take off points for grading errors I discover because you came to talk to me!

Homework

There will homework assignments that are due on a regular basis. Each homework problem will be graded on a 0/1/2 scale. Although grading these are subjective, the general guidelines I will use are:
  • 2 (full points): Everything is correct, or the answer is close with at least a similar amount of work shown as would be required by the correct solution.
  • 1: The solution given is incorrect, but the amount of work shown is at least half what the correct solution requires and some of the required concepts are shown.
  • 0: Anything else.
Homework assignments will be submitted on physical paper, printed or handwritten. I cannot award credit if I can't read what is written or follow your argument. It is worth it to lay things out nicely if that will be more readable! Assignments typed up (LaTeX recommended; there is a learning curve) and printed (you are responsible for printing it out) will earn an extra point (for the whole assignment, not per exercise). To earn this point, it is not necessary to draw all figures/images in software; those can be hand-drawn. (TikZ is great, though.) You must use the software in a way that the output is easy to read by me.

Projects

There will be programming projects throughout the semester.

Exams

There will be an in-class midterm and a final exam.

Late Assignments

Late assignments will be penalized 10 points for each day it is late. (Fractions of days are rounded up.) Late assignments submitted after the final day of classes receive no credit. Far worse than any late penalty is the delay that will occur in the assignment getting graded by me. Due dates are often planned with so that I can grade them soon after. By missing the deadline, students risk a very long return on getting feedback.

Course Evaluations

Course Evaluations are an effective tool for me to improve my teaching each semester. I want to know which parts of the course worked well for you, and which did not. Please fill out an evaluation at the end of the semester!

In order to motivate evaluations, each course has the chance to earn 2 bonus (percentage) points. Everyone in the class earns this bump if 75% or more of the students complete evaluations before the beginning of the course's final exam period.

Office Hours

My office hours are listed on my schedule. This is special time I've put aside to take questions from anyone in any of my courses. I love answering questions, and I love having lots of students visit during office hours. If there are too many students to fit in my office, I'll usually move to an empty classroom. Be sure to check the wheel on my door when you visit for office hours; it will tell you where I am if I'm not there.

If I have a bunch of students, I usually handle things in a round robin fashion, giving each person the chance to ask one question each time around. I do my best to help as many people as possible.

If you need to speak to me about something sensitive and my office hours are busy, we can schedule another meeting, just send me an email. (This philosophy may differ from that of other instructors.)

I keep my door open lots (this helps me stay productive). Even if office hours aren't technically happening, I'd still rather be answering your questions than whatever else I'm doing. Ask me if I'm available. Sometimes I'm just too busy keeping up with grading and course bureaucracy.

Every so often I have to cancel my office hours for different reasons. I'll do this via Slack and will give you as much advance notice as I can.

Tutoring

The department holds afternoon tutoring for all students. The schedule changes each semester; ask the instructor (or other students) to get the current details.

Attendance

During the semester, each student may only have up to 3 unexcused absences/late-arrivals. Any student with 4 or more unexcused absences and/or late-arrivals automatically fails the course. Unexcusable reasons include oversleeping, weather, and workload. Excusable reasons include travel for conferences, illnesses, and emergencies. If you're not sure whether your reason is excusable, please ask me.

If you know ahead of time that you'll be absent, please give me at least two weeks notice. This is especially important if you'll be missing an exam! Otherwise, to get an absence excused, please email me as soon as it is reasonable to do so.

Class sessions before the add deadline count! If you are choosing between multiple courses, you should be attending meetings and completing work for all of them!

Illnesses

If you are feeling ill, even if you haven't been diagnosed with any sickness yet, please do not come to class. It doesn't matter whether there's an exam or a big due date or anything else. I both want you to rest up to help you get better and don't want to get anyone else in the class sick. If you aren't feeling well enough to attend class virtually, just email me whenever you can to let me know what's going on. If you can attend class virutally (and can give me enough warning) please email me to let me know. Even if I don't get back to you, please try logging on to zoom during the class time. If you have a friend in class, it is totally okay to message them to tell me to turn that on.

Catching Up

Even if you miss part of class, you are still responsible for everything that was discussed, including assignments, administrative changes, and other announcements. Please do not first come to me and ask me to go over the material with you. (It is considered especially egregious to ask "Did I Miss Anything?") Before coming to me:

  1. Look at the class schedule and do any of the reading that was covered. Don't just skim it, read it.
  2. Look over the notes of a classmate. (It's best to find people you can swap notes with before you are absent!)
  3. Try out some of the challenge problems I gave to the class, if any.

If you've done all of those and still have questions, come visit me so we can get you all caught up!

For absences that are both unexpected and excusable, you can have some extra time to complete assignments. These are the automatic extensions that may apply:

  • If you were absent for more than half of the school days during an assignment, the deadline is automatically extended by the amount of school days you were absent.
  • Otherwise, if you were absent during the deadline, the deadline is automatically extended by one day after you return to school.

If neither of these apply, talk to me if you feel you need extra time. Otherwise, if the new deadline goes past the last day of classes, you might need to request an extension. The paperwork for that can be found on the registrar's page. Please email me if this isn't clear!

My Expectations

This is a university-level course, and should not be taken lightly. There are many expectations I have of students planning to pass this course.

Honor Code

I will practice academic and personal integrity and excellence of character and expect the same from others. As an academic community, Florida Southern College is firmly committed to honor and integrity in the pursuit of knowledge. Therefore, as a member of this academic community, each student acknowledges responsibility for his or her actions and commits to the highest standards of integrity. In doing so through this Honor Code, each student makes a covenant with the college not to engage in any form of academic dishonesty, fraud, cheating, or theft. Further information on the Honor Code is available in the current Catalog.

Honorably Reusing Code

It is important to be careful with the reuse of code and how academic integrity and the honor code apply to that. There are many potential sources of code that may or may not be allowed depending on the course. Here are the allowances for this course:

  • ✓ You may use code from class texts/resources listed in that section of this syllabus.
  • ✓ You may use code samples from the official documentation of the language(s) used in the class. ((Be careful to be only using the built-in packages and not docs from external packages that may not be allowed in this class. If you're not sure, ask me!))
  • ✓ You may use code presented as part of lecture.
  • ✓ You may use code from team members.
  • ✓ You may use code from school-employed student tutors and teaching assistants.
  • ⊘ You may not use code from any other people. (This includes students in and out of this course. If you provide code to anyone else in this way, you have violated this as well and will be penalized accordingly.)
  • ⊘ You may not use code from any other web sites or resources found online. (This includes from videos and other multimedia.)
  • ⊘ You may not use code generated by AI. (This includes ChatGPT and other AI programs as well as AI assistants in your IDE. It is your responsibility to know whether your IDE has an AI assistant and to shut if off. Do that right now!)
  • ✓ You may use generative AI to explain code and errors. (Important: You MUST include a link to all conversations you had with any of these along with your submission in a separate .txt file. Be very careful! You need to make sure you ask questions in such a way that the conversation doesn't violate any other items in this list. If you're ever not sure whether you're going to do something unallowed, please ask me first.)
If you do use code from anywhere (whether or not you're supposed to) please include a citation. If you use code without citing the source, that is one form of plagiarism! If you aren't sure about any of these rules, please ask first! All violations will be handled in accordance with the handbook.

Programming Collaboration

In this course, you will be programming in teams, which is an important skill to practice and hone. Pair Programming is expected at all times. (If there are more than two members of your group, there can be multiple navigators.) Switching drivers frequently is highly recommended!

You should not write code for your project independently; all code must be written with all team members present. If I learn that teams are programming separately, the team will lose points. (It will also damage quality of the project.)

Accessibility Accommodations

Florida Southern College and Student Disability Services are committed to providing access and inclusion for students with documented disabilities to courses, facilities (including Residence Halls), and programs. Categories of disabilities could include, but would not be limited to, chronic health diagnoses, learning disabilities, and mental health conditions. If you anticipate or experience barriers to your college experience due to the impact of a disability, please notify the Office of Student Disability Services to discuss the eligibility process for establishing accommodations. You can reach FSC’s Student Disability Services professionals, Asst. Dean for Student Support Dr. Sandy Calvert by e-mail at disabilityservices@flsouthern.edu, in Carlisle Rogers Building, by telephone at (863) 680-4900,or by fax at (863) 680-4195. Our Student Disability Services professionals are available for both face-to-face and Zoom meetings, by appointment.

For more information on disability accommodations and access, please visit our website at https://www.flsouthern.edu/campus-offices/offices-directory/office-of-student-disability-services.

If you want a change to the normal class plan for an accommodation, please make sure you remind me 1-2 weeks ahead of time so I can plan ahead for that. (E.g. to get everything figured out with the testing center so you can take an exam there.)

Engaged Learning Activities

  • In-class programming challenges.
  • In-class project programming.
  • In-class algorithm design and analysis.

Technology

Students will be using a web browser to access assignments and other resources. Students should check email often to receive class announcements. Some assignments and activities may necessitate software. Students are expected to use either their own personal computers or the College computer labs to complete assignments. The instructor may be helpful in installing/configuring/navigating software on personal machines, so it is appropriate to ask them (as well as other students).

Old Work

I keep old completed work for at least one semester after the course has ended. This includes written homework, exams, etc. If you want any of your work, just come ask me. I'm very happy to get rid of it!


Schedule
WeekMondayWednesdayFriday
0
Week of
Jan. 5
Winter Break
Course Intro
Project 0 Time
What is an Algorithm? (1.1)
Algorithmic Problem Solving (1.2)
Problem Types (1.3)
Fundamental Data Structures (1.4)
Analysis Framework (2.1)
Asymptotic Notation (2.2)
1
Week of
Jan. 12
Asymptotic Notation (2.2)
Data Structures Review (2.3)
Data Structures Review (2.3)
Data Structures Review (2.3)
Iterative Analysis (2.4)
2
Week of
Jan. 19
MLK Jr. Day
Project 1 Work Day
Homework 0 due
Iterative Analysis (2.4)
3
Week of
Jan. 26
Iterative Analysis (2.4)
MatrixSort
Kyle is out of town
Kyle is out of town
4
Week of
Feb. 2
Kyle is out of town
MatrixSort
Recursive Analysis (2.5)
Homework 1 due
Recursive Analysis (2.5)
Brute Force (3.0)
Brute Force Sorting (3.1)
5
Week of
Feb. 9
Brute Force Sorting (3.1)
Sequential Search (3.2)
Geometric Algorithms (3.3)
Homework 2 due
Exhaustive Search (3.4)
Graph Searching (3.5)
6
Week of
Feb. 16
Graph Searching (3.5)
Decrease and Conquer (4.0)
Decrease and Conquer (4.0)
Homework 3 due
Project 2 Work Day
Project 1 due
7
Week of
Feb. 23
Decrease and Conquer (4.0)
InsertionSort (4.1)
Binary Search (4.4)
Midterm
Homework 4 due
Variable Size Decr & C (4.5)
Divide and Conquer (5.0)
8
Week of
March 2
Spring Break
Spring Break
Spring Break
9
Week of
March 9
Array Max
MergeSort (5.1)
Triominoes
QuickSort (5.2)
Homework 5 due
QuickSort (5.2)
Binary Search Trees (5.4)
Nearest-Neighbors (5.6)
10
Week of
March 16
Nearest-Neighbors (5.6)
Russian Peasant Multiplication (5.5)
Transform-and-Conquer (6.0)
Presorting (6.1)
AVL Trees (6.3)
Homework 6 due
AVL Trees (6.3)
HeapSort (6.4)
Project 2 due
11
Week of
March 23
Project 3 Work Day
HeapSort (6.4)
Reductions (6.6)
Linear Programming (6.6)
Linear Programming (6.6)
Hashing (7.3)
Homework 7 due
12
Week of
March 30
Hashing (7.3)
Dynamic Programming (8.0)
Dynamic Programming (8.0)
Pretty Printing
Pretty Printing
Fibonacci Numbers (8.1)
Homework 8 due
13
Week of
April 6
Fibonacci Numbers (8.1)
Greedy Algorithms (9.0)
Minimal Spanning Trees (9.1)
Prim's Algorithm (9.1)
Project 3 due
Prim's Algorithm (9.1)
Kruskal's Algorithm (9.2)
Boruvka's Algorithm (9.2)
Boruvka's Algorithm (9.2)
Shortest-Path Trees (9.3)
Dijkstra's Algorithm (9.3)
14
Week of
April 13
Dijkstra's Algorithm (9.3)
Sorting Lower Bound (11.2)
NP (11.3)
Fiat Lux
Good Friday
15
Week of
April 20
NP (11.3)
Cook-Levin Theorem (11.3)
NP-Completeness (11.3)
NP-Completeness (11.3)
Constant-Time Max-Finding
Constant-Time Max-Finding
CWCR
16
Week of
April 27
Finals Week
Finals Week
Finals Week

Thank you for reading this long syllabus. Now that you've read the whole thing, you probably won't have this problem. If you think something is missing or isn't clear here, please let me know so I can clarify and improve my syllabi. The purpose of this "contract" is not to help you optimize your grade. Instead it is a mechanism to promote intellectual honesty and curiosity. I think I like this syllabus better, but it lacks the formality needed to address complaints.

Found here: https://www.reddit.com/r/Professors/comments/ac8qv6/youve_had_the_truth_all_along/