<p>Yes…as long as your CS minor has…</p>
<p>1) Object-Oriented Programming - You can get this usually through the first two programming courses that are required for most CS, CompE and Math majors. Depending on the school, either the language will be Java or C++. It really doesn’t matter which one is selected because if you learn one, you can learn the other on your own time.</p>
<p>2) Data Structures and Algorithms - Both of these areas are core CS knowledge areas. Depending on the school, they are offered as one combined course or two separate courses. It basically builds on what you learned from the introductory Object-Oriented programming courses, stated in (1). They will be required courses for CS and CompE majors and schools with a Computational Math major. Other majors like EE, Physics or Pure Math will probably need CS department approval because CS, CompE and Comp Math majors will get priority.</p>
<p>Operating Systems - Another course CS knowledge area and overall one of the most useful courses as far as learning at the college level. Teaches you how IN GENERAL operating systems behave (regardless if it is Unix, Linux, Windows, etc). You really cannot run anything without an operating system, so you might as well learn about it. You don’t want to be on the job bothering your Operating Systems Administrator every five minutes with trivial questions. Any non-CS major will need approval to take the course.</p>
<p>The next 2 courses if more of personal opinion, but it is from looking at many job openings over the years and what companies usually do with software engineers. In just my humble opinion, most software engineering jobs are related to the manipulation, distribution and storage/retrieval of DATA. You “manipulation” foundation will come from your programming and data structures/algorithms courses.</p>
<p>The distribution of data is mainly done via computer networks. A basic understanding on networks can help a great deal, a course in Computer Networks is recommended.</p>
<p>The storage/retrieval of data is mainly done via database systems. A basic understanding on databases can help a great deal, a course in Database Systems is recommended.</p>
<p>So I would suggest as a CS minor…</p>
<p>Object-Oriented Programming I (C++/Java)
Object-Oriented Programming II (C++/Java)
Data Structures
Algorithms
Operating Systems
Computer Networks
Database Systems</p>
<p>That should be enough for non-CS majors to be looked at for software engineering positions. You MAY have to take a Computer Organization course, but that is if the school has that course as a pre-req for Operating Systems. Not all schools do that.</p>
<p>Applied math majors can really benefit because with enough cross-listed Math/CS courses, one can basically manufacture a “CS degree” out of a math degree. It helps where there are schools with limited enrollment or super competition just to get into the regular CS program…plus allows you to have flexibility in CS course selection. Throw in math courses like Combinatorics & Graph Theory (which is like CS’ Discrete Structures on steroids) and Cryptology, Optimization and Computational Statistics and you are golden.</p>