CSC 322 Lab 2
Objectives
- Improve C and linux skills
- Work with binary trees
- Implement algorithms to encode and decode via huffman codes
- Work with command line arguments
- Learn to using debugging with command line argument
Problem
Write a C program (using at least one major binary tree) to implement huffman encoding/decoding.
Note: there are many ways (and very sufficient and/or succinct algorithms) to do this. These are
NOT the allowable ways to do this. You MUST use the algorithms covered in class! The goals are to improve your C skills and learn about binary trees
Details
- Partial code and all .o files can be found in the github classroom assignment. (csc322S2025HuffmanProvided)
- You are to implement either encode.c or decode.c (and list.c). You can implement all three if your want.
- You can use any/all/or none of the .c, .h, makefile, and README as you wish.
- I HIGHLY recommend you work on one file only and use the other .o files (that do not have the .c code) to get that one file working.
- If you are doing that, be sure to comment out the lines to make the .o files you are using in the makefile for now. This will allow my code to work for sections you have yet to write
- See the README file for instructions in running the executable
- Guesstimate how long this lab will take and record it.
- Write out the algorithm for the problem. Do NOT use a UML diagram! This is not object oriented programming!
- Create a Software Development Report
- include a discussion on the fragility of your program in the security report
- Lessons learned will be important
- Create a tar ball with all .c, .o, makefile, and SDR and submit it via Canvas
Challenges
- implement any/all of the future improvements found in the README file