Lecture |
Section001 |
Section002 |
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
|
Not done:
- QuickSelect - adaptation of Quicksort to solve the problem of finding the k-th smallest item.
Check: volume is up, screen is shared, recording is on, (join the meeting from a 2nd device to monitor the chat).