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 to be 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
- Make friends
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.
To summarize everything we just went through in this ridiculously long guide, check out the shorter post published on the Women@SCS blog: https://medium.com/@womenatscs/how-to-succeed-in-151-a4462fcb05e2