├── .gitignore ├── Makefile ├── Makefile.html ├── _config.yml ├── book ├── .gitignore ├── Makefile ├── ibcm-chapter.pdf ├── ibcm-chapter.tex ├── ibcm.tex ├── ibcm │ ├── array-index.ibcm.txt │ ├── emulating1.cpp │ ├── emulating2.cpp │ ├── emulating3.cpp │ ├── emulating4.cpp │ ├── ibcm-automata.pdf │ ├── ibcm-automata.svg │ ├── ibcm-shift-1-orig.pdf │ ├── ibcm-shift-1-orig.svg │ ├── ibcm-shift-1.pdf │ ├── ibcm-shift-2-orig.pdf │ ├── ibcm-shift-2-orig.svg │ ├── ibcm-shift-2.pdf │ ├── ibcm-shift-3-orig.pdf │ ├── ibcm-shift-3-orig.svg │ ├── ibcm-shift-3.pdf │ ├── ibcm-shifts-and-rotates.svg │ ├── memory-hierarchy.odg │ ├── memory-hierarchy.png │ ├── mult.cpp │ ├── mult1.cpp │ ├── mult2.cpp │ ├── multiplication-pt1.ibcm.txt │ ├── multiplication-pt2.ibcm.txt │ ├── sample.ibcm │ ├── summation.cpp │ ├── summation.ibcm.txt │ ├── turing.ibcm │ └── www-screen-shot.png ├── index.html ├── index.md ├── macros.tex ├── main.tex ├── references.bib ├── working.tex ├── x86-32bit-asm-chapter.pdf ├── x86-32bit-asm-chapter.tex ├── x86-32bit-ccc-chapter.pdf ├── x86-32bit-ccc-chapter.tex ├── x86-32bit-ccc.tex ├── x86-32bit.tex ├── x86-32bit │ ├── code │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── callee-example-1.s │ │ ├── callee-example-main.cpp │ │ ├── caller-example-1.s │ │ ├── calling-return2.cpp │ │ ├── declaring-arrays.s │ │ ├── invalid-addressing-modes.s │ │ ├── labeled-code-location.s │ │ ├── memory-regions.s │ │ ├── return2.cpp │ │ ├── return2.s │ │ ├── size-directives.s │ │ └── valid-addressing-modes.s │ ├── x86-activation-record.pdf │ ├── x86-activation-record.svg │ ├── x86-register-diagram.pdf │ ├── x86-register-diagram.png │ └── x86-register-diagram.svg ├── x86-64bit-asm-chapter.pdf ├── x86-64bit-asm-chapter.tex ├── x86-64bit-ccc-chapter.pdf ├── x86-64bit-ccc-chapter.tex ├── x86-64bit-ccc.tex ├── x86-64bit.tex └── x86-64bit │ ├── code │ ├── .gitignore │ ├── Makefile │ ├── callee-example-1.s │ ├── callee-example-main.cpp │ ├── caller-example-1.s │ ├── calling-return2.cpp │ ├── declaring-arrays.s │ ├── invalid-addressing-modes.s │ ├── labeled-code-location.s │ ├── memory-regions.s │ ├── return2.cpp │ ├── return2.s │ ├── size-directives.s │ └── valid-addressing-modes.s │ ├── x86-activation-record.pdf │ ├── x86-activation-record.png │ ├── x86-activation-record.svg │ ├── x86-register-diagram.pdf │ ├── x86-register-diagram.png │ └── x86-register-diagram.svg ├── docs ├── compilation.html ├── compilation.md ├── compiler_flags.html ├── compiler_flags.md ├── convert_to_pdf.html ├── convert_to_pdf.md ├── gdb_summary.html ├── gdb_summary.md ├── gdb_vs_lldb.html ├── gdb_vs_lldb.md ├── index.html ├── index.md ├── instructor.html ├── instructor.md ├── lldb_summary.html ├── lldb_summary.md ├── readings.html ├── readings.md ├── tree.html └── tree.md ├── exams ├── exam1-f07.pdf ├── exam1-f08.pdf ├── exam1-f09.pdf ├── exam1-f10.pdf ├── exam1-f11.pdf ├── exam1-f12.pdf ├── exam1-f13.pdf ├── exam1-f14.pdf ├── exam1-f15.pdf ├── exam1-f16.pdf ├── exam1-f17.pdf ├── exam1-f18.pdf ├── exam1-f19.pdf ├── exam1-f21.pdf ├── exam1-f22.pdf ├── exam1-s08.cpp ├── exam1-s08.cpp.html ├── exam1-s08.pdf ├── exam1-s09.pdf ├── exam1-s10.pdf ├── exam1-s11.pdf ├── exam1-s12.pdf ├── exam1-s13.pdf ├── exam1-s14.pdf ├── exam1-s15.pdf ├── exam1-s16.pdf ├── exam1-s17.pdf ├── exam1-s18.pdf ├── exam1-s19.pdf ├── exam1-s20.pdf ├── exam1-s22.pdf ├── exam2-f07.pdf ├── exam2-f08.pdf ├── exam2-f09.pdf ├── exam2-f10.pdf ├── exam2-f11.pdf ├── exam2-f12.pdf ├── exam2-f13.pdf ├── exam2-f14.pdf ├── exam2-f15.pdf ├── exam2-f16.pdf ├── exam2-f17.pdf ├── exam2-f18.pdf ├── exam2-f19.pdf ├── exam2-f21.pdf ├── exam2-s08.pdf ├── exam2-s09.java ├── exam2-s09.java.html ├── exam2-s09.pdf ├── exam2-s10.pdf ├── exam2-s11.pdf ├── exam2-s12.pdf ├── exam2-s13.pdf ├── exam2-s14.pdf ├── exam2-s15.pdf ├── exam2-s16.pdf ├── exam2-s17.pdf ├── exam2-s18.pdf ├── exam2-s19.pdf ├── exam2-s22.pdf ├── final-f07.pdf ├── final-f08.pdf ├── final-f09.pdf ├── final-f10.pdf ├── final-f11.pdf ├── final-f12.pdf ├── final-f13.pdf ├── final-f14.pdf ├── final-f15.pdf ├── final-f16.pdf ├── final-f17.pdf ├── final-f18.pdf ├── final-f19.pdf ├── final-f20.html ├── final-f20_files │ ├── diagram_44.jpg │ ├── diagram_96.jpg │ ├── equation_143.png │ ├── equation_144.png │ ├── examstyle.css │ ├── hufftree_450.jpg │ ├── jquery.js │ ├── mst.jpg │ ├── pdr_exam_f20_13.jpg │ ├── pdr_exam_f20_2.jpg │ ├── pdr_exam_f20_4.jpg │ ├── pdr_exam_f20_7.jpg │ ├── tree_19983.jpg │ ├── tree_792.jpg │ ├── visible.jpg │ ├── visible_002.jpg │ ├── visible_003.jpg │ └── visible_004.jpg ├── final-f21.pdf ├── final-s08.pdf ├── final-s09.pdf ├── final-s10.pdf ├── final-s11.pdf ├── final-s12.pdf ├── final-s13.pdf ├── final-s14.pdf ├── final-s15.pdf ├── final-s16.pdf ├── final-s17.pdf ├── final-s18.pdf ├── final-s19.pdf ├── final-s22.pdf ├── index.html └── index.md ├── ibcm ├── array-summation.ibcm ├── busy-beaver.png ├── directions.html ├── ibcm-parse.cpp ├── ibcm-parse.cpp.html ├── ibcm-simulator.cpp ├── ibcm-simulator.cpp.html ├── ibcm.css ├── ibcm.html ├── ibcm.md ├── img │ ├── bg_menu.gif │ ├── bg_t.gif │ ├── bullet.gif │ ├── logo.png │ ├── logo_.jpg │ ├── top_bg.gif │ ├── top_bg_.gif │ └── valid-xhtml10.png ├── index.html ├── multiply.ibcm ├── simulator.js ├── simulator.php ├── summation.ibcm └── turing.ibcm ├── index.html ├── labs ├── .Rhistory ├── changelog.html ├── changelog.md ├── index.html ├── index.md ├── lab01 │ ├── TestBankAccount.cpp │ ├── TestBankAccount.cpp.html │ ├── index.html │ ├── index.md │ ├── lifecycle.cpp │ ├── lifecycle.cpp.html │ ├── list.cpp │ ├── list.cpp.html │ ├── list.h │ ├── list.h.html │ ├── svtest.cpp │ ├── svtest.cpp.html │ ├── svutil.cpp │ ├── svutil.cpp.html │ ├── svutil.h │ └── svutil.h.html ├── lab02 │ ├── List.h │ ├── List.h.html │ ├── ListItr.h │ ├── ListItr.h.html │ ├── ListNode.h │ ├── ListNode.h.html │ ├── ListTest.cpp │ ├── ListTest.cpp.html │ ├── index.html │ ├── index.md │ ├── list-diagram.dia │ ├── list-diagram.png │ └── list-diagram.svg ├── lab03 │ ├── index.html │ ├── index.md │ └── input │ │ ├── addition.txt │ │ ├── division.txt │ │ ├── multiplication.txt │ │ ├── negation.txt │ │ └── subtraction.txt ├── lab04 │ ├── index.html │ ├── index.md │ ├── inlab4.cpp │ ├── inlab4.cpp.html │ ├── inlab4.doc │ └── radixWorksheet.doc ├── lab05 │ ├── avl-tree-pic-1.dot │ ├── avl-tree-pic-1.png │ ├── avl-worksheet.pdf │ ├── avl-worksheet │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── avl-tree-1.dot │ │ ├── avl-tree-1.pdf │ │ ├── avl-tree-2.dot │ │ ├── avl-tree-2.pdf │ │ ├── avl-tree-3.dot │ │ ├── avl-tree-3.pdf │ │ ├── avl-tree-4.dot │ │ ├── avl-tree-4.pdf │ │ ├── avl-worksheet.pdf │ │ └── avl-worksheet.tex │ ├── code.zip │ ├── code │ │ ├── inlab │ │ │ ├── BSTPathTest.cpp │ │ │ ├── BSTPathTest.cpp.html │ │ │ ├── BinaryNode.cpp │ │ │ ├── BinaryNode.cpp.html │ │ │ ├── BinaryNode.h │ │ │ ├── BinaryNode.h.html │ │ │ ├── BinarySearchTree.cpp │ │ │ ├── BinarySearchTree.cpp.html │ │ │ ├── BinarySearchTree.h │ │ │ ├── BinarySearchTree.h.html │ │ │ ├── testfile1.out.txt │ │ │ ├── testfile1.txt │ │ │ ├── testfile2.out.txt │ │ │ ├── testfile2.txt │ │ │ ├── testfile3.out.txt │ │ │ └── testfile3.txt │ │ ├── postlab │ │ │ ├── AVLNode.cpp │ │ │ ├── AVLNode.cpp.html │ │ │ ├── AVLNode.h │ │ │ ├── AVLNode.h.html │ │ │ ├── AVLPathTest.cpp │ │ │ ├── AVLPathTest.cpp.html │ │ │ ├── AVLTree.cpp │ │ │ ├── AVLTree.cpp.html │ │ │ ├── AVLTree.h │ │ │ ├── AVLTree.h.html │ │ │ ├── testfile1.out.txt │ │ │ ├── testfile1.txt │ │ │ ├── testfile2.out.txt │ │ │ ├── testfile2.txt │ │ │ ├── testfile3.out.txt │ │ │ └── testfile3.txt │ │ └── prelab │ │ │ ├── TreeCalc.cpp │ │ │ ├── TreeCalc.cpp.html │ │ │ ├── TreeCalc.h │ │ │ ├── TreeCalc.h.html │ │ │ ├── TreeCalcTest.cpp │ │ │ ├── TreeCalcTest.cpp.html │ │ │ ├── TreeNode.cpp │ │ │ ├── TreeNode.cpp.html │ │ │ ├── TreeNode.h │ │ │ └── TreeNode.h.html │ ├── index.html │ └── index.md ├── lab06 │ ├── 500px-Wordsearch.svg.png │ ├── Wordsearch.svg │ ├── code.zip │ ├── code │ │ ├── getWordInGrid.cpp │ │ ├── getWordInGrid.cpp.html │ │ ├── primenumber.cpp │ │ ├── primenumber.cpp.html │ │ ├── timer.cpp │ │ ├── timer.cpp.html │ │ ├── timer.h │ │ ├── timer.h.html │ │ ├── timer_test.cpp │ │ └── timer_test.cpp.html │ ├── data.zip │ ├── data │ │ ├── 140x70.grid.txt │ │ ├── 140x70.out.txt │ │ ├── 250x250.grid.txt │ │ ├── 250x250.out.txt │ │ ├── 300x300.grid.txt │ │ ├── 300x300.words2.out.txt │ │ ├── 3x3.grid.txt │ │ ├── 3x3.out.txt │ │ ├── 4x7.grid.txt │ │ ├── 4x7.out.txt │ │ ├── 50x50.grid.txt │ │ ├── 50x50.out.txt │ │ ├── 5x8.grid.txt │ │ ├── 5x8.out.txt │ │ ├── words.txt │ │ └── words2.txt │ ├── index.html │ └── index.md ├── lab07 │ ├── bubblesort.cpp │ ├── bubblesort.cpp.html │ ├── counter.cpp │ ├── counter.cpp.html │ ├── index.html │ ├── index.md │ ├── timer.cpp │ ├── timer.cpp.html │ ├── timer.h │ └── timer.h.html ├── lab08-32bit │ ├── Makefile │ ├── Makefile.html │ ├── index.html │ ├── index.md │ ├── main.cpp │ ├── main.cpp.html │ ├── vecsum.s │ └── vecsum.s.html ├── lab08-64bit │ ├── .gitignore │ ├── Makefile │ ├── Makefile.html │ ├── index.html │ ├── index.md │ ├── input.txt │ ├── main.cpp │ ├── main.cpp.html │ ├── mergeSort.s │ ├── mergeSort.s.html │ ├── testLinearSearch.cpp │ ├── testLinearSearch.cpp.html │ ├── testMergeSort.cpp │ ├── testMergeSort.cpp.html │ ├── vecsum.s │ └── vecsum.s.html ├── lab09-32bit │ ├── 32-bit │ │ ├── Collatz-graph-all-30-no27.png │ │ ├── formula.png │ │ ├── index.html │ │ └── index.md │ ├── Collatz-graph-all-30-no27.png │ ├── formula.png │ ├── index.html │ └── index.md ├── lab09-64bit │ ├── Collatz-graph-all-30-no27.png │ ├── formula.png │ ├── index.html │ ├── index.md │ ├── linkedlist.c │ ├── linkedlist.c.html │ ├── testBinarySearch.cpp │ ├── testBinarySearch.cpp.html │ ├── timer.cpp │ ├── timer.cpp.html │ ├── timer.h │ └── timer.h.html ├── lab10 │ ├── examples.zip │ ├── examples │ │ ├── encoded1.txt │ │ ├── encoded2.txt │ │ ├── encoded3.txt │ │ ├── encoded4.txt │ │ ├── encoded4a.txt │ │ ├── normal1.txt │ │ ├── normal2.txt │ │ ├── normal3.txt │ │ └── normal4.txt │ ├── fileio.cpp │ ├── fileio.cpp.html │ ├── index.html │ ├── index.md │ ├── inlab-skeleton.cpp │ ├── inlab-skeleton.cpp.html │ ├── inlab-tree-2.png │ └── prelab-tree.png ├── lab11 │ ├── 8Puzzle.png │ ├── fileio2.cpp │ ├── fileio2.cpp.html │ ├── index.html │ ├── index.md │ ├── middleearth.cpp │ ├── middleearth.cpp.html │ ├── middleearth.h │ ├── middleearth.h.html │ ├── pre-reqs.dot │ ├── pre-reqs.png │ ├── pre-reqs.svg │ ├── prelab-test-full.txt │ ├── prelab-test-small.txt │ ├── traveling-skeleton.cpp │ └── traveling-skeleton.cpp.html └── lab12 │ ├── index.html │ ├── index.md │ ├── index.old.html │ └── index.old.md ├── license.html ├── license.md ├── markdown.css ├── readme-old.html ├── readme-old.md ├── readme.html ├── readme.md ├── slides ├── .gitignore ├── 01-cpp.html ├── 02-lists.html ├── 03-numbers.html ├── 04-arrays-bigoh.html ├── 05-trees.html ├── 06-hashes.html ├── 07-ibcm.html ├── 08-assembly-32bit.html ├── 08-assembly-64bit.html ├── 09-advanced-cpp.html ├── 10-heaps-huffman.html ├── 11-graphs.html ├── 12-memory.html ├── 13-esoteric-pls.html ├── 32bit.html ├── 32bit.md ├── code │ ├── 01-cpp │ │ ├── IntCell.cpp │ │ ├── IntCell.cpp.html │ │ ├── IntCell.h │ │ ├── IntCell.h.html │ │ ├── IntCell.java │ │ ├── IntCell.java.html │ │ ├── Rational.cpp │ │ ├── Rational.cpp.html │ │ ├── Rational.h │ │ ├── Rational.h.html │ │ ├── Rational.java │ │ ├── Rational.java.html │ │ ├── TestIntCell.cpp │ │ ├── TestIntCell.cpp.html │ │ ├── TestRational.cpp │ │ ├── TestRational.cpp.html │ │ ├── a.out │ │ ├── cpptest.cpp │ │ ├── cpptest.cpp.html │ │ ├── delete.cpp │ │ ├── delete.cpp.html │ │ ├── dynamic_allocation.cpp │ │ ├── dynamic_allocation.cpp.html │ │ ├── evenodd.cpp │ │ ├── evenodd.cpp.html │ │ ├── memory.cpp │ │ ├── memory.cpp.html │ │ ├── pointers.cpp │ │ ├── pointers.cpp.html │ │ ├── swap.cpp │ │ ├── swap.cpp.html │ │ ├── swapref.cpp │ │ └── swapref.cpp.html │ ├── 02-lists │ │ ├── findMax.cpp │ │ ├── findMax.cpp.html │ │ ├── objectCell.h │ │ ├── objectCell.h.html │ │ ├── objectCellMain.cpp │ │ └── objectCellMain.cpp.html │ ├── 03-numbers │ │ ├── FloatTest.java │ │ ├── FloatTest.java.html │ │ ├── float_to_hex.cpp │ │ └── float_to_hex.cpp.html │ ├── 04-arrays-bigoh │ │ ├── cmdlineparams.cpp │ │ └── cmdlineparams.cpp.html │ ├── 08-assembly-32bit │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── readme.txt │ │ ├── test_abs-non-intel.s │ │ ├── test_abs-non-intel.s.html │ │ ├── test_abs.cpp │ │ ├── test_abs.cpp.html │ │ ├── test_abs.s │ │ ├── test_abs.s.html │ │ ├── test_abs_c.c │ │ ├── test_abs_c.c.html │ │ ├── test_abs_c.s │ │ ├── test_abs_c.s.html │ │ ├── test_fib.cpp │ │ ├── test_fib.cpp.html │ │ ├── test_fib.s │ │ ├── test_fib.s.html │ │ ├── test_max-O2.s │ │ ├── test_max-O2.s.html │ │ ├── test_max-noextern.s │ │ ├── test_max-noextern.s.html │ │ ├── test_max.cpp │ │ ├── test_max.cpp.html │ │ ├── test_max.s │ │ ├── test_max.s.html │ │ ├── test_string_compare.cpp │ │ ├── test_string_compare.cpp.html │ │ ├── test_string_compare.s │ │ └── test_string_compare.s.html │ ├── 08-assembly-64bit │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── readme.txt │ │ ├── test_abs-non-intel.s │ │ ├── test_abs-non-intel.s.html │ │ ├── test_abs.cpp │ │ ├── test_abs.cpp.html │ │ ├── test_abs.s │ │ ├── test_abs.s.html │ │ ├── test_abs_c.c │ │ ├── test_abs_c.c.html │ │ ├── test_abs_c.s │ │ ├── test_abs_c.s.html │ │ ├── test_abs_int.cpp │ │ ├── test_abs_int.cpp.html │ │ ├── test_abs_int.s │ │ ├── test_abs_int.s.html │ │ ├── test_fact.cpp │ │ ├── test_fact.cpp.html │ │ ├── test_fact.s │ │ ├── test_fact.s.html │ │ ├── test_max-O2.s │ │ ├── test_max-O2.s.html │ │ ├── test_max-noextern.s │ │ ├── test_max-noextern.s.html │ │ ├── test_max.cpp │ │ ├── test_max.cpp.html │ │ ├── test_max.s │ │ ├── test_max.s.html │ │ ├── test_string_compare.cpp │ │ ├── test_string_compare.cpp.html │ │ ├── test_string_compare.s │ │ └── test_string_compare.s.html │ ├── 09-advanced-cpp │ │ ├── name-contact.cpp │ │ └── name-contact.cpp.html │ ├── 10-heaps-huffman │ │ ├── binary_heap.cpp │ │ ├── binary_heap.cpp.html │ │ ├── binary_heap.h │ │ ├── binary_heap.h.html │ │ ├── heap-test.cpp │ │ └── heap-test.cpp.html │ └── 12-memory │ │ ├── cache.cpp │ │ ├── cache.cpp.html │ │ ├── strings.c │ │ └── strings.c.html ├── css │ ├── dhtmlwindow.css │ └── pdr.css ├── graphs │ ├── .gitignore │ ├── Makefile │ ├── Makefile.html │ ├── Red-black_tree_insert_case_3.dot │ ├── Red-black_tree_insert_case_3.svg │ ├── Red-black_tree_insert_case_4.dot │ ├── Red-black_tree_insert_case_4.svg │ ├── Red-black_tree_insert_case_5.dot │ ├── Red-black_tree_insert_case_5.svg │ ├── avl-tree-1.dot │ ├── avl-tree-1.svg │ ├── avl-tree-10.dot │ ├── avl-tree-10.svg │ ├── avl-tree-11.dot │ ├── avl-tree-11.svg │ ├── avl-tree-12.dot │ ├── avl-tree-12.svg │ ├── avl-tree-13.dot │ ├── avl-tree-13.svg │ ├── avl-tree-14.dot │ ├── avl-tree-14.svg │ ├── avl-tree-15.dot │ ├── avl-tree-15.svg │ ├── avl-tree-16.dot │ ├── avl-tree-16.svg │ ├── avl-tree-17.dot │ ├── avl-tree-17.svg │ ├── avl-tree-18.dot │ ├── avl-tree-18.svg │ ├── avl-tree-19.dot │ ├── avl-tree-19.svg │ ├── avl-tree-2.dot │ ├── avl-tree-2.svg │ ├── avl-tree-20.dot │ ├── avl-tree-20.svg │ ├── avl-tree-21.dot │ ├── avl-tree-21.svg │ ├── avl-tree-22.dot │ ├── avl-tree-22.svg │ ├── avl-tree-23.dot │ ├── avl-tree-23.svg │ ├── avl-tree-24.dot │ ├── avl-tree-24.svg │ ├── avl-tree-3.dot │ ├── avl-tree-3.svg │ ├── avl-tree-4.dot │ ├── avl-tree-4.svg │ ├── avl-tree-5.dot │ ├── avl-tree-5.svg │ ├── avl-tree-6.dot │ ├── avl-tree-6.svg │ ├── avl-tree-7.dot │ ├── avl-tree-7.svg │ ├── avl-tree-8.dot │ ├── avl-tree-8.svg │ ├── avl-tree-9.dot │ ├── avl-tree-9.svg │ ├── bst-1.dot │ ├── bst-1.svg │ ├── bst-10.dot │ ├── bst-10.svg │ ├── bst-11.dot │ ├── bst-11.svg │ ├── bst-12.dot │ ├── bst-12.svg │ ├── bst-13.dot │ ├── bst-13.svg │ ├── bst-2.dot │ ├── bst-2.svg │ ├── bst-3.dot │ ├── bst-3.svg │ ├── bst-4.dot │ ├── bst-4.svg │ ├── bst-5.dot │ ├── bst-5.svg │ ├── bst-6.dot │ ├── bst-6.svg │ ├── bst-7.dot │ ├── bst-7.svg │ ├── bst-8.dot │ ├── bst-8.svg │ ├── bst-9.dot │ ├── bst-9.svg │ ├── c-string-1.dot │ ├── c-string-1.svg │ ├── c-string-2.dot │ ├── c-string-2.svg │ ├── exp-tree-1.dot │ ├── exp-tree-1.svg │ ├── exp-tree-2.dot │ ├── exp-tree-2.svg │ ├── exp-tree-3.dot │ ├── exp-tree-3.svg │ ├── exp-tree-ex-1.dot │ ├── exp-tree-ex-1.svg │ ├── exp-tree-ex-10.dot │ ├── exp-tree-ex-10.svg │ ├── exp-tree-ex-2.dot │ ├── exp-tree-ex-2.svg │ ├── exp-tree-ex-3.dot │ ├── exp-tree-ex-3.svg │ ├── exp-tree-ex-4.dot │ ├── exp-tree-ex-4.svg │ ├── exp-tree-ex-5.dot │ ├── exp-tree-ex-5.svg │ ├── exp-tree-ex-6.dot │ ├── exp-tree-ex-6.svg │ ├── exp-tree-ex-7.dot │ ├── exp-tree-ex-7.svg │ ├── exp-tree-ex-8.dot │ ├── exp-tree-ex-8.svg │ ├── exp-tree-ex-9.dot │ ├── exp-tree-ex-9.svg │ ├── file-tree-1.dot │ ├── file-tree-1.svg │ ├── generate-graph-12.cpp │ ├── generate-graph-12.cpp.html │ ├── graph-1.dot │ ├── graph-1.svg │ ├── graph-10.dot │ ├── graph-10.png │ ├── graph-10.svg │ ├── graph-11.dot │ ├── graph-11.svg │ ├── graph-12.dot │ ├── graph-12.svg │ ├── graph-13a.dot │ ├── graph-13a.svg │ ├── graph-13b.dot │ ├── graph-13b.svg │ ├── graph-13c.dot │ ├── graph-13c.svg │ ├── graph-13d.dot │ ├── graph-13d.svg │ ├── graph-13e.dot │ ├── graph-13e.svg │ ├── graph-14.dot │ ├── graph-14.png │ ├── graph-14.svg │ ├── graph-15.dot │ ├── graph-15.png │ ├── graph-15.svg │ ├── graph-2.dot │ ├── graph-2.svg │ ├── graph-3.dot │ ├── graph-3.svg │ ├── graph-4.dot │ ├── graph-4.png │ ├── graph-4.svg │ ├── graph-5.dot │ ├── graph-5.svg │ ├── graph-6.dot │ ├── graph-6.svg │ ├── graph-7.dot │ ├── graph-7.svg │ ├── graph-8.dot │ ├── graph-8.png │ ├── graph-8.svg │ ├── graph-9.dot │ ├── graph-9.png │ ├── graph-9.svg │ ├── heap-1.dot │ ├── heap-1.svg │ ├── heap-10.dot │ ├── heap-10.svg │ ├── heap-11.dot │ ├── heap-11.svg │ ├── heap-12.dot │ ├── heap-12.svg │ ├── heap-13.dot │ ├── heap-13.svg │ ├── heap-14.dot │ ├── heap-14.svg │ ├── heap-15.dot │ ├── heap-15.svg │ ├── heap-16.dot │ ├── heap-16.svg │ ├── heap-17.dot │ ├── heap-17.svg │ ├── heap-18.dot │ ├── heap-18.svg │ ├── heap-2.dot │ ├── heap-2.svg │ ├── heap-3.dot │ ├── heap-3.svg │ ├── heap-4.dot │ ├── heap-4.svg │ ├── heap-5.dot │ ├── heap-5.svg │ ├── heap-6.dot │ ├── heap-6.svg │ ├── heap-7.dot │ ├── heap-7.svg │ ├── heap-8.dot │ ├── heap-8.svg │ ├── heap-9.dot │ ├── heap-9.svg │ ├── huffman-1.dot │ ├── huffman-1.svg │ ├── huffman-10.dot │ ├── huffman-10.svg │ ├── huffman-11.dot │ ├── huffman-11.svg │ ├── huffman-12.dot │ ├── huffman-12.svg │ ├── huffman-13.dot │ ├── huffman-13.svg │ ├── huffman-14.dot │ ├── huffman-14.svg │ ├── huffman-2.dot │ ├── huffman-2.svg │ ├── huffman-3.dot │ ├── huffman-3.svg │ ├── huffman-4.dot │ ├── huffman-4.svg │ ├── huffman-5.dot │ ├── huffman-5.svg │ ├── huffman-6.dot │ ├── huffman-6.svg │ ├── huffman-7.dot │ ├── huffman-7.svg │ ├── huffman-8.dot │ ├── huffman-8.svg │ ├── huffman-9.dot │ ├── huffman-9.svg │ ├── index.html │ ├── index.md │ ├── list-diagram-1.dot │ ├── list-diagram-1.svg │ ├── list-diagram-2.dot │ ├── list-diagram-2.svg │ ├── program-tree-1.dot │ ├── program-tree-1.svg │ ├── rb-tree-1.dot │ ├── rb-tree-1.svg │ ├── tree-diagram.dot │ └── tree-diagram.svg ├── images │ ├── 01-cpp │ │ ├── clang++-error-message.png │ │ ├── dynamic-allocation-execution.png │ │ ├── g++-error-message.png │ │ ├── pointers-1.png │ │ ├── pointers-2.png │ │ ├── pointers-3.png │ │ ├── pointers-4.png │ │ └── separate-compilation.png │ ├── 02-lists │ │ ├── lists-adt-arrays.png │ │ ├── lists-adt-linked.png │ │ ├── queue-diagram.dia │ │ ├── queue-diagram.svg │ │ ├── stack-activation-record.png │ │ ├── stack-diagram.dia │ │ └── stack-diagram.svg │ ├── 03-numbers │ │ ├── cpu-image.png │ │ ├── endian-ness.png │ │ ├── eniac.png │ │ ├── fixed-point.png │ │ ├── long-division.png │ │ ├── nvidia.png │ │ ├── ones-complement.png │ │ ├── patriot-missile.jpg │ │ ├── sign-and-magnitude.png │ │ └── twos-complement.png │ ├── 04-arrays-bigoh │ │ ├── 2d-array-layout.png │ │ ├── graph-1.png │ │ ├── graph-2.png │ │ ├── graph-3.png │ │ ├── graph-4.png │ │ ├── graph-5.png │ │ ├── omega-diagram-1.png │ │ ├── omega-diagram-2.png │ │ ├── theta-diagram.png │ │ └── venn-diagram.png │ ├── 05-trees │ │ ├── 1024px-Tree_Rebalancing.gif │ │ ├── 768px-Tree_of_life_SVG.svg.png │ │ ├── IndoEuropeanTree-part.svg │ │ ├── IndoEuropeanTree.svg │ │ ├── Red-black_tree_insert_case_3.png │ │ ├── Red-black_tree_insert_case_4.png │ │ ├── Red-black_tree_insert_case_5.png │ │ ├── Tree_rotation.png │ │ └── evil-genius-flowchart.gif │ ├── 06-hashes │ │ ├── blob.png │ │ └── separate-chaining-diagram.png │ ├── 07-ibcm │ │ ├── ibcm-memory.png │ │ └── memory-hierarchy.png │ ├── 08-x86 │ │ ├── C4004.jpg │ │ ├── registers_x86_64bit.png │ │ ├── x86-64bit-activation-record.svg │ │ ├── x86-activation-record.svg │ │ └── x86-register-diagram.svg │ ├── 09-advanced-cpp │ │ ├── multiple-inheritance.svg │ │ ├── vmt-1.svg │ │ ├── vmt-2.svg │ │ ├── vmt-3.svg │ │ └── vmt-4.svg │ ├── 10-heaps-huffman │ │ ├── ascii.png │ │ ├── compression-diagram.svg │ │ ├── heap-diagram.svg │ │ ├── jpeg-001.jpg │ │ ├── jpeg-010.jpg │ │ ├── jpeg-025.jpg │ │ ├── jpeg-050.jpg │ │ ├── jpeg-100.jpg │ │ └── tree.png │ ├── 11-graphs │ │ ├── adjacency-list.svg │ │ ├── airline-routes-from-openflights.jpg │ │ ├── bs-cs-chart.svg │ │ ├── geek-gift-flowchart.gif │ │ ├── google-maps.png │ │ ├── icpc-midatl-2009-shortest-path.png │ │ ├── interstates.svg │ │ ├── known-unknown-graphs.svg │ │ ├── kruskals-diagram.svg │ │ ├── london-underground.svg │ │ ├── prims-diagram.svg │ │ └── us-city-map.jpg │ ├── 12-memory │ │ ├── amd-bios-memtest.png │ │ └── memory-diagram.svg │ ├── 13-esoteric-pls │ │ └── whitespace.png │ ├── calibrate.png │ ├── close.gif │ ├── green-double-arrow.png │ ├── max.gif │ ├── menu-icon.png │ ├── min.gif │ ├── print-icon.png │ ├── red-double-arrow.png │ ├── resize.gif │ ├── restore.gif │ └── spacer.gif ├── index.html ├── index.md ├── js │ ├── canvas.js │ ├── dhtmlwindow.js │ └── settings.js ├── misc │ ├── gt.jar │ ├── hash-table-buckets.odt │ └── hash-table-buckets.pdf ├── reiss │ ├── advancedCpp.pdf │ ├── arrays.pdf │ ├── asm.pdf │ ├── bigoh.pdf │ ├── courseintro.pdf │ ├── cpp.pdf │ ├── graphs.pdf │ ├── hashes.pdf │ ├── heapsHuffman.pdf │ ├── ibcm.pdf │ ├── lists.pdf │ ├── memory.pdf │ ├── numbers.pdf │ └── trees.pdf ├── reveal.js │ ├── .github │ │ ├── FUNDING.yml │ │ └── workflows │ │ │ └── js.yml │ ├── .gitignore │ ├── .npmignore │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── css │ │ ├── layout.scss │ │ ├── print │ │ │ ├── paper.scss │ │ │ └── pdf.scss │ │ ├── reveal.scss │ │ └── theme │ │ │ ├── README.md │ │ │ ├── source │ │ │ ├── beige.scss │ │ │ ├── black.scss │ │ │ ├── blood.scss │ │ │ ├── league.scss │ │ │ ├── moon.scss │ │ │ ├── night.scss │ │ │ ├── serif.scss │ │ │ ├── simple.scss │ │ │ ├── sky.scss │ │ │ ├── solarized.scss │ │ │ └── white.scss │ │ │ └── template │ │ │ ├── exposer.scss │ │ │ ├── mixins.scss │ │ │ ├── settings.scss │ │ │ └── theme.scss │ ├── demo.html │ ├── dist │ │ ├── reset.css │ │ ├── reveal.css │ │ ├── reveal.esm.js │ │ ├── reveal.js │ │ └── theme │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── fonts │ │ │ ├── league-gothic │ │ │ │ ├── LICENSE │ │ │ │ ├── league-gothic.css │ │ │ │ ├── league-gothic.eot │ │ │ │ ├── league-gothic.ttf │ │ │ │ └── league-gothic.woff │ │ │ └── source-sans-pro │ │ │ │ ├── LICENSE │ │ │ │ ├── source-sans-pro-italic.eot │ │ │ │ ├── source-sans-pro-italic.ttf │ │ │ │ ├── source-sans-pro-italic.woff │ │ │ │ ├── source-sans-pro-regular.eot │ │ │ │ ├── source-sans-pro-regular.ttf │ │ │ │ ├── source-sans-pro-regular.woff │ │ │ │ ├── source-sans-pro-semibold.eot │ │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ │ ├── source-sans-pro-semibold.woff │ │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ │ └── source-sans-pro.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ └── white.css │ ├── examples │ │ ├── assets │ │ │ ├── beeping.txt │ │ │ ├── beeping.wav │ │ │ ├── image1.png │ │ │ └── image2.png │ │ ├── auto-animate.html │ │ ├── backgrounds.html │ │ ├── barebones.html │ │ ├── layout-helpers.html │ │ ├── markdown.html │ │ ├── markdown.md │ │ ├── math.html │ │ ├── media.html │ │ ├── multiple-presentations.html │ │ └── transitions.html │ ├── gulpfile.js │ ├── index.html │ ├── js │ │ ├── components │ │ │ └── playback.js │ │ ├── config.js │ │ ├── controllers │ │ │ ├── autoanimate.js │ │ │ ├── backgrounds.js │ │ │ ├── controls.js │ │ │ ├── focus.js │ │ │ ├── fragments.js │ │ │ ├── keyboard.js │ │ │ ├── location.js │ │ │ ├── notes.js │ │ │ ├── overview.js │ │ │ ├── plugins.js │ │ │ ├── pointer.js │ │ │ ├── print.js │ │ │ ├── progress.js │ │ │ ├── slidecontent.js │ │ │ ├── slidenumber.js │ │ │ └── touch.js │ │ ├── index.js │ │ ├── reveal.js │ │ └── utils │ │ │ ├── color.js │ │ │ ├── constants.js │ │ │ ├── device.js │ │ │ ├── loader.js │ │ │ └── util.js │ ├── package-lock.json │ ├── package.json │ ├── plugin │ │ ├── highlight │ │ │ ├── highlight.esm.js │ │ │ ├── highlight.js │ │ │ ├── monokai.css │ │ │ ├── plugin.js │ │ │ └── zenburn.css │ │ ├── markdown │ │ │ ├── markdown.esm.js │ │ │ ├── markdown.js │ │ │ └── plugin.js │ │ ├── math │ │ │ ├── math.esm.js │ │ │ ├── math.js │ │ │ └── plugin.js │ │ ├── notes │ │ │ ├── notes.esm.js │ │ │ ├── notes.js │ │ │ ├── plugin.js │ │ │ └── speaker-view.html │ │ ├── search │ │ │ ├── plugin.js │ │ │ ├── search.esm.js │ │ │ └── search.js │ │ └── zoom │ │ │ ├── plugin.js │ │ │ ├── zoom.esm.js │ │ │ └── zoom.js │ └── test │ │ ├── assets │ │ ├── external-script-a.js │ │ ├── external-script-b.js │ │ ├── external-script-c.js │ │ └── external-script-d.js │ │ ├── simple.md │ │ ├── test-auto-animate.html │ │ ├── test-dependencies-async.html │ │ ├── test-dependencies.html │ │ ├── test-grid-navigation.html │ │ ├── test-iframe-backgrounds.html │ │ ├── test-iframes.html │ │ ├── test-markdown.html │ │ ├── test-multiple-instances-es5.html │ │ ├── test-multiple-instances.html │ │ ├── test-pdf.html │ │ ├── test-plugins.html │ │ ├── test-state.html │ │ └── test.html └── x86 │ ├── .gitignore │ ├── 32bit │ ├── Makefile │ ├── Makefile.html │ ├── x86-cc-esp.dot │ ├── x86-cc-esp.dot.10.svg │ ├── x86-cc-esp.dot.11.svg │ ├── x86-cc-esp.dot.12.svg │ ├── x86-cc-esp.dot.2.svg │ ├── x86-cc-esp.dot.3.svg │ ├── x86-cc-esp.dot.4.svg │ ├── x86-cc-esp.dot.5.svg │ ├── x86-cc-esp.dot.6.svg │ ├── x86-cc-esp.dot.7.svg │ ├── x86-cc-esp.dot.8.svg │ ├── x86-cc-esp.dot.9.svg │ ├── x86-cc-esp.dot.svg │ ├── x86-cc-regs.dot │ ├── x86-cc-regs.dot.2.svg │ ├── x86-cc-regs.dot.3.svg │ ├── x86-cc-regs.dot.4.svg │ ├── x86-cc-regs.dot.5.svg │ ├── x86-cc-regs.dot.6.svg │ ├── x86-cc-regs.dot.7.svg │ ├── x86-cc-regs.dot.svg │ ├── x86-cc-stack.dot │ ├── x86-cc-stack.dot.10.svg │ ├── x86-cc-stack.dot.11.svg │ ├── x86-cc-stack.dot.12.svg │ ├── x86-cc-stack.dot.13.svg │ ├── x86-cc-stack.dot.14.svg │ ├── x86-cc-stack.dot.15.svg │ ├── x86-cc-stack.dot.16.svg │ ├── x86-cc-stack.dot.2.svg │ ├── x86-cc-stack.dot.3.svg │ ├── x86-cc-stack.dot.4.svg │ ├── x86-cc-stack.dot.5.svg │ ├── x86-cc-stack.dot.6.svg │ ├── x86-cc-stack.dot.7.svg │ ├── x86-cc-stack.dot.8.svg │ ├── x86-cc-stack.dot.9.svg │ └── x86-cc-stack.dot.svg │ ├── 64bit │ ├── Makefile │ ├── Makefile.html │ ├── x86-cc-esp.dot.svg │ ├── x86-cc-regs.dot │ ├── x86-cc-regs.dot.2.svg │ ├── x86-cc-regs.dot.3.svg │ ├── x86-cc-regs.dot.4.svg │ ├── x86-cc-regs.dot.5.svg │ ├── x86-cc-regs.dot.6.svg │ ├── x86-cc-regs.dot.7.svg │ ├── x86-cc-regs.dot.svg │ ├── x86-cc-rsp.dot │ ├── x86-cc-rsp.dot.2.svg │ ├── x86-cc-rsp.dot.3.svg │ ├── x86-cc-rsp.dot.4.svg │ ├── x86-cc-rsp.dot.5.svg │ ├── x86-cc-rsp.dot.6.svg │ ├── x86-cc-rsp.dot.7.svg │ ├── x86-cc-rsp.dot.svg │ ├── x86-cc-stack.dot │ ├── x86-cc-stack.dot.2.svg │ ├── x86-cc-stack.dot.3.svg │ ├── x86-cc-stack.dot.4.svg │ ├── x86-cc-stack.dot.5.svg │ ├── x86-cc-stack.dot.6.svg │ ├── x86-cc-stack.dot.7.svg │ ├── x86-cc-stack.dot.8.svg │ └── x86-cc-stack.dot.svg │ ├── x86-cc-esp-64.dot │ ├── x86-cc-esp-64.dot.2.svg │ ├── x86-cc-esp-64.dot.3.svg │ ├── x86-cc-esp-64.dot.4.svg │ ├── x86-cc-esp-64.dot.5.svg │ ├── x86-cc-esp-64.dot.6.svg │ ├── x86-cc-esp-64.dot.7.svg │ ├── x86-cc-esp-64.dot.svg │ ├── x86-cc-regs-64.dot │ ├── x86-cc-regs-64.dot.2.svg │ ├── x86-cc-regs-64.dot.3.svg │ ├── x86-cc-regs-64.dot.4.svg │ ├── x86-cc-regs-64.dot.5.svg │ ├── x86-cc-regs-64.dot.6.svg │ ├── x86-cc-regs-64.dot.7.svg │ ├── x86-cc-regs-64.dot.svg │ ├── x86-cc-stack-64.dot │ ├── x86-cc-stack-64.dot.10.svg │ ├── x86-cc-stack-64.dot.11.svg │ ├── x86-cc-stack-64.dot.12.svg │ ├── x86-cc-stack-64.dot.2.svg │ ├── x86-cc-stack-64.dot.3.svg │ ├── x86-cc-stack-64.dot.4.svg │ ├── x86-cc-stack-64.dot.5.svg │ ├── x86-cc-stack-64.dot.6.svg │ ├── x86-cc-stack-64.dot.7.svg │ ├── x86-cc-stack-64.dot.8.svg │ ├── x86-cc-stack-64.dot.9.svg │ └── x86-cc-stack-64.dot.svg ├── tutorials ├── 01-intro-unix │ ├── Dockerfile │ ├── emacs-meta-command.png │ ├── emacs-on-open.png │ ├── emacs-with-code.png │ ├── index.html │ ├── index.md │ ├── vb-image-details.html │ ├── vb-image-details.md │ ├── virtual-box.html │ └── virtual-box.md ├── 02-gdb │ ├── debug.cpp │ ├── debug.cpp.html │ ├── index.html │ ├── index.md │ ├── prog1.cpp │ └── prog1.cpp.html ├── 02-lldb │ ├── debug.cpp │ ├── debug.cpp.html │ ├── index.html │ ├── index.md │ ├── prog1.cpp │ └── prog1.cpp.html ├── 03-04-more-unix │ ├── arc │ │ ├── unixtut.tar.gz │ │ └── unixtut.zip │ ├── download.html │ ├── file1.gif │ ├── index.html │ ├── links.html │ ├── media │ │ ├── arrow.gif │ │ ├── box_bottom.gif │ │ ├── box_top.gif │ │ ├── gnome-window.gif │ │ ├── home.gif │ │ ├── left.gif │ │ ├── linux-penguin-small.png │ │ ├── right.gif │ │ ├── unix-plate2.jpg │ │ ├── unix-tree.png │ │ ├── unix-xterm0.gif │ │ ├── unix-xterm1.gif │ │ └── unix-xterm2.gif │ ├── pipeanswer.html │ ├── reading.html │ ├── science.txt │ ├── units-1.74.tar.gz │ ├── unix0.html │ ├── unix1.html │ ├── unix2.html │ ├── unix3.html │ ├── unix4.html │ ├── unix5.html │ ├── unix6.html │ ├── unix7.html │ ├── unix8.html │ ├── unixintro.html │ ├── unixtut1.css │ ├── unixtut2-print.css │ └── unixtut2.css ├── 05-make │ ├── .gitignore │ ├── index.html │ ├── index.md │ ├── pizza.zip │ └── pizza │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── cheese.cpp │ │ ├── cheese.cpp.html │ │ ├── cheese.h │ │ ├── cheese.h.html │ │ ├── mushrooms.cpp │ │ ├── mushrooms.cpp.html │ │ ├── mushrooms.h │ │ ├── mushrooms.h.html │ │ ├── pepperoni.cpp │ │ ├── pepperoni.cpp.html │ │ ├── pepperoni.h │ │ ├── pepperoni.h.html │ │ ├── peppers.cpp │ │ ├── peppers.cpp.html │ │ ├── peppers.h │ │ ├── peppers.h.html │ │ ├── pizza.cpp │ │ ├── pizza.cpp.html │ │ ├── pizzadough.cpp │ │ ├── pizzadough.cpp.html │ │ ├── pizzadough.h │ │ ├── pizzadough.h.html │ │ ├── tomatosauce.cpp │ │ ├── tomatosauce.cpp.html │ │ ├── tomatosauce.h │ │ ├── tomatosauce.h.html │ │ ├── toppings.cpp │ │ ├── toppings.cpp.html │ │ ├── toppings.h │ │ └── toppings.h.html ├── 06-07-bash-scripting │ ├── bash-shell-scripting-from-wikibooks.html │ └── bash-shell-scripting-from-wikibooks_files │ │ ├── 1.png │ │ ├── 120px-Emblem-diamond.png │ │ ├── 120px-Go-next.png │ │ ├── 24px-00_percents.png │ │ ├── 40px-Book_important2.png │ │ ├── CloseWindow19x19.png │ │ ├── checkLoggedIn.js │ │ ├── geoiplookup.js │ │ ├── index.js │ │ ├── index_002.js │ │ ├── index_003.js │ │ ├── index_004.js │ │ ├── index_005.js │ │ ├── index_006.js │ │ ├── index_007.js │ │ ├── index_009.js │ │ ├── index_010.js │ │ ├── index_011.js │ │ ├── index_012.js │ │ ├── index_013.js │ │ ├── index_014.js │ │ ├── index_015.js │ │ ├── load.css │ │ ├── load.js │ │ ├── load_002.css │ │ ├── load_002.js │ │ ├── load_003.js │ │ ├── load_004.js │ │ ├── load_005.js │ │ ├── poweredby_mediawiki_88x31.png │ │ └── wikimedia-button.png ├── 09-c │ ├── index.html │ └── index.md ├── 11-doxygen │ ├── average.cpp │ ├── average.cpp.html │ ├── graph-1.png │ ├── graph-2.png │ ├── graph-3.png │ ├── index.html │ ├── index.md │ └── screenshot.png ├── 12-objc │ ├── helloworld.m │ ├── helloworld.m.html │ ├── index.html │ └── index.md ├── index.html ├── index.md ├── other │ ├── ssh-scp.html │ └── ssh-scp.md └── unixtut.tar.gz ├── utils ├── .gitignore ├── Makefile ├── Makefile.html ├── convert ├── convert-markdown-to-html.sh ├── format-source-files.sh ├── highlight-source-files.sh ├── index.html ├── index.md ├── markdown.c ├── markdown.c.html ├── markdown.cpp └── markdown.cpp.html └── uva ├── .gitignore ├── Makefile ├── code └── introduction │ ├── DataStructureComparison.java │ └── DataStructureComparison.java.html ├── course-conclusion.html ├── course-introduction.html ├── daily-announcements.html ├── enrollment.data ├── enrollment.graph ├── enrollment.svg ├── exam-review.html ├── grades.html ├── grades.md ├── gradescope-faq.html ├── gradescope-faq.md ├── images ├── introduction │ ├── Floryan.jpg │ ├── Nguyen.JPG │ ├── aaronbloomfield.jpg │ ├── contacting-flowchart-small.png │ ├── contacting-flowchart-with-mrf8t-small.png │ ├── contacting-flowchart-with-mrf8t.png │ ├── contacting-flowchart.png │ ├── levels-of-abstraction.png │ ├── smiley.jpg │ ├── spring-break-2014-student.png │ ├── spring-break-2014-uva.png │ ├── spring-break-2015-student.png │ ├── spring-break-2015-uva.png │ ├── spring-break-2016-student.png │ ├── spring-break-2016-uva.png │ ├── spring-break-2017-student.png │ ├── spring-break-2017-uva.png │ ├── thanksgiving-2014-student.png │ ├── thanksgiving-2014-uva.png │ ├── thanksgiving-2015-student.png │ ├── thanksgiving-2015-uva.png │ ├── thanksgiving-2016-student.png │ └── thanksgiving-2016-uva.png └── magic-8-ball.png ├── index.html ├── index.md ├── labduedates.html ├── labduedates.md ├── lectures ├── .gitignore ├── Makefile ├── bloomfield-fall-2020 │ ├── Makefile │ ├── index.html │ ├── index.md │ ├── lec02 │ │ ├── helloworld.cpp │ │ └── helloworld.cpp.html │ ├── lec03 │ │ ├── item.cpp │ │ ├── item.cpp.html │ │ ├── item.h │ │ ├── item.h.html │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec04 │ │ ├── pointers.cpp │ │ └── pointers.cpp.html │ ├── lec05 │ │ ├── dynmem.cpp │ │ └── dynmem.cpp.html │ ├── lec06 │ │ ├── danglingptrs.cpp │ │ ├── danglingptrs.cpp.html │ │ ├── parameters.cpp │ │ └── parameters.cpp.html │ ├── lec07 │ │ ├── destructors.cpp │ │ ├── destructors.cpp.html │ │ └── lec07.svg │ ├── lec08 │ │ ├── copying.cpp │ │ ├── copying.cpp.html │ │ └── lec08.svg │ ├── lec09 │ │ ├── lec09.svg │ │ ├── vectors.cpp │ │ └── vectors.cpp.html │ ├── lec10 │ │ └── notes.txt │ ├── lec11 │ │ ├── img1.svg │ │ ├── img2.svg │ │ └── img3.svg │ ├── lec12 │ │ ├── arrays.cpp │ │ ├── arrays.cpp.html │ │ └── lec12.svg │ ├── lec13 │ │ ├── errors-no-comments.cpp │ │ └── errors-no-comments.cpp.html │ ├── lec14 │ │ ├── img1.svg │ │ └── img2.svg │ ├── lec15 │ │ └── lec15.svg │ ├── lec16 │ │ └── pseudo-code.txt │ ├── lec17 │ │ ├── after.svg │ │ └── before.svg │ ├── lec18 │ │ └── code.txt │ ├── lec19 │ │ └── lec19.svg │ ├── lec20 │ │ ├── f17-ex2-q5.svg │ │ └── f17-ex2-q6.svg │ ├── lec22 │ │ └── lec22.svg │ ├── lec25 │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── assembly.s │ │ ├── assembly.s.html │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec26 │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── assembly.s │ │ ├── assembly.s.html │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec27 │ │ ├── fib.s │ │ └── fib.s.html │ ├── lec29 │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec31 │ │ ├── test.cpp │ │ └── test.cpp.html │ ├── lec32 │ │ ├── lec32.cpp │ │ ├── lec32.cpp.html │ │ └── lec32.svg │ ├── lec33 │ │ ├── create_tree.cpp │ │ ├── create_tree.cpp.html │ │ └── lec33.svg │ ├── lec34 │ │ ├── f19-final-q10.svg │ │ ├── f19-final-q9.svg │ │ ├── s19-final-q8.svg │ │ └── s19-final-q9.svg │ ├── lec35 │ │ ├── lec35-1.svg │ │ ├── lec35-2.svg │ │ ├── lec35-3.svg │ │ ├── lec35-4.svg │ │ ├── overlay1.html │ │ ├── overlay2.html │ │ ├── overlay3.html │ │ └── overlay4.html │ ├── lec36 │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── bfs.cpp │ │ ├── bfs.cpp.html │ │ ├── bfs.in │ │ ├── lec36-1.svg │ │ ├── lec36-2.svg │ │ └── overlay.html │ ├── lec37 │ │ ├── 3x3-grid.jpg │ │ ├── lec37.svg │ │ ├── overlay.html │ │ ├── steps.html │ │ └── steps.md │ └── lec38 │ │ ├── lec38-1.svg │ │ ├── lec38-2.svg │ │ ├── lec38-3.svg │ │ ├── overlay1.html │ │ ├── overlay2.html │ │ └── overlay3.html ├── bloomfield-fall-2021 │ ├── 2021-09-24 14.52.12.jpg │ ├── 2021-09-29 14.49.02.jpg │ ├── 2021-09-29 14.49.10.jpg │ ├── 2021-10-13 13.57.26.jpg │ ├── 2021-10-15 14.53.43.jpg │ ├── 2021-10-18 13.51.27.jpg │ ├── 2021-10-20 13.53.21.jpg │ ├── 2021-10-29 14.55.34.jpg │ ├── 2021-11-05 13.57.59.jpg │ ├── 2021-11-08 13.55.41.jpg │ ├── 2021-11-17 13.54.22.jpg │ ├── 2021-11-19 13.09.09.jpg │ ├── 2021-11-19 13.28.02.jpg │ ├── 2021-11-19 13.49.54.jpg │ ├── 2021-11-22 13.32.04.jpg │ ├── 2021-11-22 14.13.47.jpg │ ├── 2021-11-29 13.42.20.jpg │ ├── 2021-12-01 14.51.24.jpg │ ├── index.html │ └── index.md ├── bloomfield-spring-2021 │ ├── index.html │ ├── index.md │ ├── lec02 │ │ ├── helloworld.cpp │ │ └── helloworld.cpp.html │ ├── lec03 │ │ ├── item.cpp │ │ ├── item.cpp.html │ │ ├── item.h │ │ ├── item.h.html │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec04 │ │ ├── lec04.svg │ │ ├── pointers.cpp │ │ └── pointers.cpp.html │ ├── lec05 │ │ ├── mistakes.cpp │ │ ├── mistakes.cpp.html │ │ ├── mistakes.svg │ │ ├── notswap.cpp │ │ ├── notswap.cpp.html │ │ └── swap.svg │ ├── lec06 │ │ ├── dangling.cpp │ │ ├── dangling.cpp.html │ │ ├── dangling.svg │ │ ├── moreswap.cpp │ │ ├── moreswap.cpp.html │ │ ├── stuff.cpp │ │ └── stuff.cpp.html │ ├── lec07 │ │ ├── destructors.cpp │ │ ├── destructors.cpp.html │ │ └── lec07.svg │ ├── lec08 │ │ ├── copying.cpp │ │ ├── copying.cpp.html │ │ └── lec08.svg │ ├── lec09 │ │ ├── lec09.svg │ │ ├── vectors.cpp │ │ └── vectors.cpp.html │ ├── lec10 │ │ ├── lec10-a.svg │ │ ├── lec10-b.svg │ │ ├── lec10-c.svg │ │ └── lec10-d.svg │ ├── lec11 │ │ ├── lec11-a.svg │ │ ├── lec11-b.svg │ │ └── lec11-c.svg │ ├── lec12 │ │ ├── arrays.cpp │ │ ├── arrays.cpp.html │ │ └── lec12.svg │ ├── lec13 │ │ ├── errors-fixed.cpp │ │ ├── errors-fixed.cpp.html │ │ ├── errors-no-comments.cpp │ │ └── errors-no-comments.cpp.html │ ├── lec14 │ │ ├── lec14-graph.svg │ │ └── lec14-proof.svg │ ├── lec15 │ │ └── lec15.svg │ ├── lec16 │ │ └── exam2-f18-q8.txt │ ├── lec17 │ │ ├── after.svg │ │ └── before.svg │ ├── lec18 │ │ └── code.txt │ ├── lec20 │ │ ├── Makefile │ │ ├── Makefile.html │ │ └── lec20.svg │ ├── lec22 │ │ └── lec22.svg │ ├── lec25 │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── assembly.s │ │ ├── assembly.s.html │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec26 │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── assembly.s │ │ ├── assembly.s.html │ │ ├── main.cpp │ │ └── main.cpp.html │ ├── lec29 │ │ ├── classes.cpp │ │ └── classes.cpp.html │ ├── lec32 │ │ ├── lec32.cpp │ │ └── lec32.cpp.html │ ├── lec33 │ │ ├── lec32-a.svg │ │ ├── lec32-b.svg │ │ ├── lec33.cpp │ │ └── lec33.cpp.html │ ├── lec34 │ │ ├── f19-final-q10.svg │ │ ├── f19-final-q9.svg │ │ └── s19-final-q9.svg │ ├── lec35 │ │ ├── lec35-1.svg │ │ ├── lec35-2.svg │ │ ├── lec35-3.svg │ │ ├── overlay1.html │ │ ├── overlay2.html │ │ └── overlay3.html │ ├── lec36 │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── Makefile.html │ │ ├── bfs.cpp │ │ ├── bfs.cpp.html │ │ ├── bfs.in │ │ ├── lec36-1.svg │ │ ├── lec36-2.svg │ │ └── overlay.html │ ├── lec37 │ │ ├── lec37.svg │ │ └── overlay.html │ └── lec38 │ │ ├── kruskals.html │ │ ├── kruskals.svg │ │ ├── prims.html │ │ └── prims.svg ├── index.html └── index.md ├── old ├── daily-announcements-fall-2014.html ├── daily-announcements-fall-2015.html ├── daily-announcements-fall-2016.html ├── daily-announcements-fall-2018.html ├── daily-announcements-fall-2019.html ├── daily-announcements-fall-2020.html ├── daily-announcements-fall-2021.html ├── daily-announcements-spring-2014.html ├── daily-announcements-spring-2015.html ├── daily-announcements-spring-2016.html ├── daily-announcements-spring-2019.html ├── daily-announcements-spring-2020.html ├── daily-announcements-spring-2021.html ├── daily-announcements-spring-2022.html ├── frivolous-regrades.html ├── frivolous-regrades.md ├── grades-fall-2014.html ├── grades-fall-2014.md ├── grades-fall-2015.html ├── grades-fall-2015.md ├── grades-fall-2016.html ├── grades-fall-2016.md ├── grades-fall-2018.html ├── grades-fall-2018.md ├── grades-fall-2019.html ├── grades-fall-2019.md ├── grades-fall-2020.html ├── grades-fall-2020.md ├── grades-fall-2021.html ├── grades-fall-2021.md ├── grades-spring-2014.html ├── grades-spring-2014.md ├── grades-spring-2015.html ├── grades-spring-2015.md ├── grades-spring-2016.html ├── grades-spring-2016.md ├── grades-spring-2019.html ├── grades-spring-2019.md ├── grades-spring-2021.html ├── grades-spring-2021.md ├── grades-spring-2022.html ├── grades-spring-2022.md ├── index-fall-2015.html ├── index-fall-2015.md ├── index-fall-2016.html ├── index-fall-2016.md ├── index-fall-2018.html ├── index-fall-2018.md ├── index-fall-2019.html ├── index-fall-2019.md ├── index-fall-2020.html ├── index-fall-2020.md ├── index-fall-2021.html ├── index-fall-2021.md ├── index-spring-2016.html ├── index-spring-2016.md ├── index-spring-2019.html ├── index-spring-2019.md ├── index-spring-2020.html ├── index-spring-2020.md ├── index-spring-2021.html ├── index-spring-2021.md ├── index-spring-2022.html ├── index-spring-2022.md ├── index.html ├── index.md ├── oldtas.html ├── oldtas.md ├── online-spring-2020.html ├── online-spring-2020.md ├── s20-final.html ├── s20-final.md ├── snowdays-spring-2014.html ├── snowdays-spring-2014.md ├── syllabus-fall-2014.html ├── syllabus-fall-2014.md ├── syllabus-fall-2015.html ├── syllabus-fall-2015.md ├── syllabus-fall-2016.html ├── syllabus-fall-2016.md ├── syllabus-fall-2018.html ├── syllabus-fall-2018.md ├── syllabus-fall-2019.html ├── syllabus-fall-2019.md ├── syllabus-fall-2020.html ├── syllabus-fall-2020.md ├── syllabus-fall-2021.html ├── syllabus-fall-2021.md ├── syllabus-spring-2014.html ├── syllabus-spring-2014.md ├── syllabus-spring-2015.html ├── syllabus-spring-2015.md ├── syllabus-spring-2016.html ├── syllabus-spring-2016.md ├── syllabus-spring-2019.html ├── syllabus-spring-2019.md ├── syllabus-spring-2020.html ├── syllabus-spring-2020.md ├── syllabus-spring-2021.html ├── syllabus-spring-2021.md ├── syllabus-spring-2022.html ├── syllabus-spring-2022.md ├── unix-honor-pledge-f14.pdf ├── unix-honor-pledge-f15.pdf ├── unix-honor-pledge-f17.pdf ├── unix-honor-pledge-f18.pdf ├── unix-honor-pledge-f19.pdf ├── unix-honor-pledge-s14.pdf ├── unix-honor-pledge-s15.pdf ├── unix-honor-pledge-s16.pdf └── unix-honor-pledge.tex ├── relevant-xkcds.txt ├── sdac.html ├── sdac.md ├── syllabus.html ├── syllabus.md ├── tas.css ├── tas.html ├── tas.md ├── xkcds.html └── zoom-announcements.html /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .~lock* 3 | .DS_Store 4 | 5 | *.o 6 | *.out 7 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /book/.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.bbl 3 | *.blg 4 | *.lof 5 | *.log 6 | *.lol 7 | *.lot 8 | *.toc 9 | *.blg 10 | *.bbl 11 | main.pdf 12 | -------------------------------------------------------------------------------- /book/ibcm-chapter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm-chapter.pdf -------------------------------------------------------------------------------- /book/ibcm/emulating1.cpp: -------------------------------------------------------------------------------- 1 | unsigned int opcode = (x >> 12) & 0x000f 2 | unsigned int ioshiftop = (x >> 10) & 0x0003 3 | unsigned int address = x & 0x0fff 4 | unsigned int shiftcount = x & 0x000f 5 | -------------------------------------------------------------------------------- /book/ibcm/emulating2.cpp: -------------------------------------------------------------------------------- 1 | unsigned int instruction = (opcode << 12) | (ioshiftop << 10) | shiftcount 2 | -------------------------------------------------------------------------------- /book/ibcm/emulating3.cpp: -------------------------------------------------------------------------------- 1 | union ibcm_instruction { 2 | #ifdef BIG_ENDIAN // the IBCM is big endian 3 | struct { unsigned char high, low; } bytes; 4 | #else 5 | #ifdef LITTLE_ENDIAN 6 | struct { unsigned char low, high; } bytes; 7 | #else 8 | #error Must define BIG_ENDIAN or LITTLE_ENDIAN 9 | #endif // LITTLE_ENDIAN 10 | #endif // BIG_ENDIAN 11 | struct { unsigned int op:4, unused:12; } halt; 12 | struct { unsigned int op:4, ioopt:2, unused:10 } io; 13 | struct { unsigned int op:4, shiftop: 2, 14 | unused:5, shiftcout:5; } shifts; 15 | struct { unsigned int op:4, address:12; } others; 16 | }; 17 | -------------------------------------------------------------------------------- /book/ibcm/emulating4.cpp: -------------------------------------------------------------------------------- 1 | // read in instruction into unsgined chars a and b 2 | ibcm_instruction inst; 3 | inst.high = a; 4 | inst.low = b; 5 | if ( inst.halt.op == 0 ) { // halt 6 | } else if ( inst.io.op == 1 ) { // io 7 | cout << inst.io.ioopt << endl; 8 | } else if ( inst.shifts.op == 2 ) { // shifts 9 | cout << inst.shifts.shiftop << endl; 10 | cout << inst.shifts.shiftcount << endl; 11 | } else { // all others 12 | cout << inst.others.address << endl; 13 | } 14 | -------------------------------------------------------------------------------- /book/ibcm/ibcm-automata.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-automata.pdf -------------------------------------------------------------------------------- /book/ibcm/ibcm-shift-1-orig.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-shift-1-orig.pdf -------------------------------------------------------------------------------- /book/ibcm/ibcm-shift-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-shift-1.pdf -------------------------------------------------------------------------------- /book/ibcm/ibcm-shift-2-orig.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-shift-2-orig.pdf -------------------------------------------------------------------------------- /book/ibcm/ibcm-shift-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-shift-2.pdf -------------------------------------------------------------------------------- /book/ibcm/ibcm-shift-3-orig.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-shift-3-orig.pdf -------------------------------------------------------------------------------- /book/ibcm/ibcm-shift-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/ibcm-shift-3.pdf -------------------------------------------------------------------------------- /book/ibcm/memory-hierarchy.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/memory-hierarchy.odg -------------------------------------------------------------------------------- /book/ibcm/memory-hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/memory-hierarchy.png -------------------------------------------------------------------------------- /book/ibcm/mult.cpp: -------------------------------------------------------------------------------- 1 | int mult(int x,int y) { 2 | if ( y == 0 ) 3 | return 0; 4 | else 5 | return x+mult(x,y-1); 6 | } 7 | 8 | int main(void) { 9 | int x, y; 10 | cin >> x; 11 | cin >> y; 12 | cout << mult(y,x) << endl; 13 | } 14 | -------------------------------------------------------------------------------- /book/ibcm/mult1.cpp: -------------------------------------------------------------------------------- 1 | int mult(int x,int y) { 2 | if ( y == 0 ) 3 | return 0; 4 | else 5 | return x+mult(x,y-1); 6 | } 7 | -------------------------------------------------------------------------------- /book/ibcm/mult2.cpp: -------------------------------------------------------------------------------- 1 | int main(void) { 2 | int x, y; 3 | cin >> x; 4 | cin >> y; 5 | cout << mult(y,x) << endl; 6 | } 7 | -------------------------------------------------------------------------------- /book/ibcm/sample.ibcm: -------------------------------------------------------------------------------- 1 | 3000 2 | 5000 3 | 6001 4 | 8003 5 | a000 6 | 4000 7 | f000 8 | -------------------------------------------------------------------------------- /book/ibcm/summation.cpp: -------------------------------------------------------------------------------- 1 | int main(void) { 2 | int n, s = 0; 3 | cin >> n; 4 | for ( int i = 0; i <= n; i++ ) 5 | s += i; 6 | cout << s << endl; 7 | } 8 | -------------------------------------------------------------------------------- /book/ibcm/summation.ibcm.txt: -------------------------------------------------------------------------------- 1 | Mem Loc'n Label Opcode} Addr Comments 2 | C006 00 jmp init jmp past vars 3 | 0000 01 i dw int i 4 | 0000 02 s dw int s 5 | 0000 03 n dw int n 6 | 0001 04 one dw 7 | 0000 05 zero dw 8 | 1000 06 init readH read n 9 | 4003 07 store n 10 | 3004 08 load one i = 1 11 | 4001 09 store i 12 | 3005 0A load zero s = 0 13 | 4002 0B store s 14 | 3003 0C loop load n if i>n, jmp xit 15 | 6001 0D sub i 16 | E016 0E jmpl xit 17 | 3002 0F load s s += i 18 | 5001 10 add i 19 | 4002 11 store s 20 | 3001 12 load i i += 1 21 | 5004 13 add one 22 | 4001 14 store i 23 | C00C 15 jmp loop goto loop 24 | 3002 16 xit load s print s 25 | 1800 17 printH 26 | 0000 18 halt halt 27 | -------------------------------------------------------------------------------- /book/ibcm/www-screen-shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/ibcm/www-screen-shot.png -------------------------------------------------------------------------------- /book/macros.tex: -------------------------------------------------------------------------------- 1 | \newcommand{\und}[1]{\underline{\smash{#1}}} 2 | \newcommand{\leftshift}{<<} 3 | 4 | \newenvironment{itemlist}{ 5 | \begin{itemize} 6 | \setlength{\itemsep}{0pt} 7 | \setlength{\parskip}{0pt}} 8 | {\end{itemize}} 9 | 10 | \newenvironment{numlist}{ 11 | \begin{enumerate} 12 | \setlength{\itemsep}{0pt} 13 | \setlength{\parskip}{0pt}} 14 | {\end{enumerate}} 15 | 16 | \newcommand{\asminstructionsummary}[7]{ 17 | \noindent\begin{tabular}{p{1in}p{#6}p{#7}} 18 | \multicolumn{3}{p{6.7in}}{\bf Instruction: #1} \\ 19 | \em Syntax: & \multicolumn{2}{p{5.7in}}{\tt #2} \\ 20 | \em Semantics: & \multicolumn{2}{p{5.7in}}{#3} \\ 21 | \em Examples: & \tt #4 & \tt #5 \\ 22 | \end{tabular} 23 | } 24 | -------------------------------------------------------------------------------- /book/x86-32bit-asm-chapter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-32bit-asm-chapter.pdf -------------------------------------------------------------------------------- /book/x86-32bit-ccc-chapter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-32bit-ccc-chapter.pdf -------------------------------------------------------------------------------- /book/x86-32bit/code/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | return2 3 | myfunc 4 | -------------------------------------------------------------------------------- /book/x86-32bit/code/Makefile: -------------------------------------------------------------------------------- 1 | return2: 2 | nasm -felf -o return2.o return2.s 3 | clang++ -m32 -c calling-return2.cpp 4 | clang++ -m32 calling-return2.o return2.o -o return2 5 | 6 | myfunc: 7 | nasm -felf -o callee-example-1.o callee-example-1.s 8 | clang++ -m32 -c callee-example-main.cpp 9 | clang++ -m32 callee-example-main.o callee-example-1.o -o myfunc 10 | 11 | clean: 12 | /bin/rm -f *.o 13 | 14 | fullclean: 15 | /bin/rm -f *.o 16 | /bin/rm -f return2 myfunc 17 | -------------------------------------------------------------------------------- /book/x86-32bit/code/callee-example-main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | extern "C" int myFunc(int,int,int); 5 | 6 | int main() { 7 | int x = 3; 8 | cout << "myFunc() returned: " 9 | << myFunc(x,5,10) << endl; 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /book/x86-32bit/code/calling-return2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | extern "C" int returnTwo(); 5 | 6 | int main() { 7 | cout << "calling returnTwo() returned: " 8 | << returnTwo() << endl; 9 | return 0; 10 | } 11 | -------------------------------------------------------------------------------- /book/x86-32bit/code/declaring-arrays.s: -------------------------------------------------------------------------------- 1 | section .data 2 | bytes TIMES 10 DB ? ; Declare 10 uninitialized bytes starting at 3 | ; the address "bytes". 4 | arr TIMES 100 DD 0 ; Declare 100 4 bytes words, all initialized 5 | ; to 0, starting at memory location "arr". 6 | str DB 'hello', 0 ; Declare 5 bytes starting at the address 7 | ; "str" initialized to the ASCII character 8 | ; values for the characters 'h', 'e', 'l', 9 | ; 'l', 'o', and '\0' (NULL), respectively. 10 | -------------------------------------------------------------------------------- /book/x86-32bit/code/invalid-addressing-modes.s: -------------------------------------------------------------------------------- 1 | mov eax, [ebx-ecx] ; Can only add register values 2 | mov [eax+esi+edi], ebx ; At most 2 registers in address computation 3 | -------------------------------------------------------------------------------- /book/x86-32bit/code/labeled-code-location.s: -------------------------------------------------------------------------------- 1 | mov esi, [ebp+8] 2 | begin: xor ecx, ecx 3 | mov eax, [esi] 4 | -------------------------------------------------------------------------------- /book/x86-32bit/code/memory-regions.s: -------------------------------------------------------------------------------- 1 | section .data 2 | var DB 64 ; Declare a byte containing the value 64. Label the 3 | ; Memory location "var". 4 | var2 DB ? ; Declare an uninitialized byte labeled "var2". 5 | DB 10 ; Declare an unlabeled byte initialized to 10. This 6 | ; byte will reside at the memory address var2+1. 7 | X DW ? ; Declare an uninitialized two-byte word labeled "X". 8 | Y DD 3000 ; Declare 32 bits of memory starting at address "Y" 9 | ; initialized to contain 3000. 10 | Z DD 1,2,3 ; Declare three 4-byte words of memory starting at 11 | ; address "Z", and initialized to 1, 2, and 3, 12 | ; respectively. E.g. 3 will be stored at address Z+8. -------------------------------------------------------------------------------- /book/x86-32bit/code/return2.cpp: -------------------------------------------------------------------------------- 1 | int var = 2; 2 | 3 | extern "C" returnTwo(); 4 | 5 | int returnTwo() { 6 | return var; 7 | } 8 | -------------------------------------------------------------------------------- /book/x86-32bit/code/return2.s: -------------------------------------------------------------------------------- 1 | global returnTwo 2 | 3 | section .data 4 | var DD 2 5 | 6 | section .text 7 | 8 | returnTwo: 9 | mov eax, [var] 10 | ret 11 | -------------------------------------------------------------------------------- /book/x86-32bit/code/size-directives.s: -------------------------------------------------------------------------------- 1 | mov BYTE PTR [ebx], 2 ; Move 2 into the single byte at memory 2 | ; location EBX 3 | mov WORD PTR [ebx], 2 ; Move the 16-bit integer representation of 2 4 | ; into the 2 bytes starting at address EBX 5 | mov DWORD PTR [ebx], 2 ; Move the 32-bit integer representation of 2 6 | ; into the 4 bytes starting at address EBX 7 | -------------------------------------------------------------------------------- /book/x86-32bit/code/valid-addressing-modes.s: -------------------------------------------------------------------------------- 1 | mov eax, [ebx] ; Move the 4 bytes in memory at the address contained 2 | ; in EBX into EAX 3 | mov [var], ebx ; Move the contents of EBX into the 4 bytes at memory 4 | ; address "var" (Note, "var" is a 32-bit constant). 5 | mov eax, [esi-4] ; Move 4 bytes at memory address ESI+(-4) into EAX 6 | mov [esi+eax], cl ; Move the contents of CL into the byte at address 7 | ; ESI+EAX 8 | mov edx, [esi+4*ebx] ; Move the 4 bytes of data at address ESI+4*EBX into 9 | ; EDX 10 | -------------------------------------------------------------------------------- /book/x86-32bit/x86-activation-record.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-32bit/x86-activation-record.pdf -------------------------------------------------------------------------------- /book/x86-32bit/x86-register-diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-32bit/x86-register-diagram.pdf -------------------------------------------------------------------------------- /book/x86-32bit/x86-register-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-32bit/x86-register-diagram.png -------------------------------------------------------------------------------- /book/x86-64bit-asm-chapter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-64bit-asm-chapter.pdf -------------------------------------------------------------------------------- /book/x86-64bit-ccc-chapter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-64bit-ccc-chapter.pdf -------------------------------------------------------------------------------- /book/x86-64bit/code/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | return2 3 | myfunc 4 | -------------------------------------------------------------------------------- /book/x86-64bit/code/Makefile: -------------------------------------------------------------------------------- 1 | return2: 2 | nasm -felf -o return2.o return2.s 3 | clang++ -m32 -c calling-return2.cpp 4 | clang++ -m32 calling-return2.o return2.o -o return2 5 | 6 | myfunc: 7 | nasm -felf -o callee-example-1.o callee-example-1.s 8 | clang++ -m32 -c callee-example-main.cpp 9 | clang++ -m32 callee-example-main.o callee-example-1.o -o myfunc 10 | 11 | clean: 12 | /bin/rm -f *.o 13 | 14 | fullclean: 15 | /bin/rm -f *.o 16 | /bin/rm -f return2 myfunc 17 | -------------------------------------------------------------------------------- /book/x86-64bit/code/callee-example-main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | extern "C" int myFunc(int,int,int); 5 | 6 | int main() { 7 | int x = 3; 8 | cout << "myFunc() returned: " 9 | << myFunc(x,5,10) << endl; 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /book/x86-64bit/code/caller-example-1.s: -------------------------------------------------------------------------------- 1 | ; Want to call a function "myFunc" that takes three 2 | ; integer parameters. First parameter is in rax. 3 | ; Second parameter is the constant 123. Third 4 | ; parameter is in memory location "var" 5 | 6 | push rdi ; rdi will be a param, so saving it 7 | 8 | ; long retVal = myFunc(x, 123, z); 9 | mov rdi, rax ; put first param in rdi 10 | mov rsi, 123 ; put second param in rsi 11 | mov rdx, [var] ; put third param in rdx 12 | 13 | call myFunc ; call the function 14 | 15 | pop rdi ; restore saved rdi value 16 | 17 | ; return value of myFunc is now available in rax 18 | ; (if there is any return value) 19 | -------------------------------------------------------------------------------- /book/x86-64bit/code/calling-return2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | extern "C" int returnTwo(); 5 | 6 | int main() { 7 | cout << "calling returnTwo() returned: " 8 | << returnTwo() << endl; 9 | return 0; 10 | } 11 | -------------------------------------------------------------------------------- /book/x86-64bit/code/declaring-arrays.s: -------------------------------------------------------------------------------- 1 | section .data 2 | bytes TIMES 10 DB ? ; Declare 10 uninitialized bytes starting at 3 | ; the address "bytes". 4 | arr TIMES 100 DD 0 ; Declare 100 4 bytes words, all initialized 5 | ; to 0, starting at memory location "arr". 6 | str DB 'hello', 0 ; Declare 5 bytes starting at the address 7 | ; "str" initialized to the ASCII character 8 | ; values for the characters 'h', 'e', 'l', 9 | ; 'l', 'o', and '\0' (NULL), respectively. 10 | -------------------------------------------------------------------------------- /book/x86-64bit/code/invalid-addressing-modes.s: -------------------------------------------------------------------------------- 1 | mov rax, [rbx-rcx] ; Can only add register values 2 | mov [rax+rsi+rdi], rbx ; At most 2 registers in address computation 3 | -------------------------------------------------------------------------------- /book/x86-64bit/code/labeled-code-location.s: -------------------------------------------------------------------------------- 1 | mov rsi, [rbp+8] 2 | begin: xor rcx, rcx 3 | mov rax, [rsi] 4 | -------------------------------------------------------------------------------- /book/x86-64bit/code/return2.cpp: -------------------------------------------------------------------------------- 1 | int var = 2; 2 | 3 | extern "C" returnTwo(); 4 | 5 | int returnTwo() { 6 | return var; 7 | } 8 | -------------------------------------------------------------------------------- /book/x86-64bit/code/return2.s: -------------------------------------------------------------------------------- 1 | global returnTwo 2 | 3 | section .data 4 | var DD 2 5 | 6 | section .text 7 | 8 | returnTwo: 9 | mov eax, [var] 10 | ret 11 | -------------------------------------------------------------------------------- /book/x86-64bit/code/size-directives.s: -------------------------------------------------------------------------------- 1 | mov BYTE PTR [ebx], 2 ; Move 2 into the single byte at memory 2 | ; location EBX 3 | mov WORD PTR [ebx], 2 ; Move the 16-bit integer representation of 2 4 | ; into the 2 bytes starting at address EBX 5 | mov DWORD PTR [ebx], 2 ; Move the 32-bit integer representation of 2 6 | ; into the 4 bytes starting at address EBX 7 | mov QWORD PTR [ebx], 2 ; Move the 64-bit integer representation of 2 8 | ; into the 8 bytes starting at address EBX 9 | -------------------------------------------------------------------------------- /book/x86-64bit/code/valid-addressing-modes.s: -------------------------------------------------------------------------------- 1 | mov rax, [rbx] ; Move the 8 bytes in memory at the address contained 2 | ; in EBX into EAX 3 | mov [var], rbx ; Move the contents of EBX into the 8 bytes at memory 4 | ; address "var" (Note, "var" is a 32-bit constant). 5 | mov rax, [rsi-8] ; Move 8 bytes at memory address ESI+(-8) into EAX 6 | mov [rsi+rax], cl ; Move the contents of CL into the byte at address 7 | ; ESI+EAX 8 | mov edx, [esi+4*ebx] ; Move the 4 bytes of data at address ESI+4*EBX into 9 | ; EDX. This is only 4 bytes because we use the 10 | ; 4-byte "sub-registers" of edx, esi, and ebx instead 11 | ; of rdx, rsi, and rbx 12 | -------------------------------------------------------------------------------- /book/x86-64bit/x86-activation-record.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-64bit/x86-activation-record.pdf -------------------------------------------------------------------------------- /book/x86-64bit/x86-activation-record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-64bit/x86-activation-record.png -------------------------------------------------------------------------------- /book/x86-64bit/x86-register-diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-64bit/x86-register-diagram.pdf -------------------------------------------------------------------------------- /book/x86-64bit/x86-register-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/book/x86-64bit/x86-register-diagram.png -------------------------------------------------------------------------------- /exams/exam1-f07.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f07.pdf -------------------------------------------------------------------------------- /exams/exam1-f08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f08.pdf -------------------------------------------------------------------------------- /exams/exam1-f09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f09.pdf -------------------------------------------------------------------------------- /exams/exam1-f10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f10.pdf -------------------------------------------------------------------------------- /exams/exam1-f11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f11.pdf -------------------------------------------------------------------------------- /exams/exam1-f12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f12.pdf -------------------------------------------------------------------------------- /exams/exam1-f13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f13.pdf -------------------------------------------------------------------------------- /exams/exam1-f14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f14.pdf -------------------------------------------------------------------------------- /exams/exam1-f15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f15.pdf -------------------------------------------------------------------------------- /exams/exam1-f16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f16.pdf -------------------------------------------------------------------------------- /exams/exam1-f17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f17.pdf -------------------------------------------------------------------------------- /exams/exam1-f18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f18.pdf -------------------------------------------------------------------------------- /exams/exam1-f19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f19.pdf -------------------------------------------------------------------------------- /exams/exam1-f21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f21.pdf -------------------------------------------------------------------------------- /exams/exam1-f22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-f22.pdf -------------------------------------------------------------------------------- /exams/exam1-s08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s08.pdf -------------------------------------------------------------------------------- /exams/exam1-s09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s09.pdf -------------------------------------------------------------------------------- /exams/exam1-s10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s10.pdf -------------------------------------------------------------------------------- /exams/exam1-s11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s11.pdf -------------------------------------------------------------------------------- /exams/exam1-s12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s12.pdf -------------------------------------------------------------------------------- /exams/exam1-s13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s13.pdf -------------------------------------------------------------------------------- /exams/exam1-s14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s14.pdf -------------------------------------------------------------------------------- /exams/exam1-s15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s15.pdf -------------------------------------------------------------------------------- /exams/exam1-s16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s16.pdf -------------------------------------------------------------------------------- /exams/exam1-s17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s17.pdf -------------------------------------------------------------------------------- /exams/exam1-s18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s18.pdf -------------------------------------------------------------------------------- /exams/exam1-s19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s19.pdf -------------------------------------------------------------------------------- /exams/exam1-s20.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s20.pdf -------------------------------------------------------------------------------- /exams/exam1-s22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam1-s22.pdf -------------------------------------------------------------------------------- /exams/exam2-f07.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f07.pdf -------------------------------------------------------------------------------- /exams/exam2-f08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f08.pdf -------------------------------------------------------------------------------- /exams/exam2-f09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f09.pdf -------------------------------------------------------------------------------- /exams/exam2-f10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f10.pdf -------------------------------------------------------------------------------- /exams/exam2-f11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f11.pdf -------------------------------------------------------------------------------- /exams/exam2-f12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f12.pdf -------------------------------------------------------------------------------- /exams/exam2-f13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f13.pdf -------------------------------------------------------------------------------- /exams/exam2-f14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f14.pdf -------------------------------------------------------------------------------- /exams/exam2-f15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f15.pdf -------------------------------------------------------------------------------- /exams/exam2-f16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f16.pdf -------------------------------------------------------------------------------- /exams/exam2-f17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f17.pdf -------------------------------------------------------------------------------- /exams/exam2-f18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f18.pdf -------------------------------------------------------------------------------- /exams/exam2-f19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f19.pdf -------------------------------------------------------------------------------- /exams/exam2-f21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-f21.pdf -------------------------------------------------------------------------------- /exams/exam2-s08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s08.pdf -------------------------------------------------------------------------------- /exams/exam2-s09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s09.pdf -------------------------------------------------------------------------------- /exams/exam2-s10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s10.pdf -------------------------------------------------------------------------------- /exams/exam2-s11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s11.pdf -------------------------------------------------------------------------------- /exams/exam2-s12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s12.pdf -------------------------------------------------------------------------------- /exams/exam2-s13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s13.pdf -------------------------------------------------------------------------------- /exams/exam2-s14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s14.pdf -------------------------------------------------------------------------------- /exams/exam2-s15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s15.pdf -------------------------------------------------------------------------------- /exams/exam2-s16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s16.pdf -------------------------------------------------------------------------------- /exams/exam2-s17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s17.pdf -------------------------------------------------------------------------------- /exams/exam2-s18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s18.pdf -------------------------------------------------------------------------------- /exams/exam2-s19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s19.pdf -------------------------------------------------------------------------------- /exams/exam2-s22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/exam2-s22.pdf -------------------------------------------------------------------------------- /exams/final-f07.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f07.pdf -------------------------------------------------------------------------------- /exams/final-f08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f08.pdf -------------------------------------------------------------------------------- /exams/final-f09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f09.pdf -------------------------------------------------------------------------------- /exams/final-f10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f10.pdf -------------------------------------------------------------------------------- /exams/final-f11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f11.pdf -------------------------------------------------------------------------------- /exams/final-f12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f12.pdf -------------------------------------------------------------------------------- /exams/final-f13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f13.pdf -------------------------------------------------------------------------------- /exams/final-f14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f14.pdf -------------------------------------------------------------------------------- /exams/final-f15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f15.pdf -------------------------------------------------------------------------------- /exams/final-f16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f16.pdf -------------------------------------------------------------------------------- /exams/final-f17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f17.pdf -------------------------------------------------------------------------------- /exams/final-f18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f18.pdf -------------------------------------------------------------------------------- /exams/final-f19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f19.pdf -------------------------------------------------------------------------------- /exams/final-f20_files/diagram_44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/diagram_44.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/diagram_96.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/diagram_96.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/equation_143.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/equation_143.png -------------------------------------------------------------------------------- /exams/final-f20_files/equation_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/equation_144.png -------------------------------------------------------------------------------- /exams/final-f20_files/hufftree_450.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/hufftree_450.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/mst.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/mst.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/pdr_exam_f20_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/pdr_exam_f20_13.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/pdr_exam_f20_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/pdr_exam_f20_2.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/pdr_exam_f20_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/pdr_exam_f20_4.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/pdr_exam_f20_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/pdr_exam_f20_7.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/tree_19983.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/tree_19983.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/tree_792.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/tree_792.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/visible.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/visible.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/visible_002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/visible_002.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/visible_003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/visible_003.jpg -------------------------------------------------------------------------------- /exams/final-f20_files/visible_004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f20_files/visible_004.jpg -------------------------------------------------------------------------------- /exams/final-f21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-f21.pdf -------------------------------------------------------------------------------- /exams/final-s08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s08.pdf -------------------------------------------------------------------------------- /exams/final-s09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s09.pdf -------------------------------------------------------------------------------- /exams/final-s10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s10.pdf -------------------------------------------------------------------------------- /exams/final-s11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s11.pdf -------------------------------------------------------------------------------- /exams/final-s12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s12.pdf -------------------------------------------------------------------------------- /exams/final-s13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s13.pdf -------------------------------------------------------------------------------- /exams/final-s14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s14.pdf -------------------------------------------------------------------------------- /exams/final-s15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s15.pdf -------------------------------------------------------------------------------- /exams/final-s16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s16.pdf -------------------------------------------------------------------------------- /exams/final-s17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s17.pdf -------------------------------------------------------------------------------- /exams/final-s18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s18.pdf -------------------------------------------------------------------------------- /exams/final-s19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s19.pdf -------------------------------------------------------------------------------- /exams/final-s22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/exams/final-s22.pdf -------------------------------------------------------------------------------- /ibcm/busy-beaver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/busy-beaver.png -------------------------------------------------------------------------------- /ibcm/img/bg_menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/bg_menu.gif -------------------------------------------------------------------------------- /ibcm/img/bg_t.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/bg_t.gif -------------------------------------------------------------------------------- /ibcm/img/bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/bullet.gif -------------------------------------------------------------------------------- /ibcm/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/logo.png -------------------------------------------------------------------------------- /ibcm/img/logo_.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/logo_.jpg -------------------------------------------------------------------------------- /ibcm/img/top_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/top_bg.gif -------------------------------------------------------------------------------- /ibcm/img/top_bg_.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/top_bg_.gif -------------------------------------------------------------------------------- /ibcm/img/valid-xhtml10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/ibcm/img/valid-xhtml10.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | redirect page 6 | 7 |

You really want to be here

8 | 9 | -------------------------------------------------------------------------------- /labs/.Rhistory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/.Rhistory -------------------------------------------------------------------------------- /labs/lab02/list-diagram.dia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab02/list-diagram.dia -------------------------------------------------------------------------------- /labs/lab02/list-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab02/list-diagram.png -------------------------------------------------------------------------------- /labs/lab03/input/addition.txt: -------------------------------------------------------------------------------- 1 | 1 2 3 4 5 + + + + 2 | -------------------------------------------------------------------------------- /labs/lab03/input/division.txt: -------------------------------------------------------------------------------- 1 | -1512 -12 -2 / / -2 / 3 / 2 | -------------------------------------------------------------------------------- /labs/lab03/input/multiplication.txt: -------------------------------------------------------------------------------- 1 | -1 -2 -5 3 * 2 -2 * * * * 2 | -------------------------------------------------------------------------------- /labs/lab03/input/negation.txt: -------------------------------------------------------------------------------- 1 | -1 ~ ~ ~ 2 | -------------------------------------------------------------------------------- /labs/lab03/input/subtraction.txt: -------------------------------------------------------------------------------- 1 | 20 10 - -3 10 - - 2 - 2 | -------------------------------------------------------------------------------- /labs/lab04/inlab4.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab04/inlab4.doc -------------------------------------------------------------------------------- /labs/lab04/radixWorksheet.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab04/radixWorksheet.doc -------------------------------------------------------------------------------- /labs/lab05/avl-tree-pic-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-tree-pic-1.png -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-worksheet.pdf -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/.gitignore: -------------------------------------------------------------------------------- 1 | avl-worksheet.aux 2 | avl-worksheet.log 3 | -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/Makefile: -------------------------------------------------------------------------------- 1 | graphs: 2 | @echo Making all graphs into .svg files... 3 | @ls *.dot | sed s/.dot//g | awk '{print "dot -Tpdf "$$1".dot -o "$$1".pdf"}' | bash 4 | pdflatex avl-worksheet.tex 5 | 6 | clean: 7 | /bin/rm -f *~ *.log *.aux 8 | -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/avl-tree-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-worksheet/avl-tree-1.pdf -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/avl-tree-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-worksheet/avl-tree-2.pdf -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/avl-tree-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-worksheet/avl-tree-3.pdf -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/avl-tree-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-worksheet/avl-tree-4.pdf -------------------------------------------------------------------------------- /labs/lab05/avl-worksheet/avl-worksheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/avl-worksheet/avl-worksheet.pdf -------------------------------------------------------------------------------- /labs/lab05/code.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab05/code.zip -------------------------------------------------------------------------------- /labs/lab05/code/inlab/BSTPathTest.cpp: -------------------------------------------------------------------------------- 1 | #include "BinarySearchTree.h" 2 | 3 | #include 4 | using namespace std; 5 | 6 | int main() { 7 | BinarySearchTree bst; 8 | while (cin.good()) { 9 | string instr, word; 10 | cin >> instr; 11 | cin >> word; 12 | if (instr == "I") { 13 | bst.insert(word); 14 | } else if (instr == "R") { 15 | bst.remove(word); 16 | } else if (instr == "L") { 17 | cout << "BST path: " << bst.pathTo(word) << endl; 18 | } 19 | } 20 | cout << "BST numNodes: " << bst.numNodes() << endl; 21 | } -------------------------------------------------------------------------------- /labs/lab05/code/inlab/BinaryNode.cpp: -------------------------------------------------------------------------------- 1 | #include "BinaryNode.h" 2 | #include 3 | using namespace std; 4 | 5 | BinaryNode::BinaryNode() { 6 | value = "?"; 7 | left = NULL; 8 | right = NULL; 9 | } 10 | 11 | BinaryNode::~BinaryNode() { 12 | delete left; 13 | delete right; 14 | left = NULL; 15 | right = NULL; 16 | } -------------------------------------------------------------------------------- /labs/lab05/code/inlab/BinaryNode.h: -------------------------------------------------------------------------------- 1 | #ifndef BINARYNODE_H 2 | #define BINARYNODE_H 3 | #include 4 | using namespace std; 5 | 6 | class BinaryNode { 7 | BinaryNode(); 8 | ~BinaryNode(); 9 | 10 | string value; 11 | BinaryNode* left; 12 | BinaryNode* right; 13 | 14 | friend class BinarySearchTree; 15 | }; 16 | 17 | #endif -------------------------------------------------------------------------------- /labs/lab05/code/inlab/testfile1.out.txt: -------------------------------------------------------------------------------- 1 | BST path: We can't solve problems kind created 2 | BST numNodes: 18 3 | -------------------------------------------------------------------------------- /labs/lab05/code/inlab/testfile1.txt: -------------------------------------------------------------------------------- 1 | I We 2 | I can't 3 | I solve 4 | I problems 5 | I by 6 | I using 7 | I the 8 | I same 9 | I kind 10 | I of 11 | I thinking 12 | I we 13 | I used 14 | I when 15 | I we 16 | I created 17 | I them 18 | I -Albert 19 | I Einstein 20 | L created 21 | -------------------------------------------------------------------------------- /labs/lab05/code/inlab/testfile2.out.txt: -------------------------------------------------------------------------------- 1 | BST path: A dung everywhere flying greatly higher had 2 | BST numNodes: 14 3 | -------------------------------------------------------------------------------- /labs/lab05/code/inlab/testfile2.txt: -------------------------------------------------------------------------------- 1 | I A 2 | I bee 3 | I caught 4 | I dung 5 | I everywhere 6 | I flying 7 | I greatly 8 | I higher 9 | I in 10 | I mauve 11 | I skies 12 | I than 13 | I we 14 | I had 15 | I ever 16 | I flown. 17 | R bee 18 | R caught 19 | L had 20 | -------------------------------------------------------------------------------- /labs/lab05/code/inlab/testfile3.out.txt: -------------------------------------------------------------------------------- 1 | BST path: Zany cobwebs littered the orange misty of 2 | BST path: 3 | BST numNodes: 11 4 | -------------------------------------------------------------------------------- /labs/lab05/code/inlab/testfile3.txt: -------------------------------------------------------------------------------- 1 | I Zany 2 | I cobwebs 3 | I littered 4 | I the 5 | I clockwork 6 | I orange 7 | I landscape 8 | I like 9 | I misty 10 | I works 11 | I of 12 | I surreal 13 | I art. 14 | R art. 15 | R like 16 | L of 17 | L like 18 | -------------------------------------------------------------------------------- /labs/lab05/code/postlab/AVLNode.cpp: -------------------------------------------------------------------------------- 1 | #include "AVLNode.h" 2 | #include 3 | using namespace std; 4 | 5 | AVLNode::AVLNode() { 6 | value = "?"; 7 | left = NULL; 8 | right = NULL; 9 | height = 0; 10 | } 11 | 12 | AVLNode::~AVLNode() { 13 | delete left; 14 | delete right; 15 | left = NULL; 16 | right = NULL; 17 | } -------------------------------------------------------------------------------- /labs/lab05/code/postlab/AVLNode.h: -------------------------------------------------------------------------------- 1 | #ifndef AVLNODE_H 2 | #define AVLNODE_H 3 | #include 4 | using namespace std; 5 | 6 | class AVLNode { 7 | AVLNode(); 8 | ~AVLNode(); 9 | 10 | string value; 11 | AVLNode* left; 12 | AVLNode* right; 13 | int height; 14 | 15 | friend class AVLTree; 16 | }; 17 | 18 | #endif -------------------------------------------------------------------------------- /labs/lab05/code/postlab/AVLPathTest.cpp: -------------------------------------------------------------------------------- 1 | #include "AVLTree.h" 2 | 3 | #include 4 | using namespace std; 5 | 6 | int main() { 7 | AVLTree avl; 8 | while (cin.good()) { 9 | string instr, word; 10 | cin >> instr; 11 | cin >> word; 12 | if (instr == "I") { 13 | avl.insert(word); 14 | } else if (instr == "R") { 15 | avl.remove(word); 16 | } else if (instr == "L") { 17 | cout << "AVL path: " << avl.pathTo(word) << endl; 18 | } 19 | } 20 | cout << "AVL numNodes: " << avl.numNodes() << endl; 21 | } -------------------------------------------------------------------------------- /labs/lab05/code/postlab/testfile1.out.txt: -------------------------------------------------------------------------------- 1 | AVL path: problems can't kind created 2 | AVL numNodes: 18 3 | -------------------------------------------------------------------------------- /labs/lab05/code/postlab/testfile1.txt: -------------------------------------------------------------------------------- 1 | I We 2 | I can't 3 | I solve 4 | I problems 5 | I by 6 | I using 7 | I the 8 | I same 9 | I kind 10 | I of 11 | I thinking 12 | I we 13 | I used 14 | I when 15 | I we 16 | I created 17 | I them 18 | I -Albert 19 | I Einstein 20 | L created 21 | -------------------------------------------------------------------------------- /labs/lab05/code/postlab/testfile2.out.txt: -------------------------------------------------------------------------------- 1 | AVL path: higher flying greatly had 2 | AVL numNodes: 14 3 | -------------------------------------------------------------------------------- /labs/lab05/code/postlab/testfile2.txt: -------------------------------------------------------------------------------- 1 | I A 2 | I bee 3 | I caught 4 | I dung 5 | I everywhere 6 | I flying 7 | I greatly 8 | I higher 9 | I in 10 | I mauve 11 | I skies 12 | I than 13 | I we 14 | I had 15 | I ever 16 | I flown. 17 | R bee 18 | R caught 19 | L had 20 | -------------------------------------------------------------------------------- /labs/lab05/code/postlab/testfile3.out.txt: -------------------------------------------------------------------------------- 1 | AVL path: littered orange misty of 2 | AVL path: 3 | AVL numNodes: 11 4 | -------------------------------------------------------------------------------- /labs/lab05/code/postlab/testfile3.txt: -------------------------------------------------------------------------------- 1 | I Zany 2 | I cobwebs 3 | I littered 4 | I the 5 | I clockwork 6 | I orange 7 | I landscape 8 | I like 9 | I misty 10 | I works 11 | I of 12 | I surreal 13 | I art. 14 | R art. 15 | R like 16 | L of 17 | L like 18 | -------------------------------------------------------------------------------- /labs/lab05/code/prelab/TreeNode.cpp: -------------------------------------------------------------------------------- 1 | // Insert your header information here 2 | // TreeNode.cpp: Tree Node method implementations 3 | // CS 2150: Lab 5 4 | 5 | #include "TreeNode.h" 6 | 7 | // Default Constructor - left and right are NULL, value '?' 8 | TreeNode::TreeNode() { 9 | value = "?"; 10 | left = NULL; 11 | right = NULL; 12 | } 13 | 14 | // Constructor - sets value to val 15 | TreeNode::TreeNode(const string& val) { 16 | value = val; 17 | left = NULL; 18 | right = NULL; 19 | } 20 | -------------------------------------------------------------------------------- /labs/lab05/code/prelab/TreeNode.h: -------------------------------------------------------------------------------- 1 | // TreeNode.h: TreeNode class definition 2 | // CS 2150: Lab 5 3 | 4 | 5 | #ifndef TREENODE_H 6 | #define TREENODE_H 7 | 8 | #include 9 | using namespace std; 10 | 11 | class TreeNode { 12 | public: 13 | TreeNode(); // Default Constructor 14 | TreeNode(const string& val); // Constructor 15 | 16 | private: 17 | string value; 18 | TreeNode* left; 19 | TreeNode* right; 20 | friend class TreeCalc; // gives TreeCalc access to private data 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /labs/lab06/500px-Wordsearch.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab06/500px-Wordsearch.svg.png -------------------------------------------------------------------------------- /labs/lab06/code.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab06/code.zip -------------------------------------------------------------------------------- /labs/lab06/code/timer_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "timer.h" 3 | using namespace std; 4 | 5 | int main (void) { 6 | timer t; 7 | t.start(); 8 | // do something that takes some time... 9 | for (int i = 0; i < 1000000000; i++) {} 10 | t.stop(); 11 | cout << t << endl; 12 | cout << t.getTime() << endl; 13 | } 14 | -------------------------------------------------------------------------------- /labs/lab06/data.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab06/data.zip -------------------------------------------------------------------------------- /labs/lab06/data/3x3.grid.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 3 3 | obgyanjng 4 | -------------------------------------------------------------------------------- /labs/lab06/data/3x3.out.txt: -------------------------------------------------------------------------------- 1 | S (0, 1): ban 2 | N (2, 1): nab 3 | W (1, 2): nay 4 | NE(2, 0): jag 5 | 4 words found 6 | Found all words in 0.00038 seconds 7 | -------------------------------------------------------------------------------- /labs/lab06/data/4x7.grid.txt: -------------------------------------------------------------------------------- 1 | 4 2 | 7 3 | vztsodtpaxztaqaceetfjohtaaoe 4 | -------------------------------------------------------------------------------- /labs/lab06/data/4x7.out.txt: -------------------------------------------------------------------------------- 1 | N (3, 2): text 2 | E (0, 3): sod 3 | N (2, 5): fad 4 | E (1, 0): pax 5 | NW(3, 6): eft 6 | E (2, 0): ace 7 | W (2, 4): tee 8 | NE(2, 4): tat 9 | SW(0, 6): tat 10 | 9 words found 11 | Found all words in 0.000835 seconds 12 | -------------------------------------------------------------------------------- /labs/lab06/data/5x8.grid.txt: -------------------------------------------------------------------------------- 1 | 5 2 | 8 3 | oipyejixwgsztacrqdpqaqdxsakpdequyorkfcqe 4 | -------------------------------------------------------------------------------- /labs/lab06/data/5x8.out.txt: -------------------------------------------------------------------------------- 1 | S(0, 4): eta 2 | S(1, 4): tad 3 | W(1, 6): cat 4 | SW(2, 2): pay 5 | N(2, 4): ate 6 | N(3, 4): date 7 | NE(4, 0): yap 8 | NE(4, 4): fed 9 | 8 words found 10 | Found all words in 0.000088 seconds 11 | -------------------------------------------------------------------------------- /labs/lab07/timer.h: -------------------------------------------------------------------------------- 1 | // This timer typically has 1/1000000 second (1 micro-second) accuracy 2 | // under most Linux distributions 3 | 4 | #ifndef TIMER_H 5 | #define TIMER_H 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | using namespace std; 12 | using namespace std::chrono; 13 | 14 | class timer { 15 | public: 16 | timer(); 17 | timer(timer& myTimer); 18 | void start(); 19 | void stop(); 20 | 21 | // Returns the time elapsed, in seconds 22 | double getTime(); 23 | private: 24 | steady_clock::time_point start_time, stop_time; 25 | bool running; 26 | 27 | }; 28 | 29 | ostream& operator<<(ostream& theStream, timer& theTimer); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /labs/lab08-64bit/.gitignore: -------------------------------------------------------------------------------- 1 | a.out 2 | *.o 3 | -------------------------------------------------------------------------------- /labs/lab08-64bit/input.txt: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /labs/lab09-32bit/32-bit/Collatz-graph-all-30-no27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab09-32bit/32-bit/Collatz-graph-all-30-no27.png -------------------------------------------------------------------------------- /labs/lab09-32bit/32-bit/formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab09-32bit/32-bit/formula.png -------------------------------------------------------------------------------- /labs/lab09-32bit/Collatz-graph-all-30-no27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab09-32bit/Collatz-graph-all-30-no27.png -------------------------------------------------------------------------------- /labs/lab09-32bit/formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab09-32bit/formula.png -------------------------------------------------------------------------------- /labs/lab09-64bit/Collatz-graph-all-30-no27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab09-64bit/Collatz-graph-all-30-no27.png -------------------------------------------------------------------------------- /labs/lab09-64bit/formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab09-64bit/formula.png -------------------------------------------------------------------------------- /labs/lab10/examples.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab10/examples.zip -------------------------------------------------------------------------------- /labs/lab10/examples/encoded1.txt: -------------------------------------------------------------------------------- 1 | a 0 2 | b 100 3 | c 101 4 | d 11 5 | ---------------------------------------- 6 | 11 100 0 101 0 0 11 7 | ---------------------------------------- 8 | There are a total of 7 symbols that are encoded. 9 | There are 4 distinct symbols used. 10 | There were 56 bits in the original file. 11 | There were 13 bits in the compressed file. 12 | This gives a compression ratio of 4.30769. 13 | The cost of the Huffman tree is 1.85714 bits per character. 14 | -------------------------------------------------------------------------------- /labs/lab10/examples/encoded2.txt: -------------------------------------------------------------------------------- 1 | i 11 2 | b 00000 3 | p 00011 4 | m 00010 5 | u 00100 6 | e 0011 7 | o 1000 8 | f 00001 9 | , 00101 10 | s 1001 11 | t 101 12 | space 01 13 | ---------------------------------------- 14 | 11 00001 01 11 101 01 11 1001 01 101 1000 01 00000 0011 00101 01 11 101 01 11 1001 01 00100 00011 01 101 1000 01 00010 0011 15 | ---------------------------------------- 16 | Compress11on ratio: 2.55319 17 | The Huffman tree costs 3.13333 bits per character. 18 | -------------------------------------------------------------------------------- /labs/lab10/examples/normal1.txt: -------------------------------------------------------------------------------- 1 | dbacaad 2 | -------------------------------------------------------------------------------- /labs/lab10/examples/normal2.txt: -------------------------------------------------------------------------------- 1 | if it is to be, it is up to me 2 | -------------------------------------------------------------------------------- /labs/lab10/examples/normal3.txt: -------------------------------------------------------------------------------- 1 | Now, naturally, in writing such a story as this, with its conditions as laid down in its Introduction, it is not surprising that an occasional "rough spot" in composition is found. So I trust that a critical public will hold constantly in mind that I am voluntarily avoiding words containing that symbol which is, by far, of most common inclusion in writing our Anglo-Saxon as it is, today. Many of our most common words cannot show; so I must adopt synonyms; and so twist a thought around as to say what I wish with as much clarity as I can.) So, now to go on with this odd contraption... 2 | -------------------------------------------------------------------------------- /labs/lab10/examples/normal4.txt: -------------------------------------------------------------------------------- 1 | With the help of Rolls-Royce, University Engineering and Commerce students will enjoy new opportunities from a partnership that is part of the company's statewide investment in the aerospace industry, Gov. Tim Kaine announced last week. 2 | -------------------------------------------------------------------------------- /labs/lab10/inlab-tree-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab10/inlab-tree-2.png -------------------------------------------------------------------------------- /labs/lab10/prelab-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab10/prelab-tree.png -------------------------------------------------------------------------------- /labs/lab11/8Puzzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab11/8Puzzle.png -------------------------------------------------------------------------------- /labs/lab11/pre-reqs.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica"]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | cs3330; 7 | cs1110 -> cs2102; 8 | cs2102 -> cs2150; 9 | cs2110 -> cs3330; 10 | cs3330 -> cs4414; 11 | 12 | {rank=same cs1110 -> cs2110 -> cs2150 -> cs4414}; 13 | } 14 | -------------------------------------------------------------------------------- /labs/lab11/pre-reqs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/labs/lab11/pre-reqs.png -------------------------------------------------------------------------------- /labs/lab11/prelab-test-full.txt: -------------------------------------------------------------------------------- 1 | cs1110 cs2102 2 | cs1110 cs2110 3 | cs2102 cs3102 4 | cs2110 cs2150 5 | cs2102 cs2150 6 | cs2110 cs3102 7 | cs2102 cs4102 8 | cs2150 cs4102 9 | cs2150 cs3240 10 | cs2150 cs4414 11 | cs2330 cs3330 12 | cs2110 cs3330 13 | cs2110 cs2190 14 | cs3330 cs4414 15 | cs2110 cs3205 16 | cs3240 cs4620 17 | cs3330 cs4620 18 | cs4810 cs4830 19 | cs2150 cs4610 20 | cs2150 cs4710 21 | cs2150 cs4240 22 | cs2150 cs4753 23 | cs2150 cs4750 24 | cs2150 cs4810 25 | cs3330 cs4330 26 | cs3330 cs4444 27 | cs3330 ece435 28 | cs3330 cs4434 29 | cs3330 cs4457 30 | cs4457 cs4458 31 | cs2150 cs4330 32 | cs2150 cs4444 33 | ece435 ece436 34 | cs2150 cs4630 35 | 0 0 36 | -------------------------------------------------------------------------------- /labs/lab11/prelab-test-small.txt: -------------------------------------------------------------------------------- 1 | cs2110 cs2150 2 | cs2102 cs2150 3 | cs1110 cs2110 4 | cs3330 cs4414 5 | cs2150 cs4414 6 | cs2110 cs3330 7 | cs1110 cs2102 8 | 0 0 9 | -------------------------------------------------------------------------------- /slides/.gitignore: -------------------------------------------------------------------------------- 1 | *.pptx 2 | -------------------------------------------------------------------------------- /slides/code/01-cpp/IntCell.cpp: -------------------------------------------------------------------------------- 1 | // File IntCell.cpp 2 | 3 | #include "IntCell.h" 4 | using namespace std; // (not really necessary, but...) 5 | 6 | IntCell::IntCell( int initialValue ) : storedValue( initialValue ) { 7 | 8 | } 9 | 10 | int IntCell::getValue( ) const { 11 | return storedValue; 12 | } 13 | 14 | void IntCell::setValue( int val ) { 15 | storedValue = val; 16 | } 17 | 18 | int IntCell::max(int m) const { 19 | return (m>storedValue) ? m : storedValue; 20 | } 21 | -------------------------------------------------------------------------------- /slides/code/01-cpp/IntCell.h: -------------------------------------------------------------------------------- 1 | // File IntCell.h 2 | 3 | #ifndef INTCELL_H 4 | #define INTCELL_H 5 | 6 | class IntCell { 7 | public: 8 | IntCell( int initialValue = 0 ); 9 | 10 | int getValue( ) const; 11 | void setValue( int val ); 12 | 13 | private: 14 | int storedValue; 15 | int max(int m) const; 16 | }; 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /slides/code/01-cpp/IntCell.java: -------------------------------------------------------------------------------- 1 | // File IntCell.java 2 | 3 | public class IntCell { 4 | public IntCell() { 5 | this(0); 6 | } 7 | 8 | public IntCell(int initialValue) { 9 | storedValue = initialValue; 10 | } 11 | 12 | public int getValue() { 13 | return storedValue; 14 | } 15 | 16 | public void setValue(int val) { 17 | storedValue = val; 18 | } 19 | 20 | private int storedValue; 21 | 22 | public static void main( String [] args ) { 23 | IntCell m1 = new IntCell(); 24 | IntCell m2 = new IntCell(37); 25 | System.out.println(m1.getValue( ) + " " + m2.getValue( ) ); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /slides/code/01-cpp/TestIntCell.cpp: -------------------------------------------------------------------------------- 1 | // File TestIntCell.cpp 2 | 3 | #include "IntCell.h" 4 | #include 5 | using namespace std; 6 | int main( ) { 7 | IntCell m1; 8 | IntCell m2( 37 ); // 9 | //IntCell m2 = 37; // does not work 10 | cout << m1.getValue( ) << " " << m2.getValue( ) << endl; 11 | m1 = m2; 12 | m2.setValue( 40 ); 13 | cout << m1.getValue( ) << " " << m2.getValue( ) << endl; 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /slides/code/01-cpp/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/code/01-cpp/a.out -------------------------------------------------------------------------------- /slides/code/01-cpp/delete.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | 5 | int main() { 6 | string * pointerToString = new string("hi"); 7 | // some code that uses pointerToString here 8 | delete pointerToString; 9 | return 0; 10 | } 11 | -------------------------------------------------------------------------------- /slides/code/01-cpp/evenodd.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | bool even (int x); 5 | 6 | bool odd (int x) { 7 | if ( x == 0 ) 8 | return false; 9 | else 10 | return even (x-1); 11 | } 12 | 13 | bool even (int x) { 14 | if ( x == 0 ) 15 | return true; 16 | else 17 | return odd (x-1); 18 | } 19 | 20 | int main () { 21 | int x; 22 | cout << "Enter a non-zero integer: "; 23 | cin >> x; 24 | cout << "This number is even: " << even(x) << endl; 25 | cout << "This number is odd: " << odd(x) << endl; 26 | return 0; 27 | } 28 | -------------------------------------------------------------------------------- /slides/code/01-cpp/memory.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class Foo { 5 | long x, y; 6 | }; 7 | 8 | int main() { 9 | cout << "sizeof(long): " << sizeof(long) << endl; 10 | cout << "sizeof(Foo): " << sizeof(Foo) << endl; 11 | 12 | Foo *qux = new Foo(); 13 | Foo *bar = new Foo(); 14 | 15 | cout << "1st Foo: " << qux << endl; 16 | cout << "2nd Foo: " << bar << endl; 17 | 18 | long diff = ((long)bar)-((long)qux); 19 | 20 | cout << "Difference: " << diff << endl; 21 | 22 | delete qux; 23 | delete bar; 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /slides/code/01-cpp/swap.cpp: -------------------------------------------------------------------------------- 1 | /* swap() 2 | * common use for pointers 3 | * demonstrates use of * to dereference, * to declare pointer, and & to pass an address 4 | */ 5 | 6 | #include 7 | using namespace std; 8 | 9 | void swap(int * x, int * y) { 10 | int temp = *x; //temp = dereference x 11 | *x = *y; 12 | *y = temp; 13 | } 14 | 15 | int main() { 16 | int a=0; 17 | int b=3; 18 | cout << "Before swap(): a: " << a << " b: " << b << endl; 19 | swap(&b,&a); 20 | cout << "After swap(): a: " << a << " b: " << b << endl; 21 | 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /slides/code/01-cpp/swapref.cpp: -------------------------------------------------------------------------------- 1 | /* swap() with references 2 | */ 3 | 4 | #include 5 | using namespace std; 6 | 7 | void swap(int & x, int & y) { 8 | int temp = x; 9 | x = y; 10 | y = temp; 11 | } 12 | 13 | int main() { 14 | int a=0; 15 | int b=3; 16 | cout << "Before swap(): a: " << a << "b: " << b << endl; 17 | swap(b,a); 18 | cout << "After swap(): a: " << a << "b: " << b << endl; 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /slides/code/02-lists/objectCell.h: -------------------------------------------------------------------------------- 1 | #ifndef OBJECTCELL_H 2 | #define OBJECTCELL_H 3 | 4 | template 5 | class ObjectCell { 6 | public: 7 | ObjectCell(const Object & initValue = Object()) : storedValue(initValue) { 8 | } 9 | 10 | const Object & getValue() const { 11 | return storedValue; 12 | } 13 | 14 | void setValue(const Object & val) { 15 | storedValue = val; 16 | } 17 | 18 | private: 19 | Object storedValue; 20 | }; 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /slides/code/02-lists/objectCellMain.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "objectCell.h" 3 | using namespace std; 4 | 5 | int main() { 6 | ObjectCell m1; 7 | ObjectCell m2(3.14); 8 | m1.setValue(37); 9 | m2.setValue(m2.getValue() *2); 10 | // ... 11 | return 0; 12 | } 13 | -------------------------------------------------------------------------------- /slides/code/03-numbers/FloatTest.java: -------------------------------------------------------------------------------- 1 | class FloatTest { 2 | public static void main (String args[]) { 3 | // There are 10 0.1's in the next statement 4 | double y = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 5 | 0.1 + 0.1 + 0.1 + 0.1 + 0.1; 6 | System.out.println (y); 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /slides/code/03-numbers/float_to_hex.cpp: -------------------------------------------------------------------------------- 1 | // This should be compiled with the -m32 flag, so as to make the 2 | // pointer a 32-bit memory address. 3 | 4 | #include 5 | using namespace std; 6 | 7 | union foo { 8 | float f; 9 | int *x; 10 | } bar; 11 | 12 | int main() { 13 | bar.f = 42.125; 14 | cout << bar.x << endl; // prints in big-endian 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /slides/code/08-assembly-32bit/test_abs.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | extern "C" int absolute_value(int x); 4 | 5 | int absolute_value(int x) { 6 | if (x<0) // if x is negative 7 | x = -x; // negate x 8 | return x; // return x 9 | } 10 | 11 | int main() { 12 | int theValue=0; 13 | cout << "Enter a value: " << endl; 14 | cin >> theValue; 15 | int theResult = absolute_value(theValue); 16 | cout << "The result is: " << theResult << endl; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /slides/code/08-assembly-32bit/test_abs_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int absolute_value(int x) { 4 | if (x<0) // if x is negative 5 | x = -x; // negate x 6 | return x; // return x 7 | } 8 | 9 | int main() { 10 | int theValue=0; 11 | printf ("Enter a value: \n"); 12 | scanf ("%d", &theValue); 13 | int theResult = absolute_value(theValue); 14 | printf ("The result is: %d\n", theResult); 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /slides/code/08-assembly-32bit/test_fib.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | extern "C" int fib(unsigned int n); 5 | 6 | int fib(unsigned int n) { 7 | if ((n==0) || (n==1)) 8 | return 1; 9 | return fib(n-1) + fib(n-2); 10 | } 11 | 12 | int main() { 13 | int theValue = 0; 14 | cout << "Enter value for fib(): " << endl; 15 | cin >> theValue; 16 | int theResult = fib(theValue); 17 | cout << "The result is: " << theResult << endl; 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /slides/code/08-assembly-32bit/test_max.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | extern "C" int max(int x, int y); 4 | 5 | int max(int x, int y) { 6 | int theMax; 7 | if (x > y) // if x > y then x is max 8 | theMax = x; 9 | else // else y is the max 10 | theMax = y; 11 | return theMax; // return the max 12 | } 13 | 14 | int main() { 15 | int theValue1=0, theValue2=0; 16 | cout << "Enter value 1: " << endl; 17 | cin >> theValue1; 18 | cout << "Enter value 2: " << endl; 19 | cin >> theValue2; 20 | int theResult = max(theValue1, theValue2); 21 | cout << "The result is: " << theResult << endl; 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /slides/code/08-assembly-64bit/test_abs.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | extern "C" long absolute_value(long x); 4 | 5 | long absolute_value(long x) { 6 | if (x<0) // if x is negative 7 | x = -x; // negate x 8 | return x; // return x 9 | } 10 | 11 | int main() { 12 | long theValue=0; 13 | cout << "Enter a value: " << endl; 14 | cin >> theValue; 15 | long theResult = absolute_value(theValue); 16 | cout << "The result is: " << theResult << endl; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /slides/code/08-assembly-64bit/test_abs_c.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | long absolute_value(long x) { 4 | if (x<0) // if x is negative 5 | x = -x; // negate x 6 | return x; // return x 7 | } 8 | 9 | int main() { 10 | long theValue=0; 11 | printf ("Enter a value: \n"); 12 | scanf ("%ld", &theValue); 13 | long theResult = absolute_value(theValue); 14 | printf ("The result is: %ld\n", theResult); 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /slides/code/08-assembly-64bit/test_abs_int.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | extern "C" int absolute_value(int x); 4 | 5 | int absolute_value(int x) { 6 | if (x<0) // if x is negative 7 | x = -x; // negate x 8 | return x; // return x 9 | } 10 | 11 | int main() { 12 | int theValue=0; 13 | cout << "Enter a value: " << endl; 14 | cin >> theValue; 15 | int theResult = absolute_value(theValue); 16 | cout << "The result is: " << theResult << endl; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /slides/code/08-assembly-64bit/test_fact.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | extern "C" long fact(unsigned int n); 5 | 6 | long fact(unsigned int n) { 7 | if ( n==0 ) 8 | return 1; 9 | return n * fact(n-1); 10 | } 11 | 12 | int main() { 13 | unsigned int theValue = 0; 14 | cout << "Enter value for fact(): " << endl; 15 | cin >> theValue; 16 | long theResult = fact(theValue); 17 | cout << "The result is: " << theResult << endl; 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /slides/code/08-assembly-64bit/test_max.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | extern "C" int max(int x, int y); 4 | 5 | int max(int x, int y) { 6 | int theMax; 7 | if (x > y) // if x > y then x is max 8 | theMax = x; 9 | else // else y is the max 10 | theMax = y; 11 | return theMax; // return the max 12 | } 13 | 14 | int main() { 15 | int theValue1=0, theValue2=0; 16 | cout << "Enter value 1: " << endl; 17 | cin >> theValue1; 18 | cout << "Enter value 2: " << endl; 19 | cin >> theValue2; 20 | int theResult = max(theValue1, theValue2); 21 | cout << "The result is: " << theResult << endl; 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/.gitignore: -------------------------------------------------------------------------------- 1 | *.png 2 | *.ps 3 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-19.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 3 [label="3\nb:0",fontcolor=red]; 7 | 2 [label="2\nb:0",fontcolor=green]; 8 | 1 [label="1\nb:0",fontcolor=blue]; 9 | 10 | 3 [color=red]; 11 | 2 [color=green]; 12 | 1 [color=blue]; 13 | 14 | 2 -> 1; 15 | m2 [label="", width=0.1, style=invis]; 16 | 2 -> m2 [style=invis]; 17 | 2 -> 3; 18 | {rank=same 1 -> m2 -> 3 [style=invis]}; 19 | } 20 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-21.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 3 [label="3\nb:-2",width=0.8]; 7 | 2 [label="2\nb:-1",width=0.8]; 8 | 1 [label="1\nb: 0",width=0.8]; 9 | 10 | 3 -> 2; 11 | m3 [label="", width=0.1, style=invis]; 12 | 3 -> m3 [style=invis]; 13 | r3 [label="", width=0.1, style=invis]; 14 | 3 -> r3 [style=invis]; 15 | {rank=same 2 -> m3 -> r3 [style=invis]}; 16 | 17 | 2 -> 1; 18 | l2 [label="", width=0.1, style=invis]; 19 | 2 -> l2 [style=invis]; 20 | r2 [label="", width=0.1, style=invis]; 21 | 2 -> r2 [style=invis]; 22 | {rank=same 1 -> l2 -> r2 [style=invis]}; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-22.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 3 [label="3\nb: 0",width=0.8]; 7 | 2 [label="2\nb:+1",width=0.8]; 8 | 1 [label="1\nb:+2",width=0.8]; 9 | 10 | l1 [label="", width=0.1, style=invis]; 11 | 1 -> l1 [style=invis]; 12 | m1 [label="", width=0.1, style=invis]; 13 | 1 -> m1 [style=invis]; 14 | 1 -> 2; 15 | {rank=same l1 -> m1 -> 2 [style=invis]}; 16 | 17 | l2 [label="", width=0.1, style=invis]; 18 | 2 -> l2 [style=invis]; 19 | m2 [label="", width=0.1, style=invis]; 20 | 2 -> m2 [style=invis]; 21 | 2 -> 3; 22 | {rank=same l2 -> m2 -> 3 [style=invis]}; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-23.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 3 [label="3\nb:-2",width=0.8]; 7 | 2 [label="2\nb: 0",width=0.8]; 8 | 1 [label="1\nb:+1",width=0.8]; 9 | 10 | 3 -> 1; 11 | m3 [label="", width=0.1, style=invis]; 12 | 3 -> m3 [style=invis]; 13 | r3 [label="", width=0.1, style=invis]; 14 | 3 -> r3 [style=invis]; 15 | {rank=same 1 -> m3 -> r3 [style=invis]}; 16 | 17 | l1 [label="", width=0.1, style=invis]; 18 | 1 -> l1 [style=invis]; 19 | m1 [label="", width=0.1, style=invis]; 20 | 1 -> m1 [style=invis]; 21 | 1 -> 2; 22 | {rank=same l1 -> m1 -> 2 [style=invis]}; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-24.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 3 [label="3\nb:-1",width=0.8]; 7 | 2 [label="2\nb: 0",width=0.8]; 8 | 1 [label="1\nb:+2",width=0.8]; 9 | 10 | l1 [label="", width=0.1, style=invis]; 11 | 1 -> l1 [style=invis]; 12 | m1 [label="", width=0.1, style=invis]; 13 | 1 -> m1 [style=invis]; 14 | 1 -> 3; 15 | {rank=same l1 -> m1 -> 3 [style=invis]}; 16 | 17 | 3 -> 2; 18 | m3 [label="", width=0.1, style=invis]; 19 | 3 -> m3 [style=invis]; 20 | r3 [label="", width=0.1, style=invis]; 21 | 3 -> r3 [style=invis]; 22 | {rank=same 2 -> m3 -> r3 [style=invis]}; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-6.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | X [shape=triangle,label="X\n(h+1)",height=2]; 7 | Y [shape=triangle,label="Y\n(h)",height=1]; 8 | Z [shape=triangle,label="Z\n(h)",height=1]; 9 | 10 | a -> b; 11 | ma [label="", width=0.1, style=invis]; 12 | a -> ma [style=invis]; 13 | a -> Z:n; 14 | {rank=same b -> ma -> Z [style=invis]}; 15 | 16 | b -> X:n; 17 | mb [label="", width=0.1, style=invis]; 18 | b -> mb [style=invis]; 19 | b -> Y:n; 20 | {rank=same X -> mb -> Y [style=invis]}; 21 | } 22 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-7.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | X [shape=triangle,label="X\n(h+1)",height=2]; 7 | Y [shape=triangle,label="Y\n(h)",height=1]; 8 | Z [shape=triangle,label="Z\n(h)",height=1]; 9 | 10 | b -> X:n; 11 | mb [label="", width=0.1, style=invis]; 12 | b -> mb [style=invis]; 13 | b -> a; 14 | {rank=same X -> mb -> a [style=invis]}; 15 | 16 | a -> Y:n; 17 | ma [label="", width=0.1, style=invis]; 18 | a -> ma [style=invis]; 19 | a -> Z:n; 20 | {rank=same Y -> ma -> Z [style=invis]}; 21 | } 22 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-8.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | X [shape=triangle,label="X\n(h)",height=1]; 7 | Y [shape=triangle,label="Y\n(h+1)",height=2]; 8 | Z [shape=triangle,label="Z\n(h)",height=1]; 9 | 10 | a -> b; 11 | ma [label="", width=0.1, style=invis]; 12 | a -> ma [style=invis]; 13 | a -> Z:n; 14 | {rank=same b -> ma -> Z [style=invis]}; 15 | 16 | b -> X:n; 17 | mb [label="", width=0.1, style=invis]; 18 | b -> mb [style=invis]; 19 | b -> Y:n; 20 | {rank=same X -> mb -> Y [style=invis]}; 21 | } 22 | -------------------------------------------------------------------------------- /slides/graphs/avl-tree-9.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | X [shape=triangle,label="X\n(h)",height=1]; 7 | Y [shape=triangle,label="Y\n(h+1)",height=2]; 8 | Z [shape=triangle,label="Z\n(h)",height=1]; 9 | 10 | b -> X:n; 11 | mb [label="", width=0.1, style=invis]; 12 | b -> mb [style=invis]; 13 | b -> a; 14 | {rank=same X -> mb -> a [style=invis]}; 15 | 16 | a -> Y:n; 17 | ma [label="", width=0.1, style=invis]; 18 | a -> ma [style=invis]; 19 | a -> Z:n; 20 | {rank=same Y -> ma -> Z [style=invis]}; 21 | } 22 | -------------------------------------------------------------------------------- /slides/graphs/bst-3.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 1 -> 2; 7 | m1 [label="", width=0.1, style=invis]; 8 | 1 -> m1 [style=invis]; 9 | 1 -> 3; 10 | {rank=same 2 -> m1 -> 3 [style=invis]}; 11 | 12 | 2 -> 4; 13 | m2 [label="", width=0.1, style=invis]; 14 | 2 -> m2 [style=invis]; 15 | 2 -> 5; 16 | {rank=same 4 -> m2 -> 5 [style=invis]}; 17 | 18 | 3 -> 6; 19 | m3 [label="", width=0.1, style=invis]; 20 | 3 -> m3 [style=invis]; 21 | 3 -> 7; 22 | {rank=same 6 -> m3 -> 7 [style=invis]}; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/c-string-1.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica"]; 3 | ptr [label="<0>",xlabel="str:",shape=record]; 4 | stack [shape=record,label="<0>h|e|l|l|o||w|o|r|l|d|\\0"]; 5 | ptr:0:c -> stack:0 [tailclip=false]; 6 | } 7 | -------------------------------------------------------------------------------- /slides/graphs/c-string-2.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica"]; 3 | ptr [label="<0>0xfd21a8ce",xlabel="str:",shape=record]; 4 | stack [shape=record,label="<0>0x68|0x65|0x6c|0x6c|0x6f|0x20|0x77|0x6f|0x72|0x6c|0x64|0x00",xlabel="0xfd21a8ce:"]; 5 | ptr:0:c -> stack:0 [tailclip=false,style=invis]; 6 | } 7 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-1.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | 6 | stack:0:c -> a [tailclip=false]; 7 | } 8 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-2.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | 6 | stack:0:c -> a [tailclip=false]; 7 | stack:1:c -> b [tailclip=false]; 8 | } 9 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-3.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | plus1 [label="+"]; 6 | hidden1 [label="",style=invis]; 7 | 8 | stack:0:c -> plus1 [tailclip=false]; 9 | 10 | plus1 -> a; 11 | plus1 -> hidden1 [style=invis]; 12 | plus1 -> b; 13 | {rank=same a -> hidden1 -> b [style=invis]}; 14 | } 15 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-4.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | plus1 [label="+"]; 6 | hidden1 [label="",style=invis]; 7 | 8 | stack:0:c -> plus1 [tailclip=false]; 9 | stack:1:c -> c [tailclip=false]; 10 | 11 | plus1 -> a; 12 | plus1 -> hidden1 [style=invis]; 13 | plus1 -> b; 14 | {rank=same a -> hidden1 -> b [style=invis]}; 15 | } 16 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-5.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | plus1 [label="+"]; 6 | hidden1 [label="",style=invis]; 7 | 8 | stack:0:c -> plus1 [tailclip=false]; 9 | stack:1:c -> c [tailclip=false]; 10 | stack:2:c -> d [tailclip=false]; 11 | 12 | plus1 -> a; 13 | plus1 -> hidden1 [style=invis]; 14 | plus1 -> b; 15 | {rank=same a -> hidden1 -> b [style=invis]}; 16 | } 17 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-6.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | plus1 [label="+"]; 6 | hidden1 [label="",style=invis]; 7 | 8 | stack:0:c -> plus1 [tailclip=false]; 9 | stack:1:c -> c [tailclip=false]; 10 | stack:2:c -> d [tailclip=false]; 11 | stack:3:c -> e [tailclip=false]; 12 | 13 | plus1 -> a; 14 | plus1 -> hidden1 [style=invis]; 15 | plus1 -> b; 16 | {rank=same a -> hidden1 -> b [style=invis]}; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/exp-tree-ex-7.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [fontname="Helvetica",shape=circle]; 3 | 4 | stack [shape=record,label="<0>|<1>|<2>|<3>|<4>"]; 5 | plus1 [label="+"]; 6 | plus2 [label="+"]; 7 | hidden1 [label="",style=invis]; 8 | hidden2 [label="",style=invis]; 9 | 10 | stack:0:c -> plus1 [tailclip=false]; 11 | stack:1:c -> c [tailclip=false]; 12 | stack:2:c -> plus2 [tailclip=false]; 13 | 14 | plus1 -> a; 15 | plus1 -> hidden1 [style=invis]; 16 | plus1 -> b; 17 | {rank=same a -> hidden1 -> b [style=invis]}; 18 | 19 | plus2 -> d; 20 | plus2 -> hidden2 [style=invis]; 21 | plus2 -> e; 22 | {rank=same d -> hidden2 -> e [style=invis]}; 23 | } 24 | -------------------------------------------------------------------------------- /slides/graphs/file-tree-1.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica"]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | home -> aaron; 7 | aaron -> cs2150; 8 | cs2150 -> cs4970; 9 | cs4970 -> mail; 10 | mail -> school; 11 | cs2150 -> lab1; 12 | lab1 -> lab2; 13 | lab2 -> proj1; 14 | projh [label="proj.h"]; 15 | proj1 -> projh; 16 | collh [label="coll.h"]; 17 | lab1 -> collh; 18 | collcpp [label="coll.cpp"]; 19 | collh -> collcpp; 20 | 21 | {rank=same cs2150 cs4970 mail }; 22 | {rank=same lab1 lab2 proj1 }; 23 | {rank=same collh collcpp projh }; 24 | } 25 | -------------------------------------------------------------------------------- /slides/graphs/graph-1.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | v1 -> v3; 7 | v1 -> v10; 8 | v2 -> v4; 9 | v3 -> v4; 10 | v3 -> v6; 11 | v3 -> v10; 12 | v4 -> v5; 13 | v5 -> v6; 14 | v6 -> v7; 15 | v6 -> v8; 16 | v7 -> v8; 17 | v8 -> v9; 18 | v9 -> v10; 19 | } 20 | -------------------------------------------------------------------------------- /slides/graphs/graph-10.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | v1 -> v2 [label="7",fontcolor=blue]; 7 | v1 -> v3 [label="9",fontcolor=blue]; 8 | v1 -> v6 [label="14 ",fontcolor=blue]; 9 | v2 -> v3 [label="10",fontcolor=blue]; 10 | v2 -> v4 [label="15",fontcolor=blue]; 11 | v3 -> v6 [label="2",fontcolor=blue]; 12 | v3 -> v4 [label="11",fontcolor=blue]; 13 | v4 -> v5 [label="6",fontcolor=blue]; 14 | v5 -> v6 [label="9",fontcolor=blue]; 15 | } 16 | -------------------------------------------------------------------------------- /slides/graphs/graph-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/graphs/graph-10.png -------------------------------------------------------------------------------- /slides/graphs/graph-11.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | v1 -> v2; 7 | v1 -> v3; 8 | v2 -> v4; 9 | v3 -> v4; 10 | v2 -> v3; 11 | v1 -> v4; 12 | 13 | {rank=same v1}; 14 | {rank=same v2 -> v3 [style=invis]}; 15 | {rank=same v4}; 16 | } 17 | -------------------------------------------------------------------------------- /slides/graphs/graph-13a.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.25]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | A [label=""]; 7 | B [label=""]; 8 | C [label=""]; 9 | D [label=""]; 10 | E [label=""]; 11 | A -> D; 12 | // the cycle: 13 | B -> C; 14 | C -> D; 15 | D -> E; 16 | E -> B; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/graph-13b.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.25]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | A [label=""]; 7 | B [label=""]; 8 | C [label=""]; 9 | D [label=""]; 10 | E [label=""]; 11 | A -> D; 12 | // the cycle: 13 | B -> C [style=invis]; 14 | C -> D; 15 | D -> E; 16 | E -> B; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/graph-13c.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.25]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | A [label=""]; 7 | B [label=""]; 8 | C [label=""]; 9 | D [label=""]; 10 | E [label=""]; 11 | A -> D; 12 | // the cycle: 13 | B -> C; 14 | C -> D [style=invis]; 15 | D -> E; 16 | E -> B; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/graph-13d.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.25]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | A [label=""]; 7 | B [label=""]; 8 | C [label=""]; 9 | D [label=""]; 10 | E [label=""]; 11 | A -> D; 12 | // the cycle: 13 | B -> C; 14 | C -> D; 15 | D -> E [style=invis]; 16 | E -> B; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/graph-13e.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.25]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | A [label=""]; 7 | B [label=""]; 8 | C [label=""]; 9 | D [label=""]; 10 | E [label=""]; 11 | A -> D; 12 | // the cycle: 13 | B -> C; 14 | C -> D; 15 | D -> E; 16 | E -> B [style=invis]; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/graph-14.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | v1 -> v2 [label="2",fontcolor=blue]; 7 | v1 -> v3 [label="4",fontcolor=blue]; 8 | v1 -> v4 [label="1 ",fontcolor=blue]; 9 | v2 -> v4 [label="3",fontcolor=blue]; 10 | v2 -> v5 [label="10 ",fontcolor=blue]; 11 | v3 -> v4 [label="2",fontcolor=blue]; 12 | v3 -> v6 [label="5 ",fontcolor=blue]; 13 | v4 -> v5 [label="7",fontcolor=blue]; 14 | v4 -> v6 [label="8",fontcolor=blue]; 15 | v4 -> v7 [label="4 ",fontcolor=blue]; 16 | v5 -> v7 [label="6",fontcolor=blue]; 17 | v6 -> v7 [label="1",fontcolor=blue]; 18 | } 19 | -------------------------------------------------------------------------------- /slides/graphs/graph-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/graphs/graph-14.png -------------------------------------------------------------------------------- /slides/graphs/graph-15.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle]; 4 | edge [fontname = "Helvetica",dir=none]; 5 | 6 | v1 -> v2; 7 | v1 -> v3 [style=invis]; 8 | v1 -> v4; 9 | v2 -> v4 [style=invis]; 10 | v2 -> v5 [style=invis]; 11 | v3 -> v4; 12 | v3 -> v6 [style=invis]; 13 | v4 -> v5 [style=invis]; 14 | v4 -> v6 [style=invis]; 15 | v4 -> v7; 16 | v5 -> v7; 17 | v6 -> v7; 18 | } 19 | -------------------------------------------------------------------------------- /slides/graphs/graph-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/graphs/graph-15.png -------------------------------------------------------------------------------- /slides/graphs/graph-2.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | A -> B; 7 | A -> C; 8 | A -> D; 9 | B -> G; 10 | C -> E; 11 | D -> E; 12 | D -> F; 13 | E -> A; # in the pptx slide, E -> B, but going to A is better for the layout 14 | F -> G; 15 | } 16 | -------------------------------------------------------------------------------- /slides/graphs/graph-3.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v1 [label="1"]; 7 | v2 [label="2"]; 8 | v3 [label="3"]; 9 | v4 [label="4"]; 10 | v1 -> v2; 11 | v1 -> v3; 12 | v1 -> v4; 13 | v2 -> v3; 14 | v4 -> v1; 15 | } 16 | -------------------------------------------------------------------------------- /slides/graphs/graph-4.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v1 -> v2; 7 | v1 -> v3; 8 | v2 -> v4; 9 | v3 -> v2; 10 | v3 -> v4; 11 | v3 -> v7; 12 | v4 -> v5; 13 | v6 -> v3; 14 | v6 -> v7; 15 | v6 -> v8; 16 | v7 -> v5; 17 | } 18 | -------------------------------------------------------------------------------- /slides/graphs/graph-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/graphs/graph-4.png -------------------------------------------------------------------------------- /slides/graphs/graph-5.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v1 -> v2; 7 | v1 -> v3; 8 | v2 -> v4; 9 | v3 -> v4; 10 | 11 | {rank=same v1}; 12 | {rank=same v2 -> v3 [style=invis]}; 13 | {rank=same v4}; 14 | } 15 | -------------------------------------------------------------------------------- /slides/graphs/graph-6.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v1 -> v2; 7 | v3 -> v1 [color=red]; 8 | v2 -> v4; 9 | v4 -> v3 [color=red]; 10 | 11 | {rank=same v1}; 12 | {rank=same v2 -> v3 [style=invis]}; 13 | {rank=same v4}; 14 | } 15 | -------------------------------------------------------------------------------- /slides/graphs/graph-7.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v4 -> v5; 7 | v4 -> v8; 8 | v5 -> v2; 9 | v8 -> v2; 10 | v8 -> v1; 11 | v1 -> v7; 12 | v2 -> v7; 13 | v3 -> v2; 14 | v6 -> v3; 15 | v1 -> v6; 16 | } 17 | -------------------------------------------------------------------------------- /slides/graphs/graph-8.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v2 -> v1; 7 | v1 -> v3; 8 | v1 -> v4; 9 | v2 -> v3; 10 | v2 -> v5; 11 | v4 -> v6; 12 | v4 -> v7; 13 | v0 -> v1; 14 | v0 -> v2; 15 | v3 -> v6; 16 | v5 -> v4; 17 | v6 -> v7; 18 | } 19 | -------------------------------------------------------------------------------- /slides/graphs/graph-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/graphs/graph-8.png -------------------------------------------------------------------------------- /slides/graphs/graph-9.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | v0 -> v2 [label="2",fontcolor=blue]; 7 | v0 -> v3 [label="1 ",fontcolor=blue]; 8 | v1 -> v0 [label="2",fontcolor=blue]; 9 | v2 -> v3 [label="1",fontcolor=blue]; 10 | v2 -> v5 [label="2 ",fontcolor=blue]; 11 | v3 -> v1 [label="5 ",fontcolor=blue]; 12 | v3 -> v4 [label="1",fontcolor=blue]; 13 | v3 -> v6 [label="5 ",fontcolor=blue]; 14 | v3 -> v5 [label="6",fontcolor=blue]; 15 | v4 -> v1 [label="1",fontcolor=blue]; 16 | v5 -> v6 [label="10",fontcolor=blue]; 17 | v6 -> v4 [label="3 ",fontcolor=blue]; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /slides/graphs/graph-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/graphs/graph-9.png -------------------------------------------------------------------------------- /slides/graphs/heap-14.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 25 -> 10; 7 | m [label="", width=0.1, style=invis]; 8 | 25 -> m [style=invis] 9 | 25 -> 20; 10 | {rank=same 10 -> m -> 20 [style=invis]}; 11 | } 12 | -------------------------------------------------------------------------------- /slides/graphs/heap-15.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 10 -> 25; 7 | m [label="", width=0.1, style=invis]; 8 | 10 -> m [style=invis] 9 | 10 -> 20; 10 | {rank=same 25 -> m -> 20 [style=invis]}; 11 | } 12 | -------------------------------------------------------------------------------- /slides/graphs/heap-16.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 20 -> 10 [color=red]; 7 | m [label="", width=0.1, style=invis]; 8 | 20 -> m [style=invis] 9 | 20 -> 25; 10 | {rank=same 10 -> m -> 25 [style=invis]}; 11 | } 12 | -------------------------------------------------------------------------------- /slides/graphs/heap-2.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 11 -> 5; 7 | m11 [label="", width=0.1, style=invis]; 8 | 11 -> m11 [style=invis] 9 | 11 -> 21; 10 | {rank=same 5 -> m11 -> 21 [style=invis]}; 11 | 12 | 5 -> 2; 13 | m5 [label="", width=0.1, style=invis]; 14 | 5 -> m5 [style=invis] 15 | 5 -> 9; 16 | {rank=same 2 -> m5 -> 9 [style=invis]}; 17 | 18 | 2 -> 1; 19 | m2 [label="", width=0.1, style=invis]; 20 | 2 -> m2 [style=invis] 21 | 2 -> 3; 22 | {rank=same 1 -> m2 -> 3 [style=invis]}; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /slides/graphs/heap-5.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.2]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 5 [label=""]; 7 | } 8 | -------------------------------------------------------------------------------- /slides/graphs/heap-6.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.2]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 5 [label=""]; 7 | 11 [label=""]; 8 | 9 | 11 -> 5; 10 | m11 [label="", width=0.1, style=invis]; 11 | 11 -> m11 [style=invis] 12 | r11 [label="", width=0.1, style=invis]; 13 | 11 -> r11 [style=invis] 14 | {rank=same 5 -> m11 -> r11 [style=invis]}; 15 | } 16 | -------------------------------------------------------------------------------- /slides/graphs/heap-7.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.2]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 5 [label=""]; 7 | 11 [label=""]; 8 | 21 [label=""]; 9 | 10 | 11 -> 5; 11 | m11 [label="", width=0.1, style=invis]; 12 | 11 -> m11 [style=invis] 13 | 11 -> 21; 14 | {rank=same 5 -> m11 -> 21 [style=invis]}; 15 | } 16 | -------------------------------------------------------------------------------- /slides/graphs/heap-9.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 10 -> 20; 7 | m10 [label="", width=0.1, style=invis]; 8 | 10 -> m10 [style=invis] 9 | 10 -> 80; 10 | {rank=same 20 -> m10 -> 80 [style=invis]}; 11 | 12 | 20 [color=red]; 13 | 15 [color=red]; 14 | 20 -> 30; 15 | m20 [label="", width=0.1, style=invis]; 16 | 20 -> m20 [style=invis] 17 | 20 -> 15 [color=red]; 18 | {rank=same 30 -> m20 -> 15 [style=invis]}; 19 | } 20 | -------------------------------------------------------------------------------- /slides/graphs/huffman-13.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica",shape=circle,width=0.6]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | 1 [label="-"]; 7 | 2 [label="-"]; 8 | 3 [label="-"]; 9 | 10 | 1 -> a; 11 | m1 [label="", width=0.1, style=invis]; 12 | 1 -> m1 [style=invis]; 13 | 1 -> 2; 14 | {rank=same a -> m1 -> 2 [style=invis]}; 15 | 16 | 2 -> 3; 17 | m2 [label="", width=0.1, style=invis]; 18 | 2 -> m2 [style=invis]; 19 | 2 -> d; 20 | {rank=same 3 -> m2 -> d [style=invis]}; 21 | 22 | 3 -> b; 23 | m3 [label="", width=0.1, style=invis]; 24 | 3 -> m3 [style=invis]; 25 | 3 -> c; 26 | {rank=same b -> m3 -> c [style=invis]}; 27 | } 28 | -------------------------------------------------------------------------------- /slides/graphs/list-diagram-1.dot: -------------------------------------------------------------------------------- 1 | digraph structs { 2 | graph [fontname = "Helvetica", nodesep=1]; 3 | node [fontname = "Helvetica-bold"]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | node [shape=Mrecord]; 7 | pointer [label="L"]; 8 | node1 [label="{value: 1 | next: }", ylabel="node"]; 9 | node2 [label="{value: 2 | next: }"]; 10 | node3 [label="{value: 3 | next: }"]; 11 | null [label="", width=0.1, style=invis]; 12 | 13 | pointer -> node1; 14 | node1 -> node2; 15 | node2 -> node3; 16 | node3 -> null [arrowhead=dotteeteenormal]; 17 | 18 | {rank=same pointer -> node1 -> node2 -> node3 -> null [style=invis]}; 19 | } 20 | -------------------------------------------------------------------------------- /slides/graphs/list-diagram-2.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica"]; 4 | edge [fontname = "Helvetica"]; 5 | 6 | // specifying :w ports for the destination of these two arrows 7 | // will crash graphviz version 2.36 8 | predecessor -> element; 9 | element -> successor; 10 | {rank=same predecessor -> element -> successor [style=invis]}; 11 | } 12 | -------------------------------------------------------------------------------- /slides/graphs/tree-diagram.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [fontname = "Helvetica"]; 3 | node [fontname = "Helvetica"]; 4 | edge [fontname = "Helvetica"]; 5 | parent -> element; 6 | left [label="left child"]; 7 | element -> left; 8 | right [label="right child"]; 9 | element -> right; 10 | {rank=same left -> right [style=invis]}; 11 | } 12 | -------------------------------------------------------------------------------- /slides/images/01-cpp/clang++-error-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/clang++-error-message.png -------------------------------------------------------------------------------- /slides/images/01-cpp/dynamic-allocation-execution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/dynamic-allocation-execution.png -------------------------------------------------------------------------------- /slides/images/01-cpp/g++-error-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/g++-error-message.png -------------------------------------------------------------------------------- /slides/images/01-cpp/pointers-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/pointers-1.png -------------------------------------------------------------------------------- /slides/images/01-cpp/pointers-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/pointers-2.png -------------------------------------------------------------------------------- /slides/images/01-cpp/pointers-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/pointers-3.png -------------------------------------------------------------------------------- /slides/images/01-cpp/pointers-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/pointers-4.png -------------------------------------------------------------------------------- /slides/images/01-cpp/separate-compilation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/01-cpp/separate-compilation.png -------------------------------------------------------------------------------- /slides/images/02-lists/lists-adt-arrays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/02-lists/lists-adt-arrays.png -------------------------------------------------------------------------------- /slides/images/02-lists/lists-adt-linked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/02-lists/lists-adt-linked.png -------------------------------------------------------------------------------- /slides/images/02-lists/queue-diagram.dia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/02-lists/queue-diagram.dia -------------------------------------------------------------------------------- /slides/images/02-lists/stack-activation-record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/02-lists/stack-activation-record.png -------------------------------------------------------------------------------- /slides/images/02-lists/stack-diagram.dia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/02-lists/stack-diagram.dia -------------------------------------------------------------------------------- /slides/images/03-numbers/cpu-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/cpu-image.png -------------------------------------------------------------------------------- /slides/images/03-numbers/endian-ness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/endian-ness.png -------------------------------------------------------------------------------- /slides/images/03-numbers/eniac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/eniac.png -------------------------------------------------------------------------------- /slides/images/03-numbers/fixed-point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/fixed-point.png -------------------------------------------------------------------------------- /slides/images/03-numbers/long-division.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/long-division.png -------------------------------------------------------------------------------- /slides/images/03-numbers/nvidia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/nvidia.png -------------------------------------------------------------------------------- /slides/images/03-numbers/ones-complement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/ones-complement.png -------------------------------------------------------------------------------- /slides/images/03-numbers/patriot-missile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/patriot-missile.jpg -------------------------------------------------------------------------------- /slides/images/03-numbers/sign-and-magnitude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/sign-and-magnitude.png -------------------------------------------------------------------------------- /slides/images/03-numbers/twos-complement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/03-numbers/twos-complement.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/2d-array-layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/2d-array-layout.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/graph-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/graph-1.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/graph-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/graph-2.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/graph-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/graph-3.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/graph-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/graph-4.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/graph-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/graph-5.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/omega-diagram-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/omega-diagram-1.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/omega-diagram-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/omega-diagram-2.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/theta-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/theta-diagram.png -------------------------------------------------------------------------------- /slides/images/04-arrays-bigoh/venn-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/04-arrays-bigoh/venn-diagram.png -------------------------------------------------------------------------------- /slides/images/05-trees/1024px-Tree_Rebalancing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/1024px-Tree_Rebalancing.gif -------------------------------------------------------------------------------- /slides/images/05-trees/768px-Tree_of_life_SVG.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/768px-Tree_of_life_SVG.svg.png -------------------------------------------------------------------------------- /slides/images/05-trees/Red-black_tree_insert_case_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/Red-black_tree_insert_case_3.png -------------------------------------------------------------------------------- /slides/images/05-trees/Red-black_tree_insert_case_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/Red-black_tree_insert_case_4.png -------------------------------------------------------------------------------- /slides/images/05-trees/Red-black_tree_insert_case_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/Red-black_tree_insert_case_5.png -------------------------------------------------------------------------------- /slides/images/05-trees/Tree_rotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/Tree_rotation.png -------------------------------------------------------------------------------- /slides/images/05-trees/evil-genius-flowchart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/05-trees/evil-genius-flowchart.gif -------------------------------------------------------------------------------- /slides/images/06-hashes/blob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/06-hashes/blob.png -------------------------------------------------------------------------------- /slides/images/06-hashes/separate-chaining-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/06-hashes/separate-chaining-diagram.png -------------------------------------------------------------------------------- /slides/images/07-ibcm/ibcm-memory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/07-ibcm/ibcm-memory.png -------------------------------------------------------------------------------- /slides/images/07-ibcm/memory-hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/07-ibcm/memory-hierarchy.png -------------------------------------------------------------------------------- /slides/images/08-x86/C4004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/08-x86/C4004.jpg -------------------------------------------------------------------------------- /slides/images/08-x86/registers_x86_64bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/08-x86/registers_x86_64bit.png -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/ascii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/ascii.png -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/jpeg-001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/jpeg-001.jpg -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/jpeg-010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/jpeg-010.jpg -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/jpeg-025.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/jpeg-025.jpg -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/jpeg-050.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/jpeg-050.jpg -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/jpeg-100.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/jpeg-100.jpg -------------------------------------------------------------------------------- /slides/images/10-heaps-huffman/tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/10-heaps-huffman/tree.png -------------------------------------------------------------------------------- /slides/images/11-graphs/airline-routes-from-openflights.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/11-graphs/airline-routes-from-openflights.jpg -------------------------------------------------------------------------------- /slides/images/11-graphs/geek-gift-flowchart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/11-graphs/geek-gift-flowchart.gif -------------------------------------------------------------------------------- /slides/images/11-graphs/google-maps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/11-graphs/google-maps.png -------------------------------------------------------------------------------- /slides/images/11-graphs/icpc-midatl-2009-shortest-path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/11-graphs/icpc-midatl-2009-shortest-path.png -------------------------------------------------------------------------------- /slides/images/11-graphs/us-city-map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/11-graphs/us-city-map.jpg -------------------------------------------------------------------------------- /slides/images/12-memory/amd-bios-memtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/12-memory/amd-bios-memtest.png -------------------------------------------------------------------------------- /slides/images/13-esoteric-pls/whitespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/13-esoteric-pls/whitespace.png -------------------------------------------------------------------------------- /slides/images/calibrate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/calibrate.png -------------------------------------------------------------------------------- /slides/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/close.gif -------------------------------------------------------------------------------- /slides/images/green-double-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/green-double-arrow.png -------------------------------------------------------------------------------- /slides/images/max.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/max.gif -------------------------------------------------------------------------------- /slides/images/menu-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/menu-icon.png -------------------------------------------------------------------------------- /slides/images/min.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/min.gif -------------------------------------------------------------------------------- /slides/images/print-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/print-icon.png -------------------------------------------------------------------------------- /slides/images/red-double-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/red-double-arrow.png -------------------------------------------------------------------------------- /slides/images/resize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/resize.gif -------------------------------------------------------------------------------- /slides/images/restore.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/restore.gif -------------------------------------------------------------------------------- /slides/images/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/images/spacer.gif -------------------------------------------------------------------------------- /slides/misc/gt.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/misc/gt.jar -------------------------------------------------------------------------------- /slides/misc/hash-table-buckets.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/misc/hash-table-buckets.odt -------------------------------------------------------------------------------- /slides/misc/hash-table-buckets.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/misc/hash-table-buckets.pdf -------------------------------------------------------------------------------- /slides/reiss/advancedCpp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/advancedCpp.pdf -------------------------------------------------------------------------------- /slides/reiss/arrays.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/arrays.pdf -------------------------------------------------------------------------------- /slides/reiss/asm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/asm.pdf -------------------------------------------------------------------------------- /slides/reiss/bigoh.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/bigoh.pdf -------------------------------------------------------------------------------- /slides/reiss/courseintro.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/courseintro.pdf -------------------------------------------------------------------------------- /slides/reiss/cpp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/cpp.pdf -------------------------------------------------------------------------------- /slides/reiss/graphs.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/graphs.pdf -------------------------------------------------------------------------------- /slides/reiss/hashes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/hashes.pdf -------------------------------------------------------------------------------- /slides/reiss/heapsHuffman.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/heapsHuffman.pdf -------------------------------------------------------------------------------- /slides/reiss/ibcm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/ibcm.pdf -------------------------------------------------------------------------------- /slides/reiss/lists.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/lists.pdf -------------------------------------------------------------------------------- /slides/reiss/memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/memory.pdf -------------------------------------------------------------------------------- /slides/reiss/numbers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/numbers.pdf -------------------------------------------------------------------------------- /slides/reiss/trees.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reiss/trees.pdf -------------------------------------------------------------------------------- /slides/reveal.js/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [hakimel] 2 | -------------------------------------------------------------------------------- /slides/reveal.js/.github/workflows/js.yml: -------------------------------------------------------------------------------- 1 | name: tests 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [10.x, 14.x, 16.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - run: npm install 21 | - run: npm run build --if-present 22 | - run: npm test 23 | env: 24 | CI: true 25 | -------------------------------------------------------------------------------- /slides/reveal.js/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.iml 3 | *.iws 4 | *.eml 5 | out/ 6 | .DS_Store 7 | .svn 8 | log/*.log 9 | tmp/** 10 | node_modules/ 11 | .sass-cache 12 | dist/*.map -------------------------------------------------------------------------------- /slides/reveal.js/.npmignore: -------------------------------------------------------------------------------- 1 | /test 2 | /examples 3 | .github 4 | .gulpfile 5 | .sass-cache 6 | gulpfile.js 7 | CONTRIBUTING.md -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/league-gothic/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'League Gothic'; 3 | src: url('./league-gothic.eot'); 4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'), 5 | url('./league-gothic.woff') format('woff'), 6 | url('./league-gothic.ttf') format('truetype'); 7 | 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.eot -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.ttf -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/league-gothic/league-gothic.woff -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /slides/reveal.js/examples/assets/beeping.txt: -------------------------------------------------------------------------------- 1 | Source: https://freesound.org/people/fennelliott/sounds/379419/ 2 | License: CC0 (public domain) -------------------------------------------------------------------------------- /slides/reveal.js/examples/assets/beeping.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/examples/assets/beeping.wav -------------------------------------------------------------------------------- /slides/reveal.js/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/examples/assets/image1.png -------------------------------------------------------------------------------- /slides/reveal.js/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/slides/reveal.js/examples/assets/image2.png -------------------------------------------------------------------------------- /slides/reveal.js/examples/markdown.md: -------------------------------------------------------------------------------- 1 | # Markdown Demo 2 | 3 | 4 | 5 | ## External 1.1 6 | 7 | Content 1.1 8 | 9 | Note: This will only appear in the speaker notes window. 10 | 11 | 12 | ## External 1.2 13 | 14 | Content 1.2 15 | 16 | 17 | 18 | ## External 2 19 | 20 | Content 2.1 21 | 22 | 23 | 24 | ## External 3.1 25 | 26 | Content 3.1 27 | 28 | 29 | ## External 3.2 30 | 31 | Content 3.2 32 | 33 | 34 | ## External 3.3 35 | 36 | ![External Image](https://s3.amazonaws.com/static.slid.es/logo/v2/slides-symbol-512x512.png) 37 | -------------------------------------------------------------------------------- /slides/reveal.js/js/utils/constants.js: -------------------------------------------------------------------------------- 1 | 2 | export const SLIDES_SELECTOR = '.slides section'; 3 | export const HORIZONTAL_SLIDES_SELECTOR = '.slides>section'; 4 | export const VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section'; 5 | 6 | // Methods that may not be invoked via the postMessage API 7 | export const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/; 8 | 9 | // Regex for retrieving the fragment style from a class attribute 10 | export const FRAGMENT_STYLE_REGEX = /fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/; -------------------------------------------------------------------------------- /slides/reveal.js/test/assets/external-script-a.js: -------------------------------------------------------------------------------- 1 | window.externalScriptSequence += 'A'; -------------------------------------------------------------------------------- /slides/reveal.js/test/assets/external-script-b.js: -------------------------------------------------------------------------------- 1 | window.externalScriptSequence += 'B'; -------------------------------------------------------------------------------- /slides/reveal.js/test/assets/external-script-c.js: -------------------------------------------------------------------------------- 1 | window.externalScriptSequence += 'C'; -------------------------------------------------------------------------------- /slides/reveal.js/test/assets/external-script-d.js: -------------------------------------------------------------------------------- 1 | window.externalScriptSequence += 'D'; -------------------------------------------------------------------------------- /slides/reveal.js/test/simple.md: -------------------------------------------------------------------------------- 1 | ## Slide 1.1 2 | 3 | ```js 4 | var a = 1; 5 | ``` 6 | 7 | 8 | ## Slide 1.2 9 | 10 | 11 | 12 | ## Slide 2 13 | -------------------------------------------------------------------------------- /slides/x86/.gitignore: -------------------------------------------------------------------------------- 1 | *.png 2 | -------------------------------------------------------------------------------- /slides/x86/32bit/Makefile: -------------------------------------------------------------------------------- 1 | main: 2 | dot -Tsvg -O x86-cc-stack-64.dot 3 | dot -Tsvg -O x86-cc-esp-64.dot 4 | dot -Tsvg -O x86-cc-regs-64.dot 5 | dot -Tpng -O x86-cc-stack-64.dot 6 | dot -Tpng -O x86-cc-esp-64.dot 7 | dot -Tpng -O x86-cc-regs-64.dot 8 | -------------------------------------------------------------------------------- /slides/x86/32bit/Makefile.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Makefile 10 | 11 | 12 |
main:
13 | 	dot -Tsvg -O x86-cc-stack-64.dot
14 | 	dot -Tsvg -O x86-cc-esp-64.dot
15 | 	dot -Tsvg -O x86-cc-regs-64.dot
16 | 	dot -Tpng -O x86-cc-stack-64.dot
17 | 	dot -Tpng -O x86-cc-esp-64.dot
18 | 	dot -Tpng -O x86-cc-regs-64.dot
19 | 
20 | 21 | 22 | -------------------------------------------------------------------------------- /slides/x86/64bit/Makefile: -------------------------------------------------------------------------------- 1 | main: 2 | dot -Tsvg -O x86-cc-stack.dot 3 | dot -Tsvg -O x86-cc-rsp.dot 4 | dot -Tsvg -O x86-cc-regs.dot 5 | dot -Tpng -O x86-cc-stack.dot 6 | dot -Tpng -O x86-cc-rsp.dot 7 | dot -Tpng -O x86-cc-regs.dot 8 | -------------------------------------------------------------------------------- /slides/x86/64bit/Makefile.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Makefile 10 | 11 | 12 |
main:
13 | 	dot -Tsvg -O x86-cc-stack.dot
14 | 	dot -Tsvg -O x86-cc-rsp.dot
15 | 	dot -Tsvg -O x86-cc-regs.dot
16 | 	dot -Tpng -O x86-cc-stack.dot
17 | 	dot -Tpng -O x86-cc-rsp.dot
18 | 	dot -Tpng -O x86-cc-regs.dot
19 | 
20 | 21 | 22 | -------------------------------------------------------------------------------- /tutorials/01-intro-unix/emacs-meta-command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/01-intro-unix/emacs-meta-command.png -------------------------------------------------------------------------------- /tutorials/01-intro-unix/emacs-on-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/01-intro-unix/emacs-on-open.png -------------------------------------------------------------------------------- /tutorials/01-intro-unix/emacs-with-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/01-intro-unix/emacs-with-code.png -------------------------------------------------------------------------------- /tutorials/02-gdb/prog1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | void my_subroutine() { 5 | cout << "Hello world" << endl; 6 | } 7 | 8 | int main() { 9 | int x = 4; 10 | int *p = NULL; 11 | my_subroutine(); 12 | *p = 3; 13 | cout << x << ", " << *p << endl; 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /tutorials/02-lldb/prog1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | void my_subroutine() { 5 | cout << "Hello world" << endl; 6 | } 7 | 8 | int main() { 9 | int x = 4; 10 | int *p = NULL; 11 | my_subroutine(); 12 | *p = 3; 13 | cout << x << ", " << *p << endl; 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/arc/unixtut.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/arc/unixtut.tar.gz -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/arc/unixtut.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/arc/unixtut.zip -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/file1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/file1.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/arrow.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/box_bottom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/box_bottom.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/box_top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/box_top.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/gnome-window.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/gnome-window.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/home.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/home.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/left.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/linux-penguin-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/linux-penguin-small.png -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/right.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/unix-plate2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/unix-plate2.jpg -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/unix-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/unix-tree.png -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/unix-xterm0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/unix-xterm0.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/unix-xterm1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/unix-xterm1.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/media/unix-xterm2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/media/unix-xterm2.gif -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/science.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/science.txt -------------------------------------------------------------------------------- /tutorials/03-04-more-unix/units-1.74.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/03-04-more-unix/units-1.74.tar.gz -------------------------------------------------------------------------------- /tutorials/05-make/.gitignore: -------------------------------------------------------------------------------- 1 | pizza/pizza 2 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/05-make/pizza.zip -------------------------------------------------------------------------------- /tutorials/05-make/pizza/cheese.cpp: -------------------------------------------------------------------------------- 1 | #include "cheese.h" 2 | 3 | Cheese::Cheese() { 4 | quantity=0; 5 | } 6 | 7 | Cheese::Cheese(int amount) { 8 | quantity=amount; 9 | } 10 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/cheese.h: -------------------------------------------------------------------------------- 1 | #ifndef CHEESE_H 2 | #define CHEESE_H 3 | class Cheese { 4 | private: 5 | int quantity; 6 | public: 7 | Cheese(); 8 | Cheese(int amount); 9 | }; 10 | #endif 11 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/mushrooms.cpp: -------------------------------------------------------------------------------- 1 | #include "mushrooms.h" 2 | 3 | Mushrooms::Mushrooms() { 4 | quantity=0; 5 | } 6 | 7 | Mushrooms::Mushrooms(int amount) { 8 | quantity=amount; 9 | } 10 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/mushrooms.h: -------------------------------------------------------------------------------- 1 | #ifndef MUSHROOMS_H 2 | #define MUSHROOMS_H 3 | class Mushrooms { 4 | private: 5 | int quantity; 6 | public: 7 | Mushrooms(); 8 | Mushrooms(int amount); 9 | }; 10 | #endif 11 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/pepperoni.cpp: -------------------------------------------------------------------------------- 1 | #include "pepperoni.h" 2 | 3 | Pepperoni::Pepperoni() { 4 | quantity=0; 5 | } 6 | 7 | Pepperoni::Pepperoni(int amount) { 8 | quantity=amount; 9 | } 10 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/pepperoni.h: -------------------------------------------------------------------------------- 1 | #ifndef PEPPERONI_H 2 | #define PEPPERONI_H 3 | class Pepperoni { 4 | private: 5 | int quantity; 6 | public: 7 | Pepperoni(); 8 | Pepperoni(int amount); 9 | }; 10 | #endif 11 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/peppers.cpp: -------------------------------------------------------------------------------- 1 | #include "peppers.h" 2 | 3 | Peppers::Peppers() { 4 | quantity=0; 5 | } 6 | 7 | Peppers::Peppers(int amount) { 8 | quantity=amount; 9 | } 10 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/peppers.h: -------------------------------------------------------------------------------- 1 | #ifndef PEPPERS_H 2 | #define PEPPERS_H 3 | class Peppers { 4 | private: 5 | int quantity; 6 | public: 7 | Peppers(); 8 | Peppers(int amount); 9 | }; 10 | #endif 11 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/pizza.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include "pizzadough.h" 4 | #include "tomatosauce.h" 5 | #include "toppings.h" 6 | 7 | int main() { 8 | //PizzaDough(Portion of pizza dough) 9 | PizzaDough dough(1); 10 | //TomatoSauce(Portion of tomato sauce) 11 | TomatoSauce sauce(5); 12 | //Toppings(Portion of cheese, Portion of mushrooms, Portion of peppers, Portion of pepperoni) 13 | Toppings toppings(8,20,20,20); 14 | cout<<"This is a pizza" << endl; 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/pizzadough.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include "pizzadough.h" 4 | 5 | PizzaDough::PizzaDough(int amount) { 6 | quantity=amount; 7 | } 8 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/pizzadough.h: -------------------------------------------------------------------------------- 1 | #ifndef PIZZADOUGH_H 2 | #define PIZZADOUGH_H 3 | class PizzaDough { 4 | private: 5 | int quantity; 6 | public: 7 | PizzaDough(int amount); 8 | }; 9 | #endif 10 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/tomatosauce.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include "tomatosauce.h" 4 | 5 | TomatoSauce::TomatoSauce(int amount) { 6 | quantity=amount; 7 | } 8 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/tomatosauce.h: -------------------------------------------------------------------------------- 1 | #ifndef TOMATOSAUCE_H 2 | #define TOMATOSAUCE_H 3 | class TomatoSauce { 4 | private: 5 | int quantity; 6 | public: 7 | TomatoSauce(int amount); 8 | }; 9 | #endif 10 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/toppings.cpp: -------------------------------------------------------------------------------- 1 | #include "toppings.h" 2 | 3 | Toppings::Toppings(int cheeseAmount, int mushroomsAmount, int peppersAmount, int pepperoniAmount) { 4 | cheese=new Cheese(cheeseAmount); 5 | mushrooms=new Mushrooms(mushroomsAmount); 6 | peppers=new Peppers(peppersAmount); 7 | pepperoni=new Pepperoni(pepperoniAmount); 8 | } 9 | 10 | Toppings:: ~Toppings() { 11 | delete cheese; 12 | delete mushrooms; 13 | delete peppers; 14 | delete pepperoni; 15 | } 16 | -------------------------------------------------------------------------------- /tutorials/05-make/pizza/toppings.h: -------------------------------------------------------------------------------- 1 | #ifndef TOPPINGS_H 2 | #define TOPPINGS_H 3 | 4 | #include "cheese.h" 5 | #include "mushrooms.h" 6 | #include "peppers.h" 7 | #include "pepperoni.h" 8 | 9 | 10 | class Toppings { 11 | private: 12 | Cheese* cheese; 13 | Mushrooms* mushrooms; 14 | Peppers* peppers; 15 | Pepperoni* pepperoni; 16 | public: 17 | Toppings(int cheeseAmount, int mushroomsAmount, int peppersAmount, int pepperoniAmount); 18 | ~Toppings(); 19 | }; 20 | #endif 21 | -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/1.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/120px-Emblem-diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/120px-Emblem-diamond.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/120px-Go-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/120px-Go-next.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/24px-00_percents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/24px-00_percents.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/40px-Book_important2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/40px-Book_important2.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/CloseWindow19x19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/CloseWindow19x19.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/checkLoggedIn.js: -------------------------------------------------------------------------------- 1 | /* Not centrally logged in */ 2 | var t = new Date();t.setTime( t.getTime() + 86400000 );if ( 'localStorage' in window ) {localStorage.setItem( 'CentralAuthAnon', t.getTime() );} else {document.cookie = 'CentralAuthAnon=1; expires=' + t.toGMTString() + '; path=/';} -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/geoiplookup.js: -------------------------------------------------------------------------------- 1 | Geo = {"city":"Charlottesville","country":"US","lat":"38.032902","lon":"-78.513702","IP":"128.143.63.95"} -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/index_002.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hide prefix in category 3 | * 4 | * @source: http://www.mediawiki.org/wiki/Snippets/Hide_prefix_in_category 5 | * @rev: 2 6 | * @author: Krinkle 7 | */ 8 | 9 | $(document).ready( function() { 10 | var prefix = $( '#mw-cat-hideprefix' ).text(); 11 | if ( $.trim( prefix ) === '' ) { 12 | prefix = mw.config.get( 'wgTitle' ) + '/'; 13 | } 14 | $( '#mw-pages' ).add( '#mw-subcategories' ).find( 'a' ).text( function( i, val ) { 15 | return val.replace( new RegExp( '^' + $.escapeRE( prefix ) ), '' ); 16 | }); 17 | }); -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/index_005.js: -------------------------------------------------------------------------------- 1 | jQuery( function() { 2 | var pagename = mw.config.get( 'wgPageName' ); 3 | // Main Page 4 | if ( pagename == 'Main_Page' || pagename == 'Talk:Main_Page' ) { 5 | $('#ca-nstab-main a').text( 'Main Page' ); 6 | // Wikijunior 7 | } else if ( pagename == 'Wikijunior' || pagename == 'Talk:Wikijunior' ) { 8 | $('#ca-nstab-main a').text( 'Wikijunior' ); 9 | // Cookbook:Table of Contents 10 | } else if ( pagename == 'Cookbook:Table_of_Contents' || pagename == 'Cookbook_talk:Table_of_Contents' ) { 11 | $('#ca-nstab-cookbook a').text( 'Cookbook' ); 12 | } 13 | }); -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/index_012.js: -------------------------------------------------------------------------------- 1 | function change_displaytitle() 2 | { 3 | var text = $("#displaytitle").attr('title'), what; 4 | 5 | if ( text ) { 6 | what = $("#ca-nstab-" + ( mw.config.get('wgCanonicalNamespace').toLowerCase() || 'main' ) ); 7 | what.find('a').text(text); 8 | } 9 | } 10 | 11 | $(document).ready(change_displaytitle); -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/index_015.js: -------------------------------------------------------------------------------- 1 | // 2 | // Force short review box to be on its own line. 3 | 4 | $(document).ready( function() { 5 | $j('.flaggedrevs_short').wrap('
'); 6 | }); 7 | 8 | // -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/poweredby_mediawiki_88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/poweredby_mediawiki_88x31.png -------------------------------------------------------------------------------- /tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/wikimedia-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/06-07-bash-scripting/bash-shell-scripting-from-wikibooks_files/wikimedia-button.png -------------------------------------------------------------------------------- /tutorials/11-doxygen/graph-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/11-doxygen/graph-1.png -------------------------------------------------------------------------------- /tutorials/11-doxygen/graph-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/11-doxygen/graph-2.png -------------------------------------------------------------------------------- /tutorials/11-doxygen/graph-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/11-doxygen/graph-3.png -------------------------------------------------------------------------------- /tutorials/11-doxygen/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/11-doxygen/screenshot.png -------------------------------------------------------------------------------- /tutorials/12-objc/helloworld.m: -------------------------------------------------------------------------------- 1 | #import 2 | int main (void) { 3 | printf ("Hello world!\n"); 4 | return 0; 5 | } 6 | 7 | -------------------------------------------------------------------------------- /tutorials/unixtut.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/tutorials/unixtut.tar.gz -------------------------------------------------------------------------------- /utils/.gitignore: -------------------------------------------------------------------------------- 1 | markdown 2 | -------------------------------------------------------------------------------- /utils/Makefile: -------------------------------------------------------------------------------- 1 | markdown: 2 | g++ markdown.cpp -o markdown -lmarkdown 3 | -------------------------------------------------------------------------------- /utils/Makefile.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Makefile 10 | 11 | 12 |
markdown:
13 | 	g++ markdown.cpp -o markdown -lmarkdown
14 | 
15 | 16 | 17 | -------------------------------------------------------------------------------- /utils/format-source-files.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # take every path in the repo ending in .cpp, .c, or .h, ignoring those under book 4 | astyle --style=attach --indent=spaces=4 --indent-switches \ 5 | --suffix=none --formatted --recursive '*.cpp,*.c,*.h' --exclude='book' 6 | -------------------------------------------------------------------------------- /utils/highlight-source-files.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # take every path in the repo ending in .c, .cpp, .h, or Makefile, ignoring those under book 4 | for infile in `find . -type f \( -name '*.c' -or -name '*.cpp' -or\ 5 | -name '*.h' -or -name 'Makefile' \) | grep -v 'book'`; do 6 | source-highlight --doc $infile --title `basename $infile` --out-format html5 --quiet --gen-version 7 | done 8 | 9 | # for Assembly files, treat them as Assembly and not S 10 | for infile in `find . -type f -name '*.s' | grep -v 'book'`; do 11 | source-highlight --doc $infile --title `basename $infile` --out-format html5 --quiet --gen-version --lang-def 'asm.lang' 12 | done 13 | -------------------------------------------------------------------------------- /uva/.gitignore: -------------------------------------------------------------------------------- 1 | unix-honor-pledge.pdf 2 | *.aux 3 | *.log 4 | tas-no-bios.* 5 | -------------------------------------------------------------------------------- /uva/Makefile: -------------------------------------------------------------------------------- 1 | main: 2 | cd .. && make 3 | -------------------------------------------------------------------------------- /uva/enrollment.data: -------------------------------------------------------------------------------- 1 | # 2 | 1 69 f07 3 | 2 78 s08 4 | 3 52 f08 5 | 4 100 s09 6 | 5 61 f09 7 | 6 115 s10 8 | 7 92 f10 9 | 8 136 s11 10 | 9 91 f11 11 | 10 144 s12 12 | 11 158 f12 13 | 12 176 s13 14 | 13 211 f13 15 | 14 213 s14 16 | 15 169 f14 17 | 16 216 s15 18 | 17 249 f15 19 | 18 264 s16 20 | 19 275 f16 21 | 20 300 s17 22 | 21 310 f17 23 | 22 345 s18 24 | 23 445 f18 25 | 24 384 s19 26 | 25 403 f19 27 | 26 364 s20 28 | 27 512 f20 29 | 28 486 s21 30 | 29 472 f21 31 | 30 393 s22 32 | 31 84 f22 33 | -------------------------------------------------------------------------------- /uva/grades.md: -------------------------------------------------------------------------------- 1 | Grading Explanations, Spring 2022 2 | ================================= 3 | 4 | [Go up to the CS 2150 page](index.html) ([md](index.md)) 5 | 6 |   7 | 8 | 9 | As per the [syllabus](syllabus.html) ([md](syllabus.md)), the grades were computed by: 10 | 11 | - Laboratories (45%) 12 | - Two midterms (30%; 15% each) 13 | - Final exam (25%) 14 | 15 | ## The Process of Grade Determination 16 | 17 | ![](images/magic-8-ball.png) 18 | -------------------------------------------------------------------------------- /uva/images/introduction/Floryan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/Floryan.jpg -------------------------------------------------------------------------------- /uva/images/introduction/Nguyen.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/Nguyen.JPG -------------------------------------------------------------------------------- /uva/images/introduction/aaronbloomfield.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/aaronbloomfield.jpg -------------------------------------------------------------------------------- /uva/images/introduction/contacting-flowchart-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/contacting-flowchart-small.png -------------------------------------------------------------------------------- /uva/images/introduction/contacting-flowchart-with-mrf8t-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/contacting-flowchart-with-mrf8t-small.png -------------------------------------------------------------------------------- /uva/images/introduction/contacting-flowchart-with-mrf8t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/contacting-flowchart-with-mrf8t.png -------------------------------------------------------------------------------- /uva/images/introduction/contacting-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/contacting-flowchart.png -------------------------------------------------------------------------------- /uva/images/introduction/levels-of-abstraction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/levels-of-abstraction.png -------------------------------------------------------------------------------- /uva/images/introduction/smiley.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/smiley.jpg -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2014-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2014-student.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2014-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2014-uva.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2015-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2015-student.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2015-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2015-uva.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2016-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2016-student.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2016-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2016-uva.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2017-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2017-student.png -------------------------------------------------------------------------------- /uva/images/introduction/spring-break-2017-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/spring-break-2017-uva.png -------------------------------------------------------------------------------- /uva/images/introduction/thanksgiving-2014-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/thanksgiving-2014-student.png -------------------------------------------------------------------------------- /uva/images/introduction/thanksgiving-2014-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/thanksgiving-2014-uva.png -------------------------------------------------------------------------------- /uva/images/introduction/thanksgiving-2015-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/thanksgiving-2015-student.png -------------------------------------------------------------------------------- /uva/images/introduction/thanksgiving-2015-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/thanksgiving-2015-uva.png -------------------------------------------------------------------------------- /uva/images/introduction/thanksgiving-2016-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/thanksgiving-2016-student.png -------------------------------------------------------------------------------- /uva/images/introduction/thanksgiving-2016-uva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/introduction/thanksgiving-2016-uva.png -------------------------------------------------------------------------------- /uva/images/magic-8-ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/images/magic-8-ball.png -------------------------------------------------------------------------------- /uva/lectures/.gitignore: -------------------------------------------------------------------------------- 1 | resize/ 2 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec02/helloworld.cpp: -------------------------------------------------------------------------------- 1 | // C++ 2 | #include 3 | using namespace std; 4 | 5 | int max (int a, int b); 6 | 7 | int main() { 8 | cout << "Hello World" << endl; 9 | 10 | cout << max (3, 4) << endl; 11 | 12 | return 0; 13 | } 14 | 15 | 16 | int max (int a, int b) { 17 | if ( a > b ) 18 | return a; 19 | else 20 | return b; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec03/item.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | #include "item.h" 5 | 6 | int Item::x = 9; 7 | 8 | int Item::getID() const { 9 | return id; 10 | } 11 | 12 | 13 | void Item::setID (int i) { 14 | id = i; 15 | } 16 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec03/item.h: -------------------------------------------------------------------------------- 1 | #ifndef ITEM_H 2 | #define ITEM_H 3 | 4 | //#include 5 | //using namespace std; 6 | 7 | class Item { 8 | 9 | public: 10 | int getID() const; 11 | void setID (int i); 12 | 13 | 14 | private: 15 | int id; 16 | const float f = 9.9; 17 | double price; 18 | static int x; 19 | }; 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec03/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "item.h" 4 | 5 | using namespace std; 6 | 7 | 8 | int main() { 9 | cout << "Hello world" << endl; 10 | Item i; // = new Item(); 11 | i.setID (1234); 12 | cout << "ID of i: " << i.getID() << endl; 13 | Item j = i; 14 | cout << "ID of i: " << i.getID() << endl; 15 | cout << "ID of j: " << j.getID() << endl; 16 | j.setID (7); 17 | cout << "ID of i: " << i.getID() << endl; 18 | cout << "ID of j: " << j.getID() << endl; 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec05/dynmem.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int main() { 5 | int x[6]; 6 | int i; 7 | 8 | cout << "enter 6 integer values:" << endl; 9 | for ( i = 0; i < 6; i++ ) 10 | cin >> x[i]; 11 | 12 | for ( i = 0; i < 6; i++ ) 13 | cout << x[i] << endl; 14 | 15 | int* ages = new int[5]; 16 | int a[10]; 17 | 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec06/danglingptrs.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class ListNode { 5 | public: 6 | ListNode* next, *prev; 7 | int value; 8 | }; 9 | 10 | int main() { 11 | 12 | ListNode l; 13 | ListNode* n = new ListNode(); 14 | 15 | l.value = 100; 16 | (*n).value = 200; 17 | n->value = 200; 18 | 19 | cout << n->value << endl; 20 | 21 | delete n; 22 | 23 | cout << "dangling pointer: " << n->value << endl; 24 | 25 | n = nullptr; 26 | n = &l; 27 | 28 | cout << n->value << endl; 29 | 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec06/parameters.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | void foo (int* a) { 5 | *a = 5; 6 | } 7 | 8 | int main() { 9 | int x = 10; 10 | foo (&x); 11 | cout << x << endl; 12 | return 0; 13 | } 14 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec16/pseudo-code.txt: -------------------------------------------------------------------------------- 1 | fall 2018, exam 2, question 8 2 | 3 | 4 | easy, but modifies tree: 5 | 6 | 1. find max of tree, put into $m$ ($m=14$) 7 | 2. delete $m$ from tree 8 | 3. find max of updated tree, put into $a$ ($a=12$) 9 | 4. insert $m$ back into tree 10 | 11 | 12 | more better algorithm: 13 | 14 | if ( numNodes <= 1 ) 15 | throw error 16 | start at root 17 | find max value $m$ 18 | if ( m has no left subtree ) 19 | return m's parent's value 20 | if ( m has a left subtree ) 21 | return findMax of left subtree 22 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec36/.gitignore: -------------------------------------------------------------------------------- 1 | bfs 2 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec36/Makefile: -------------------------------------------------------------------------------- 1 | main: 2 | clang++ -g -fsanitize=address -Wall -o bfs bfs.cpp 3 | 4 | run: 5 | ./bfs < bfs.in 6 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec36/bfs.in: -------------------------------------------------------------------------------- 1 | 10 2 | 14 3 | 0 1 4 | 0 2 5 | 1 3 6 | 1 4 7 | 2 1 8 | 2 3 9 | 2 5 10 | 3 6 11 | 4 6 12 | 4 7 13 | 5 4 14 | 6 7 15 | 1 8 16 | 2 9 17 | 2 18 | 8 19 | 9 20 | 21 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2020/lec37/3x3-grid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2020/lec37/3x3-grid.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-09-24 14.52.12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-09-24 14.52.12.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-09-29 14.49.02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-09-29 14.49.02.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-09-29 14.49.10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-09-29 14.49.10.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-10-13 13.57.26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-10-13 13.57.26.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-10-15 14.53.43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-10-15 14.53.43.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-10-18 13.51.27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-10-18 13.51.27.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-10-20 13.53.21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-10-20 13.53.21.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-10-29 14.55.34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-10-29 14.55.34.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-05 13.57.59.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-05 13.57.59.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-08 13.55.41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-08 13.55.41.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-17 13.54.22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-17 13.54.22.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-19 13.09.09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-19 13.09.09.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-19 13.28.02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-19 13.28.02.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-19 13.49.54.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-19 13.49.54.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-22 13.32.04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-22 13.32.04.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-22 14.13.47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-22 14.13.47.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-11-29 13.42.20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-11-29 13.42.20.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-fall-2021/2021-12-01 14.51.24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/lectures/bloomfield-fall-2021/2021-12-01 14.51.24.jpg -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec02/helloworld.cpp: -------------------------------------------------------------------------------- 1 | // Hello World! 2 | 3 | #include 4 | using namespace std; 5 | 6 | 7 | int max (int a, int b); 8 | 9 | 10 | int main() { 11 | int x = 7; 12 | cout << "Hello world" << endl; 13 | 14 | cout << max (1, 2) << endl; 15 | cout << x << endl; 16 | 17 | if ( (x = 0) ) // I is a bad programmer 18 | cout << "true" << endl; 19 | else 20 | cout << "false" << endl; 21 | 22 | cout << x << endl; 23 | return 0; 24 | } 25 | 26 | 27 | int max (int a, int b) { 28 | if ( a > b ) 29 | return a; 30 | else 31 | return b; 32 | } 33 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec03/item.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | #include "item.h" 5 | 6 | const double Item::pi = 3.14159265358979; 7 | 8 | int Item::getID() const { 9 | return id; 10 | } 11 | 12 | void Item::setID (int i) { 13 | id = i; 14 | } 15 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec03/item.h: -------------------------------------------------------------------------------- 1 | #ifndef ITEM_H 2 | #define ITEM_H 3 | 4 | class Item { 5 | 6 | public: 7 | int getID() const; 8 | void setID (int i); 9 | 10 | private: 11 | int id; 12 | double price; 13 | const float f = 9.9; 14 | static const double pi; 15 | }; 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec03/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | #include "item.h" 5 | 6 | int main() { 7 | cout << "Hello world" << endl; 8 | Item i; 9 | i.setID (1234); 10 | cout << "ID of i: " << i.getID() << endl; 11 | Item j = i; 12 | cout << "ID of i: " << i.getID() << endl; 13 | cout << "ID of j: " << j.getID() << endl; 14 | j.setID (7); 15 | cout << "ID of i: " << i.getID() << endl; 16 | cout << "ID of j: " << j.getID() << endl; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec05/notswap.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | void swap (int x, int y) { 5 | int temp = x; 6 | x = y; 7 | y = temp; 8 | } 9 | 10 | int main() { 11 | int a = 0; 12 | int b = 3; 13 | cout << "Before swap(): a: " << a << ", b: " 14 | << b << endl; 15 | swap (b, a); 16 | cout << "After swap(): a: " << a << ", b: " 17 | << b << endl; 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec06/stuff.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class Foo { 5 | public: 6 | int x = 7; 7 | Foo() { 8 | int x = 77; 9 | cout << x << endl; 10 | cout << this->x << endl; 11 | } 12 | Foo (int x) { 13 | this->x = x; 14 | cout << x << endl; 15 | } 16 | }; 17 | 18 | int main() { 19 | Foo f; 20 | //Foo g(); 21 | Foo h (3); 22 | 23 | Foo* i = new Foo; 24 | Foo* j = new Foo(); 25 | Foo* k = new Foo (3); 26 | 27 | return 0; 28 | } 29 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec16/exam2-f18-q8.txt: -------------------------------------------------------------------------------- 1 | Fall 2018, exam 2, question 8 2 | 3 | 4 | Easier way to do this: 5 | 6 | 1. find maximum element $m$ 7 | 2. remove maximum $m$ 8 | 3. find new maximum element $a$ 9 | 4. insert $m$ back into tree 10 | 11 | 12 | More better algorithm: 13 | 14 | if numNodes <= 1: 15 | throw error 16 | find max value $m$ 17 | - two possible cases: $m$ has no children (leaf) or 1 (left) child 18 | if $m$ has no children (is a leaf): 19 | - return parent of $m$ 20 | if $m$ has one (left) child: 21 | - return max of left subtree 22 | 23 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec20/Makefile: -------------------------------------------------------------------------------- 1 | CXX = clang++ -Wall -Wno-unused-private-field 2 | OFILES = List.o ListItr.o ListNode.o ListTest.o 3 | 4 | .PHONY: clean 5 | 6 | main: $(OFILES) 7 | $(CXX) $(OFILES) 8 | 9 | clean: 10 | /bin/rm -f *.o *~ a.out 11 | 12 | # output from `clang++ -MM *.cpp` 13 | List.o: List.cpp List.h ListNode.h ListItr.h 14 | ListItr.o: ListItr.cpp ListItr.h ListNode.h List.h 15 | ListNode.o: ListNode.cpp ListNode.h 16 | ListTest.o: ListTest.cpp List.h ListNode.h ListItr.h 17 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec36/.gitignore: -------------------------------------------------------------------------------- 1 | bfs 2 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec36/Makefile: -------------------------------------------------------------------------------- 1 | main: 2 | clang++ -g -fsanitize=address -Wall -o bfs bfs.cpp 3 | 4 | run: 5 | ./bfs < bfs.in 6 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec36/bfs.in: -------------------------------------------------------------------------------- 1 | 10 2 | 14 3 | 0 1 4 | 0 2 5 | 1 3 6 | 1 4 7 | 2 1 8 | 2 3 9 | 2 5 10 | 3 6 11 | 4 6 12 | 4 7 13 | 5 4 14 | 6 7 15 | 1 8 16 | 2 9 17 | 1 18 | 5 19 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec38/kruskals.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image overlay 5 | 27 | 28 | 29 |
30 | 31 | 32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /uva/lectures/bloomfield-spring-2021/lec38/prims.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image overlay 5 | 27 | 28 | 29 |
30 | 31 | 32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /uva/lectures/index.md: -------------------------------------------------------------------------------- 1 | Lecture content, spring 2022 2 | ============================ 3 | 4 | [Go up to the CS 2150 page](../index.html) ([md](../index.md)) 5 | 6 | This page contains the material discussed during lecture times, and really just consists of pictures of the chalkboard. 7 | 8 | ### Lecture period content 9 | 10 | None yet! 11 | -------------------------------------------------------------------------------- /uva/old/grades-fall-2021.md: -------------------------------------------------------------------------------- 1 | Grading Explanations, Fall 2021 2 | ================================= 3 | 4 | [Go up to the CS 2150 page](index.html) ([md](index.md)) 5 | 6 |   7 | 8 | 9 | As per the [syllabus](syllabus.html) ([md](syllabus.md)), the grades were computed by: 10 | 11 | - Laboratories (45%) 12 | - Two midterms (30%; 15% each) 13 | - Final exam (25%) 14 | 15 | ## The Process of Grade Determination 16 | 17 | ![](images/magic-8-ball.png) 18 | -------------------------------------------------------------------------------- /uva/old/grades-spring-2021.md: -------------------------------------------------------------------------------- 1 | Grading Explanations, Spring 2021 2 | ================================= 3 | 4 | [Go up to the CS 2150 page](index.html) ([md](index.md)) 5 | 6 |   7 | 8 | 9 | As per the [syllabus](syllabus.html) ([md](syllabus.md)), the grades were computed by: 10 | 11 | - Laboratories (70%) 12 | - Final exam (30%) 13 | 14 | ## The Process of Grade Determination 15 | 16 | ![](../images/magic-8-ball.png) 17 | -------------------------------------------------------------------------------- /uva/old/grades-spring-2022.md: -------------------------------------------------------------------------------- 1 | Grading Explanations, Spring 2022 2 | ================================= 3 | 4 | [Go up to the CS 2150 page](index.html) ([md](index.md)) 5 | 6 |   7 | 8 | 9 | As per the [syllabus](syllabus.html) ([md](syllabus.md)), the grades were computed by: 10 | 11 | - Laboratories (45%) 12 | - Two midterms (30%; 15% each) 13 | - Final exam (25%) 14 | 15 | ## The Process of Grade Determination 16 | 17 | ![](../images/magic-8-ball.png) 18 | -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-f14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-f14.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-f15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-f15.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-f17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-f17.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-f18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-f18.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-f19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-f19.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-s14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-s14.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-s15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-s15.pdf -------------------------------------------------------------------------------- /uva/old/unix-honor-pledge-s16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbloomfield/pdr/c71b0649d2b3cb6e0cf9f91aec09a7666ae7471c/uva/old/unix-honor-pledge-s16.pdf --------------------------------------------------------------------------------