Now that we’ve established some of my incoherent thoughts about computer science, let’s take a look at what this class in particular is about.
This class will first and foremost teach you how to program. You will gain a decent understanding of programming paradigms that ought to help you in your future computer science endeavors, and you will learn the ins and outs of abstraction. This last bit is particularly useful when you move forwards into the real world, starting with CS 61B, where you’ll be expected to work as though in real life – debugging issues with less helpful error messages, reading through other people’s code to figure out how to place your own, etc.. In this regard, CS 61A will more or less walk you through everything. You will gain a full understanding of Python, as much as is necessary to create fully functional tools and programs.
All the ideas you learn will be brought together through projects, which will generally challenge you to combine concepts to solve problems. In some semesters, you will even learn two languages on top of Python: Scheme and SQL. Scheme will challenge you to understand how computers interpret and execute programs, as you will likely have a project where you will implement an interpreter for Scheme (yes, you will be making a language interpreter in your introductory CS class!). This course will at some point along the way demand a lot of you – you may feel intimated by the pace or by the breadth of content you cover. This is exactly why I encourage you to always stay in touch. Keep up with lecture, do all of the discussion worksheets, complete every lab, and ask as many questions as you have. If you’re stuck, even on the most minute detail, do not be afraid to ask. In a class the scale of 61A, it’s hard for course staff to pinpoint when students struggle, so use your resources. Ask, get tutoring, search Google, and maybe use this guide if it helps you.
Professor DeNero mentioned something at the very beginning of Fall 2019 (and Spring 2020), which stuck with me and I think is extremely applicable to this class: build good habits now. If you start the semester strong, your decay will be slower. If you start the semester procrastinating, your decay will be significantly quicker. You need to decide for yourself how much you want to succeed in this class. You need to motivate yourself for a fun semester.