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
