At the start of the quarter, we laid out the following learning goals that we hoped to achieve:
Here's a look back at how we worked to achieve these learning goals via the different topics we covered, and why they're important.
How can we use the command line and C to write, compile and run our programs?
How can we write programs with good style, create comprehensive test cases and use tools such as GDB and Valgrind to debug and profile our code?
How can a computer represent integer numbers?
How can a computer represent and manipulate more complex data like text?
How can we effectively manage all types of memory in our programs?
How can we use our knowledge of memory and data representation to write code that works with any data type?
How does a computer interpret and execute C programs?
How do core memory-allocation operations like malloc and free work?
How do we act responsibly in maintaining security, protecting privacy, and ensuring warranted trust in the systems we build and maintain?