WRITTEN BY JOSH WEINSTEIN (PEACE ADVISOR)
This is a two part post, explaining what you really learn in CS 61A, for both students intending to major in CS, as well as students that want to just gain some programming knowledge and skills.
Programming, more specifically computer programming, involves writing sets of instructions, called code, that a computer read and executes, performing the tasks you instruct it do. Code, is written in different languages. These languages, such as Java, Python, or C++, all have different syntax or encryption, but fulfill the same basic meanings and functions to a computer, much like the languages human speak to each other.
Now you might ask, how does computer code translate into apps on the App Store or these massive web applications we use like Facebook, Youtube, Google, Twitter? Or how does code translate to becoming installable software like Adobe Photoshop, Illustrator, Microsoft word, etc? The answer to that is, code, can be put together, or as programmers call it, “built” with different components, such as a graphical user interface, that allow the code, to be executable as a program. When I say execute, I mean that someone can utilize the functions in a bundle of code, (such as sending an email or drawing a picture), WITHOUT typing that code themselves. For example, when you tap the Gmail app on your IPhone, you are executing the Gmail IOS application, and you are sending and receiving emails using Google’s code, in a packaged, efficient way. There are many frameworks that exist to build programs, and applications, through either the web, on a mobile device, or an installable program on one’s computer.
CS61A DOES NOT TEACH YOU HOW TO WRITE PROGRAMS OR ANY APPLICATIONS. Taking CS61A does not give you the knowledge or know how to create a web application, mobile app, or downloadable software program. Please take note of this. CS61A only teaches you how to understand the process of writing code in a easy-to-use programming language called Python, and many general features that exist in a variety of languages. This course gives you the basis to read, understand, and write code. It does not give you the tools to package your code into programs.
You have to ask yourself, why exactly do you want to take CS61A? If you want to learn how to build websites, or web applications, but aren’t majoring in computer science, it would be much better to first take a Decal, such as the Ruby on Rails decal, to learn that instead of taking CS61A. If you want to learn how to build mobile apps, such as on IOS or Android platforms, to take an online course in IOS app development that are offered for free on Youtube and other sites. I say this because, the Python language cannot be used to write mobile applications, since the major mobile platforms cannot accept programs written in Python.
CS61A only tests you on your ability to read, and write code, while also understanding, complex, twisted pieces of code and making sense out of them. I only recommend taking the course if you have an interest in the process of writing code specifically, and want a more intensive environment to explore that in. Stay tuned for Part 2 when I discuss the more specific elements of the course and how to stay best prepared for them!