# Computer engineering major considering math minor

1. Dec 6, 2013

### Nick O

I'm finishing my third semester in computer engineering next week. I have taken four classes with the math department (you know, Calculus I-III and Differential Equations), and only Linear Algebra remains*. I have really enjoyed my experiences with the math department so far, and am strongly considering taking two more courses for a minor.

The courses that interest me are listed below. These are courses that I think will either be relevant to me as an electrical engineer (the calculus-based courses) or as a computer and software engineer (the logic and combinatoric courses). Some topics with no direct application to my field also interest me, but I would rather spend my time as profitably as possible.

Which courses would you recommend from this list, and why?

Mathematical Logic and Computability: The basic metatheorems of first order logic: soundness, completeness, compactness, Lowenheim-Skolem theorem, undecidability of first order logic, Godel's incompleteness theorem. Enumerability, diagonalization, formal systems, standard and nonstandard models, Godel numberings, Turing machines, recursive functions, and evidence for Church's thesis.

Advanced Linear Algebra: A rigorous treatment of vector spaces, linear transformations, determinants, orthogonal and unitary transformations, canonical forms, bilinear and hermitian forms, and dual spaces.

Advanced Calculus I: A rigorous treatment of calculus of one and several variables. Elementary topology of Euclidean spaces, continuity and uniform continuity, differentiation and integration.

Intermediate Differential Equations: Systems of differential equations, series, solutions, special functions, elementary partial differential equations, Sturm-Liouville problems, stability and applications.

Introduction to Partial Differential Equations: Solution of the standard partial differential equations (Laplace's equation, transport equation, heat equation, wave equation) by separation of variables and transform methods, including eigenfunction expansions, Fourier and Laplace transform. Boundary value problems, Sturm-Liouville theory, orthogonality, Fourier, Bessel, and Legendre series, spherical harmonics.

Combinatorial Mathematics**: Counting techniques, generating functions, difference equations and recurrence relations, introduction to graph and network theory.

*I am also taking Discrete Mathematics, but it's with the Computer Science department and doesn't count toward a minor.

**I will be at least somewhat exposed to this through Discrete Mathematics.

2. Dec 6, 2013

### AlephZero

I would say the two most relevant to computer science are Logic and Computability, and Combinatorial math.

If you want to get into applied scientific computing, then intro to PDEs and intermediate DEs (in that order of priority).

The other two look like "pure math" courses - there's nothing "wrong" with that, but IMO they won't be much practical use for anything except doing more pure math.

3. Dec 6, 2013

### Nick O

Thank you. I would indeed prefer to avoid pure math - partly because I've never had any contact with it and don't know that it would hold my interest, and partly because I would probably forget it due to lack of opportunities to use it.

I appreciate that you put an order of priority on the two DE classes; that will probably be useful to know.

4. Dec 8, 2013

### TheOldHag

When I took Advanced Calculus I was thinking it would be a more rigorous rehash of what I already knew. It was far more 'pure' than I was prepared for at the time. Before that class, I wasn't aware that the real numbers needed a better theoretical foundation. I found out.

Combinatorial mathematics is going to be good for a computer science major. Personally, I believe you should stay broad and get some linear algebra under your belt along with some statistics. Especially with what is going on with the big data craze in comp sci. For instance, I'm finding myself working with quite a bit of linear algebra to do latent semantic indexing in text mining. There are loads and loads of opportunities for good comp sci people with statistics and linear algebra under their belts as far as any sort of data mining or analysis goes.

If you have had a theory of computation course as an undergrad and you want to remain somewhat on the practical side I would avoid further study in mathematical logic and computability. While those subjects are definitely important theoretically and are deeply enriching to learn, they are not as commonly drawn upon in the applied world from what I have seen.

5. Dec 8, 2013

### Nick O

Thanks, I appreciate your input! In particular, thanks for speaking of your own experience for context.

6. Dec 8, 2013

### Hercuflea

If you are more of a CS person take all the discrete math, abstract algebra, and linear algebra you can. I am surprised you already took a differential equations course without taking linear algebra either first or concurrently. Differential equations is heavily dependent on linear algebra (at least ODE's).

If you are trying to move away from CS then take some more diffy q's, complex analysis, linear algebra, real analysis, numerical methods.

7. Dec 8, 2013

### TheOldHag

I think it is worth noting that Aleph does point out an important point regarding the description of the linear algebra course. There are going to be applied ones and pure ones which are going to be very abstract. If you have no choice then get some linear algebra whatever way you can but it seems there should be a first linear algerbra course without 'Advanced' in the title offered at most institutions.

8. Dec 8, 2013

### Nick O

Thanks, Hercuflea!

There is a non-advanced linear algebra course, and I'm already required to take it. I'm taking care of that next summer.

The differential equations course did make use of determinants, but that was the extent of linear algebra in the course. We didn't cover, for example, systems of differential equations.

Last edited: Dec 8, 2013
9. Dec 8, 2013

### MathWarrior

Mathematical Logic and Computability - this looks like a fun course but is probably better for someone who is going to do theoretical computer science, and true computer science type of topics.

** You will likely touch on basic logic in a discrete math course usually, but some of these topics like the Turing machines, and church thesis are at the core of most theoretical CS, and come up again in complexity theory courses. It is super important if you intend to go the CS route.

You said you are looking to mainly be a computer engineer so I would more strongly recommend these:
Combinatorial Mathematics - Can have direct applications to switches, algorithms, counting machine instructions, plus this can be somewhat hard to grasp.

Advanced Linear Algebra - Super useful in all areas of engineering, and computer science, graphics, computer vision algorithms etc.

Differential Equations courses - Are useful if you like circuits and stuff. RLC circuits for example, but there are much more complex circuits out there.

Last edited: Dec 8, 2013
10. Dec 9, 2013

### TheOldHag

Being that you are already planning a non-advanced linear algebra course I would still opt for advanced linear algebra over the differential equations courses since you have had a basic one already, unless you are leaning towards scientific computing. For comp sci type of stuff linear algebra is more prevalent and it is helpful to have a deeper understanding. I know it sounds boring but it seems I would try to fit probability and statistics in there ahead of advanced linear algebra.