July 13th, 2013, 06:01 PM
What do you learn at university computer science courses?
I'm entering university this year and am currently choosing which courses this year.
I plan to be a researcher using the tools of mathematics and computer science to work with projects in the field of social sciences and/or humanities. (Something like this guy at TED does: http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDoQtwIwAQ&url=http%3A%2F%2Fwww.ted.com%2Ftalk s%2Fron_eglash_on_african_fractals.html&ei=U83hUbyAMsrUkgW01IAQ&usg=AFQjCNF3Ar5g0S1aQpiYUj4V5cb9wqAF Sg&sig2=Ko6LrYjn64Qs40-XsgNMTA&bvm=bv.48705608,d.dGI)
I'm not interested in researches purely in the sciences; I want to work in collaboration with researchers in the social sciences/humanities.
To this end, I plan to take a mathematics major, computer science minor, and an anthropology minor.
Right now I am studying C by myself with a textbook I bought, and after that I'll study Python.
What I want to know is what university courses teach that are not in textbooks for individual languages.
Also, if you could share experiences where what you learned at a course helped you in your career, that would be great too.
Thanks in advance.
In addition, I'd like to know
- what to study outside courses (eg as many languages as possible)
- what extracurricular activities to do (my university recommends paid jobs)
Last edited by 046; July 13th, 2013 at 06:03 PM.
July 13th, 2013, 09:26 PM
In my experience all the material I learned in school could be learned through a textbook or online. Though you could probably say that about anything that doesn't require expensive lab equipment.
I took a great Programming Concepts course that explained the difference between all programming languages. It went over static vs dynamic, imperative, functional and declarative languages. There was more there, but that's what I really got out of it.
There are textbooks about Object Oriented programming. You won't find it as a specific topic in a book about a programming language (e.g. java). That's a topic on its own. There are lots of topics in Computer Science that go beyond just languages.
I think the best way to look at it is you can program anything in any language. Languages are designed to do certain things well, so we use them for those things. Knowing lots of languages gives you more tools to choose which language to solve a problem in. To tie that into my previous paragraph, a lot of AI programmers use LISP and Prolog. They use those languages to implement concepts learned in a textbook about AI. Learning LISP will help you, but if you don't learn the AI concepts then you won't be able to program that.
People usually say Math is a great thing to study outside computer science. It depends if you want to spend your day studying algorithms or not. If you want to get a job after you graduate I think that taking business courses is great. It gives you an understanding of management and business which is really helpful and looks great on a resume.
July 13th, 2013, 10:17 PM
I think I do. I'm not really interested in getting a job at a company. I'd like to stay at university as a researcher/professor.
But then again, management courses look interesting on its own...
After leaving university, did you have a need to study more on your own in addition to what you learned at university?
July 13th, 2013, 10:52 PM
You will never stop to learn.
University will learn you all the theory.
Learning how to use it in a practical manner is another course which you get with experience.
Can ask you a simple question: if all things can be learned at the university, what will there be left to research?
July 13th, 2013, 11:07 PM
Thanks for the answer.
I get your point, but I wanted to ask if there was a LOT more to learn skill-wise (things necessary for jobs or to carry out the practical aspect of a research), or if university courses are sufficient to keep a job.
Originally Posted by MrFujin
July 14th, 2013, 05:03 AM
Computing is where math (even deeply theoretical math), engineering (even deeply experimental methodologies) and real-life collide.
There will never be enough time in the world to learn everything there is about all three. Don Knuth has basically spent his life trying to get
to the bottom of all that and report his findings back (and is still at it) -- and the result is that most people find that simply understanding the
books he has written would take more time than they have.
So pick a discipline to be formally educated in, and learn whatever they have to teach you. Use that as a basis for further inquiry for the
rest of your life. University can be very useful because it at least gives you a starting point. Perhaps people like me who never had
the chance to go to school appreciate the advantages of school more than those who felt they "just sort of had to go" because that's
what people do wherever they are from.
July 14th, 2013, 07:16 AM
It's like what Mr. Fuujin said. There is only so much you can learn before you need to start asking your own questions and seeking more answers. There is also only so much you can learn in 3 months while taking a course. To get good at something you really need to learn more and more about it and apply that knowledge so that it becomes a useful skill.
I am actually still in University. I am in a Co-op program where I alternate between working in the industry as a Software Developer and taking courses at school. I have 6 more courses to take before I can graduate.
I am currently taking a course in Distributed Computing and my professor said something that really made sense to me. He said that "You can't expect to know how to do distributed computing after taking this course. I have given you the tools to start learning and applying knowledge about distributed computing." He is completely right. I will get a definite A+ in that course, but if someone were to come to me today and say "I want you to create a distributed application that does this and that." I would need to do a lot of research and learning to ensure that what I was doing is correct for the industry.
My professor said something else that really struck a chord with me. "University is about teaching you how to learn and solve problems on your own. We aren't here to teach you every language in existence. You can learn that on your own because you have learned how to learn and solve problems you have never seen before at University." This couldn't be more true. This is a the true purpose of University. It creates people who ask questions and learn more about something seeking answers. In the industry technology changes very quickly, so you are constantly learning new things to keep up. Without the skill of learning and problem solving I attained at University it would be impossible for me to keep a job.
On another note, if you ever read my replies to any posts here on the boards. I don't know the answer right away to 90% of them. What I do is I research the problem, read documentation, come to a conclusion and post my response with links to resources.
Last edited by Cameron0960; July 14th, 2013 at 07:18 AM.
July 16th, 2013, 03:46 PM
I would vote for "data structure and algorithm complexity". If you would like to understand more behind all the fluffy programming languages, choose "Computer Compilers".