This homework will be worth a total of 50 points.

There will be an autograder, AND a manual-grading part for this homework. You are encouraged to resubmit until you earn a higher score on the auto-grading part before the due date. However, we will only do manual grading once, after the late period is over.

Auto-grading part (42 points)

Warning

You should not use this autograder as your primary test mechanism, but it will provide some immediate feedback. In fact, your submissions will be rate-limited so that you can only submit to the autograder 5 times every hour. This is to help encourage you to test locally before relying on the autograder!

You should test that your wordcount.c can compile and run on Calgary.

Error messages should be sent to stderr, unless otherwise noted. If the error message isn’t prescribed in the assignment, you should choose something reasonable and informative.

Manual-grading part (8 points)

At the top of the file, include a header comment containing your name and UWNetID, the date of code creation, and a concise description of the program’s functionality. A header comment template is included in the wordcount.c starter code.

Include descriptive comments throughout your code to explain the purpose and functionality of different sections. Comments should provide clarity and aid understanding for others.

Use good style, including helper functions and naming conventions. Make sure you declare your functions (prototypes) before defining or using them in the code. Comments should be written above the prototypes and/or above the function definitions themselves.

Code efficiency is important. Minimize unnecessary input/output (I/O) operations. You may consider storing variables as needed, even if more than strictly necessary. Utilize pointers when appropriate for efficient data passing between functions.

Code Interview

As a reminder, HW3 will have an associated Code Interview, during the calendar week after the initial deadline. You will be expected to verbally explain a portion of your program. Please make sure you understand all the components of your program and be prepared to answer questions about your implementation!