Search code examples
architecturetheory

Are these useful computer science courses?


Besides design/analysis and software engineering courses, I also have to take "computer architecture" courses. Should I avoid taking either of these? What are they useful for or are they useless?

Computer architecture: Boolean algebra, data representation, combinational circuitsand minimization, sequential circuits. Organization of computer systems and design of system elements, including ALU, memories and interfaces. Some assembly language programming. High performance computer architectures, including massively parallel SIMD and MIMD machines and distributed architectures.

As well as computer theory classes which include: Recursion, regular sets, regular expressions, finite automata, context-free grammars, pushdown automata. uring machines, Post machines, Post's theorem, Minsky's theorem. Determinism and non-determinism. Undecidability, the halting problem. Recursive function theory.


Solution

  • If you're going to do any serious programming you will most likely use at some point recursion, regular expressions, finite/pushdown automata. Although the class is probably theoretical you will get to understand the basic ideas on what can be computed and what cannot. Every computer that we use today (except for quantum computers) is essentially a Turing machine.

    The computer architecture is useful to understand how a computer is built, but if you're going to do high level programming you will not need to know exactly those details. If you plan to work some day on the Linux kernel, write drivers or automation components then you need to know that stuff.