“For your dedication and leadership in SCS4All and your exceptional work as a teaching assistant in 15-151 and 15-251, along with your leadership as a tour guide, I have nominated you for the Senior Leadership Recognition. Thank you for all you have done to help our students in computer science and address issues of diversity and inclusion on our campus. You are a role model for many students and have had a lasting impact on all of us!”
“Hi Parmita. I nominated you for the Senior Leadership Recognition because you have emerged as an amazing leader and role model during your time at CMU. I am extremely proud of you! You are a star and I can’t wait to see what comes next.”
What do you feel has been your most meaningful contribution as a leader during your time at Carnegie Mellon University?
How has your involvement and leadership within your communities facilitated your growth and learning as part of your overall CMU education?
Leadership is about enabling others to do their best and achieve a shared goal: listening to them to learn what they need and then doing whatever you can to make sure those needs are met.
Through my leadership experiences as a TA, then Head TA, and an organizer at SCS4All+Women@SCS, I believe I have had a meaningful contribution to the CMU SCS community.
As a TA, the people I enabled were the students. I listened to their questions and concerns and then gave them support and guidance so that they could become better problem solvers and thinkers. I also listened to what parts of the course were particularly challenging and confusing for students as a whole. This inspired me to go outside of my regular duties as a TA and create new content and guides. Over the course of my years TAing, I ended up creating quite a lot of extra content:
A collection of color-coded visuals for 151 that help explain some of the hardest concepts from the notes
An all-encompassing 20-page guide to success in 151 with advice for every aspect of the course
A set of interactive visuals to guide students through difficult proofs in 251
A series of videos explaining the recitation problems in 251
This is one of my most meaningful contributions because I know this content will continue to help students long after I’ve graduated. Additionally, teaching requires you to learn the material at a whole new level, and I’m glad I had that learning opportunity and got to apply my skills in a way that helped my fellow students.
As a Head TA, while still helping students, I also had to focus my attention on enabling the cohort of TAs to perform their best. I listened to their unique set of concerns and did my best to ensure they were supported. This involved settling disagreements, making tracking spreadsheets, and communicating our course objectives well. This really facilitated my growth as a person. Sometimes I had to play the “bad guy” and reprimand someone who wasn’t pulling their weight or argue with people I respected to come to an agreement–roles I was previously too scared to perform.
And lastly, as an organizer at SCS4All+Women@SCS, I helped lead our weekly meetings. Listening to the students there and making sure every idea had a place at the table so we could organize the events that most students wanted. Through this, I believe I became a better presenter, public speaker, and person.
Being a TA is by far the most meaningful experience I have had at CMU.
Now that I’ve graduated, I wanted to write something down about it (ya know, before I inevitably grow old and feeble in my mid 20s and forget how important this experience was to me 😛)
It’s no secret that helping other people makes you happy–not the kind of fleeting happiness that comes from a sugary treat or binging a TV show, but the kind of happiness that lasts for a long time and uplifts you continually.
Being a TA meant it was my job to help people directly and I got to do it every single day. It made me feel like I was truly putting my time to good use when I helped a student understand something new.
I honestly think I was so lucky that I ended up with the opportunity to have a job like this, even if it was just for a little while. I don’t think I have the proper vocabulary to describe what it felt like, other than it made my heart warm and my mind more content with life. That feeling you get when you’re doing exactly what you’re meant to be doing, the best possible applications of your skills, the best position for yourself.
Another way it brought fulfillment is because I got to “pay it forward.” When I started off in college, I had a really (really!) rough time. And I took a lot of help from the TAs. Many of them graduated after that and I don’t think I can ever pay them back for how much they supported my learning. Getting to help the next batch of students feels like the closest I can do to replaying them.
TAs interact with a lot of people. Most obviously, with the students, but also with fellow TAs, the professors, and administrators.
I meet some of my students in social clubs and it’s nice already knowing them. And some of them reach out for further advice and mentorship beyond the course and become TAs themselves! Being a mentor, even outside of the course, is pretty rewarding.
Many of my closest friends were TAs for a course with me. Alongside organized TA social events, the long nights grading together and putting out logistical fires were definitely a way to bond with each other. When covid hit and all classes were online, my social life took a major hit. I suddenly lost contact with all the friends I normally met around the dorm and between classes. (Eventually we figured out how to plan video calls and still regularly keep in touch–it’s not the same, but at least we still see each other) However, my fellow TAs, I had to keep seeing multiple times every week for course logistics, and being around them honestly kept me sane for those first few months before I adjusted.
I also got to see professors in a different light. As a student, you often just see the lecturer side of a professor, but as a TA you get to see how they are a manager, a boss, a mentor, an organizer, and even as a friend. Professor Anil Ada has had a profound impact in my life. When I was a student in his class, he fostered my interest in not only Theoretical Computer Science, but also about learning in general. Later as a TA for his class, I got to see behind-the-scenes how he made his course so inspiring–the level of commitment, care, and dedication it takes.
Professional Leadership / Job Skills
TAing is not like the super professional kind of job where you get dressed up in a suit and “do business work” or whatever it is that real adults do. But it does require you to take on responsibility, stay accountable, have multiple people depending on you, work with hierarchical organizational systems a lot like other “grownup” jobs.
This was further amplified when I became Head TA for a class (a certain class which I wrote *a lot* about here: https://parmita52.com/2020/10/03/how-to-succeed-in-151/) and learned about the best ways to handle reporting to people both above and below me, making lots of decisions based on limited information, handling logistics, and a whole host of skills they don’t necessarily teach you anywhere. These are the skills that people often learn on-the-fly at a job itself, so I am grateful that I got to experience it now.
Being a TA also means being on a course staff–essentially a team. You have to practice working well on this team long-term–not a week-long group project, but a multiple-year team where each quarter, a few people leave and new ones come in and you have to on-board them and adjust. You end up forming long-term working relationships with these people and learn how to play to everyone’s strengths to reach a shared goal. This whole paragraph is also a description of the way I’ve seen a lot of engineering teams function during my internships, so I got to work on those skills through TAing. By “those sills” I mean communicating well in a team, recognizing what things are worth disturbing another teammate to ask about and what things are not, standing up for yourself when things are not working out, keeping long-term course goals in mind while working on short-term tasks, and tracking your accomplishments.
I read and appreciate every single piece of feedback. It really means a lot to me. Recognizing how a single piece of student feedback can totally make my day has also pushed me to comment whenever I notice someone doing something good. It’s so simple for me to do, but I have the power to boost their mood 🙂
Of course this is my rosy version of TAing since it was my passion and the most pivotal part of my college experience. It might be misleading to leave it at that, so I feel like it is worth ending this with some caveats.
TAing can take a lot of time
There were things I thought I would do in college that I never got around to. This was partly because of covid cutting it short, but also partly because I poured a lot of time into this one activity instead of others. I thought I would join a cultural organization or take advantage of the fact that I was at one of the best arts and drama universities in the country. But I didn’t really get around to either during college.
Do I regret it? No. But it is something worth noting.
It’s hard to say it’s worth it for the money…
Get paid more at my local McDonalds back home than I ever did TAing in college…. (okay I included this because it is a funny and technically true, but lol this mainly has to do with minimum wage laws in CA vs PA…the main point I’m getting at is…just don’t expect much higher than minimum wage despite all the work put in)
All in all though, I wouldn’t trade in my TAing experience for anything else. I got to have an impact on students, make new friends, and learn and grow so much as a person.
What this is: This is advice for the CMU class 15-151 aka “Concepts” aka “Mathematical Foundations for Computer Science.” It’s the intro CS class that all freshmen in the School of Computer Science (SCS) have to take.
Who it’s by: I’m a senior in SCS. Though it’s been a while since I’ve taken Concepts, I was a TA and later Head TA for this class, so I’m not too removed from the material. I also TA 15-251, the class that comes after this one and the title of this guide is based on “How to Succeed in 251”–an advice document for that class.
Listing all the stuff above makes me sound wayyy more OP than I actually am, so I will preface this by also saying that while I was at one point a Head TA for this class, I was also at one point a freshman who cried when they got their first failing grade from concepts and called their parents because the class was crushing me and I thought I should drop out of CMU. (ikik, I was very dramatic–not just drop the class, I wanted to drop out of school!)
Throughout this guide I sometimes switch between the perspective of a student and the perspective of a TA to best explain the point I’m getting at.
Who it’s for: I was asked by a member of Women@SCS to write this guide for the incoming SCS freshman who always seem to ask the same question every year “How do I Succeed in 151?” You can see (the much muuuchh shorter version of) the guide here: [link]
Though I hope it will be useful for anyone who might be taking this class, it is definitely geared towards SCS freshmen. 151 is notorious for being the hardest class of your first semester. Of course, some students don’t see it that way (heck, some people even test out of the class and go to more advanced stuff!) but from my experience, a large portion of people are super intimidated (I was in this portion for sure!) and would benefit from some strategies to arm them.
I’m writing this as advice I wish I had as a freshman, and my experiences are by no means universal, but I feel they will still be useful nevertheless.
Let’s get to it.
Part 1: Wake up at the same time every day
This might seem a little weird to include since it isn’t course specific, but in order for any of the advice after this to be actionable, there’s one thing you need to have: Grit (or discipline, or mettle, or spirit, whatever you wanna call it)
Now, I’m not saying that you don’t already have grit (you got into CMU SCS after all), but I am saying that a big part of 151 is also being in college for the first time. New place, new people, new food, new responsibilities (or maybe you’re in Zoom university and feel like this doesn’t apply, but bear with me!)–these can all be overwhelming and if you aren’t careful, they will overtake you and wear away at your spirit. Maybe this is not the case for you (nice!), but it sure as heCK was for me. My freshman year suuckkkeddd in terms of adjusting to college life. A variety of personal and health problems #rekt me.
Waking up at the same time everyday was my one saving grace.
It gave me balance, consistency, a sense of control, and importantly, it let me practice grit. It takes a certain amount of grit to stop what you’re doing and really cut yourself off at Xpm because you know you just have tobe up at Yam. (Notice how the X and Y are up to you–the time isn’t as important as the self discipline.)
To be honest, there’s nothing that magical about waking up at the same time every day–and maybe waking up at the same time every day just won’t fit your lifestyle (wowow, look at you party kid 😉). If there’s something else you can do that you like better to practice grit, you should practice that instead (and plz tell me what it is–I’d like to know!…I’m not even joking my dude, my contact info is literally right here). If nothing is coming to mind however, waking up at the same time everyday is something you can adopt.
Okay, now that I’ve gotten off of my soapbox about grit, let’s get to what you really want to know: the class.
Part 2: Making the best use of each part of the course
In high school, there was often just class and then homework. And the homework was often just a repetition of whatever you did in class. Not anymore kiddo! There are at least 5 different moving parts to your typical CS class and the homework is an entirely new beast. Let’s make sure you have a handle on each part and make the most of each one.
Professor John Mackey’s lectures are famous at CMU. For his ridiculously high energy and the fact that he can drink like 2 full liters of coke a lecture (and he has to lecture at least twice per day…is that healthy???) He’s a great lecturer in that he knows what he’s talking about, he’s very engaging, and has decades of experience. He is perhaps not-so-great in the fact that his lectures are often intimidating to students. Students, who in high school were used to understanding every word coming out of the teacher’s mouth, now find themselves understanding maybe like 30% (maybe less?) of what this man is saying. That can be scary, but don’t worry, you aren’t alone and there are still concrete ways you can make the most of lectures!
1. Stay engaged! 🌟 Even if you don’t understand everything that’s going on, resist the urge to take out your phone and distract yourself. (This goes double to all you Zoom Uni kids, where this temptation is even stronger!) On top of the fact that this is another way to practice grit, Mackey often sprinkles in exam hints and homework hints throughout the lecture. If you aren’t even going to focus and listen…might as well not attend?
2. Take notes 📝 Mackey will do example problems in lecture. Maybe you understood exactly…0% of the example problem. That’s alright for now. Just write it down so you can refer to it later. This also means your notes should be organized enough so that you can actually find them for reference later. Writing the date with the day of the week is useful so when someone says “remember last Wednesday’s lecture” you can quickly flip to that.
3. Enjoy the ride 🎢 You’re lucky to have Mackey as a lecturer! He tries extra hard to be fun and engaging–not all profs will bother to do that. Enjoy his funny stories and bond with your fellow classmates over his absurdities. You guys are about to spend the next four years together–might as well get talking to each other now. And the zany Diet Coke addicted man in front of you who just told a horrifying story about a poor hiker is the perfect conversation starter.
2.2 Clive’s Notes
aka “An Infinite Descent into Pure Mathematics” aka your “textbook” for this class
From my experience as a student observing fellow classmates, as a TA observing the students, and as a Head TA observing student outcomes on a higher level: The biggest difference I note between those who start off struggling and then do poorly/fail versus those who start off struggling and then actually rise is how disciplined and engaged they are when reading Clive’s Notes. Clive’s Notes will likely be the most technically dense reading you have ever done in your life. It takes grit to get through it. That’s why you’re practicing grit in part 1.
But “Disciplined and engaged when reading” is pretty vague, so let’s get specific.
Knowing which chapters Mackey wants you to read before which lectures (it’s on this page: http://www.math.cmu.edu/~jmackey/151_128/syll.html, but subject to change throughout the semester and you should pay attention at the start of lecture to see if it did change)
Actually reading those chapters on time
Setting aside designated time for reading the notes and sticking to that plan
Being focused when reading (No, you should not check social media every 5 minutes. Yes, I know you’re still working on that one )
Always knowing the context of whatever you’re reading (“I know that right now I am reading Chapter 3. It is on functions. I am learning about different types of functions right now”)
Knowing what you don’t know! (“I recognize right now that I read Definition 3.2.1 about injective functions five times now, but I still have no idea what it means intuitively. I will note this down and ask my TA in recitation tomorrow”)
Creating your own abridged version of the notes in your own words. I know this sounds overkill, but there are so many benefits to it:
Helps with the two points above (about context and recognizing what you don’t know)
Gives you a quick reference sheet of important definitions/theorems when doing your homework
Gives you amazing final exam study material (you’ll thank yourself later)
Makes you more likely to have these important definitions/theorems memorized since you practiced writing them down once
Cool, now that you’ve got discipline and engagement down, there’s one last thing I want to mention: Memorization.
There’s this weird romantic idea that advanced math involved no memorization at all–that’s just for silly subjects like history, right? Wrong! (also history is not all that silly)
When you reach proof based mathematics, most of the problems given to you are like puzzles or games. Professor Anil Ada, who teaches 15-251, the class after 151 gave this amazing analogy:
If your goal is to become a chess master, but you don’t have the moves of all the pieces memorized, you’re never ever going to reach your goal. There’s no way you’ll be able to reason about high level strategies if your mind is still bogged down with thoughts like “was it the bishop or the rook that can move diagonally?”
Even if you have a reference book by your side with all the moves written down, if you’re spending time looking up the moves, you aren’t spending your time thinking of the big-brained strats you need to win.
Also, even if you memorized the reference book and you know the exact words “The Bishop moves diagonally,” that is pretty useless if you don’t know what “diagonally” means. Taking this one step further, it’s one thing to know how to pick up a bishop and move it diagonally following the game rules, but it’s another to know when is the smart time to make such a move to win the game.
In terms of 151, what this means is that you should have the key definitions and theorems memorized, at least to some extent. Not necessarily in a “I can word-for-word write down the definition as it is written in Clive’s” kind of way. But rather is a “I can use this definition in context” kind of way. Your ultimate goal is to become a chess proofs master. You should have all moves (defs/theorems) ready in your mental arsenal and know when is the smart time to use them to win the proof.
You can break this down into:
I can parrot out the definition/theorem
I know what the definition/theorem means and can apply it
I know in what contexts to apply the def/theorem and can do so to solve a proof question
Perhaps you don’t feel like you’re at level 3 yet. That’s okay. The point is that you sure aren’t going to reach level 3 if you haven’t even gotten 1 and 2 down yet. So work on 1 and 2 now, try your best to practice level 3, but don’t worry too much since you’ll develop your level 3 skills in the next steps below.
Here’s one place where you can practice your level 3 skills. Or at the very least, you’ll hear someone your age, who was just in your shoes a few years ago, practice their level 3 skills out loud. This gives you the chance to see those skills in action and ask them about it. Take this opportunity to pick their brain and see if you can imagine yourself coming up with the things they do. Ask them questions so you can really pick their brain! Even if no one else is asking questions, do it anyways. You’d be surprised how many people will start participating once they see one other student do it (I guess we’re all just sheeple, huh). And the more questions people ask, the more you get to learn as well and the whole recitation improves! So ask questions.
Also, example problems are super useful for this class, you can break an example down to its key ideas and problem solving strategies and then use those ideas and strategies in the homework Psets and the exams. Recitations are the perfect time to see an example problem broken down like this. Writing the examples down for future reference is also a good practice. Concepts has a policy of not releasing the recitation solutions outside of recitation itself, so taking notes is a very smart idea.
<example breakdown incoming TK>
Your goal in recitation is to re-establish definitions/theorems and see a walk-through of an example problem so that you can eventually see yourself being able to do them too.
Ideally, your recitation TA breaks down problems in a way that you understand. But everyone breaks things down differently and maybe their style just doesn’t work for you. I know for a fact, that my style (aka talking to myself in different voices and using lots of colors) works well for a lot of students (and for myself) but other students find it childish and annoying. And that’s totally okay!
You can switch recitation sections if one really isn’t working for you. No hard feelings! Check out the recitation page: http://www.math.cmu.edu/~jmackey/151_128/recitations.html. It conveniently has the TAs faces next to each time slot. Do you remember from OH or a review session a particular TA who explained something well to you? Might be worth switching.
However, I will warn against switching more than once or twice. Ideally, you should actually form a connection with your TA. They should know your face and name (which is not gonna happen if you only show up to their section once a month). And if you’re lucky, they could end up being a great friend and/or mentor even after the course is over.
Even if you don’t become friends with your TAs, that’s totally fine. But you should try to make friends with people in your recitation. They’re your fellow classmates, and maybe even housemates for the next four years. It’s worth getting to know them and forming those connections. (And you conveniently have at least one thing in common already!)
Ask questions (how else are you gonna get those level 3 skillz)
Take notes (more example problems to reference and learn from)
Switch sections if needed
aka Problem Sets aka your homework aka bane of your existence
A yes. Here’s the kicker. The one everyone’s been waiting for.
I don’t know about you, but when I was in high school, my math homework consisted of like 30 tiny problems, each of which was totally a carbon copy of examples done in class, just with different numbers, and each homework was just due the day after it was assigned. I could turn on a fun playlist, turn off my brain, and just chug away at the problems until they were all done.
Not anymore! These Psets were not at all what I expected when I heard the word “homework.” There’s only about 7 problems, and you have a whole week to do them! But unlike the 30 tiny math plug-n-chug problems I was used to, each one of these 7 problems requires a lot of thought and out-of-box reasoning. And it wasn’t like I could just do one per day and be done by the end of the week either (haha, trust me, I tried). I could spend an entire day on just one problem and not get anywhere closer to an answer.
This means you have to work on them in parallel. Read all 7 problems, see if you get any ideas (probably not yet, but that’s okay). Now make slow and steady progress on each of them in the coming days.
Here’s where all your previous preparation from the parts above kicks in.
By the time you’ve reached the Pset problems you have read Clive’s and to some level memorized important definitions/theorems, you have written down and can reference example problems Mackey did in lecture, and you understand the example problems from recitation and can break them down into their key ideas. You are well prepared to tackle the problems.
Despite all of this, they will still somehow manage to kick your butt. But that’s okay, they were designed that way. The secret to basically all the CMU CS courses is that while yes, they are testing specific subject matter, the real thing they are testing is “what do I do when faced with a new problem I have not seen before?” That’s what you’ll be doing when you get a job in industry, or go do research, or whatever it is that you go do.
Despite all the examples you have collected for yourself, none of them will match up exactly with the new homework problem you are faced with. And that’s how real life is like anyways. Face the challenge as an opportunity to stretch your mind and work out your brain–you will come out stronger. Yeah, I know how cheesy I sound right now, but sometimes the cheesy thing is just true.
If you get stuck, no worries. Next to each problem write a list of the definitions, theorems, and key ideas that you think this problem might use. Try applying each one and see what happens. Probably nothing, but that doesn’t mean this practice isn’t useful. You are practicing using your knowledge and you are narrowing the search space towards the correct solution.
After you’ve done that, think very very hard about it. I know that’s vague as heck, but you know you can tell when you’re really thinking about a problem vs just staring blankly at a page. Feel the gears in your head grinding. Maybe they don’t actually get anywhere, but the exercise you just gave your brain is really the point of the class, so it’s worth it.
After all that is done, maybe you have some vague collection of ideas or possible routes to a solution. Maybe you even solved one of the problems! Or maybe not. Either way, sleep on it, you might just dream up a solution. I’m not joking btw. These kinds of problems are the ones where answers come slowly and the subconscious part of your brain needs time to work on it.
At this point you’ve:
Used all your previous preparation to make a list of definitions/theorems and key ideas for each problem
Thought really hard and tried your best to come up with solutions
Slept on it
Now it’s time for the next step: Office Hours
2.5 Office Hours
Yet another thing that did not exist in high school. There are two extreme reactions I see to Office Hours:
Extreme A: “I can’t go to OH. I never needed extra help on my homework like this before. I’ll be dumb if I go to OH. I’m all alone here. Just me and my homework. No one can help me”
Extreme B: “Dang OH seems ppretty lit. I’ll just camp out here, keep putting myself on the queue over and over and over and ask all the TAs questions and eventually I have enough hints and I’ve overheard enough random conversation snippets to cobble together some semblance of a solution to the problems”
Neither one of these will benefit you. Extreme A is not beneficial (office hours exist for a reason–we know the course is hard and that’s why we provide the extra support) and I have not observed too many students fall prey to it. But for some reason, quite a large number of students give into Extreme B.
Sure Extreme B is beneficial in the short-run: you can submit your pset.
But in the medium-run: what are you gonna do come exam time when there are no hints flying around?
And in the long-run: how are you gonna take the future, harder courses that build upon your concepts foundational knowledge?
Okay, so hopefully you are thoroughly convinced that Extreme A and Extreme B are both bad for you and that there is some sort of middle path in between you can take. Now how exactly do you take that path? You have to come prepared and know when to ask for help and when to think on your own.
1 Come Prepared
If you did everything from 2.4 PSets, you have already taken care of most of this. Being prepared just means you can take the list of ideas you make and turn them into a specific question. “I applied this definition, which led me to this idea. I thought I could use this theorem, but I got stuck because of ___.” A question like this lets the TA know that you understand those mentioned definitions/theorems and it shows that you’ve already put in effort into solving the problem. They will calibrate themselves and give you help accordingly. “Help I don’t know anything!” is a funny conversation starter, not a good question to ask a TA. Sure they’ll still help you, but likely they will go over the definitions with you and walk you through bits Clive’s…which you could have (and should have) done on your own.
2 Know when to ask for help
and when to ask for more time to try and think on your own
Only you can really tell when you need help and when you don’t. Only you can recognize when you are close to a solution and maybe 10 minutes of independent thinking time will be more beneficial to your learning than more help from a TA. Only you can make the decision to ask the TA to come back to you later. Only you can stop forest fires.
In all seriousness though, this is a tricky thing to master. It involves maintaining a certain level of meta-cognition: not only do you know that you are stuck on X, you also are aware enough of your own skills and knowledge to reasonably predict how stuck you are and whether you’ll be able to unstick yourself in a reasonable amount of time.
The more you practice independently unsticking yourself without help, the better problem-solver you’ll become. So try hard to give yourself as much of an opportunity to figure things out on your own. Starting the homework early will help with this.
All of this is for TA Office Hours, but I should mention that Mackey holds Professor Office Hours as well. These are not 1:1 like TA OH and mostly, everyone just stands like sardines packed in his office (in hindsight that was probably a fire hazard?) and he answers high-level questions and gives out hints for the problems. These can be useful, but again, hearing a hint when you haven’t yet put in the thought to solve the problem yourself can do more harm than good. So make sure you’ve done at least part of 2.4 PSets before this.
Also, these hints do travel through the grapevine so even if you can’t attend his OH, it’s useful to have friends in the class (again! Making friends in recitation is a good idea!) who can tell you what went down.
2.6 Extra Resources
There are a couple of extra resources to mention before we get to exams:
Excel Group / Supplemental Instruction (SI)
Parmita’s Online Concepts notes
Two supplemental books: by D’Angelo and West and by Sullivan
Excel Group / Supplemental Instruction (SI)
I attended an Excel group when I was in concepts. I needed the extra help and I’m so glad I did because it helped me bring up my performance drastically and gave me confidence. Basically, it’s like a smaller recitation after school ends. You get even more personalized help and even more practice problems. Also sometimes before the final exam there’s study games with snacks. Take advantage of it like you would of a recitation and note the key ideas to solving problems.
Pfftttt, I am well aware of how hard I am tooting my own horn here, but I think these notes are pretty good! Mackey kept them on the course webpage for a reason. Basically just super visual and color-coded versions of selected definitions, theorems, and problems.
Everything You Always Wanted To Know About Mathematics by Brendan Sullivan Mathematical Thinking: Problem-Solving and Proofs (2nd Edition), by D’Angelo and West
These books are both long and I will preface this by saying I’ve only read selected chapters from both. However, they are full of practice problems, so if you ever find yourself looking for more practice, check these out. I will say that Clive’s notes are particularly lacking on the Counting section, and these books helped fill in the gaps with a lot more examples and it was a lot more casual in comparison to Clive’s formality.
Oof. Concepts exams. Hmm…
Before you freak out, the questions on the exam will be much easier than the homework questions. You’re given 7 days to do the homework and like 50 min to do the exam problems, so they are calibrated accordingly. And for the problems that are “more difficult” they will be similar to homework, but since you’ve already done the homework problems, they won’t be anything new, so they actually won’t be that difficult.
That it doesn’t mean these are easy. There is quite a significant time crunch. It will help to have all the definitions/theorems not only memorized but at the front of your brain going in so that you don’t have to spend time trying to recall them when doing the exam.
Let’s break down some good steps for Before, During, and After the Exam.
Before the exam:
You have a lot of material to prepare from. So about 1 full week before the exam, make a checklist of all the things you want to do to prepare. (There’s no Pset the week before the exam for this reason)
It’s up to you what you want to focus on, but here’s an example list:
Review my own version of Clive’s Notes (I’m not gonna spend time on his dense writing at this point before the exam and all the important pieces should already be in my personal notes)
Check that I have all the definitions memorized (flashcards, talking out loud, whatever works)
Read over all the Pset problem released solutions and extract the key ideas from them
Do the same for Recitation problems
Do all the released practice exam problems without looking at the notes (treat it like an exam)
Attend the TA Review Session
Attend Exam OH
Other than that, the main advice is to be well prepared for the exam in a biological sense. Sleep well, eat well (don’t eat something sketchy from ABP the night before and end up with food poisoning all night like I did 😅) There are already plenty of good articles about that, so I’ll save you the trouble of reading what you already know.
During the Exam
During the exam, a common thing that happens is that students panic. They don’t know how to do problem 1. Then they start thinking “omg I can’t do problem 1!? What if I can’t do any of them? What if I fail concepts? What if I disappoint my parents? What if dishonor on me, my cow, my whole family?” And with that mindset, they go to problem 2, and there’s no way you can handle a new problem with all those thoughts in your head.
We receive a lot of tests with completely blank responses that I would guess probably had some kind of a similar mental spiral during the exam.
So you don’t know how to do number 1? Whatever. Read it, understand as much as you can, and move on to the next one. The subconscious part of your brain will work on it as long as you don’t busy it with thoughts about the “impending dishonor on your cow.”
Maybe you do this and end up skipping the whole exam since you can’t immediately solve any of them. Okay. Now you’ve read the whole test. You know what it’s about and how long it is. That’s still progress. Come to number 1 and start the process again, giving yourself more time to think on each problem.
DON’T LEAVE ANYTHING BLANK
And please, please, please, do not leave anything completely blank. If you’ve done all the steps above, one thing I know you are capable of is writing down the correct definition and maybe even the correct theorem and even better: maybe even the key ideas for a certain problem. Write it down! You will be pleasantly surprised just how much partial credit is awarded for this.
After the exam:
Students gather outside of Rashid and immediately begin discussing the exam. 100+ voices chattering: “What did you put for Number 3? For Number 7 did you se–? I got stuck on Number 2, but at the very last second I figured it out, but also I heard tha–Can someone explain what the heck Number 5 was even about? Part ii, not part i. No wait I thought that ma–”
If you’re into that, cool. Join in, don’t be rude to others, listen to others, ask your questions and share your insights when it’s timely. Learn from each other and bond over your shared test-taking experience.
If you’re not into that–leave now! If you feel like you’re about to cry, don’t worry, you are most definitely not the only one. Most people will take the route marked below and begin to gather and chatter about the exam together. There are a few routes to avoid them:
A couple of things to remember at this point:
This class is often heavily curved (yes I have seen 70s turn into As)
There are multiple exams and you can make up for a bad one
It’s just a class
Part 3: Take Care of Yourself
plz don’t skip this part just cause it sounds hippy-dippy. That’s a real disservice to yourself, especially after all the work you put in for Part 2.
The advice in this guide might be a little overkill for you, just do what’s best for you. At the end of the day, concepts is just a class. And guess what, the CMU SCS curriculum is designed so that even if you fail concepts, you can take 21-127 in the spring instead and still most definitely graduate on time. Talk to your academic advisor.
I know from experience how stressful this class can be. I definitely hit my breaking point in the middle of that semester. I know that everyone says this to the point where it’s just a meme, but CaPS is there for you. I don’t like to advertise this, but I will say now, that yes, I completely broke down in the middle of my freshman first semester and the stress and anxiety got to me. I saw that I was in a dark place and I called CaPS, got the help I needed, pulled myself back together and ended up doing well in the course.
Maybe you aren’t in the dark “I need to get therapy right now” stage that I was in, but you are in a “this class sucks and I hate that I can’t seem to do it.”
I think one main cause of this frustration can be that you are comparing yourself to others in the class. There are people in the class who have seen this material before. In fact, this whole class might be review for them (*gasp* I know, right?) If you compare yourself to that one kid who can answer all of Mackey’s questions in lecture and breezes through the homework, you will end up miserable and have wasted precious time. This is your first semester of college. When you aren’t working, you should be making friends, exploring Pittsburgh, and most definitely not worrying about whats-their-face with the perfect test score.
When you are working, be diligent, focused, and give it your all. And when you aren’t working, just don’t worry about it. You know you’ve done the best that you can. If you’ve put forth your best effort and exercised your brain, you’ve already done what this class is trying to get you to do. The goal is to improve yourself. And if that means spending some time on this class and more time making friends, cool. Do whatever will improve yourself the most.
I hope these tips arm you to have a great semester and push yourself to new limits.
Here’s a pic of me testing it out with my intern mentor.
My contribution can be broken into 2 main parts: 1. Using Machine Learning (ML) to make video suggestions 2. Creating a Visualization Tool for development and debugging
1. Using Machine Learning to make video suggestions
In the Watch Together feature, there are multiple tabs that organize suggested videos.
We make and test numerous ML models to determine which is best (best usually means the one that provides the most engagement and satisfaction). It’s basically impossible to filter through every single video ever on Facebook to determine which one is best for you, so instead, we create a set of smart shortlists from a set of “seeds” and filter from there.
An example of a seed I implemented was using an engaged FB page to get currently playing live videos. I got to work with many of FB’s ML modeling tools. Most of ML engineering is actually running tests and making decisions. There is definitely not as much coding as something like Prod Engineering.
2. Creating a Visualization Tool for development and debugging
As we are coding and making changes, we want to see how the suggestions change in real time. We don’t want to have to sit through the whole process of trying to ship all the code to Android/iOS and thus be dependent on that team’s side of things in order to test ML recommendations. At the same time, we don’t want to have to use the dictionary of numerical ids to try and get a sense of what is going on.
So instead, we create a middle-man tool to visualize and provide lots of debugging info. This way we get the best of both worlds.
Creating this debugging tool was one of my favorite parts since I liked working on something so visual and I also liked helping my team and knowing that they found my tool useful.
Overall, I am so grateful I got to have this experience!
This summer I was fortunate enough that the company I signed on to intern with, Facebook, was doing a remote internship during the pandemic. I wanted to summarize some of the ups and downs of this experience.
Facebook has a very structured internship. Interns (at least on the technical side) are given 3 milestones, each split up into a variety of tasks, and an estimated timeline of when each of those would be finished. I really liked this structure for a few of reasons:
It translated well to remote work: With a set structure, there is less to set up and plan once the internship starts, which saves a lot of effort since planning remotely is far more difficult.
It kept me productive: I always knew concretely what I should be working on for a given day
It was more like real life: In past internships, I would work on an isolated, more freeform, intern project with a few other interns and that standalone project could be used by the company later. That’s nice, but in real life, people have to spend time searching for code. The project you create will be integrated with thousands of other people’s code and has to work in sync with them
This last point was highlighted in FB’s Developer workflow (below is from memory so it may be slightly different, but the idea is there).
Locating the right code and handling peer review well is just as important as being able to write your own code independently. And in terms of an internship, it is perhaps an even more important skill to practice since it’s not something you often get to practice in university coding assignments.
Okay so the experience of working remotely was an extremely large part of my internship, so I’m gonna split this up into sections:
Icebreakers Asking for Help Disconnecting Tips
Meeting new people (or at least meeting voices and black squares)
At the start of my in-person internship in the summer before this one we did a puzzle hunt. Basically, you’re assigned a team of 3-6 and solve a series of puzzles together as fast as you can. It was a lot of fun and later when I saw my puzzle hunt team at lunch or around the office, I was comfortable enough with them to say ‘hi’ or have a quick chat.
At the start of this summer’s remote internship, we also kicked it off with a puzzle hunt! But it was in no means the same experience over Zoom…
Most of my team kept their videos off and solving puzzles together was unexpectedly difficult. Communication was much harder. If we were solving a puzzle and writing things down, people couldn’t see what you were writing. We also couldn’t easily split up to work in parallel.
I think puzzle hunts are one of the best ice breaker games because it gets you close with a small group of people really fast. It exercises communication, problem solving and leadership. It’s also just fun. However, I think there are some games that would have been more suitable to an online medium. Online pictionary (such as skribbl.io) is far less engaging, but far easier to play together online.
That doesn’t mean it’s not possible to meet new people. It’s just much much harder and you have to actively decide if and when you want to do it. Also! It makes such a big difference to simply turn on your camera when you are meeting new people. (I remember my teammates who turned their camera on, and totally forgot about the ones who didn’t)
Asking for Help
(or…texting for help)
Getting blocked or having technical issues is sucky enough, but this is aggravated by remote work. It’s much harder to communicate what the issue is and on the other end, harder to communicate what the solution might be.
However, on the bright side, that did get me to be determined to figure out more and more things on my own. If my manager had been just sitting 5 feet away from me like last summer, it would have been very tempting to bug her about little things. Instead of a quick “hey what’s this message mean?” it would have involved screenshotting the message/context, pinging her, waiting for a response, and worst of all, distracting her from other things! In person, you can tell when a person is in an “interruptible” state. But remotely, I didn’t know if I was pinging my manager at a bad time. Also, remotely, you lose all the 2-min water cooler chats where little things are often addressed.
Disconnecting aka When the office disappeared
Ahh yes, that fateful day, June 9th. When I got disconnected from the internal Facebook system. My laptop functioned, but I didn’t have access to the code, tools, or wikis internal to FB.
At my last internship, something similar happened. I walked over to IT, asked about it. They took my laptop and gave me a ticket number and asked me to come back in an hour. I spent an hour talking to a fellow intern and learning about his project and then I went back and got my laptop.
But here, remotely, I was so lost. The real-life equivalent of this would be if all of a sudden, the whole office disappeared! I ended up calling my manager over FB Messenger and she looked up the wiki on what to do in this case, and gave me instructions. (luckily we were Messenger friends already for testing our project :P) It was an awkward and lengthy process and I greatly appreciate her taking the time to do that and being chill about it too!
Tips for working remotely
You lose a big chunk of personal connection when working remotely, so that’s the main part you have to compensate for.
1) Recognize that it’s a struggle on both ends. As frustrating as it is for me to not see my mentor in person, it is also frustrating for them to not be able to see me in person. It’s the mentor’s job to keep tabs on you as the intern, so try and make it as easy as possible for them. I found it super useful to have a document with what I did each day. Something like:
This gives a convenient visual and record for the manager to check in since they can’t see you either. Not to mention it’s also a great way for you to plan and see your progress.
2) Be 10x as enthusiastic. This advice is from the PM (Product Manager) for my team. He is in charge of leading a lot of the team meetings and he notes that in order to have the same energy and hold the same attention through a video call, you have to have 10 times as much enthusiasm. Using visuals helps too since people are less likely to notice your body language.
3) Ask lots of questions (specifically ones that seemed silly before)! I realized that there were so many things that I didn’t ask before because you just kind of learned the answer by looking around. When you’re at a company, it’s easy to learn via “when in Rome, do as Romans do.” But things like “how long do people take for lunch breaks?” actually have to be asked explicitly now–and that’s okay!
Deadlines for an internship are different from deadlines in college. At one point, I finished a task 2 days after the deadline estimated by my manager. I was freaking out. I felt so bad since I was comparing this to how deadlines have worked my whole entire life (i.e. as a student) In college, if you submit 2 days past the deadline, there had better be some extenuating circumstances for that. Before you, hundreds (maybe thousands!) of students had completed the same exact assignment in that allotted time period. However, in a real work setting, if you submit 2 days past an estimated time period, it really depends on the circumstance how critical that is. In my case, my manager had just estimated the time and didn’t actually mind if I took +/- 5 days from that deadline. Unlike college tasks, no one had ever done the particular task I was assigned so there was no precedent.
In fact, I ended up finishing overall, all the milestones, 3 weeks ahead of schedule, despite being “behind” by two days on this one task–all the deadlines are estimates! The important thing is to keep the overall functional company timeline in mind and not dwell over the little task-to-task deadlines that aren’t strict anyways.
Asking Technical Questions
I often notice that many industry skills aren’t emphasized in college. But one thing I was pleasantly surprised to have practiced was asking technical questions well.
In college we use online platforms such as Piazza to ask and answer questions from fellow students. A “good” question is clear and concise, but still provides all the necessary context to answer the question.
Similarly at Facebook, we used an internal tool: Workplace groups, to ask and answer questions in pretty much the exact same way! I noticed that some people asked questions without providing the code or context or explained things in a roundabout way. Consequently, those questions were less likely to be answered. With practice, I’m sure that these people will ask better questions, but it is nice to notice that I’ve already practiced this skill in school!
What I worked on:
I got to work on a really cool project! I’m super excited about it, but it is currently in alpha testing and I’ll post more about it once it’s released (which should hopefully be in just a few months!)
This winter break I volunteered at the Southern California Vipassana Center in Joshua Tree near LA.
On being free:
I’ve done a couple of 10-day meditation retreats in the past through the Vipassana Organization and the neat thing is that it is completely free. Not even that it’s a non-profit, but actually free. You don’t pay for your room, the facilities, the food, heat, water, the volunteer’s labor, the teachers’ labor, anything. The entire organization is run purely on donations and volunteering. And on top of that, only accepts donations from people who have completed a 10-day retreat. There’s no giant wealthy philanthropist, no big government institution that supporting the Vipassana Organization. Every cent is donated by people who truly want to help and support others in their meditation.
If you’re wondering why people are so dedicated to this, I would honestly suggest taking a 10-day course yourself. It truly is something best learned about at an experiential level–not just an intellectual level. See where/when courses are here: dhamma.org
The points I’m trying to make here are:
1) It’s not just donation run, but pure in a way. Only people who have experienced a course can donate for a future person’s experience at a course.
2) The amount of money needed to construct and maintain a center like this is massive. So it truly is a massive feat that it was paid for by only donations.
With that in mind, let’s continue.
On optimizing metrics and its issues I volunteered as a Course Manager. Most of the other volunteers work in the kitchen to prepare the food for 100+ people every day. My job was providing the other non-food logistical support. This is especially critical since the students can really only talk to the manager and teachers. (Silence among students is maintained so they can focus)
Despite it being my first time, I was weirdly very prepared for this exact position. My volunteer work in high school and my job as a TA in college have a similar required skill set: Keep track of many logistical details, have strong communication skills, and in a large organization serve as a connection point between a large group or groups (students/TAs) and leadership (meditation teachers/college professors).
So I’ve seen some of the issues that these organizations face: Things slip between the cracks, miscommunication creates hurdles, leadership becomes disengaged, etc. These past organizations have been: libraries, schools, and a university–all institutions that have pretty much stood the test of time for a while now.
But weirdly enough, this new organization–the Vipassana Organization–was one of the most well-run systems I’ve ever seen. Somehow despite the fact that no one was being paid, everyone did their part and put in their full effort so things were less likely to slip through the cracks.
I was trying to figure out why this is the case and I think it may be the addition of a metric. An oversimplification to get the point across is that at a job, you have this metric of money or hours. The goal might be that money/hours corresponds to work done, but that’s not always the case. People are people. We’ll find a way to optimize money/hours without actually optimizing work done.
An exaggeration of this in action might be something like:
And this issue with metrics holds true in all sorts of situations.
Most notably for me: We want to optimize learning, so we assign this metric of points, a grading system. And students inevitably find ways to optimize the grade without optimizing learning–even without resorting to cheating.
Students are often in a position where we have to choose between optimizing a full understanding of a topic vs optimizing just the grade. It sounds weird, but it happens wayyy more than you’d think.
Example from my life: Professor shows how to carry out the mechanics of a statistical test. In real life, a computer would carry out those mechanics for you. It’s way more important that you intuitively understand what the test is doing and under what situations it should even be used. But if you have a limited amount of time to study (not to mention all your other classes)…for the sake of your grade you’re probably better off just memorizing the mechanics so you’re ready come exam time. After the exam, there’s no way you’re gonna remember the mechanics (it’s not even useful for the future). So what was the point?
The solution to this is probably a huge overhaul of both the structure and the mentality towards the education system…
Anyways–the reason that didn’t happen in the case of the Vipassana center is that there is no extra metric. No dollar value, point value, tracking of hours, nothing! So there’s only one thing you’re trying to optimize. (Dāna is a Pali word used to describe the service work that comes from a place of generosity. It’s the first Pāramitā on Wikipedia here: https://en.wikipedia.org/wiki/Pāramitā–and yes! I am named for that)
The only reason these adults are sacrificing their time–often using up precious vacation days–is solely from the desire to do good. They don’t get any perks–there’s no volunteer-of-the-month posted anywhere. There’s only one thing they’re optimizing: service–particularly service out of good heart. There’s no conflict of interest then.
On unity and diversity Another interesting consequence of people coming out of goodwill only is that you end up with people from all walks of life.
I got to work with and talk to: Air force veterans, special ed teachers, chemists, Hollywood producers, university performance arts manager, stay at home parents.
Sometimes I feel like I spent most of my time in college in a bubble in a bubble in a bubble.
Listening to different people and their life stories and then working alongside them as equals really gives a better perspective in life
With such a diverse group of people, most of whom have never worked in a kitchen before, it can somewhat be surprising that the center runs as well as it does. One person at the end of a course asked what catering company we hired, and was shocked to learn it was all by a group of inexperienced volunteers who hadn’t even met before, let alone worked in an industrial kitchen before!
Truly wanting to do and be good both unifies us and creates for a diverse group.
My friend Neha asked me what would happen if you replaced the word dream in all those “deep” internet quotes with the word meme and we spent the next half hour laughing about this. I laughed harder about this than I have about anything all year.