Re: University Reccomendations

Andrew Henderson <[email protected]> Sun, 22 Apr 2012 13:18:00 -0400 (EDT)
Newsgroups gmane.org.user-groups.jaxlug
Message-ID <[email protected]>
On Sun, 22 Apr 2012, Chris B. wrote:

> 	I'm a little lost on this subject and I was hoping for some guidance.
> I'm a highschool sophmore in Clay County and have started to consider
> options for my tertiary education.
> 	I think, at this point, that I would like to major in Computer Science.
> Does anyone know if there any pitfalls to said major?
> 	Also, which University/College would you reccommend? From my
> understanding, UF has a great reputation for having great resources in
> their labs and on campus. That being said, they do not provide as many
> financial opportunities as other schools will to those enrolled the AICE
> program at FIHS.  UNF will be more affordable, but I am not aware of any
> possible isuues with their educational programs.
> 	What are you thoughts on this?  I will most likely be sending
> applcations to both next year.  Should I consider any other schools in
> Florida for Computer Science?

Hello Chris.  I'm going to reply to you on the mailing list, rather than 
directly to you, since there might be others in your position that are 
lurking on the mailing list who might have similar questions.

The important thing to know about studying for a BS in computer science is 
that it isn't a trade school that will teach you to develop software.  CS 
is, at its core, an applied mathematics degree.  It is a degree that 
focuses on providing the tools that you'll need to solve complex problems 
by systematically breaking those problems down into smaller, more 
manageable ones.  Over the course of your degree you'll learn a few 
different programming languages, but the focus isn't on teaching you the 
syntax of a particular language.  Your first CS 101 course will probably 
go in-depth with a particular language to teach you the basics on using 
it, but later courses will use other languages and it will be up to you to 
map the knowledge you have of one language to that of a new one.

The Association of Computing Machinery (ACM) provides a set of guidelines 
of coursework that a good CS program should contain.  You can see one of 
the guideline documents at:

http://www.acm.org/education/curricula/ComputerScience2008.pdf

Most CS programs will cover the majority of what you see here as "core" 
areas of study.  It's a pretty dry document, so don't worry about the 
details of what is in there.  The important thing to realize is that CS 
covers a lot of stuff, and is fairly broad in nature.

A typical CS degree has about 120 semester hours of study.  Since the 
majority of classes are 3 semester hours each (meeting for 3 hours each 
week for a semester), you can expect about 40 classes during your degree. 
Some classes deviate from this, of course.  For example, a calculus class 
is typically 4 semester hours, but a science class (chemistry, physics, 
etc.) may also require a lab that grants no credit at all.  If you pace 
yourself at the rate of 5 classes per semester, you'll be done in 8 
semesters, or four years.

The good news is that the material that you will learn at most 
universities will be on par with that of other universities.  The bad news 
is that not every learning experience will be the same.  At a larger 
school like UF, the classes are much larger and you'll have a more 
difficult time asking the professors questions.  The entry-level classes, 
such as CS courses for freshman, will often be quite large.  For these 
courses, the university will assign a graduate student to act as a 
teaching assistant (TA) to answer your questions and assist you with 
projects and homework.  As you progress through the program, your class 
sizes will become much smaller due to people dropping out of CS to 
different majors, so you'll get easier access to your professors.

At a smaller school, like UNF, you'll see that the class sizes are much 
smaller.  You'll also see that courses are offered less often.  While a 
big school like UF can offer a class on, say, operating systems every 
semester, UNF might only be able to offer it once per year.  This 
generally isn't too big of a problem, since the CS department plan these 
schedules out years in advance (the semester something is offered, not the 
exact time) so you'll have a rough idea of what you are taking and when.

Bigger universities, like UF, do have much more in the way of lab 
facilities.  But, this doesn't mean that you'll see a big difference in 
your education by attending a smaller school like UNF.  You see, after 
your first semester or so, you'll probably be spending as little time in 
the lab as possible.  The shine of being at school is going to wear off 
quick.  Very few students spend a lot of their idle time in the computer 
labs, though you'll occasionally see someone tinkering with their own 
projects on evenings and weekends.  Generally, the facilities at a 
university will be "good enough" for whatever you might need to do, so you 
don't need to worry about it.  CS has very minimal requirements for 
equipment.  You'll need access to a Windows PC and a Unix terminal of some 
sort, and you might have access to a lab or two with some hardware for 
digital design.  But really, that's all you need.

UF is a very good school, but very big.  UNF is a nice, small school (I 
took some EE and CS grad courses there).  UCF is a good balance between 
the two (I took some CS grad courses there).  I went to Embry-Riddle in 
Daytona Beach for my BS in CS, and it was very good (but is a more 
expensive private university).

A BS in CS will be composed of at least 25% of general education 
requirements.  These are classes that are not specific to your major and 
are classes that everyone is expected to take.  Examples of these are 
courses like American history or English composition.  These classes are 
going to be quite similar to classes that you take in your senior year of 
high school.  Because of this, you can take CLEP exams to get several of 
these courses out of the way.

http://clep.collegeboard.org/started

CLEP exams are definitely the way to go if you are a go-getter that paid 
attention your senior year of high school.  You can knock out a semester 
of classes fairly quickly that way.  You could also take something like 
calculus I at FCCJ in the summer between high school and your freshman 
year.  You can still take the eight semesters to get through your degree 
program, of course, but it makes it much easier if you only take four 
courses a semester, rather than five.  Most people would prefer to keep 
taking five and just get out a semester earlier and get a job.

I busted my butt when I first got to school and was taking six courses a 
term.  After about a year of this, I was about ready to die.  Take it easy 
and pace yourself.

The CS major is pretty good.  It gives a lot of flexibility as to what you 
can do as a career.  There is software development (web frontend/backend, 
desktop applications, operating system device drivers, etc.), hardware 
development (digital logic/design), network design and maintenance (system 
administration, network architect), and bunches of little niches that 
cross boundaries of all these areas.  The Jacksonville area tends to be 
more of a "blue collar" area with fewer CS jobs than other major metro 
areas, but there are still jobs in the area.

Remember that there are a lot of people that graduate with a CS degree. 
What makes the difference between the average people and the good ones are 
what you do in your spare time.  Writing toy programs and utilities, 
playing wih hardware, etc. are all good ways to build up your resume. 
Internships are good ways to make money and gain experience while still in 
college.  That work experience makes you way more attractive to 
potential employers.  The bigger universities like UF have research 
projects you can jump in on and maybe publish a paper.  When I was at 
Embry-Riddle, I had my senior year tuition waived because I joined a 
research project and was developing software for graduate researchers. 
You'll get as much out of it as you put into it, so try to get the most 
for your tuition dollar.

As a disclaimer, I am currently a PhD student in electrical and computer 
engineering.  I went back to school after about a decade of working in the 
software development industry.  So, I think that formal CS education is 
pretty good.  Some people prefer to learn on their own, but I think that 
being part of a class, being forced to sit down and complete projects, 
etc. is a good way to learn.  It certainly motivates you to get the "dull" 
parts done, rather than skip over them because they aren't fun.  I didn't 
learn as much from straight lectures and reading books as I did from doing 
homework and course projects.  A lot of CS is "hands on", particularly for 
the later classes.

Good luck!


Andrew

---------------------------------------------------------------------
Archive      http://marc.info/?l=jaxlug-list&r=1&w=2
RSS Feed     http://www.mail-archive.com/[email protected]/maillist.xml
Unsubscribe  [email protected]