CSCI 230 Data Structures and Algorithms (Fall 2023)

Contact Information

  • Instructor: Michael Levet (He/Him/His)
    • Contact: lastnamefirstinitial (at) cofc (dot) edu
    • Office: Harbor Walk East 312
    • Office Hours (Tentative):
      • Monday/Wednesday: 9:45-10:45 AM (Zoom)
      • Tuesday/Thursday: If I am in my office, please feel free to knock.
      • By appointment
  • CSL Tutoring Schedule
  • Syllabus
  • OpenDSA
  • My CSCI 310 Course Textbook. We will consult this at various points in the semester.
  • Lectures:
    • Tuesday and Thursday, 5:00-6:15 PM (Harbor Walk West, Room 217 or Zoom)
  • Google Forms: (You must be signed in to your CofC account to access these forms.)

Announcements

  • 12/10: Finals have been graded. Please submit any regrade requests to the Google form and not email. Here are some additional points:
    • Question 9(e) had some bugs. I threw that part out.
    • Question 10 was more time-consuming than I intended. To earn Proficiency, you only had to get 2/4 parts.
    • Update 11:46 AM: Preliminary progress reports have been posted. Please check to make sure that your records agree with mine. If they do not, please submit to the regrade request Google form and not email, so that I can process everything quickly.
    • Your Quiz Averages take into account any relevant final exam replacement. I rounded everyone's quiz average up (so an 89.01 got rounded up to a 90, but an 89 stayed an 89) to pre-emptively handle borderline cases in your favor.
    • A few folks can still benefit from HW8 or HW9 revisions. If this applies to you, I clearly indicated this in your progress report.
  • 12/9: I have extended HW8 and HW9 revisions to be due on 12/10 at 3 PM.
  • 12/4: There will be questions on the final relevant to HW4 and HW5.
    • If you demonstrate proficiency on the questions on the final relevant to HW4, I will award credit for HW4.
    • If you demonstrate proficiency on the questions on the final relevant to HW5, I will award credit for HW5.
    So there is some room to bring up your HW grade if you do well on the final.
  • 12/3: I am working to have HW8 graded no later than 12/6 at the end of the day. I will try to have it graded sooner, if at all possible.
  • 11/28:
    • There is a small bonus opportunity posted to OAKS. Prof. Lovellette is conducting research. If you complete her survey and upload a screenshot to OAKS that you have submitted the form, I will add 0.5 points to the numerator of your Quiz Average, without modifying the denominator. The survey link is: here. This is due by 12/4 at 8 PM.
    • For HW8, you do not have to implement the remove() method, and I will not grade the remove() method. There is an issue of how to find elements that have already been placed in the hash table prior to resizing.
    • One of your classmates shared this helpful resource for visualizing and interacting with the data structures and algorithms: VisualGo.
  • 11/26:
    • HW8, Correction 2: When resizing the array, find the largest prime less than this.internal.length, not the smallest prime less than this.size.
    • HW8, Correction 3: The hash function should compute (mod this.internal.length), not (mod this.size).
    • I am moving my office hours tomorrow to 11/28 from 10:45-11:45 over Zoom.
    • Class on Tuesday and Thursday will functionally be extended office hours. If you have questions, this is a good opportunity to get them answered.
    • If you have not already done so, please consider completing your Instructor Evaluations for this course. I appreciate constructive feedback and will use your comments to improve the course the next time I teach it.
  • 11/25: There was a typo in the hash function for HW8. It should have been h(x) = 2 * prime * x + 3 (mod this.size), not h(x) = 2 * prime + 3 (mod this.size). I have updated the comment in the .java file as well, on OAKS. I will extend HW8 until 11/30 at 8 PM.
  • 11/24:
    • HW9 is now open. Recall that it is due on 12/2 at 8 PM. I will have this graded no later than 12/6 at the end of the day (and hopefully sooner).
    • For HW9, you must use the version of the algorithms as presented in class and in my CSCI 310 course text. This is relevant for all the algorithms, especially Dijkstra's algorithm. Be wary of external resources.
    • Corrections and reflections for HW8 and HW9 will be due on 12/9 at 3 PM. Final grades are due to the university at 12/13 at noon. This is a sharp deadline for me, so this is the latest deadline that is manageable, for me to grade your corrections and reflections.
  • 11/16:
    • HW7 is now graded. Corrections and reflections for HW7 are due on 11/30 at 8 PM.
    • Please remember that for an array-based implementation of a Heap, the element at index 0 is always null. The root of the Heap is at index 1.
    • Please make sure you are thoroughly testing your code.
  • 11/11:
    • HW8 over Hash Tables has been posted. It is due on 11/29 at 8 PM.
    • There will be 5 quizzes (functionally, MT3) opening 11/16 and closing on 11/21 at 8 PM. They will cover BSTs, tree traversals, binary heaps, and hash tables.
    • On 11/14, we will discuss the Stable Matching Problem and algorithmic bias. Some of these questions naturally relate to ongoing ethical concerns about the use of AI. You will not be assessed on this; rather I want to give you all a chance to reflect on these questions. I will present the algorithm over Zoom and in-person, and then we will have group work that will be in-person only. Attendance is, as usual, not required.
    • Class 11/16 and 11/21 will be cancelled.
    • HW9 (to be posted) will be due on 12/2 at 8 PM. It will cover BFS/DFS, Dijkstra, Prim, and Kruskal.
    • The final will be a series of asynchronous quizzes on OAKS (the exact count TBD). It will be cumulative. The final will open on 12/6 and close on 12/9 at 8 PM.
  • 11/8:
    • If it is to your advantage, I will use your average on the final as your Overall Quiz Average.
    • Tomorrow 11/9 in class will be a work day. Come prepared to work through old quizzes, work on your binary heap project, and get questions answered.
  • 11/7:
    • Midterm 2 has been graded.
    • Progress Reports have been posted to OAKS. These only account for HW1-5, as HW6 revisions are still pending. Even if you have already received credit for HW6, this progress report does not mention it. Please check to make sure my records agree with yours. If they do not, please submit to the Regrade Request Google form. I reserve the right to correct grades that I have recorded incorrectly.
    • For the Overall Quiz Average, here are some statistics:
      • Class Average: 84.16
      • Median: 88
      • First Quartile Cutoff: 75.33
  • 10/30: HW6 revisions are due on 11/13 at 8 PM.
  • 10/25:
    • Midterm 2 over HW4-HW5/Quizzes 5-10 will run from November 2 through November 6 at 8 PM. This will again be a series of asynchronous quizzes on OAKS. Remember that if it is to your advantage, your Midterm 2 average will be your Unit 2 Quiz Average.
    • HW7 on Binary Heaps is now open. It will be due on November 9 at 8 PM.
    • We will have a series of quizzes on OAKS running November 16 through November 21 at 8 PM. Class will be cancelled on November 21.
    • The final exam will be cumulative (administered as a series of asynchronos quizzes on OAKS). However, if it is to your advantage, the final will replace your quiz average over the quizzes administered after Midterm 2.
  • 10/17:
    • HW5 has been graded. Revisions are due by 11/1 at 8 PM.
    • Recall that much of the course content for HW5 is also covered in my CSCI 310 textbook (Sections 6.2-6.6), linked from the homepage.
  • 10/15: The MT1 Version 2 quizzes have now been graded.
    • In hindsight, MT2 Q5 Version 2 was not a great question. So I gave everyone credit for this, provided you attempted the quiz on OAKS.
    • I have created, under assignments, a folder to record your Unit 1 Quiz Average. Please check this to make sure that your records agree with mine. I reserve the right to correct instances where I recorded a grade incorrectly (positively or negatively). If there is a discrepancy, please use the Regrade Request form to let me know. I would like to make sure your grades are being recorded accurately.
    • Here are some statistics on Quiz Average:
      • Average: 87.36
      • Median: 92.31
      • First Quartile: 76.92
      • Top 5 Quiz Averages: 100, 100, 100, 100, 100
      • Bottom 5 Quiz Averages: 53.85, 61.54, 66.67, 66.67, 66.67
    • Here are some statistics on HW grades (for HW1-4):
      • Average: Credit for 2.29 HW assignments
      • Median: Credit for 3 HW assignments
      • First Quartile: Credit for 1 HW assignment
      • Top 5 Overall HW scores: 4,4,4,4,4
      • Bottom 5 Overall HW scores: 0,0,0,0,0
    I think you all are doing well. This is a challenging class, and you all have definitely been putting in the work. If I have concerns about your grades, then I have already reached out to you. If you have concerns about your standing in the class, please do not hesitate to reach out!
  • 10/12:
    • Quizzes 5-6 are now posted. I have extended the deadline to 10/18 at 8 PM.
    • Quizzes over HW5 will open on 10/19 and will be due on 10/21 at 8 PM.
    • I will be out of town next week for a Broadening Participation in Computing workshop. Class will be cancelled, as will office hours. Please use that time to work on your Binary Search Tree implementation, as well as the HW5 quizzes. In light of the workshop, I will not be checking email during business hours. I will do my best to respond in a timely manner, but please plan for slower responses than usual.
  • 10/9:
    • HW6 has been posted. It is due on 10/25 at 8 PM.
    • There will be two quizzes over HW4. They will open on 10/12 and be due on 10/16 at 8 PM.
  • 10/7: HW4 grades have been posted. Revisions for HW4 are due on 10/22 at 8 PM.
  • 10/3: HW5 is posted. It is due on 10/14 at 8 PM.
  • 10/2: Version 2 of the MT1 Quizzes 4, 5, and 6 will open on 10/5 and close on 10/10 at 8 PM.
  • 9/26: HW4 is due on 10/4 at 8 PM.
  • 9/22: HW3 grades have been posted. Revisions are due to OAKS by 10/7 at 8 PM. Please complete the specified Next Steps.
  • 9/12:
    • HW2 grades have been posted. Revisions are due to OAKS by 9/26 at 8 PM. Please complete the specified Next Steps.
    • Quizzes 1-2 have been extended until 9/14. Please make sure you take the quiz. It is unlikely that I'll extend future quizzes in this way.
    • Quizzes over Linked Lists and Selection Sort will be available from 9/14-9/16 (due 9/16 at 8 PM)
    • I highly recommend these notes for a review of precalculus concepts (e.g., logarithms)
    • I will be out of town from 9/15-9/21 to present research at a conference. Here are the logistics for next week:
      • Class and office hours will be cancelled. I will do my best to be responsive via email, but please plan for slower responses.
      • Midterm 1 will run from 9/19 through 9/23 (at 8 PM), as a series of timed remote asynchronous OAKS quizzes (each Midterm question will be its own quiz, timed at 45 minutes and scaled for students with disability accommodations). There will be Version 1 Questions, for material over which you have not been previously assessed on a quiz; and Version 2 Questions over material for which you have been assessed. After Midterm 1 is graded, there will be quizzes at a later date (TBD) over the content on the Version 1 Questions. The Version 2 Questions will be used for the purpose of grade replacement (see the syllabus for details on Midterm grade replacement).
      • Midterm 1 will cover: arrays, ArrayLists, LinkedLists, Stacks, Queues, Bubblesort, Insertion Sort, Selection Sort, Quicksort, Mergesort, and Binary Search
  • 9/6:
    • HW3 has been posted. The due date is 9/13 at 8 PM.
    • In the LinkedListADTTest file, there is a typo in the testRemove() method. The String "7" should appear at index 5, not index 6. I have updated the LinkedList_Demo.zip file on OAKS. Thanks to those of you who brought this to my attention!
  • 9/4:
    • HW1 has been graded. Please see the feedback on OAKS; your grade on each problem is in the comment box and not the OAKS gradebook. If you received full credit, then I left a comment indicating such and that there was nothing more you needed to do. Otherwise, there was a clear Next Steps comment. Please complete the Next Steps and submit your revisions to HW1 Revisions on OAKS by 9/18 at 8 PM.
    • There will be two quizzes over ArrayLists, Selection Sort, and Bubblesort that will run asynchronously, opening on 9/7 and closing on 9/9 at 8 PM. Each quiz will be timed at 45 minutes (scaled for students with disabilities). They are open-book, open-note, but individual efforts. Be aware that if you start the quiz on 9/9 at 7:30 PM, that OAKS may cut you off at 8 PM. I will not accept quizzes via email in this circumstance. Please plan accordingly.
  • 8/31: On HW2, there is an optional problem on Insertion Sort. In light of class being cancelled today, you may complete this problem on HW2 or HW3. I was intending to cover Insertion Sort today. Instead, I will cover it on 9/5. HW2 is due on 9/6, and I would like for you all to have more than a day to digest Insertion Sort. I have updated the HW2 file on OAKS accordingly.
  • 8/30: While I fully intend to hold office hours tomorrow, that is very dependent on whether I have electricity and internet tomorrow. If you log in to Zoom tomorrow, and I am not there at the usual time, please assume either my power or internet has gone out. If this happens, I'll communicate as soon as I'm able. On a similar note, please prioritize your own safety during this hurricane. Get to safety, and then ask for an extension if you need one. But please get to safety first.
  • 8/28: HW2 on LinkedLists will open on Tuesday 8/29 and is due on 9/6 at 8 PM. We will have some time in class on either 8/29 or 8/31 to work on HW2. Working with LinkedLists takes time to digest. Please plan accordingly.
  • 8/23: There are many tools to compile LaTeX documents as PDFs. You will need to find one that works for you. I use MikTeX. Overleaf is another option. There are others-- I don't have particularly strong feelings; if another option works better for you, please feel free to use that!
  • 8/22:
  • 8/17: HW1 is now posted to OAKS. It is due on 9/2 at 8 PM. We will have time in class on 8/22 and possibly 8/24 to work on these problems.
  • 8/8:
    • The Syllabus Quiz will open on 8/21 at 12:01 AM and is due on 9/2 at 8 PM. One function this assignment serves is to provide a low-stakes way to get set up with LaTeX, as well as to ask questions about using LaTeX. Please note that during quizzes, you may wish to include images in the PDF. It is worth figuring out how to do this before you wish to do so in a timed environment.
    • Website created.