Following is a portion of an email I sent to an incoming graduate student in December 2007. He was interested in computer architecture and needed advice regarding courses. Notes: 1. This is just a first step. I plan to add my thoughts on each class when I find the time. 2. This list is not complete. I am aware of some good classes that I have missed mainly because I don't know enough about them. Also, other classes have been added since I wrote this mail. I will update this list when I find time. 3. If you disagree with something, please let me know. ------- A good metric of workload is hours per week. When I say hours/week it just means the average time an average student spends on a class. This varies from week to week and person to person but is a good relative measure**. I would say both 360N and VLSI 1 require 20-25 hours per week each. Lets say 45 hours per week for both. A good workload is 70-90hrs/wk on this scale. Anything beyond 100 is insane. If you plan to work during the semester then don't forget to add those hours to your workload. If you really want to do research in Comp Arch there are some core classes which you must take. hrs/wk * EE360N (Patt) 20-25 * EE382N (Patt, taught Spring 08) 40-45 * Compilers (Grad compilers in CS from Lin or McKinley) 20 * OS (CS372 from Dahlin or Alvisi) 15 * VLSI 2 10 * EPL (Craig Chase) 15-20 * Parallel Comp Arch (Derek Chiou) 15-20 * Some background in Algorithms (EE360C or CS grad algos) 15-20 Following are some other useful courses: * A class in distributed computing (Garg, Misra, Alvisi) 10-15 * Logic Synthesis (Adnan Aziz) 15 * SW for High performance computing (Chase) TBD * VLSI 1 20 * Stats (EE390C) 5-10 There are two good classes being offered this spring which may not be offered again for a few years. They are: Logic synthesis and SW for HPC. Beware that you will need sufficient background for both of them. Logic Synthesis requires strong logic design skills and knowledge of algorithms and data structures. SW for HPC will require strong programming skills and perhaps some understanding of basic OS concepts. Good luck. Aater **I learned this from Prof. Brian Evans