- Published on
A Complete Guide to the Cognitive Science Major at UCLA [Software Engineering Edition]
Table of Contents
Introduction
So you want to be a Software Engineer, or maybe you were something else and want to transition into being a Software Engineer. The good news is Cognitive Science is by far the best way to gain entry into this field from other majors at UCLA. Things that make this a clear choice for people wanting to make the switch are as follows:
- In L&S so you can switch into the major with ease, or switch out if it's not for you
- Avoids all of the nasty Physics, Math, and other requirements that Samueli places on their students
- Doesn't have that many upper divs so you can focus on internships, recruiting, and just developing your swe skills
- Has great enrollment privileges allowing you to enroll in all of the CS classes during your first pass
Before I get started, I'm just going to do some house-keeping and lay out some assumptions that I have for you if you are reading this.
- you are aiming for big tech
- you want to complete the specialization in computing
- you are going for swe (not pm, or other engineering roles)
- you want to get the most "bang for your buck" in terms of education vs. lifestyle in college (i will not be recommending classes that might be useful for grad school & are not relevant in your career)
Lower Division Recommendations
Objectives
- Be prepared for recruiting Sophomore year fall.
- Be prepared for internship Sophomore year summer.
- Knockout lower division courses in the least stressful manner.
Advised Courses
I feel like the best way to do this is to just lay out the requirements and write notes on all of them for you guys. If the recommendation says --
that basically means it does not matter and you can take whatever you want.
Courses | Recommendation | Rationale |
---|---|---|
Life Sciences 7A or 15* or Physiological Science 3 | -- | Just know if you take 7A get ready to meet all the premeds! |
Mathematics 31A & 31B or Mathematics 3A & 3B & 3C | -- | So this one is a little tricky. I personally took LS30A, 30B, and Stats 10 (you can petition stats 10 to count) but sometimes I regretted this decision. It is by far the easiest way to accomplish this requirement but 31A and 31B are requirements for linear algebra (33A) which is basis of Machine Learning. If you want to keep your options open, I would recommend 31A & 31B. If you don't gaf I would do the LS series. |
Philosophy 7 or 8 or 9 or 23 or 31 | -- | |
Physics 1A or 5A or 10* or 11* or Chemistry 14A or 17* or 20A or Linguistics 1 or 20* | -- | It doesn't really matter, but if you want to go deeper into LLM stuff, I would go down the linguistics path. |
Program in Computing 10A | DO NOT TAKE PIC 10A, take CS31 | The PIC series at UCLA is an abomination. It theoretically is teaching you the same stuff as the CS series except its disjointed, varies by professor, and not nearly as good of a curriculum as the CS series. |
Two courses from: Program in Computing 10B or 10C or 15 or 16A or 16B or 20A or 30 or 40A or Psychology 20A or 20B or 30 or Statistics 20 or 21 | Do not take anything in this list; CS31/32 will count for PIC10A-B | I know you might be inclined to take something like Python or idk MatLab but if you go down that route you shoot yourself in the foot for all of the important CS upper divs that you will need to take. C++ might seem like a drag but once you learn a typed language it is so much easier to pick up untyped languages. |
Psychology 10 | -- | AP Psych counts. |
Psychology 85 | -- | Take this whenever the professor is good. I had Kelman and his class format was weird as hell, the material itself was very interesting though. |
Psychology 100A** | -- | Take as early as possible. Professor does not matter this class is chill af. |
Psychology 100B** | -- | Take as early as possible. Enrollment is annoying as hell!! |
Okay so now you have these recommendations. If you haven't noticed already the Cog Sci major is really short and it will leave you with a lot of time in the first two years to supplement your learning. Consider this plan for all of your lower division classes.
Quarter | Classes |
---|---|
Y1 Fall | LS7A, Math 31A, Philos 7 |
Y1 Winter | Math 31B, CS 31, Ling 1, GE |
Y1 Spring | CS32, Psych 10, Psych 85 |
Y2 Fall | Psych 100A, GE |
Y2 Winter | Psych 100B, GE |
Y2 Spring | GE, |
As you can see, you will easily run out of classes to take early in to your second year and you will want to save some of the GE's to pad the harder upper division classes. Therefore, to prepare for the upper division classes, I recommend supplementing your learning with the following:
- CS 33 (Computer Architecture)
- CS 35L (Software Construction)
- Math 61 (Discrete Math)
- CS 180 (Algorithms & Complexity)
With these classes considered your schedule will look something like this.
Quarter | Classes |
---|---|
Y1 Fall | LS7A, Math 31A, Psych 10 |
Y1 Winter | CS 31, Math 31B, Ling 1, GE |
Y1 Spring | CS32, Philos 7, Psych 85 |
Y2 Fall | Psych 100A, Psych 85, CS 35L, GE |
Y2 Winter | Psych 100B, CS33, Math 61 |
Y2 Spring | CS 180, GE, Psych 120A |
The above schedule will allow you to knock out all of the objectives and will really prepare you for recruiting and internships in general. The most important courses by far are CS32 and CS35L for recruiting and internships respectively. You will also get a head start on your upper division classes.
- Be prepared for recruiting Sophomore year fall (CS32)
- Be prepared for internship Sophomore year summer (CS32/CS35L/CS33)
- Knockout lower division courses in the least stressful manner
Upper Division Classes
Now these are more your choice and really just depend on what is offered in each quarter. I'll put together a list of CS classes that you 100% should take and that's all that is really necessary. For everything else, just follow the guidelines and take interesting/smaller classes.
- CS 111 (Operating Systems)
- CS 131 (Programming Languages)
- CS 180 (Algorithms and Complexity)
- CS 118 (Networking) or CS 143 (Databases)
General Advice
- Make sure to petition courses for the specialization in computing. You can basically petition any CS class to count for any of the "computing" psychology classes.
- Enroll in summer session during your internship and have your internship that you recruited for count towards the Psych 196B fieldwork requirement.
- Psych 121 is much easier than 186A or 186B and counts towards the specialization
- Authors
- Name
- Apurva Shah
- Website
- apurvashah.org