Skip to main content
3 answers
4
Asked 528 views

What courses do I have to take in college if I'm planning on majoring in computer engineering?

I'm a highschool student in my senior year of highschool.
#college #computer-engineering

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

4

3 answers


2
Updated
Share a link to this answer
Share a link to this answer

Dave’s Answer

In a typical computer science degree you should expect to take courses like:
* Data Structures - introduction to various ways of storing information in a computer for analysis
* Network theory & design - survey of the history, protocols, components of a network
* Algorithm analysis - teaches you how to think about how long a computer will take to solve a particular kind of problem
* Operating systems - explains underlying concepts and paradigms for enabling a computer to process different kinds of work (i.e. updating a screen) while also accepting things like keyboard inputs
* Database theory & design - survey of the history, methodologies and theory for storing large amounts of data on various media

There's usually also programming classes where you practice writing code, solving problems and debugging - but the theory classes are the ones that you really need guidance/active teaching from. They often challenge the way you think and help you broaden your ability to solve problems by knowing both the history and theoretical underpinnings for modern computer science. Knowing what *not* to do is half the battle sometimes. :)

Of course, you should be practicing programming wherever you can - language doesn't really matter and I would argue that learning and becoming proficient in as many languages in possible will make you a better programmer. But it's not enough just to practice - you must also know the theory.
2
2
Updated
Share a link to this answer
Share a link to this answer

Josh’s Answer

I would say that Dave Smith's answer is a pretty good summary of a computer science curriculum, but doesn't directly address the question about computer engineering. As a freshman/sophomore in almost any engineering discipline you're going to take a lot of physics, math, and general science courses. You will then start taking quite a few classes that give you broad exposure to core engineering concepts such as mechanical, civil, and electrical. You typically take a few courses that bridge physics science concepts with real-world engineering applications (such as statics and dynamics). Computer engineering will also contain quite a heavy electrical engineering curriculum covering everything from basic analog circuit design to more complex concepts like frequency and time-domain design with filters and amplifiers. The majority of your electrical classes and electives will likely be oriented towards computer concepts - focusing on the digital domain starting with simple ideas like counters and flip-flops and progressing through complex digital circuitry like ALUs, CPUs, and memory. You will also learn about data bus design and data transmission. Your technical curriculum will be rounded out with part of your track dedicated to software concepts - which Dave does a good job highlighting in his answer.

Lastly, like any college program, a part of your class load will revolve around general learning and the liberal arts. You will likely have a few required courses in history, written language, and possible a foreign language. You may have a few true electives where you can explore any classes that may be of interest to you - I'd recommend considering some basic business classes and something like creative or technical writing.

One advantage of a computer engineering degree with a heavy focus on digital and software concepts is that you get a very good understanding of how the software that you write is actually implemented and executed within the hardware. This can be particular useful to someone who plans to design systems, embedded systems, and similar products. Your background in general engineering will be useful in your career to understand the mechanical, thermal, acoustic, and other engineers you interface with as you go on to design broader products.

Josh recommends the following next steps:

Reach out to class advisors at a local university and ask if they can share a required class list with you for different engineering degree programs.
2
0
Updated
Share a link to this answer
Share a link to this answer

Ying’s Answer

The basic ones I would recommend are:
1. Data structure
2. Algorithms
3. Architecture Design
4. Software Management

To think a little bit more advance, you would like to dive into details to think about which specific area of computer engineering is interested in, for example, there are mobile apps, network and security, web-based solutions, etc. This way you would have an area to focus on once get into advanced courses.
0