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]

Reply via email to