Computer Science Majors...

Posted:
in General Discussion edited January 2014
Anybody here on AI that majored in CS? Just wondering what to expect as I start my first semester at UC-Irvine.



Whats is like being a mac user and a computer scientist?lol
«1

Comments

  • Reply 1 of 34
    stoostoo Posts: 1,490member
    I finished Computer Science/Artificial Intelligence joint honours last year, at Edinburgh Universoity in the UK. I have no idea what the differences are in course and syllabus, but I found first year to be not much harder than the last year of secondary school. Do US universities do three or four year honours courses?



    Macs are more popular than you might think among Computer Scientists: I know quite a few people from university who have since bought PowerBooks or iBooks.
  • Reply 2 of 34
    nemesisnemesis Posts: 138member
    Quote:

    Originally posted by Stoo

    I finished Computer Science/Artificial Intelligence joint honours last year, at Edinburgh Universoity in the UK. I have no idea what the differences are in course and syllabus, but I found first year to be not much harder than the last year of secondary school. Do US universities do three or four year honours courses?



    Macs are more popular than you might think among Computer Scientists: I know quite a few people from university who have since bought PowerBooks or iBooks.




    Kool Thanks for the Info. Yes some US universities have honors progams.
  • Reply 3 of 34
    scottscott Posts: 7,431member
    Can you link us to the course work you'll be taking? IMO there's a lot of value in what I call the "real CS" degree. I had a CS roommate and worked with a guy that did CS at UIUC and then got a masters from EVL at UIC. Those two are very good programmers.
  • Reply 4 of 34
    nemesisnemesis Posts: 138member
    Quote:

    Originally posted by Scott

    Can you link us to the course work you'll be taking? IMO there's a lot of value in what I call the "real CS" degree. I had a CS roommate and worked with a guy that did CS at UIUC and then got a masters from EVL at UIC. Those two are very good programmers.



    Here is the course listing page. UCI has a brand new school of information & computer science(not coupled with computer engineering).



    http://www.ics.uci.edu/academics/courses/



    Thanks,

    Nick
  • Reply 5 of 34
    scottscott Posts: 7,431member
    Seems pretty solid to me.
  • Reply 6 of 34
    NEMISIS,

    I'll be starting Computer Sciences as well Here in Canada, U of C.

    Calculus is going to be fun \

    How does this stack up to what is out there?

    flick.
  • Reply 7 of 34
    willoughbywilloughby Posts: 1,457member
    CS was great. Freshman year there were like 100x more people in the program than Senior year. I think Algorithms and Calculus were the filters. A lot of people take CS because they think they'll make a lot of money.



    Then they realize that it is actually challenging and they give up. Most of them got Communications degress. hah
  • Reply 8 of 34
    dfilerdfiler Posts: 3,420member
    Expect at least one weed-out class. With CS being a technical field, it is possible to easily screen students and eliminate people who are found to be incapable of the work. CS tends to attract gamers who like to spend a lot of time with computers but simply can't contribute anything to to a software developement team. It quickly becomes apparent which students will never make it past web development. Others are obviously destined to become certified code monkeys, and eventually system architects or project managers.
  • Reply 9 of 34
    I'm wondering what I should be doing to prepare myself. Any software I should be looking for? Do I need a PC? Can you recommend any book that might help?

    I'm looking forward to this, I have five friends that have either gone through the program or are just finishing up. SO I have a good set of tutors if needed.

    flick.
  • Reply 10 of 34
    If you download the development tools you should be set. Most larger universities' CS departments are becoming infested with PowerBooks. If you know how to use the developer tools, then nobody will give you a hard time about it.



    If your program requires you to use windows I would start calling it "professional training" and "trade school" (and similar unflattering terms) to anyone within earshot, and explain upon request. Requiring Windows is indicative of an education in programming for windows, not computer science.



    Your coursebooks should be all you need. Recommending a book is hard because the style and approach of CS programs can vary widely.



    -- New CS / Cog Sci PhD student
  • Reply 11 of 34
    Computer Science as a Mac user, huh? Well it's been all right. My classes use Solaris pretty heavily. It has always been nice to be able to do work locally on my computer using Project Builder while Windows friends are working over a remote X11 session and using emacs.



    Still, when those projects come around that really need a powerful IDE, you'll be stuck using Visual Studio. There's nothing really wrong with VS. You've got to know the tools of your trade. VS is often the best tool available to you. You'd be a fool to stick to some back-assward way out of pride.



    Advice: Learn what tools you have. Become familiar with OS X's Project Builder and Thread Viewer. Get familiar with Linux, learn either vi/vim or emacs editors, and *learn how makefiles work*. Check out the debugging capabilities of Visual Studio. -- This will all help tremendously.



    It's our job to not fall in love with today's technology. Work with what works best for you and be open to finding new methods.



    Also, no one likes a Macintosh bitch. Show folks how a Mac can be a better tool; don't just rag on Windows/MS.
  • Reply 12 of 34
    Quote:

    Originally posted by NEMESIS

    Anybody here on AI that majored in CS? Just wondering what to expect as I start my first semester at UC-Irvine.





    I've often wondered about the differences between the UK and American education systems - I often see 'majoring', 'graduating from high school' and so on in movies, but I'm not sure how that relates to the UK.



    Is a major the same thing as an honours degree BSc(hons)?



    When I graduated it was after passing a BSc(hons),not from school. The UK is GCSE 14-16, A-Levels 16-18, Degree 18-21 then postgraduate.



    Whats the U.S.A. equivillent?
  • Reply 13 of 34
    dfilerdfiler Posts: 3,420member
    Quote:

    Originally posted by Bygimis Turug VIII

    I've often wondered about the differences between the UK and American education systems -

    ...

    Whats the U.S.A. equivillent?




    Majoring refers to a post-highschool bachelor's degree from a university or college. These are typically 4-year programs equivalent to grades 13-16. After majoring in a field and graduating with a BS or BA, post graduate degrees are available from Masters or a PhD (doctoral) programs.



    Another note on what to expect: Many of the best CS programs in the world have purely lecture-based curricula. It really shocks my friends when they discover I have degrees in CS but yet never had computers in the classroom. In retrospect, this was a good thing. Theory and concepts are best learned from lectures and conversations with professors. Yet, experience can be gained on your own, with well laid out assignments and many years of banging your forehead against a debugger screen. It seems that trade schools are most likely to walk you through a particular tool and top tier schools like MIT are more likely to teach abstract theory.
  • Reply 14 of 34
    amorphamorph Posts: 7,112member
    Well, I went through pre-Mac OS X, but I was still able to do a fair amount of work in Think C 5.0. All the college machines were various subspecies of UNIX, so I imagine OS X would fit in very nicely.



    For us, the very first class was the main weed-out class, although things did not get much easier afterward.



    Ditto what Anonymous Karma said about "vocational school." If the program is any good, you'll end up learning languages that you may never use again (anyone else learn Miranda?) but which are small and focused and therefor excellent for teaching the various kinds of science, art, and blindfolded dart throwing that programming involves.



    Good luck.
  • Reply 15 of 34
    stoostoo Posts: 1,490member
    As I understand it, a "major" is the chief subject that your degree is in: mine would be a a joint major in Copmuter Science and Artificial Intelligence (but unfortunately there are some courses that I would have liked to have taken but didn't have space in my timetable \ ).
  • Reply 16 of 34
    yevgenyyevgeny Posts: 1,148member
    Quote:

    Originally posted by NEMESIS

    Anybody here on AI that majored in CS? Just wondering what to expect as I start my first semester at UC-Irvine.



    Whats is like being a mac user and a computer scientist?lol




    Yes, my friend, I have a good idea of what you can expect. I am a UCI ICS Alumni. UCI has a really good ICS department and a challenging courseload. Prepare to work alot on your homework.



    What series are you starting off in? Are you starting with the ICS 2X series? How much programming experience do you have in general?



    Anyhow, back in the day, UCI's intro courses were Pascal based for the first year and run on Macs. UCI has switched away from Pascal as an intro language to Java and away from Macs to x86 machines as the hardware of choise (with some SPARCs as backup). The good news is that the UCI faculty are pretty anti MS, and so you will not be doing MS specific Java programming. This means that you can do Java programming on your Mac and all you will have to do is to make sure that your homework compiles and runs on Windows (this isn't much work- because this is the whole point of Java code).



    The campus computer store is very Mac friendly- I used to work there and they do quite a bit of Mac business (frankly, they suck at the PC business because it is very hard to compete with Dell even when Dell gives you an edu discount). Their academically priced Mac software selection is excellent.



    As for general advice, where college is fun and all, you need to realize that you are an ICS student and that you can't live the dorm life of a social sciences major. You need to get your homework done. UCI is a quarter school and this makes it very easy for you to get behind (midterms are at week 4 or 5!). Do your homework. It takes longer to get a lab done than you think and you do not want to procrastinate on labs because you will fail out of the program.



    Another thing to realize is that UCI starts off with something like 450 freshman ICS students and they don't want to graduate 450 students. Heck, they don't want 450 students to make it to the second year. Your first year courses have two goals (in order of priority):



    Fail students out of the major

    Teach students tons of computer science



    That's right, ICS 21, 22, and 23 are all about kicking students out of the major. There are too many students who think that ICS is an express ticket to wealth and so the solution is to make the courses sufficiently difficult so that many students simply leave the major. This doesn't mean that you can't do well in the classes. I got B's in all these classes with no previous programming experience, but it was because I was much more disciplined than other students. Get your labs done and do well on the tests for the first year and you will do well for the remaining years.
  • Reply 17 of 34
    Stoo, does that mean you can major in *just* AI if you wanted to?
  • Reply 18 of 34
    yevgenyyevgeny Posts: 1,148member
    Quote:

    Originally posted by dfiler

    Another note on what to expect: Many of the best CS programs in the world have purely lecture-based curricula. It really shocks my friends when they discover I have degrees in CS but yet never had computers in the classroom. In retrospect, this was a good thing. Theory and concepts are best learned from lectures and conversations with professors. Yet, experience can be gained on your own, with well laid out assignments and many years of banging your forehead against a debugger screen. It seems that trade schools are most likely to walk you through a particular tool and top tier schools like MIT are more likely to teach abstract theory.



    UCI comes from another school of thought: Kick students in the rear with programming work. Stuents learn by doing, and by doing they develop skills and confidence to do greater things. UCI is not a big CS theory school that is simply a waypoint on moving students to a graduate degree. It is a school where students are prepared for the real world of programming, and as a result, UCI places something like 99% of its grads in either a job or graduate school. (I am not making this stat up)



    I have had the opportunity to interview alot of students from other far more prestigious schools and have frankly found their theoretical understanding to be excellent, but their practical abilities to be profoundly lacking. This is what happens when you teach CS like a math class (lets think about how to solve this problem and never actually solve the problem). In the real world, you need people who actially can get the job done, and done well. The industry loves UCI grads because they have lots of practical skills and because they know how to grow new skills.



    UCI isn't a trade school. I programmed in Pascal, C++, Java, Ada95, and LISP on MacOS, NT, and Solaris. You will learn lots of theory, but you will also do lots of programming. UCI does not teach theory apart from actually implementing the theory. The major is technically a four year degree, but in reality it takes most students five years.
  • Reply 19 of 34
    dfilerdfiler Posts: 3,420member
    Quote:

    UCI comes from another school of thought: Kick students in the rear with programming work. Stuents learn by doing, and by doing they develop skills and confidence to do greater things. UCI is not a big CS theory school that is simply a waypoint on moving students to a graduate degree. It is a school where students are prepared for the real world of programming, and as a result, UCI places something like 99% of its grads in either a job or graduate school. (I am not making this stat up)



    I have had the opportunity to interview alot of students from other far more prestigious schools and have frankly found their theoretical understanding to be excellent, but their practical abilities to be profoundly lacking. This is what happens when you teach CS like a math class (lets think about how to solve this problem and never actually solve the problem). In the real world, you need people who actially can get the job done, and done well. The industry loves UCI grads because they have lots of practical skills and because they know how to grow new skills.
    [



    Heheh... so how is that shoulder-borne chip going?



    It?s not that the lecture-based curricula don?t involve hands-on programming. Rather, they leave the coding to be done as homework. This leads to late night coding sessions where workgroups of students catch each other?s stupid errors. If a professor?s salary is best spent on them looking over shoulders and offering debugging assistance, than IMHO, that professor?s time must not be worth very much.



    CS is a big field, of which, programmers comprise only a small minority. Even among programmers there is room for specialization. Graduates are best served by a curriculum geared toward their specific sector of CS work and likely career path. If someone is planning on doing mostly web-work and database front-ends than, it makes sense to have computers in the classroom. Teach the students in a more vocational manner. For students headed toward systems or architectural design, a theory-based approach is suitable.



    Practical skills are valuable and UCI is to be commended for their graduate 99% placement rate. At the same time, theory driven programs should be appreciated. If it weren?t for them, we wouldn?t have beautiful APIs like Cocoa.



    Class-ism is alive and well in the field of computer science. Graduates from each type of curriculum will likely never see eye to eye in the same way that white-collar and blue-collar workers grate upon each other. However, I think incoming freshman should really consider the difference and how it will affect their career.



    [edit: couldn't resist expounding on the subject]
  • Reply 20 of 34
    yevgenyyevgeny Posts: 1,148member
    Quote:

    Originally posted by dfiler

    It?s not that the lecture-based curricula don?t involve hands-on programming. Rather, they leave the coding to be done as homework. This leads to late night coding sessions where workgroups of students catch each other?s stupid errors. If a professor?s salary is best spent on them looking over shoulders and offering debugging assistance, than IMHO, that professor?s time must not be worth very much.



    UCI Profs do not help students program. There are no computers in the classroom. The classroom is 100% lecture, it is just that the homework is rather merciless. If you are learning about it in theory, then there will be homework where you implement it.



    Quote:

    CS is a big field, of which, programmers comprise only a small minority. Even among programmers there is room for specialization. Graduates are best served by a curriculum geared toward their specific sector of CS work and likely career path. If someone is planning on doing mostly web-work and database front-ends than, it makes sense to have computers in the classroom. Teach the students in a more vocational manner. For students headed toward systems or architectural design, a theory-based approach is suitable.



    Practical skills are valuable and UCI is to be commended for their graduate 99% placement rate. At the same time, theory driven programs should be appreciated. If it weren?t for them, we wouldn?t have beautiful APIs like Cocoa.




    I'm not dissing theory based teaching, just saying that sometimes it is the case that there isn't enough practical application of theory. It is really embarrasing when we give prospective employees basic programming tasks (to do on a white board) and they fail. UCI IS most definitely theory driven. Niklaus Wirt (creator of Pascal, Oberon) gave guest lectures every year when I was there.



    For example, I obtained employment at my current job because I have good practical programming skills and was able to demonstrate that in my internship AND because I have an interest in abstract graph theory and concentrated on courses about graph theory at UCI. Some of my professors were people who my coworkers had read papers from (and my professors knew about my company). UCI is a theory school, it just believes in making students program alot as well. If you are talking about how a compiler works, then you are also ptogramming parts of a compiler as well. If you are learning about AI game trees, then you are programming a game tree. Theory almost always goes hand in hand with implementation, and the implementation reinforces the theory and gives the programmer considerable real world skills.



    Quote:

    Class-ism is alive and well in the field of computer science. Graduates from each type of curriculum will likely never see eye to eye in the same way that white-collar and blue-collar workers grate upon each other. However, I think incoming freshman should really consider the difference and how it will affect their career.



    Pure theory schools do have their place, it just isn't so much the real world work force. Usually such students want to go to graduate school or to get involved in some esoteric research program at a large company. Of course, there are theory heavy schools that turn out graduates who do well in the real world, they just have a harder time getting up to speed. However, it is a shame when graduates from highly ranked schools can't write C++ code for reversing a linked list on a white board and when they only know about datastructures in theory.
Sign In or Register to comment.