Here's my nickel:

About a year and a half ago I decided that I liked low-level development
and wanted to do kernel-y things. I was early enough in the CS program that
I switched to Computer Engineering and planned a kernel dev track for
myself. (The earlier comments about the breadth of CS/CE are quite
accurate.) That said, I definitely did enough CS to get a minor.

It does take a while to get specialized in CS, and I'd recommend enjoying
the ride and not worrying too much; however, I say you can't start to
browse too early. I was writing a CPU in Verilog my sophomore year because
I happened to take CS124 and ECEn 224 in sequence as soon as I could, and I
think this branch of courses is often overlooked.

For OS design I highly recommend CS345, ECEn425, and ECEn324. These
introduce you to basic concepts of physical and kernel architectures. If
you get the right professors, you'll hear cool stories from Sun's T2 doing
128 threads long before Intel did even two threads to rockets exploding
from firmware bugs.

For Embedded Systems, CS124 gets your feet wet, and if you like it then I
would shoot for the new ECEn Embedded Programming class (ECEn 330 I
think?), ECEn 425, and ECEn 427. I'm a big reprogammable logic fan, and I
absolutely loved
ECEn427<http://www.et.byu.edu/news/academic-arcade-students-use-%E2%80%98space-invaders%E2%80%99-learning-tool>.
I also hear that the IT department has a class where you get to play with
Arduinos and that some department might have an app development class, but
I don't know.

As for security, ECEn 324 has a lab where you write a very simple buffer
overflow attack. Also, I'd look into the CS department's capture the flag
team; they regularly bring home rewards. If you time things right and take
the right classes, there is a 400-level crypto course that is, I think,
shared between the Math and CS departments, and you'd probably enjoy that.
I recommend talking to Dr. Zappala; if he isn't doing security research
himself, he knows who is.

Bio is another world, so you might consider a minor. I once introduced a
Chem PhD student to Bash scripting; when she picked it up and ran with it,
her productivity skyrocketed; it's amazing what a little CS in the right
place can do. I believe DNA sequencing has already been mentioned. On this
tangent, you might also consider grad school. (Bioinformatics as an
undergrad degree needs a grad degree to flesh it out. My coworker ended up
working straight CS while knowing far too much about real-time PCR. :)

CS 236 and ECEn 224&320 all cover boolean logic, set theory, state
machines, and some functional programming. I'm glad I took all of them, as
236 delved into database theory and 224&320 were much more practical and
hardware-oriented.

For any of these fields, *talk to professors*. Most are extremely helpful.
There are, as I recall, a few at BYU that specialize in security research.
They'd love to tell you which classes to take to be good fits for their
labs. The ECEn department has some great low-level guys. I recommend
chatting with Dr. Archibald's (RTOS development, embedded coding) Dr. Wilde
(CS PhD working in EE), Dr. Hutchings (FPGA research), and Dr. Penry
(polycore architectures). I'd be happy to introduce you to any of these
professors this fall if you're bored with CS142 and feel inclined to do so.

Please don't be afraid of math. It's quite handy at times, and I recommend
not learning from your classmates to grumble every time it's mentioned.

Alas, that was more like a dime...

Cheers,
Jon Kunkee


On Tue, Aug 6, 2013 at 7:33 PM, Matt Gardner <m...@cs.cmu.edu> wrote:

> On Tue, Aug 6, 2013 at 9:28 PM, Peter Konrad Konneker <pkonne...@gmail.com
> > wrote:
>
>> https://cs.byu.edu/research_computer_science_byu
>>
>> also: https://cs.byu.edu/gradrecruiting/
>>
>> That'll give you a good idea of what the labs are and who is doing what
>> currently.
>>
>
> You might note from poking around those sites a little bit, though, that
> they are _incredibly_ out of date.  They are very much out of date from my
> days there, and that was two years ago.  So those are ok on general areas
> of research (minus Jay's programming language theory stuff), but not at all
> on specifics.  There are a lot of faculty that aren't represented on those
> pages.
>
> --------------------
> 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
>
--------------------
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