Did we achieve the goals for this course? What did we learn? COMP251: Computer Architecture John MacCormick
Did we achieve our goals? According to the syllabus, the goals were: – Gain an understanding of the aspects of computer hardware that are most important for effective computer programming – Gain an understanding of the aspects of computer hardware needed for studying computer networks and operating systems – Achieve a high level of technical writing skills – Have fun writing computer programs and playing with some cool simulation tools Did we achieve them? You decide!
What did we learn? We learned a lot of technical stuff about computers, but here are some more high-level lessons that might help you be a better computer scientist: – Numerical computations have important limitations Integers are finite and can overflow Floating point numbers are imprecise – Multi-threaded software requires synchronization And we need to understand instruction sets to see why this is necessary – Efficient software must be aware of the memory hierarchy and storage hierarchy Use sequential access when possible Preserve locality when possible