
|
Frequently Asked Questions About Computer Science and Software Engineering |
1.
What's the difference between Computer Science, Computer Engineering, and
Software Engineering?
2. What other skills are necessary in these fields?
3. Why study Computer Science at Embry-Riddle?
4. What do Embry-Riddle Computer Science grads do after they
graduate?
5. What are the requirements for graduation?
6. How do I apply for admission?
7. What programming languages does ERAU/Prescott offer?
8. Do I need to know how to program before I start my freshman
year?
9. Do I need my own PC or laptop? What type?
10. Can I get credit for computer-related experience or
classes?
11. Can ROTC courses be counted as part of the CS major?
12. Is flight training required as part of the CS major?
13. Is flight training available to CS majors if they
want it?
14. What are starting salaries like for new Computer Science/Software
Engineering graduates?
1. What's the difference
between Computer Science, Computer Engineering, and Software Engineering?
The first distinction that's relevant
is between science and engineering in general. The basic difference is that
the focus of engineering is on the practical application of the theory developed
by the sciences. Now as undergraduate majors, the names can be slightly misleading,
since a good engineer should understand the basic theory of the relevant sciences
and a university is where he or she starts learning those basics. The result,
of course, is that at a good university there will be a large common core of
courses for all three fields computer science, computer engineering,
and software engineering. But that said, computer engineering will focus more
intently on the hardware aspects of modern computation and software engineering
on the techniques required to design and implement good software. (Modern software
engineering certainly includes what we used to call programming, but goes far
beyond it today.) Computer science provides the underlying theory for both;
but as a major, computer science might include courses such as basics of AI
or theory of compilation, for example, that a computer or software engineer
might not have room to take in a crowded curriculum. But many theory courses,
such as our (ERAU's) CS315, data structures and analysis of algorithms, for
example, are relevant across the boards since they influence the design of both
hardware and software, as well as being theoretically fascinating in their own
right.
In practical terms, industry, tends
to treat all three undergraduate degrees as adequate preparation for entry-level
positions in the software field (I disagree, but then, I'm not a vice president
in industry); but if you already know you intend to specialize in hardware design,
computer engineering would be the major of choice. For those of you going
on to graduate school, the distinctions are not of practical import. All other
factors being equal (grades, GRE's, that sort of thing), any graduate school
will admit you to a graduate program in any of the three areas with an undergraduate
degree in either of the other two.
2. What other
skills are necessary in these fields?
All engineering and science require
mathematics. The better developed your mathematical skills, the better engineer
you'll be not just in terms of specific mathematics of obvious practical
utility, but in terms of a disciplined, analytic approach to problem solving.
The more comfortable you are with mathematics, the better, as far as I'm concerned
and comfort comes from exposure. Next, modern engineering is likely
to be a collaborative effort so communications skills remain extremely important
particularly writing skills. Almost all engineers need the ability to
write well. In addition, good engineers must constantly seek out the information
they need, both to remain generally up-to-date in their rapidly evolving field
and to solve specific problems at hand. Thus basic library skills and a commitment
to using them are important.
Finally, I would note that industry
constantly tells us that the more broadly educated our engineers are, the better.
While knowledge of baroque opera may not solve any specific engineering design
problem, the sort of person who maintains and indulges a general intellectual
curiosity will, over the long run, prove to be a better engineer than one too
narrowly focused over long periods of time. Broadly educated people are happier
than less well educated ones. You might not think that modern corporate-engineering
America cares about your happiness; but, in the sense that it impacts your productivity
and hence their profitability, they do. When really good, productive, senior
engineers have mid-life crises and go off for years to study zen in Tibet, the
corporation that employed them suffers. Had those engineers been studying Zen,
baroque opera, or whatever all along, they would have been happier, more productive
and less likely to leave, taking with them experience that the corporation paid
to develop. The point? In addition to knowledge and skills focused purely on
your current perception of your future technological utility in the marketplace,
pick up subjects for yourself, because they interest you. In the long run, they'll
help make you a better engineer anyway.
3. Why study
Computer or Software Engineering at Embry-Riddle?
I'm interpreting this question as meaning
you're already interested in studying one of these two fields
but are trying to figure out why you should spend the money to come to Embry-Riddle
as opposed to your other possible choices. Several reasons come to mind:
- Quality of faculty. In
the EE/CE/SE department here, you'll find we're a pretty experienced bunch. Most
of us on the faculty have been working engineers in the aerospace
industry prior to becoming academics. We are also serious academics (not just
old retired engineers ;-) but we all have worked in the industry as well as
studied and taught. Perhaps it is immodest of me, but let me direct you to
my resume so you can get a
feel for what I mean. Personally, I always intended to wind up as a college
professor, but I didn't want to do so until I had something beyond simply
"book learning". Well, as you can see, I got a little carried away and spend
over 20 years in industry before settling in to the serious task of educating
the next generations of software engineers. My EE/CE/SE faculty colleagues all feel
the same way.
- Quality of teaching. Although
I and my colleagues maintain active research programs (some of us are, in
fact, internationally known for our research), ERAU is still principally a
teaching institution. If faculty can't cut it in the classroom, they don't
last here. Student evaluations of faculty teaching performance are taken extremely
seriously here.
- Contact with faculty.
We teach our courses ourselves; we don't use graduate students as teaching
assistants. I and most of my faculty colleagues keep our doors open far beyond the university's requirements
for office hours. I'll spend as much time with students as necessary whenever
necessary. My life will be in your hands in a few years as you go out into
industry and work on critical software I really want you to
be a good engineer when you graduate.
- Quality of life at a residential
college. Elaborating on my previous answer above, the daily faculty contact
is just part of the overall residential experience here. By intent, we're
not a huge campus and we're located in Prescott,
which is not a huge city. (It's not a tiny village either, by the way; in
case you wondered). Some students thrive anonymously in the crowd; others
like their life a little less impersonal. I see my students all the time in
local restaurants (quite a few good ones, actually), at the movies or live
theater (look for me particularly at the fall Shakespeare festival), in markets
shopping, and so on. I raised two kids whom I don't get to see enough of now
that they've become professionals with their own lives; I really like
seeing my students around town.
- Customized educational experience.
Because we get to know our students really well and are a small enough university
to not have a cumbersome bureaucracy, we can and do make it a point to individually
tailor your education to your wishes and capabilities. Don't like the major
as described in the catalog? Make us a reasonable proposal for a modification
and we'll almost certainly approve it. Want to get some industry experience
before you graduate? Many of the faculty have good contacts in industry and
we'll pick a place that makes sense for you to do a summer internship. (There
are a lot of companies who really want to get a look at you as early as possible.)
- Graduation in four years.
Students who come in with standard qualifications in high school mathematics
and physics and follow the standard major will graduate in four
years. It's as simple as that. We are not an "impacted" program where
you sometimes need to wait for years to get into some key course that you
need. If you meet the prerequisites and you want to to take a course that's
offered, you're in the course. Class getting too big? I'll split it and offer
two sections; that's my job. Your job is to study and plan your education
according to our guidelines; my job (among others) is to see to it
that classes are always available to you according to our master plan.
- Reputation of our graduates.
You'd
be surprised how sought after our graduates are. Industry repeatedly tell us they really like our graduates and prefer them
to many other institutions. Companies come here several times a year to seek
recruits for summer internships or full-time, post graduation employment.
Many of them are happy to make offers on the spot, based on verbal faculty recommendations
and a short interview here. In some cases, my contacts with industry are sufficiently close that I have permission to guarantee an offer "sight unseen" — my say so is enough. Industry is not foolish, that offer will be for a probationary postion; but they have stated point blank that a phone call from me will suffice; they'll make the offer then and there. (I'm not foolish either; you'll have to be one of our best to get that phone call; but if you are, I'll make it for you.)
I could go on, but I think I've
hit the high points.
4. What do Embry-Riddle Computer
Science grads do after they graduate?
Whatever they want? ;-) Three major
parts to this question, I think:
- How employable is the ERAU
CS degree? For the last several years, the employment rate of our good
graduates (GPA > 3.0) has still been either 100% or very close to it.
- Is the ERAU CS degree more
limiting than others? Since the full name of ERAU is Embry-Riddle Aeronautical
University, some potential students might worry that they'll be limited to
working in the aerospace industry. Not so. Our curriculum is broad based and
meets the educational objectives of the various relevant Computer Science
standardization bodies (e.g., ACM/IEEE
Curriculum 2001). Faculty here often put an aerospace perspective in their
lectures since most of us come from an aerospace background and the majority
of the students here will in fact go out, at least initially, into aerospace,
but the technical baseline here is universal. We've had fresh new graduates
go off to work on animation for movies like Jurassic Park up at the
Dreamworks in Northern California. Some go to independent network/web based
businesses; one of my favorite students from a few years back went to work on software for state-of-the-art medical diagnostic equipment for a local
startup company.
- Are there geographic limitations?
No, our reputation is nationwide. Recent graduates are employed all over the
United States.
5. What are the requirements
for graduation?
See our interactive web page showing the required courses; see also the University Catalog.
6. How do I apply for admission?
See http://www.embryriddle.edu/apply/
7. What programming languages
does ERAU/Prescott offer?
EGR115 teaches Matlab; CS125 starts with C, CS225 moves into C++;
CS325 (an elective) introduces Ada, a language more suited to safety-critical
software.
Other languages are introduced as
necessary as part of other courses. You can pick up some LISP in an AI elective
(CS455), MODSIM in an introduction to modeling and simulation (CS350), and SQL
in an introduction to theory of databases (CS305 or CS317).
8. Do I need to know how to program
before I start my freshman year?
No. We intend any motivated student
with no prior programming experience to be able to succeed here. If you have
no prior experience at all, we'll start you off with an easy language called
Matlab in EGR115. If you've already programmed a bit in Basic or Java, you should
probably skip EGR115 and go right into CS125. If you have done some prior work
in C (the language we teach in CS125) talk to the instructor or the department
chair about possible advanced standing/credit and proceeding directly to CS225,
or even beyond, if you've got prior university or industrial level programming
experience.
9. Do I need my own PC
or laptop? What type?
Answer to the first question: No;
we have computer labs all over the campus that contain all the computers and
software you'll need. That said, many students obviously find it convenient to have a
PC or laptop of their own so they can work at home in the wee small hours without coming to a campus lab. So:
Answer to the second question: It really doesn't matter, since much of your
use of a personal computer will be for word processing and the like, where the
eternal debate about Mac vs Windows Vs Linux doesn't really matter at all. Furthermore,
the campus programming environment is available on campus computers accessible
from any type of machine anywhere, on or off campus. All that said, if you haven't bought a computer
for yourself yet and want to know the most common one here, it's Windows. All
the lab computers here are Windows 2K or XP, with Unix available via secure shell
or tunneled X connection to the campus mainframes. (If secure shell or tunneled X is not something
you're already familiar with, don't worry we'll make you comfortable
with them quickly enough. If you knew everything before you got here, you wouldn't
need us, right? ;-)
10. Can I get credit for previous
computer-related experience or classes?
Yes, there are two types of credit
to consider:
- Met credit. Met credit
means that you have met the intent and objectives of some required course
here and no purpose would be served by making you enroll in it. Met credit
can be granted by the program chair (me) it's less formal than the
alternative, below, but you don't get the academic credits for it that are
required for graduation; you just don't have to take some required course
before you go on to whatever is required next. The effect is to convert the
required units into elective units you can take something else that
would benefit you more instead.
- Advanced standing. This
one actually gives you credits towards graduation. Three ways to get it:
- Pass the Computer Science
Advanced Placement exam with a score of 3 or higher.
- Transfer units from some
other college or university. We'll need an official transcript and either
the course's catalog description or a syllabus for us to evaluate. We
don't typically give advanced standing for military or vocational course
work (including most certificates) most certificate courses are
a little too light on theory to provide the basic knowledge that we (or
any modern university) are trying to teach. But if you know your stuff
the way we want you to in an area we have a course in (regardless of how
you learned it), I'll be happy to grant met credit.
- You can always "challenge"
any course here. You pay a fee to the registrar's office and then we make
up a typical final exam for you to take on a "Pass/Fail" basis (that's
what's recorded on your transcript just "Pass" or "Fail"). Informally,
we'll have you talk to an instructor first so that you don't waste your
time and money only to wind up having a "Fail" show up on your transcript
you can't back out once you pay the fee.
11. Can ROTC
courses be counted as part of the CS major?
Yes. Upper division ROTC courses
(courses numbered at the 300 or 400 level in the catalog) satisfy the requirements
for a track within CS (specifically, they're the Defense Studies track). Lower
division ROTC courses will not be counted towards a CS degree, however; sorry.
12. Is flight
training required as part of the CS major?
No.
13. Is flight training available
to CS majors if they want it?
Yes; a flight minor is available
consisting of FA 110, FA 208, FA 251, FA 304, FA 325, and an upper division
elective, for a total of 18 units. The FA course descriptions are available
in the catalog.
Notes:
- The Private Pilot certificate
is FA 110; if you already have a Private Pilot's license, FA 109 would be
the correct first course.
- On a per-credit-hour basis, flight
courses are more expensive than "normal" academic courses.
14. What are starting salaries
like for new Computer Science/Software Engineering graduates?
Here's some data from the National
Association of Colleges & Employers
This page
last modified 30 Jan 2008 by M.S. Jaffe