Verified Commit 90879c4b authored by Siddharth S. (Sid) Kurella's avatar Siddharth S. (Sid) Kurella
Browse files

Flesh out design doc

parent 336988f7
No related merge requests found
Showing with 79 additions and 0 deletions
+79 -0
# Project 1 (Zip) Design Document #
--------
#### Part 1: ZIP Files ####
- Briefly describe the data structures you used, if any, to manage
the ZIP file format structures.<pre>
**TODO**: Answer this question
</pre><br>
- What approach to reading and writing files from disk did you take?
Why did you choose this approach?<pre>
**TODO**: Answer this question
</pre><br>
- How does your unzip program find the start of the file data?<pre>
**TODO**: Answer this question
</pre><br>
- Does your solution have any error handling capabilities? What happens
when a user provides an invalid or non-existant file?
What happens if a file read or write fails?<pre>
**TODO**: Answer this question
</pre><br>
#### Part 2: Inflating DEFLATE Streams ####
- How does your program handle reading sequences of bits from the DEFLATE
stream (keeping in mind that they may not be byte-aligned)?
Give an overview of any data structures or abstractions you used, and why.
<pre>
**TODO**: Answer this question
</pre><br>
- How does your program decompress DEFLATE streams (that may include
both fixed and dynamic blocks)? Provide a brief overview of the program-flow
involved in the decompression. Include the names of important functions and
explain their purpose.<pre>
**TODO**: Answer this question
</pre><br>
- How did you compute and store dynamic Huffman codes? What data structures
did you use and what is the time complexity of matching a single symbol
in your implementation? (Matching a symbol is the operation of reading some
bits from the stream until a valid code is encountered and then decoding
which symbol the code represents.)
Why did you choose to store them in this way?<pre>
**TODO**: Answer this question
</pre><br>
- How did you implement repeating already-decompressed bytes when you
encountered an LZ77 length-distance pair?
Could you have implemented it more efficiently or elegantly?<pre>
**TODO**: Answer this question
</pre><br>
#### Part 3: Compressing files with DEFLATE ####
- How did you implement an efficient search for possible repetitions when
implementing LZ77 compression? Why did you implement it this way?
Could your implementation be more efficient or elegant?<pre>
**TODO**: Answer this question
</pre><br>
- How did you implement converting the literal / LZ77 symbols into their
Huffman code equivalents? Why did you implement it this way?
Could your implementation be more efficient or elegant?<pre>
**TODO**: Answer this question
</pre><br>
#### Part 4: Combining all the pieces ####
- When it came time to put all the parts of the assignment together, were
there any major architectural issues that needed to be resolved before
everything would work together? Did you need to rework portions of the
previous parts? If so, what could have been done differently to avoid this
in the future?<pre>
**TODO**: Answer this question
</pre><br>
----
#### Logistics ####
- How much time did each partner spend on the project (in hours)?<pre>
**TODO**: Answer this question
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment