The labs for this course:
- Lab 1: Introduction to C++
- Source code
- Lifecycle code: lifecycle.cpp (src)
- Vector code: svtest.cpp (src), svutil.h (src), svutil.cpp (src)
- Linked List code: list.h (src), list.cpp (src)
- Tutorial 1: Introduction to Unix and Tutorial 1: Introduction to Unix: VirtualBox use
- Source code
- Lab 2: Linked Lists
- Source code: ListNode.h (src), List.h (src), ListItr.h (src), ListTest.cpp (src),
- Tutorial 2: LLDB and the necessary prog1.cpp (src) and debug.cpp (src)
- Lab 3: Stacks
- No source code for this lab!
- Tutorial 3: More Unix, part 1, which is the introduction and sections 1-4; this tutorial is originally from here
- Lab 4: Number Representation
- No source code for this lab!
You can get your floating point number, needed for the pre-lab, here- Necessary files: inlab4.doc, radixWorksheet.doc
- These will have to be submitted as PDF files; see How To Convert A File To PDF for details.
- Tutorial 4: More Unix, part 2, which is sections 5-8; this tutorial is originally from here
- Lab 5: Trees
- Source code is all contained in the prelab/, inlab/, and postlab/ directories of the code.zip file
- Pre-lab: TreeCalc.h (src), TreeCalc.cpp (src), TreeNode.cpp (src), TreeNode.h (src), TreeCalcTest.cpp (src).
- In-lab: BinaryNode.h (src), BinaryNode.cpp (src), BinarySearchTree.h (src), BinarySearchTree.cpp (src), BSTPathTest.cpp (src), testfile1.txt, testfile2.txt, testfile3.txt.
- Post-lab: AVLNode.h (src), AVLNode.cpp (src), AVLTree.h (src), AVLTree.cpp (src), AVLPathTest.cpp (src), testfile1.txt, testfile2.txt, testfile3.txt.
- Tutorial 5: make
- Source code is all contained in the prelab/, inlab/, and postlab/ directories of the code.zip file
- Lab 6: Hashing
- Source code: getWordInGrid.cpp (src), primenumber.cpp (src), timer.cpp (src), timer.h (src), timer_test.cpp (src)
- These can also be downloaded all at once via the code.zip file
- The data files in the labs/lab06/data/ directory
- These can also be downloaded all at once via the data.zip file
- The tutorial, for the in-lab, is the first 6 sections (through and including 'exit status') of the Wikibooks article on Bash Shell Scripting
- Source code: getWordInGrid.cpp (src), primenumber.cpp (src), timer.cpp (src), timer.h (src), timer_test.cpp (src)
- Lab 7: IBCM (machine language)
- C++ Source code: bubblesort.cpp (src), counter.cpp (src)
- IBCM source code: summation.ibcm and array-summation.ibcm
- The online emulator is here
- The IBCM book chapter (PDF)
- Lab 8: x86 (assembly), part 1: in 32-bit and 64-bit versions
- 64-bit version of the lab
- Source code: vecsum.s (src), main.cpp (src), Makefile (src), mergeSort.s (src), testMergeSort.cpp (src)
- Readings (which is also the tutorial): the C++/assembly tutorial, which consists of reading x86-64 Machine-Level Programming from CMU
32-bit version of the lab, from previous years
- 64-bit version of the lab
- Lab 9: x86 (assembly), part 2: in 32-bit and 64-bit versions
- 64-bit version of the lab
- Readings: the two x86 book chapters: x86 Assembly and The x86 C Calling Convention
32-bit version of the lab, from previous years- For both labs:
- Source code: timer.cpp (src) and timer.h (src), both of which are from lab 6
- The tutorial, for the post-lab, is the C tutorial; you will need to implement the linkedlist.c program.
- 64-bit version of the lab
- Lab 10: Huffman coding
- Source code
- Binary heap code from the Heaps and Huffman slide set: binary_heap.cpp (src), binary_heap.h (src), heap-test.cpp (src)
- File I/O example: fileio.cpp (src)
- In-lab skeleton code: inlab-skeleton.cpp (src)
- Example encoded and decoded files are in the labs/lab10/examples/ directory, or as one examples.zip file
- Source code
- Lab 11: Graphs
- Source code: middleearth.h (src), middleearth.cpp (src), fileio2.cpp (src), traveling-skeleton.cpp (src)
- Data files: prelab-test-small.txt, prelab-test-full.txt
- The Doxygen tutorial and the necessary files for that: average.cpp (src)
- Lab 12: Conclusion
- Course wrap-up
The tutorial, for the pre-lab, is the Objective C tutorial, for which you will need the helloworld.m (src) file, and you will need to implement the linkedlist.c program.