According to the Viterbi Admissions site,
Computer scientists and computer engineers design and implement efficient
software and hardware solutions to computer-solvable problems.
which sounds about right to me. But in my own words, Computer Science is applying computational tools and logic to solve problems, With a huge emphasis on logic.
That’s really what drew me to Computer Science. I had never tried programming in high school but I was always pretty into computers. But when I tried out CSCI101, USC’s intro couse, I fell in love quickly. C++ is an awesome tool and I was really attracted to the pure logic of Computer Science. It’s a ton of fun to sink into a project and make things work. Another big appeal for me is how quickly you can see the results of your actions. You try something out and right away you know if it works or doesn’t work. If it doesn’t you get to fixing it.
It’s also a subject that you can really dive into on your own. For example, as a side project now I’m learning Objective C so that I can make apps for iOS. I think it’s really unique to Computer Science that you can dive into new things on your own and work it out and I think this is because of how quickly you know if you are doing it right or wrong and how easy it is to try new things.
USC also has some awesome resources for Computer Science Majors. My favorite library, SAL, the computer science center is an awesome place to study.
It has a great vibe to it and is a perfect place for working in groups because of the layout of the spaces. There are lots of collaborative spaces, full of CS majors hard at work.
USC also has amazing resources as far as computers go. Our computer labs are stocked up full and it’s possible to get by without even owning your own computer (or you can just not bring it to class) because you can check out laptops at multiple locations or use one of our computer labs with computers that run both OSX and Windows!
So far in my major I have taken CSCI 101, Introduction to Computer Science and am currently in CSCI102, Data Structures and ITP 104, an HTML class (it’s not a requirement but is related), along with physics and math classes. CSCI 101 was a really cool introduction to programming and C++. You learn to do some awesome stuff in that class, for example, in 101 this semester, a friend of mine had to do green screen image processing for a homework assignment. Being able to do something like that with just the basics is something I love about Computer Science.
In 102, we focus on C++ data structures and algorithms. We have learned all about different methods for problem solving, with tons of focus on sorting. It’s a fun activity to think of algorithmic approaches to problem solving and really teaches you to plan ahead and think. We have also learned the Qt graphics library and used it to apply our data structures knowledge to making video games.
Our work with video games this semester has made me want to try a bit more video game programming and next semester I will be taking a full blown video game programming class and learning a new language, C#. I will also be taking a discrete math course, which is really applicable for CS problem solving. Being able to pick tech electives based on what I’m interested in is a huge plus about the Computer Science major. It’s nice to have the flexibility to try out different things and pick up new skills and everyone gets to find what interests them more. For example, Rob, a fellow VSA Computer Science major will be taking a Computer Security class for his tech elective. We have different CS interests and the flexibility allows us to deviate accordingly.
There are also great research opportunities available in Computer Science at USC. While I personally have not taken on research, my professors are involved in some fascinating projects. For example, my current 102 professor, Professor Tejada, is involved in research relating to human/robot interaction and collaboration. She works with having humans and robots work in teams, for example having robots and humans play a game of Unreal Tournament together, a sort of video game Turing test where it’s not always clear who is human and who is robot. The primary area of application is in search and rescue. The goal is to be able to use robots to work with humans in disaster areas. Her other goals with research are to heavily incorporate undergraduates, starting at the freshman level and to use robots in Computer Science education for middle schoolers. She believes that research is an invaluable experience for a college student, and I feel that I have seen this reflected in USC’s desire to get freshman started out in research right off the bat.
I have loved my Computer Science experience at USC and find it to be an awesome field of study. I’m always happy to answer questions about it so if you have any, get in touch!