| Main, Syllabus, Office hours | Schedule | Slides | Daily | Homework | Code | Exams |

Go to end of table

Not done:
Lecture Section
001
Section
002
Topics, Comments
*********
Recitation - C review by Aryan (51 min). Below is a list with the minute and the topic covered
  • 0 basic types, loops, program,
  • 04:50 - recursion,
  • 09:50 - pointers,
  • 14:35 - static arrays,
  • 16:10 - structs
  • 20:25 - 1D dynamic array allocation (malloc(), access, free() )
  • 26:20 - 2D dynamic array allocation (malloc(), access, free() )
  • 28:50 - shell commands
  • 29:50 - input and output program redirection
  • 35:12 - 2D array formatted printing
  • 41:20 - compile a program that consists of multiple files (see in video expected_output.c, printlib.c and printlib.h)
  • 44:00 - using diff to compare two files
  • 46:50 - debugging with gdb, includes recording the debugging session and reversing a step
*********
C Review 2 - Guided Coding Session by Aryan (90 min, develop a program for Conway's Game of Life )
code: gameOfLife.c
This example is very useful. This is how we work with 2D arrays in this class. It helps to understand them well!
********
Git and GitHub by Aryan
1 Tu 01/14 notes,
video
←notes,
video
  • Introductions
  • Syllabus
  • Prof. French's guide on how to set up Visual Studio Code to run C programs - link sent by Jack during meeting. This link was added on the Code page as well under IDEs.
  • C review, coding resources, IDE (Code::Blocks and onlinegdb.com), omega - see Code page under "Coding resources".
  • Course navigation: OneNote (student section, student view in Teams), Daily page (videos, notes), Code
  • Slides: Course overview
  • More coding resources (selected from the Code page)
    • 10 hours C course by Caleb Curry - recommended for students that did not study C, or who need a comprehensive review. It is long, but it is worth it as it covers specific aspects of C that can result in hard to find bugs.
    • COMMON ERRORS IN C - WATCH THIS VIDEO (30 minutes). It shows and explains common and tricky C errors related to pointers, arrays, and strings (starting from error number 7 or so). Use double speed, if you prefer, but DO watch it!
    • leetcode some fun problems (just presented, not solved)
  • Differences:
    • 001 - not done: shown final exam time and date, TAs (not meet, not introduced), not shown office hours on main webpage. Done, in leetcode: set a variable via a pointer, declare and allocate a dynamic array
    • 002 - not done: set a variable via a pointer, declare and allocate a dynamic array (in leetcode)
2 Th 01/16 notes,
video
notes,
video
  • TAs - use @mavs.uta.edu email address
  • Searching in sorted array:
    • linear search
    • binary search: iterative and recursive. Filled in table to simmulate alg behavior.
    • code: search_fcts.c
  • Insertion sort
  • Slides: Examples of Algorithms (pdf , pptx )
  • 3 Tu 1/21 notes,
    video
    notes,
    video
  • OurCS event Feb 14-16, intended to spark interest in research and pursuing graduate degrees. Pre-event tutorials: Introduction to Python on February 8 and Introduction to Data Science on February 9, 2024. Followed by SCRF, Feb 17.
  • finish insertion sort. for loop -> while loop.
  • properties of sorting algorithms (stable, adaptive)
  • selection sort - idea, on paper, not the code, not adaptive, not stable
  • indirect sorting, binary search in indirectly sorted array
  • time complexity motivation
  • Slides: Examples of Algorithms (pdf , pptx )
  • not done: brief overview of several sorting Algorithms
  • section 002 - not done given a simple loop what is the code exacuted in 1 iteration.
  • 4 Th 1/23 notes,
    video
    notes,
    video
  • Math Review and Software Help Session
  • hw1 questions
  • time complexity
  • search_fcts_001,search_fcts_002
  • 02_TC_2024_class_2025_Spring.pdf ( or pptx,)
  • Cheatsheet
  • Friday, 1/24 ********
    Math Review and Software Help Session by Aryan and Jack
    5 Tu 1/28 notes,
    video
    notes,
    video
  • graphing calculator
  • TC slides general
  • _TC_complex_example_Weems_worksheet - not done
  • _TC_complex_example_worksheet - not done
  • tables - solved the first example from this (for 001 in slides, for 002 in Word doc) and one more example.
  • tables_2 - "empty" worksheet for nested for loops
  • 6 Th 1/30 notes,
    video
    notes,
    video
  • How do you want to be notified of suggested leetcode problems? Announcements/page updated notification/other (I do not want to receive any notification => form a group?)
  • continue TC: TC of functions (fct definitis vs fct call), if statements,
  • TC slides general see TC of functions (fct definitis vs fct call) from page 36 on
  • _TC_if_worksheet
  • functions and if
  • functions code
  • 7 Tu 2/04 notes,
    video
    notes,
    video
  • demo - book a time slot for a reserved time. Also ok to show up in office hours, but availability may be an issue.
  • Asymptotic bounds: Θ, O, Ω, o, ω (definition, properties, usage)
  • Asymptotic bounds summary sheet
  • 8 Th 2/06 notes,
    video
    notes,
    video
  • Lecture online only. Students will need to join online in Teams.
  • Slides: Count sort, Bucket sort, Radix sort (the LSD method)
  • Data Structure Visualizations
  • Count sort - count sort worksheet
  • Radix sort
  • 9 Tu 2/11 notes,
    video
    notes,
    video
  • Lecture online only
  • NlgN lower bound for comparison based sorting algorithms
  • bucket sort - Count sort, Bucket sort, Radix sort (the LSD method)
    worksheet
  • Data Structure Visualizations
  • 10 Th 2/13 notes,
    video
    notes,
    video
  • 002 - remaining from last lecture - implementation issues for bucket sort (only mentioned them in last lecture)
  • hw/WQ questions
  • merge sort slides
  • recursive function execution step by step ( pptx )
  • Mergesort notes ( pdf , docx ) prepared by Carl
  • 11 Tu 2/18 notes,
    video
    notes,
    video
  • Programming Competition April 5!
  • Exam 1 next week
    Finish merge sort
  • bottom up merge sort (iterative);
  • insertion sort in base cases for small subarray sections
  • see correspondence between frame stack, code executed and tree drawing;
  • TC analysis using the tree method;
  • SC analysis
  • 12 Th 2/20 notes,
    video
    notes,
    video
    Quicksort:
  • Quicksort
  • Quicksort animation on VisualAlgo
    Recurrences:
  • recurrences (tree method) (pdf , pptx )
  • recurrences worksheet
  • code -> recurrence recurrence -> tree
  • solve TC of recurrences/recursive fcts using the tree method
  • Not done (both sections): Recurrence formulas for Quicksort.
    Fun leetcode problems:
  • 1. Two sum
  • 23. Merge k Sorted Lists
  • 88. Merge Sorted Array
  • 1046. Last Stone Weight
  • 13 Tu 2/25 notes,
    video
    notes,
    video
    Recurrences - solve with tree method (pdf , pptx )
  • recurrence => tree and Table.
  • code <=> recurrence
  • recurrences worksheet
    Recurrences - solve with Master theorem
  • Master Theorem worksheet
  • Cheatsheet
  • Review for exam 1
    video
    notes - After I stopped sharing and recording my chat updated and I saw a couple more questions. I answered them at the end of the notes.
    14 Th 2/26 Exam 1, in class, during lecture time, must be taken with correct section (see MyMav or Canvas announcement)
    15 Th 3/04 notes,
    video
    notes,
    video
  • Stacks (pdf) (pptx)
  • Queues (pdf), (pptx )
  • Linked List (pdf) ( pptx )
  • Data Structure Visualizations
  • Notes from Carl
  • 001 - I did not record or share screen from the begining. Watch the begining of the lecture from 002 to see what you missed.
  • L16 Th 3/6 notes,
    video
    notes,
    video
    HEAPS
  • Trees Theory only
  • Heaps (pdf)
  • worksheet (pdf) ( docx ) (main author: Carl)
  • 17 Tu 3/18 notes,
    video
    notes,
    video
  • finish Heaps: heapsort, top-k. See for each section where we left off at the end of last lecture.
  • watch video from Canvas (Modules->Slides,Videos->Amortized TC, Resizing). It presents the material from the slides Amortized TC, resizing array TC, and add() operation for ArrayList in Java (or pptx)
  • Tress theory only (for height of a complete nearly complete tree with N nodes and definition of nearly complete tree)
  • Binary Trees (data structure, code) ( pptx )
  • VisualAlgo - good visualization tool. Has code/pseudocode, shows code line executed and corresponding data update, has several operations including (tree traversals, succesor/predecesor, remove, get kth smallest), flexibility in building the tree.
  • leetcode practice: search with Tag "binary tree" and solve "easy" problems. (Tag "binary search tree" shows only a few problems).
    Here is a list of problems and leetcode representation of trees
  • 18 Th 3/20 notes,
    video
    notes,
    video
  • Exams returned, solution discussed
  • Code for binary trees: count nodes (2 versions), print node and its depth (in 2 ways: on one line and indented),compute height ()
  • 001 - there was a mistake in the recursive calls to count2(). I had forgotten to put the 2-nd argument (ct). The code in notes has the correction. Did not show any problem in leetcode.
  • 19 Tu 3/25 notes,
    video
    notes,
    video
  • level order traversal from: Binary Trees (data structure, code) ( pptx )
  • Binary Search Trees (pptx) - property, search, insert, range of values
  • Carl's notes : pdf , docx
  • 94. Binary Tree Inorder Traversal - discussed, pseudocode/partial code
  • 98. Validate Binary Search Tree - discussed, pseudocode/partial code
  • 108. Convert Sorted Array to Binary Search Tree - shown code
  • 20 Th 3/27 notes,
    video
    notes,
    video
  • Exam or Hw questions? Exam - know what sorting algorithm to use in a specific case and what it's time complexity is (e.g. se insertion sort of data is almost sorted or if need O(1) space, use Merge sort if need guaranteed TC of NlgN). Function strlen() can be used for all the basic algortihms on strings.
  • finish Binary Search Trees (BST) - use Carl's notes from last lecture pdf, docx
    2-3-4 Search Trees - self study
  • Search Trees: 2-3-4 trees ( pptx ) - see Canvas video under Modules->Trees->2-3-4 trees page.
  • Animation: from B-Tree select Max Degree 4 and Preemptive Split/Merge to see the same behavior as shown in class.
  • Ask in next lecture in class any questions about this topic.
  • Friday 3/28 ******
    Heaps Review by Aryan
    Monday 3/31 ******
    Exam 2 Review by instructor
    notes
    21 Tu 4/1 Exam 2, in class, during lecture time, must be taken with correct section
    22 Th 4/3 notes,
    video
    notes,
    video
  • finish trees : mention red-black tree, AVL, splay tree. See last slides from Search Trees: 2-3-4 trees ( pptx )
    Hash Tables (or docx)
  • Before lecture watch this youtube video: Hash Tables and Hash Functions (less than 14 minutes)
  • Hashing notes by Carl: pdf or docx
  • covered at the end and more briefly (for both sections): quadratic probing, double hashing, better functions for hashing strings. Section 001 - possibly not talked about secundary clustering. Both sections not covered: perfect hashing
  • 23 Tu 4/8 notes,
    video
    notes,
    video
  • Hash table questions? - There were no questions here
  • hw discussion - for the first 35 minutes or so we talked about the homework.
  • Dynamic Programming - 2D - Edit Distance, Longest Common Subsequence, Longest Increasing Subsequence (pdf, pptx )
  • try the leetcode problems this ClassNote page (sent an announcement about it)
  • 24 Th 4/10 notes,
    video
    notes,
    video
  • hw - see Class Notebook page on hw4
  • first 8 minutes about the homework
  • continue DP
    Fibonacci memoized,
    LCS - Longest Common Subsequence
  • slides: Edit Distance, Longest Common Subsequence, Longest Increasing Subsequence (pdf, pptx )
  • continue using the worksheet from last lecture
  • 25 Tu 4/15 notes,
    video
    notes,
    video
  • return exams, exam solution (in class, not in Teams)
  • LIS - Longest Increasing Subsequence
  • ED - Edit Distance: common formula (if same letter use diagonal) and the more explicit formula (consider all choices, compute distance for each case, keep min)
  • 26 Th 4/17 notes,
    video
    notes,
    video
  • Knapsack, Job Schedulling
  • fill in notes: pdf or docx

  • Check: volume is up, screen is shared, recording is on, (join the meeting from a 2nd device to monitor the chat).
    student FAQ
    free - long answer
    free - short response
    A B C D E response
    Other: Deeply Understanding Logarithms In Time Complexities and Their Role In Computer Science - Video recommended by a student

    Go to top

    To do, or to revisit later