On Tue, Aug 6, 2013 at 10:43 AM, Bryan Murdock <[email protected]> wrote:

> On Tue, Aug 6, 2013 at 9:45 AM, David Hilton <[email protected]>
> wrote:
> > Looking at the CE map, there are a few CS courses that aren't required
> that
> > I'd definitely recommend you take if you're interested in software
> > development (252, 312, 330, 428). If you're a CE major, maybe you'd feel
> > like they're easy, but I do know you'd be covering valuable information.
>
> The numbers might have changed since I was there.  There were some CS
> classes I was really glad I took, and the one I really regret not
> taking was compilers (but the professor teaching it was...one I didn't
> click with).  There is a lot of CS material available online and in
> books and if you know how to learn and have a solid foundation to
> build on, you can pick it up.  There is no way you will get everything
> you need to know from just your coursework anyway.
>

True.

Computing is incredibly broad, and the courses you select will vary wildly
based on what you as an individual want to do.

I think my list of courses is biased towards providing what I view as basic
fluency for software development; being able to solve algorithmically
complex problems in software (as well as recognize what can't be solved or
approximated), having some large-scale experience, and how to write
maintainable code (which is supposed to be covered more in 340, but I think
design patterns are far too heavily emphasized in that course).

Here's a more detailed list of what the courses offer:
For CS 252, you might not need all of it if you're in Computer Engineering
as finite state machines and such automata are probably covered fairly well
- probably time complexity, too. I'm not sure about grammars, P/NP and the
halting problem, though.
CS 312 covers lots of general algorithms for solving problems that can
otherwise be quite difficult.
CS 330 is programming languages, and you get exposure to a lot of advanced
programming concepts that aren't covered elsewhere. Also, Scheme (which is
somewhat like learning a romantic language when you've just been exposed to
germanic languages).
CS 428 is 'software engineering,' where you jump into the middle of a large
project - it's the course that is closest to a commercial coding experience
(vs. CS 340 which is more about design patterns/refactoring).


By the way, here is a fun project I've been working on in my spare time:
https://github.com/dhiltonp/hexbright

David
--------------------
BYU Unix Users Group
http://uug.byu.edu/

The opinions expressed in this message are the responsibility of their
author.  They are not endorsed by BYU, the BYU CS Department or BYU-UUG.
___________________________________________________________________
List Info (unsubscribe here): http://uug.byu.edu/mailman/listinfo/uug-list

Reply via email to