d2jsp
Log InRegister
d2jsp Forums > Off-Topic > Computers & IT > Programming & Development > Are These Useful Computer Sci Courses?
123Next
Add Reply New Topic New Poll
Member
Posts: 2,769
Joined: Dec 24 2009
Gold: 14.00
Jan 29 2013 01:17am
Besides design/analysis and software engineering courses, I also have to take "computer architecture" and "computer theory". 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.
Turing machines, Post machines, Post's theorem, Minsky's theorem. Determinism and non-determinism. Undecidability, the halting problem. Recursive function theory.
Member
Posts: 28,331
Joined: Jun 9 2007
Gold: 11,700.00
Jan 29 2013 02:25am
depends on what you want to do
the computer architecture curriculum looks very useful for practical applications
Member
Posts: 2,478
Joined: Jan 4 2007
Gold: 7,545.00
Jan 29 2013 07:37am
Both sound like great classes for different reasons.
As the above said, it depends on what you want to do, but if you want to be a programmer, I'm going to tell you now that Recursion and regular expressions are something you should learn.
Member
Posts: 2,769
Joined: Dec 24 2009
Gold: 14.00
Jan 29 2013 01:18pm
Thanks for the good insight guys, yeah I'll take up programming. I was worried I'd waste my time taking either of those.
Member
Posts: 4,605
Joined: Sep 15 2011
Gold: 9,464.00
Jan 29 2013 03:34pm
summary of the material in these classes:
architecture - understanding how computer systems actually work
algorithms - understanding how computer programs are used to solve large-scale problems

what you'll actually learn:
architecture - how to analyze, understand, design, and architect systems (be it hardware, software, or in between)
algorithms - how to analyze the efficiency of software, and how to write efficient software

what you'll use in the field if you become a general-purpose programmer:
architecture - designing and building software systems from the ground up, or more likely, gaining an understanding of a very large, pre-existing codebase and becoming productive within it
algorithms - writing cleaner, faster code

what you'll do if you dive deep into one of these fields:
architecture - work at the lowest-level in the system without actually touching the hardware; design chipsets, CPUs, device drivers; work on operating systems
algorithms - solve very, very hard math problems using computers

This post was edited by irimi on Jan 29 2013 03:36pm
Member
Posts: 2,769
Joined: Dec 24 2009
Gold: 14.00
Jan 29 2013 09:33pm
Quote (irimi @ Jan 29 2013 04:34pm)
summary of the material in these classes:
architecture - understanding how computer systems actually work
algorithms - understanding how computer programs are used to solve large-scale problems

what you'll actually learn:
architecture - how to analyze, understand, design, and architect systems (be it hardware, software, or in between)
algorithms - how to analyze the efficiency of software, and how to write efficient software

what you'll use in the field if you become a general-purpose programmer:
architecture - designing and building software systems from the ground up, or more likely, gaining an understanding of a very large, pre-existing codebase and becoming productive within it
algorithms - writing cleaner, faster code

what you'll do if you dive deep into one of these fields:
architecture - work at the lowest-level in the system without actually touching the hardware; design chipsets, CPUs, device drivers; work on operating systems
algorithms - solve very, very hard math problems using computers


Thanks for the detailed answer, so if I become a general purpose programmer then I'm not wasting my time? I was worried that theory and architecture aren't as relevant to practical programming as software engineering is.
Member
Posts: 28,331
Joined: Jun 9 2007
Gold: 11,700.00
Jan 29 2013 09:43pm
Quote (Foxic @ 30 Jan 2013 03:33)
Thanks for the detailed answer, so if I become a general purpose programmer then I'm not wasting my time? I was worried that theory and architecture aren't as relevant to practical programming as software engineering is.


it just depends, if you want to become a run-of-the-mill programmer you are probably wasting your time
but if you want to become a good programmer the knowledge from those courses will help
Member
Posts: 2,769
Joined: Dec 24 2009
Gold: 14.00
Jan 29 2013 09:45pm
Quote (brmv @ Jan 29 2013 10:43pm)
it just depends, if you want to become a run-of-the-mill programmer you are probably wasting your time
but if you want to become a good programmer the knowledge from those courses will help


In other words, I'm not wasting my time :P Thanks man, I feel less doubtful
Member
Posts: 2,478
Joined: Jan 4 2007
Gold: 7,545.00
Jan 30 2013 09:57am
Definitely try and put a lot of effort in to these classes, they will go a long way.
Member
Posts: 3,706
Joined: Mar 8 2009
Gold: 17,175.10
Jan 30 2013 12:48pm
Quote (Foxic @ Jan 29 2013 11:18am)
Thanks for the good insight guys, yeah I'll take up programming. I was worried I'd waste my time taking either of those.



These classes are very useful, if you are not thoroughly familiar with the relationship between computer hardware and computer organization...

Quote (DirtyRasa @ Jan 30 2013 07:57am)
Definitely try and put a lot of effort in to these classes, they will go a long way.


this. Algebra is to engineering as computer architecture is to comp sci

This post was edited by TheDiscoveryChannel on Jan 30 2013 12:49pm
Go Back To Programming & Development Topic List
123Next
Add Reply New Topic New Poll