Feedback from past students

Here’s what past students had to say in Fall 2022. Comments are unedited and randomly ordered.

What would you like to tell future students about this class?

  • Really good intro to CS. Hard class but if you put in the work it is super manageable. I had no prior background and did fine. Go for it.
  • This course is definitely challenging –– probably the hardest class I have taken here thus far. However, as long as you put in the time and effort required for every problem set and assessment, you are almost guaranteed to improve your programming abilities and leave the class with a great sense of satisfaction.
  • It helps to spread out work over the week, and make sure to attend section/lab.
  • If you're unsure about CS, take this pass fail. It is a very difficult course to take letter graded if you are not going into CS. It meets several times a week with many assignments. Go to tutorials, get help, and start on psets early. They are fun if not for the time constraint. That being said, it's a fun and rewarding class! You learn a lot in a little time. It can be a great way to survey CS.
  • Start the psets early and make sure to try to think through your implementation to improve your design of the program.
  • This class is hard and takes a lot of your time, especially if you have never coded before. If you are considering concentrating in CS or getting a secondary, this course is a good way to see if you actually want to do it (I discovered that I did not). Use your resources wisely, and get help with psets when you're stuck
  • Take this class if you want to learn how to think like a programmer.
  • Fun, growth, support
  • This class is definitely difficult. It will challenge you, but it is also manageable. If you have taken computer science classes before, this class will simply expand upon your understanding of what you know and help to build a much stronger basis for you. If you have never taken a CS class before, this class is still doable, but with much more help. Luckily, the staff is immense and there are so many avenues of support for you if you need it.
  • I would recommend taking this course if you're really willing to put in the effort and learn! While I definitely felt frustrated taking CS50 at times (it's a challenging course and sometimes you might encounter frustrations), on net, I think I learned so much and developed valuable skills for how to continue teaching myself CS. I think it is a rewarding course that people should take—don't be afraid to push yourself outside your comfort zone! However, I would recommend not taking this course if you are just doing it to have it on your resume or if you are not willing to fully engage with the material and become a better and more informed programmer.
  • As someone who has never done CS in my life before, this class was very tough and time consuming. Coming in with some CS knowledge does put you at an advantage. For instance, while the classes are broken down into most – least comfortable, lots of students self select themselves into less comfortable despite substantial experience. Nonetheless, very rewarding if you focus on yourself and put effort into the work.
  • You have to put in a lot of work but there are a lot of resources to help you as long as you don't wait until the last minute to do things. It is definitely worthwhile, I highly recommend.
  • you should 100% take cs50 if you are going to be at harvard. take it pass fail if you need to. there are so many resources, you just need to take advantage of them. before taking the class it might be helpful to lookup basic python
  • Take note that this is a time–consuming course with a lot of in–class time. You will definitely get more comfortable with programming, but make sure that you are prepared to commit to the course.
  • If you're like me and have never done anything CS–related in your life and want to, I definitely recommend this course. Even though I may not pursue CS much more deeply beyond this course, I think CS 50 has given me a broad understanding of what is possible through computer science such that if I encounter any problems in the future in the field I decide to pursue, I may recognize that CS may be a way to solve it. Also, it helped me to think more critically and problem–solve better. I would say though that if you're taking this course, the problem sets take up a lot of time especially if you're someone new to CS like me. Very often the psets took up my entire weekend, however I am very glad I took CS 50 nevertheless!
  • This class is brilliant if you wanted to feel comfortable coding. Having said that, it's a lot of work – probably one of the hardest academic things I have ever done. So there's a trade–off that you should be wary of.
  • This is a very comprehensive intro to CS. It is helpful to know a little CS beforehand so you dont fall behind. Good community for this class. Start psets early, especially for the later psets.
  • It's a lot of work, start psets early, give yourself enough time for the exam, sign up for office hours on Wednesdays and Thursdays because not many people will be there
  • Due to the wide range of students who take this class, it's difficult to give universally applicable advice. Some students will love this class, others will hate it; some will find it easy, others will struggle. If you don't have much coding experience, expect to spend a lot of time in the class doing the problem sets and just digesting the content. If you do take the course, please please please go to tutorials, they are the most helpful part of the class and can save you hours of your time.
  • This course is not easy but not difficult. There will be points where you get stuck and I urge you to attend tutorials early
  • Great class. Start PSETs early, as they can be a bit time consuming. Otherwise, enjoy the ride.
  • Even taking CS50 P/F is a grind, so be careful to balance work and stress. This class should be relatively stress–free, and taking it P/F should come out of a desire to learn about CS as a whole. Don't compare yourself to others and go at your own pace. Don't put too much into the psets, but learn how to work through them at a basic level. That will help you way more than trying to go for the perfect 5/5 design score.
  • CS50 provides an introduction to general topics and several languages/tools in computer science (it therefore provides more of an overview of multiple languages as opposed to a deeper study of any one). Tutorials tend to be quite helpful, and lab leaders are good resources.
  • Take it. Might as well, it's not that bad (especially if you're taking it pass fail). You will need to put in some work, but it's definitely worth it in the end.
  • If you would like to concentrate in computer science or would like to experience one computer science class, you must take CS50. The class at times can be a bit frustrating and overly flashy, but it gives you a comprehensive look at what beginning coders would do. The psets are mostly enjoyable, and be sure to start them somewhat early so you can try them on your own first before correcting them for design points. TFs and section leaders, at least in my experience, are very accessible and nice, and determine the grades on your pset and final project (for your information).
  • Be prepared and use all of the resources, otherwise it will become very difficult very quickly.
  • If you are even remotely interested in CS, definitely take this course. Some of the PSETs are longer, so expect to put in some work, but there are SO many resources to help you should you ever get stuck with your code. Towards the end of the course, there were a couple of more open–ended PSETs that were actually pretty fun to solve through! Sign up for tutorials for help in a group, or even email your lab leader, and they will point you in the right direction. You learn so much about how to approach problems, break them down, solve them step–by–step, and debug.
  • Lectures are long, but you learn a lot, and the professor is very enthusiastic! There are plenty of demonstrations during lecture to help clarify concepts as well. Definitely make sure your computer is fully charged and that you've had your fair share of coffee though.... 3 hours is no joke.
  • Start on the test EARLY! It will take some time to mull over the problems, figure out what you need to review/look over, and actually solve the problems as well. Budget more time so that you can enjoy Harvard vs Yale fully.
  • There are so many fun events that this course offers that you just can't find anywhere else. Candy and treats at every lecture, CS50 puzzle day, CS50 fair, CS50 hackathon, and even CS50 lunches every Friday, just to name a few, are always great ways to get to know the community.
  • CS50 can be an incredibly valuable learning experience, just know for yourself why you are hoping to take this course going in. Go to tutorials often and anticipate problem sets taking a while even if you have some CS background.
  • Psets get easier as the class progress, but week 9, the final project, and the test are very difficult. In the end, it is well worth taking and the stakes are especially low if you take it SAT/UNS (it should be manageable to pass even as a first–time programmer)
  • I started this course literally not knowing how to write a single line of code and left at least a decently proficient course. If you commit to CS50, you can get to the point where you're able to be proficient in every basic programming skill you want. Some of the psets are a little grueling, especially when lecture tends to do little for understanding. You need to be comfortable looking things up and going to tutorials and office hours if you've never coded before to succeed. The stress balls and free gifts don't hurt either! It's also nice, especially as a first–year, to be with so many people that are experiencing the same material at the same time!
  • Take this class!
  • CS50 is a great way to further your computer science knowledge across a bunch of different areas of the discipline! Would definitely recommend if you have coded in the past—may be difficult if you are completely new to CS.
  • A LOT of work, but you won't regret it. You truly learn a lot, but it's necessary to put in a lot of work for it to be rewarding. Plus, you have a lot of peers doing it with you so you have lots of support resources. CS50's funding also helps makes the course a lot of better, so take advantage of the fact that you can have the CS50 experience that thousands of people want but don't have (online).
  • Be prepared to do so much outside learning on your own for psets if you aren't semi–fluent in the languages taught in the course.
  • This class is tough. Even with prior coding experience, it WILL be difficult in terms of problem sets and the time and effort you have to take to fully master them (especially since not only whether or not your code works is being graded – style is also considered). I personally found it difficult cycling through different languages every few weeks, but for others, it may have been good exposure to different types of languages and what future CS courses may look like.
  • As one of Harvard's most famous class, this course definitely has its ups and down. Yes, it offers great support in the form of tutorials and office hours, but if you don't have a strong foundation/any foundation in computer science, this course does not build it for you. It was not as beginner friendly as I had imagined. I understand some concepts now, but give me a pset problem and I will most likely be unable to solve it without help from some TFS. It's better for building conception than teaching you coding languages.
  • Malan does a great job teaching the course. The course is like a social club. You and the other 400 kids taking CS50 will work together to learn how to code and build up basic computer science skills. The abundant resources outside of class will help you understand and ensure that, regardless of your previous coding experience, you will do well if you put the effort in! Make time to do the psets early so you can ask for help during tutorials and office hours!
  • Take this class! You will learn a lot!
  • If you haven't taken high school CS, this is a good place to do it. If you have, probably pick something else.
  • Definitely take the course, programming is a vital skill in today's world. Some weeks are impossible, but use the support that the course offers and you will be completely fine. Do not stress too much about the final exam, and do not set too high of a goal for the final project unless you plan on working on it a lot.
  • The class picks up in difficulty around halfway through the semester, so it would help to start psets as soon as possible once you start feeling like the content is getting harder. Tutorials and office hours help a lot.
  • This course is definitely the hardest class I've taken and will take up most of your time if you have no experience. The PSETS are extremely difficult but also rewarding once you finally figure out the bug that you've been trying to fix for hours. Definitely go to office hours. Also take advantage of all the resources the course provides, especially the free CS50 lunches at Changsho and all the merch the class has.
  • I think this is a great class to take. It will challenge you at times but the work is really rewarding especially if you are interested in computer science. It does take time so I would say only take it if you feel like you are interested in investing yourself in it.
  • This course is marketed as an intro course, but I personally wouldn't describe it as such, and don't think it's easy because of that. Definitely start psets early and make use of Ed and labs to ask questions about the course material. Even coming in with CS experience in high school (website design & development, introduction to CS, AP CS A), I struggled with a lot of the concepts, new material, and psets (mostly weeks 3 – 5). If you don't have any experience in CS at all, expect to seriously struggle, but I'd suggest choosing "less–comfortable" labs and sections for what I'd assume would be extra support. The course is very fast–moving, and a lot of content is covered in a short amount of time, which makes it hard to actually absorb all of the information. As a result, I'm not sure how much of the material I actually retained. To actually in–depth learn about one programming language, I would recommend another, less–advertised intro CS course.
  • If you have a lot of prior experience with computer science, this is probably not the course for you. If you have some amount of experience (could be none!), I think this course generally serves as a good (and enjoyable, for the most part) intro to computer science. Do expect, however, to put in a good amount of time into it if you don't have prior coding experience.
  • Please start the problem sets early to get the most benefit from them (and to improve your grade!).
  • This course is not as difficult as others may advertise it! As long as you are WILLING to put in the effort, the sections, labs, and tutorials are more than enough to give you a concrete understanding of the content. I personally had no coding background and I would say the course has a great pacing as long as you promptly seek out help as you need it. Please don't wait to get your confusion to be resolved, it will only BUILD from there!
  • This course is very useful and well taught. The work load is also quite manageable and the difficulty is not too bad. The CA tutorials and office ours are SOOO helpful and necessary, it is not the same as taking it on EDx by yourself. Make sure you at least read through and start the psets by Thursday, so you have plenty of time to work through it properly. If you give yourself time and sign up for tutorials, the course is really not that difficult. The psets vary in difficulty, but with the help of the CAs, even the hardest can be done in two days (but start earlier than that).
  • Do NOT do the Tideman pset! Also, prepare to teach yourself CSS and JavaScript when those weeks come. The lectures and shorts do not cover what you should know to write in those languages.
  • Be sure to attend lecture in–person so you can learn the best.
  • a classic course to take at harvard, and one i'd recommend everyone to try. though they advertise that most of the class has never taken any CS before, you should definitely not slack off, though, because the intensity of the assignments really start to pick up early on.
  • Take this class!! Even if you don’t have any intention of concentrating or doing anything else related to computer science, you should take it. It is very taxing and a huge work load, but it is so incredibly rewarding and you will learn so much.
  • As someone with no experience in CS before this course, it was very difficult for me. It took a lot of time to get through problem sets, but the course does provide a lot of support for students, and that definitely helped me get through it. I think it was worth it, and it is very rewarding in the end.
  • This class is overall fun! You are going to have moments of frustration, and in those moments, remember to reach out for help. There's no point in being stuck for a long time. Stay on top of your work, and try not to do the problem sets last minute (especially toward the end of the semester).
  • GO. TO. LECTURE.
  • It is the easiest way to stay on track with this course.
  • The lectures and the sections can get boring fast, but if you really dive into the pset and utilize the abundance of resources that the course has you really can get a lot out of it, have a ton of fun, and not get way too stressed out. I recommend finding a group of people who you can work through the material with and have some fun.
  • Go to lecture in person! It definitely helps.
  • Do not take this without previous programming experience unless you want it to consume your life
  • If you are a graduate student (HBS, HKS, GSD, etc...), please notice that this course demands A LOT of time. It is a great course and you will learn a lot from a staff full of talented people but the time commitment will be a lot and sometimes will not match your school schedule because is designed to fit the undergrads needs.
  • If you truly have no interest in CS, not the class to take for a divisional requirement. If you do, I hope you have a good time.
  • This course is amazing! It's a perfect introduction to computer science, and exposes you to a lot of topics that you can use to code robots, build websites, analyze data, or really do anything you want with computer science. There are lots of opportunities to learn, grow, and even create your own project for the final project. It's extremely well structured and well taught (since the course is so big), and there are lots of resources and ways to get help. This course has definitely made me more excited about CS in the future! I would recommend that everyone take this course, even if you're not a STEM concentrator.
  • Start problem sets early!!
  • TAKE THIS CLASS! It's genuinely very approachable for students who do not have any previous CS experience. They really hold your hand through it all, give you extra support, and seriously take into consideration your starting level when evaluating you. It is not a no–work course but the work is enough for you to meaningfully engage with the material without wanting to die. I'll say that you do get as much out of the course as you put into it so show up as much as you can, start the psets early, ask questions, consider attending lab, tutorials and office hours, etc. The content you will be taught in this course will be extremely useful and important for you to learn no matter where you end up career–wise. It's much less about the languages you learn and much more about the ideas and concepts communicated and taught through those languages and the thought process you acquire on how to tackle coding problems: as Malan calls it, the "intellectual enterprises of computer science". You'll quickly learn that the languages are just vessels and they're so easy to hijack using online syntax and documentation.
  • CS50 is incredibly demanding. There is lecture, section, and labs, as well as weekly PSETs. If you have trouble with the PSETs, you can sign up for tutorials but you'll likely need to sign up for multiple because the instructor's attention is divided between multiple students. I would not recommend taking it during the first semester of your freshman year. I feel good that I learned C but I don't really think this class was worth it.
  • I really like this class! The psets are really fun, but be prepared to start early and work hard.
  • If you already have some CS background this might not be the best class for you as you will have to spend a lot of time on rather basic ideas.
  • You need coding experience to take this course. The course may mislead you by telling you that this course is friendly toward new coders. However, if you have never coded before, you would have to dedicate all of your time to learning the material or it is hard to keep up.
  • Make sure you do every problem set and understand each concept before moving on to the next.
  • Take it! It is a perfect course with enough accessibility to help you learn even if you have no CS background, but enough rigor to even give more comfortable CS enthusiasts a fun and engaging challenge! You'll love the community, the lunches, and all the events!
  • START/LOOK AT THE PSETS EARLY. They will take longer than you anticipate, especially if you don't have programming experience. This course is going to be difficult for people with zero experience, but it is doable with enough effort.
  • Also, should the structure of the class remain the same, beware Week 3...
  • It is hard, It takes time, but you actually learn a lot. Go to tutorials and your lab sessions and you should be fine. I do think that you learn a lot in this course and it is great if you want to continue in computer science later on.
  • Be cautious about taking this class if you haven't taken a CS class before! It might be challenging since it moves pretty fast and gets hard pretty quickly. If you decide to take it, take advantage of tutorials and office hours! They are super helpful and staff is super kind and will help you with your questions.
  • Be careful about selecting this course.
  • reach out for help when you are stuck
  • It's a lot of work, but you will come away from it much more comfortable with CS! It;s worth it, and you get a lot of support! A must–take class at Harvard, especially for freshmen!
  • It is a great class and you meet lots of new people but don't take it with a heavy course load if you don't have any experience.
  • CS50 can be hard, frustrating, or make you want to bang your head against a wall when you encounter bugs over and over again, but is nevertheless a great course! A bit insane, production–value wise, but provides something to laugh at when sitting through sometimes painful 2 hour 45 minute lectures. Despite this, the course material is super useful and will provide you a solid foundation not just in C, Python, SQL, and web programming, but also how to navigate the world of CS in general. Besides, it's kind of fun to be on the receiving end of ridiculous amounts of glitz, glam, and food to boot.
  • It's a good class to take. If you do the work, it builds good foundations to carry over into other CS classes.
  • I would say that this class shouldn't be taken lightly and to start the P sets early!
  • Felt like I had a ton of support in this course– I've never coded before and felt like I learned so much from this course. Although I don't want to be a software developer or the sorts, it definitely sparked my interest in how powerful coding and computer science knowledge can be. Other than that, the lectures were really fun to attend and I truly enjoyed going to lecture. Labs were fun as most of the time, it was only me and a couple others with the TF, so it really allowed students to receive individualized attention for learning. The PSets were sometimes very time consuming but really allowed me to learn how to debug and take ownership over code.
  • If you need to take an introduction computer science class, definitely take this one. The curriculum is very comprehensive and the TFs and CAs are great. It definitely is a quite time consuming class, but I am really glad that I took it and will definitely take more CS classes in the future.
  • If you have never coded before, this class will be very difficult, so be prepared to have to dedicate a lot of time to it if you want to learn and do well.
  • It is a lot of work and often very frustrating, but you do get a lot out of it
  • Be prepared to be confused sometimes, but do not give up and work through the problem sets to gain understanding.
  • You get as much out of CS50 as you put in. Yes, the psets are doable on Sunday before the deadline. But if you apply yourself, you'll learn C, SQL, JS, HTML, Python, how to google and problem solve by yourself, how to build a website front end and back end. It will teach you to be more self–reliant and more critical of a thinker.
  • Important to understand what our digital world is like and how to create your own digital creations
  • Start psets early (especially Filter/Recover, Speller, and Finance) and use your late days wisely. Section is not super helpful, but lab is very helpful. I would recommend doing the labs in advance because they prepare you better for the pset.
  • This is NOT an intro course. Be prepared to be thrown in the deep end and do a lot of research and learning on your own time.
  • Take this class! Make sure you start the PSETs as early as possible, but this class is super good to get a general feel if you want to pursue computer science in the future. Be prepared for frustrating times when your code will not work, but be sure to go to as many office hours and tutorials as possible to get the PSETs done.
  • THIS IS NOT AN INTRO CLASS. It is wholly inaccessible and they dont teach the material needed in the lectures, so the onus is on the students to succeed.
  • Lecture is usually not necessary. Sections are a great time to ask questions. Go to lab, go to tutorials when doing the problem sets. Overall a pretty good class, but the whole "this is CS50" brand sometimes got in the way of the actual learning.
  • This class is hard, but it is worth it. It is highly recognized and will offer you a fast track towards becoming a really good programmer. Just take it.
  • It's not an intro class. Be prepared to spend a considerable amount of time on Psets
  • No matter what concentration you are in, CS50 is a nice class if you want an introduction to CS. I survived the class without any prior knowledge to CS, and it actually roused my interests to continue taking CS! The nicest thing is that the schedule is flexible, so if you have classes during the CS lecture, you are allowed to skip the physical class and watch lectures online later.
  • If you're feeling about a topic, go to a tutorial or office hours and ask for other explanations. The work can pile up.
  • This course is certainly difficult and time–consuming but if you put the time into the psets and start early in the week with them, it should be a rewarding experience that teaches you a lot of useful skills.
  • Collaboration is such a fun and key part of the class.
  • Brutal bro. So brutal.
  • Start the midterm and final project early or it will ruin your grade.
  • take it pass/fail and it'll be a low stress class. attend lab sections and tutorials and you'll be fine.
  • some concepts are hard to grasp but the class itself isn't hard and shouldn't be causing that much stress if you are taking advantage of all the help resources and collaborating with others
  • Start psets early and take advantage of section/lab
  • Be prepared to put some time into the psets, especially if you're new to computer science. Also, take advantage of tutorials and office hours! TFs are there to help you!
  • I think this is a good class for people who want to become software engineers or want to learn about how CS works, but this is not a basic class.. So you really need to want to learn this stuff and be motivated.
  • There is a lot of material covered in this class, but it's definitely manageable given the extensive notes on the course website and the office hours available almost every hour of every day. Give yourself plenty of time for the test and try to finish it before the harvard–yale game.
  • This course taught me how to code. It has helped me win multiple hackathons and ship completed products. If you want to learn how to actually build, as opposed to theoretical CS, take this course.
  • It is helpful to know something about coding because it is called an introduction course but is not. There is a lot of syntax and information that is thrown at you very quickly and even though there is a lot of help available it isn't always useful.
  • I was very cautious about taking this class considering I had 0 CS experience, but it is definitely manageable if you seek out the support that the course offers (go to as many tutorials as possible!!!). If you start the psets early enough, you can definitely get them done in plenty of time. So even though this class is a ton of work/information all at once, I never found it too overwhelming as long as I was on top of the material. I would recommend taking it if you're curious to see what CS is all about and if you're willing to put in the hours. I'm glad I did.
  • The first couple weeks are pretty light and then it really starts to pick up. START PSETS AND THE EXAM EARLY.
  • You really don't need any background—as a senior, I have not taken any math or CS classes since I got to college, and even though I'm taking the class pass/fail I think I'm on track to get an A . (For context, I was pretty good at math/physics type classes in high school but never did any CS there either.) Everyone says to start the psets early in the week and this is true not only because it is nice to get it out of the way but also because it is actually more effective if you need to go to tutorials (office hours) since these fill up a lot more at the end of the week and you won't get as much personal attention.
  • Great intro class. If you want to build programming skills without going through CS61, this is a great first course. Many mentors and great support network.
  • Just try it!
  • The course material is manageable from what you learn in lectures. Do be sure to give yourself ample time to complete problem sets because coding takes a lot more time than you think.
  • Do not take this course lightly, the problem sets get more difficult as the class progresses. The staff grades you based on how comfortable you are, so be sure you are truly comfortable if you indicate such at the beginning of the course. The grading for this course is very ambiguous.
  • It's a very solid course, but you must be good at starting your psets early so that you can get help in time if you need it.
  • If you don't have a background prep in coding, you can struggle with the pace and find this course very hard.
  • Take this class if you are at all interested in learning about how computer science works or how software in general can be implemented.
  • Start on psets early, and go to tutorials!
  • take the class HOWEVER it will be hard for those who are just getting started. This class is not an introduction. GO TO TUTORIALS (office hours for help ) WHEN THEY GO LIVE (usually Wednesday). DO NOT SAVE CS50 HOMEWORK FOR SATURDAY OR SUNDAY –– PLEASE!
  • This course can be really challenging if you come into it with little to no programming experience. It's doable with the help of tutorials and office hours, but it requires lots and lots of effort. However, if you commit to it, it's a super enriching course that will leave you with newfound comfort with programming and excitement for what computer science can be used to accomplish. It's a really important and worthwhile course, but getting through it is likely to take lots of hours. Despite the frustration you might incur, the course staff does a great job of fostering community and making coding fun. It's a hard class, but it's definitely worth it.
  • Though the class will teach you how to literally code, personally I felt the class was more focused on teaching you the mindset and problem–tackling skills for how to code, which is much more valuable.
  • CS50 can be taken by ppl with no–background and background in cs, BUT BEWARE THE AMOUNT OF TIME IT WILL TAKE YOU if you know little–nothing. I did not think I was going to like CS, really. I took this class because I thought it might be a useful skill and was curious to explore it– found it cool and might even pursue a secondary. BUT I did not sleep this semester because of CS50. At all. I had no background, some other work–demanding classes (my mistake)– but if you don't have experience, make sure you are aware of the amount of time it will take you to learn everything on your own coming in to this. The course is designed to teach you to learn programming languages mostly by yourself– and this is what you'll have to do. Much outside research is necessary– the skills/commands needed for successfully completing assignments are never wholly covered during class times. The assignments are creative and fun, even, but they are so incredibly time consuming to get right. Points given for design are volatile and not always backed up, so if you want to take the class graded (which I did and do not recommend unless you have the discipline/interest/background/brain power) it'll be even more difficult. The class is well–structured, don't get me wrong, and TAKE ADVANTAGE OF THE SOCIAL OPPORTUNITIES (free weekly lunCH! IS! Great!).
  • But I prioritized the assignments of this class over my health and that was a mistake.
  • CS50 is a great class but definitely very difficult, especially if you’ve never taken a CS class before. The course provides a lot of support, so make sure to take advantage of it from the outset (go to tutorials, office hours, etc). CS50 is such a Harvard institution that you’re practically missing part of the Harvard experience if you don’t take it, but make sure your other courses aren’t too difficult so you have the time to dedicate to CS50.
  • I feel like basically everyone takes it, and everyone either loves it or hates it, so you're going to hear different things from everyone. I would say just take it! See what you think of it. I had no, none, ZERO coding experience before this, and thought the class was fine. It was definitely really HARD at first (like I think I spent like 12 hours on pset 1 or 2) and I couldn't really wrap my head around things, but it definitely got easier as the class went on, and it's just really satisfying to see how far you came from the beginning of the class all the way to the end!! A bit of warning about pset 4, which was just hard and annoying, pset 8 the homepage one also just super long but not hard, and pset 9 (which was just unnecessarily long) which you NEED TO START EARLY and go to office hours or tutorials for. The test is kind of annoying and out of scope, but the final project is super doable and easy if you understood the last pset well. Go to tutorial if you have a bug in your code instead of trying to solve it by yourself like I did (and hence wasted many many many hours over). Save your late hours for the later psets (like 4 or 5 or later). Lab wasn't too useful but GO TO SECTION!! Very helpful for understanding stuff from lecture.
  • CS50 is considered introductory, but the pacing of the course is very fast and the psets can get pretty hard. I think that you should take this course regardless, but just be wary that grading is curved based on the lab you choose. So, choose the beginner–level lab, so you do not get graded harshly.
  • This class isn’t easy if you don’t have any background in p computer science (or even if you do) but it is rewarding and if you put in the work you can do well. There are many really great resources and staff to reach out to for help when you need it. It’s also such a big community and fun to be a part of.
  • Be ready to push beyond what you thought was possible.
  • You will emerge a jack of all trades yet a master of none.
  • This class is a large time commitment but should not be daunting, as there is an emphasis on approaching coding based on your own comfort level. Weekly psets take the bulk of time, so start early if you can! Most psets will also have varying difficulty–level components you can choose from. Also, note that there will be additional section and lab meetings beyond the 3–hour Monday lecture, so factor this into course scheduling. I would recommend this to anyone with interest (but not an extensive prior background) in CS, or anyone who enjoys logic–based problem solving. It is undoubtedly part show ("The CS50 Production") and there are plenty of theatrics, but the principles and psets are sound, and you can definitely learn a lot!
  • This course is advertised as friendly to people with no prior CS experience, but if you actually want to understand the material and not be completely overwhelmed, prior experience is a must.
  • If you like logic and problem solving, take it! It's an excellent introduction to the fundamentals of CS, and it's lots of fun.
  • There are many resources to turn to if you have questions and that should be taken advantage of. Also, every assignment can be finished if you start early enough.
  • No response
  • I was nervous about this class at first because I heard it was a lot of work and I wasn't sure if I had the time given that I was already taking physics 15a and AM22a, playing softball, and doing ROTC. That being said, I found out that the workload for this class is definitely manageable and not too bad. I would day it took me like 5–6 hours to do each pset and if I ever got stuck I would go to tutorials. Tutorials are great because they are literally every hour of every day Thursday –Sunday, so that's practically unlimited help. If you are a Mechanical Engineering concentrator like me, I would take this class over AM10. My advisor told me to take AM10 instead of CS50 and I'm glad I didn't listen to him. Even though the CS50 lectures were long, they were at least fun and entertaining where I feel like I would get bored with AM10 especially since as an ME I was already taking other math heavy classes, adding another math class would've drained me. Even though I really liked this class, if you are an ME concentrator I would recommend CS32 over this class as it is really useful as an engineer to know Python. However, I would recommend CS50 over AM10.
  • Think carefully about whether you want to take this course, especially if you have prior experience with programming. I didn't take away much from the course. Don't take it just for the cult, or because most of your friends are taking it. Also consider taking CS32 if you want a practical introduction to programming and are not necessarily interested in continuing with higher–level CS courses.
  • Incredibly well done class, worth the hype, take it!!
  • The spectacle of the course (giant inflatable duck, tons of random toys, etc) subtracted from the quality of my learning yet I still was taught a lot. Lectures are strong suit. Sections and quizzes highly unnecessary and unproductive. Problem sets instructive.
  • People love to complain about the CS50 workload, and sure – it's heavy. However, if you go to tutorials (GO TO TUTORIALS!!), and take advantage of the incredible support resources available as part of this course, it's not only manageable, but enjoyable.
  • I had zero – as in absolutely zilch – computer science experience prior to taking this course, and it was fantastic. It does move fast, so be sure to stay on top of the content from lectures and sections.
  • CS50 is undeniably a very great course to start with for computer science, if you are genuinely interested in the subject. Yet, I would not recommend students who are simply trying to "tryout" the subject to take this course letter–graded. The TFs and instructors will really help you throughout the course, the amount of work you would have to put in to each Pset as the week passes might exponentially increase, and you might end up loosing your interest in the subject at all. Overall, great course, but take with caution.
  • It's very difficult and it takes a LOT of time, and lectures aren't all that helpful toward understanding the material for me personally. Definitely go to tutorials and office hours, they are extremely helpful. Overall I would recommend it, but it would be helpful to learn some coding beforehand if you haven't ever coded before.
  • This course is a great one. Very challenging of course but we learn a lot. I just think it is not much of an intro class as it goes quite fast.
  • The lectures are long and somewhat exhausting but that’s the only one you have through out the week. You have a few set of parts and a whole week to work on them. Just start early and don’t wait till the end to start the PSet.
  • The section and the Lab were good opportunities which most students don’t leverage. Attend all of them and benefit from asking questions to your TF and section leaders. Also go to tutorials and make sure you manage your time well.
  • Do not take this without takind the free version a semester before. Do not take if you are not prepared to commit significant time to just pass the class.
  • If you have not done CS before, don't take this as a light–weight intro class. The course load can be very demanding, and most students spent extensive time in office hours and tutorials. It gives you a nice, brief overview of some fields in CS.
  • CS50 is a great intro class to computer science! I had prior Python experience coming into the class, and the commitment was around 2–3 hours for light weeks and 5–6 hours for heavy weeks. Take CS50 if you are a beginner interested in going further in computer science (i.e. you don't want programming as just a means to an end) or if you have prior experience but want a stronger programming foundation. If you are a beginner though prepare to spend a lot of time on this course (and build your semester around it) if you really want a deep understanding of the material rather than just going through the motions.
  • If you are at all interested in learning CS, definitely take CS50; it's a great introduction and it is not too hard for beginners.
  • I loved this class. That said, it is not an accessible introductory course. There are many people—especially those new to coding—who cheat because they find the sheer quantity of work overwhelming. However, if you have a background in computer science, this is a perfect first course. The assignments are really fun and lecture, although long, can be entertaining. Make sure to go to the hackathon!
  • Take it if you're interested in CS and want to stretch yourself as a programmer!
  • I'd say that just because it's pass fail doesn't mean it's easy. It's a difficult course that requires a lot of time. But, there's support available when you need it.
  • Would recommend this course but dont undwrestimate the workload and intensity! Malan is a good teacher but he seems more focused on cs50x folks so make sure to make use of section and lab!
  • This class is really good! The effort that everyone on the CS50 team puts into the course is very evident and shines through in all aspects. If you're hesitating due to the difficulty of the course, know that there is so much support from tutorials to office hours to help you.
  • Definitely collaborate with other students and it's a good way to get things done and make friends! Go to the CS50 lunches too –– it's good food!
  • Be ready to spend over 20 hours a week on the PSET. Tutorials and OH are your best friend!
  • It is a very fast–paced class and just because it says introduction, don't expect it to be easy.
  • Take advantage of the experiences and events offered. CS50 is a great class, and it's also a huge spectacle that I think epitomizes Harvard's ability to fund courses to make them more appealing to students. The weekly lunches are fantastic.
  • Some people will complain this class like crazy. Reality is, if you work to understand the material and utilize resources effectively (office hours, TFs, etc.), then you will be able to excel at 90% of the class. It’s hard in the beginning but eases up after C.
  • Be prepared to put in extra hours. Its not easy but it will pay off.
  • If you’re thinking about taking CS50, please do even if you don’t have any cs experience. I walked in without any but having a great lab TF and going to tutorials every week helped me get through and made it infinitely more manageable especially the psets.
  • My first time programming – took about 5–15 hours a week for Pset (Look at the chart of hours by Pset on the syllabus, its correct). They set you up to succeed, give you all thee tools you need, and make it fun to learn. It is no doubt hard, I would not take a class harder than this along with this in the same semester. I also took pass–fail. but would 100% recommend to literally every harvard student to at least take it PF so you know what people are talking about when they talk about programming.
  • If I were you, make sure you start problems sets ahead of time. At least for me, when you hit a road bump and you do need to go to a tutorial, it's nicer when you're able to have more options for a tutorial earlier than a week then struggle to finish it the night before
  • You should take this class. Even though it can get really hard at times, this class provides such a good foundation for anyone who wants to do CS in any capacity in the future.
  • Don't take this unless absolutely necessary. I chose to take CS50 as an elective and regretted it every single day
  • Make sure to start PSETs early, especially finance.
  • This class is a production. It will genuinely give you a good overview of CS, especially if you have limited/no prior exposure. A certain amount of buy–in is required. And expect to spend lots of time with TFs / friends if you don't have prior experience coding.
  • As a freshman you would definitely think this class is difficult, but the reality is that no other class in harvard will provide you as much support than this class. tutorials were always there, and there's this big culture around the class so strangers are down to help you. PLEASE if you are struggling let your tf or staff know and they will go out of their way for you. ALSO... if you are super super lost in section or lab, IT IS NOT YOU!! Some tfs are better than others, ask to switch if you don't agree with their teaching style. You will learn just as much as anyone else in a section that is "easier". TRUST. I was a complete noob, never lost sleep over this class. Just start pset after lab and ur good.
  • Great class but a lot of work. Be ready to spend a lot of hours for it but definitely worth it!
  • Everyone should do some basic coding before joining this course because at least you'll somewhat understand what Malan is talking about at the first lecture and you'll somewhat understand how to do the problem sets.
  • Take the section with Brian Yu if you can. Fantastically clarifying, as compared to the lecture which can sometimes be hard to follow with its performance–style teaching.
  • It is a class everyone should take. It provides a useful intro to cs.
  • The content of the class is outstanding and you will be happy to have taken it. The time requirements for this course do not equate to the standard of a 4 credit course and students should be advocating for their time and health to be a priority over assignments and time commitments.
  • This class was very interesting, and David Malan is a great teacher, however, it is fast–paced. I feel like you need at least some background knowledge for this course.
  • Do not take this class if you have significant familiarity with code or if you want to learn Python in particular
  • Take this class! There is actually an amazing community (go to CS lunches!! they are free and they are delicious!!), and you are well supported to learn how to code. I never coded before in my life, but took this course because I thought it was part of the Harvard Experience lol. It was actually such a good decision! I am considering a secondary in CS even.
  • This course is definitely difficult at times, but does a great job guiding you through the languages. You don't learn just how code works, but why. The problem sets can be difficult at times, but are so rewarding when you finish. Highly recommend!
  • There is a lot of fear mongering about this class but it is extremely doable if you reserve the time for the psets and assume that you will attend tutorials (office hours run by CAs with five other students) at least once a week.
  • This is a very challenging course. If you do not have any significant previous background on computer science, this course will take several hours of your time to do successfully,
  • This course gives an overall good understanding of many topics. However, sometimes it can feel impossible to solve certain problem sets with just the material learned in class. However, sections give a useful review of the material, and labs give an example of a problem (with a staff solution) that can always be integrated into the implementation of the week’s problem set. I had previous experience with C++ and algorithms and the course felt medium to hard in difficulty.
  • Truly: do not take this course if you have never coded before. CS50 is meant to increase Harvard's income—not to teach. It is a bad introduction to coding; learn how to code on codeacademy if you haven't coded before! This course is intended for people who have had prior experience coding; don't believe David Malan when he tells you 2/3 of the class has never coded before!
  • Even though they say background in CS isn't necessary, it's DEFINITELY HELPFUL. I took this class with genuinely no experience and definitely learned a lot, but also struggled at the start. My biggest advice is that you truly don't compare yourself to peers. For some reason lots of people would say they had no experience but all the psets were easy? And then they'd reveal they took AP CS or Python classes or something. I am glad I took this course because I was curious about it, and I think if you are, you should too! You'll get through it if you go to office hours and are willing to put time into it. Also never start the psets on Sunday!!!!
  • If you have never taken CS before, it is definitely a lot of work. You constantly need to be paying attention and staying on top of your work as it is very easy to fall behind, however I thought that I learned a lot from this class.
  • If you have never taken CS before and want to try an intro class, this one seems like a great way to do that. It will definitely be a lot of work but the course is set up to feel really rewarding, to build community, and to have something to take away and show people (namely your final project). The psets are fun and you are actually coding (which I hear you don’t do a lot of in subsequent clssses)
  • That said, if you have a significant background in CS (for example if you know OOP or you have taken the AP in high school) I might advise against it. In general, the class can feel really frustrating as it is very “performative”. While David Malan is a great teacher, he is clearly working from a script and when he deviates from it, he occasionally messes up. You can hear all the camera operators talking throughout class and reminding you that the class is being streamed to hundreds of thousands of people. When people talk about meeting David or even Carter it’s like they are discussing a celebrity interaction rather than a teacher student relationship. Overall, the course can sometimes seem “fake”. The problem sets are fun but only around 3 are actually challenging and interesting. And while you can say when you join the course that you are “more comfortable” or do “more comfortable” psets, doing the harder psets doesn’t give you any extra points and saying you are more comfortable doesn’t mean you can go to less section, it just means you are graded on a harsher curve.
  • I liked taking CS50 in the sense that I was afraid that if I didn’t, some of my peers would know topics that I didn’t and I would feel behind. I think this class accomplished that goal. That said, I don’t know how much I actually learned considering I had a high school background in cs.
  • This class is more or less the nation's flagship CS class, and for good reason. It's extremely well polished, planned, and structured, and you'll always know about all of the opportunities for you to learn and receive support. Puzzle Day and Hackathon are absurdly fun – go and bring your friends. The learning curve, especially for someone with little to no coding background, is extremely steep at first, levels out towards the middle of the semester, and shoots through the roof over the last 3 weeks or so. The most underrated part of the class is definitely the one–week break near the middle of October. It's unbelievably convenient and will give you time to catch up on the other classes that you're most definitely behind in.
  • Take it only if you're truly passionate about Computer Science.
  • I would ensure future students fully understand the time commitment this class requires, which I believe is more than is typically expected for a 4 unit course.
  • Only take this if you're concentrating in CS or absolutely need to. It's good for what it does, but my god to quote David Malan it is so much more annoying than it needs to be. If you only need to code in one language, just take a course that specializes in that coding language
  • It's a difficult class, but also very rewarding. You will learn a lot, but you will be pushed. You must learn outside of class too.
  • Don't copy psets! It's super easy to and saves a ton of time at the start but it was super useful that I didn't do this cause then I could do the test
  • I would advise them to attend tutorials and office hours!
  • As much as Harvard (and the almighty David J. Malan) touts CS50 as the ultimate intro to CS course, it definitely feels very fast–paced for a complete beginner. I personally had a small amount of CS experience that helped me quite a bit in the first few weeks of class, and I would recommend doing a bit of prep before starting the class if you want to take it (which you should!).
  • Overall, it's a great class and if you want an overview of a lot of CS languages and topics, then I would highly recommend taking CS50.
  • You get out what you put in. Take it for a grade if you want to get the most out of it. Go to tutorials
  • don't take this if you have not done any CS before, are not a CS concentrator, or just want some basic coding skills. TAKE CS 32 INSTEAD! IT IS EASIER AND MORE PRACTICAL!!!
  • Always go to lab and section! They're pivotal to your understanding of implementation, especially if you have little or no experience with coding. I always went and always felt more confident after, plus you form a much better connection with your TFs!
  • This course is great at what is claims to do–– it is a fantastic introduction to computer science. If you want a programming class, this is not it. But it is excellent as an overview of the field, how computers work, and the capabilities of different programming languages.
  • This class is a lot, and not necessarily for beginners. Start early on psets so that you can ask for help on assignments, and you’ll get a solid amount from the class. Even then, though, the gains from the class might be associated with more stress than it is worth, so be mindful of your other coursework. I’d also recommend taking the class pass fail if you don’t absolutely need to take it for a grade, as this allows you to focus more on learning the fundamentals rather than needing to get perfect scores on psets or otherwise.
  • If you take this class pass/fail, please don't blow it off, because there's a lot of difficult material to learn, especially in the later half of the course. Put the effort in at lecture, section, and lab, and you'll do great and learn a lot.
  • Stay far away from the course heads.
  • Start psets early because they usually take longer than you think to complete.
  • You get a good amount of stuff out of this class through the problem sets and projects, even if you've taken AP CS A before or have some coding experience. Stuff ramps up by a decent amount in the back half.
  • Take this class, but be warned...it's not all sunshine and rainbows. You'll learn a good deal about the computing world, but whether you'll actually walk away with practical knowledge boils down to the individual.
  • If you've had CS experience before (not just AP, but other general experience), this class will be the easiest thing in your life. The psets can take a while once we get to the 5th week, but there's lots of resources to help. This course does move 2x as fast as other CS courses at university, so don't worry. The grading is super weird though, it's literally on vibes and subjective. Design scores sometimes won't be good, but they apaprently "equalize" everything.
  • CS50 is a rigorous introduction to computer science. You're going to learn a lot of coding languages and you're gonna feel as if you don't have much of a grasp on them since this course moves so fast. Even though this course prides itself on being welcoming to a variety of coding backgrounds, it really helps if you do have somewhat of a decent coding background, either through taking AP Computer Science or learning some code during your free time.
  • The first few problem sets are really easy, but they pick up in difficulty during the add/drop deadline period, so be prepared to spend your entire weekends completing them. I highly recommend going to tutorials during this time to get some assistance with solving them.
  • This course does have some pretty fun components to it compared to other CS classes, such as the Hackathon and CS fair at the end. I really recommend doing the final project with a friend or friend group; if you choose the right people, it'll make the experience a lot smoother!
  • The lectures are quite long and there is a lot of time spent outside of them on this class in lab, section, tutorials. But the lectures teach very abstract concepts which struggle to connect to the actual concrete coding of the psets themselves, so it can feel a bit disempowering. I think taking an actual applied computing class would be better if youre not a CS major. It is definitely a cult of a class, and there are endless resources available. I think it's worth taking if youre going it pass fail but if youre doing it for a grade and want to learn actual computing, I dont think id recommend.
  • CS50 was an amazing experience, You will likely never have the chance to take a course as put together and truly cinematic as this one. If you have the chance, take it during the fall. You will meet a lot of new friends, learn a lot about computer science, and have a lot of fun. This class is sometimes a little bit difficult and especially begins to ramp up after the first few weeks, but you have a lot of support in the form of labs and tutorials. Please take advantage of tutorials as you work on the problem sets as these will allow you to get through some of the more difficult psets while saving a ton of time. If you would be coming into this class without any coding experience like me, be prepared for a challenge and a transformative learning experience. Also, start the problem sets, the test, and the project early! Procrastination in this class can truly bite you in the back.
  • This class is fun but prepare for it to be most difficult class you have. The PSETS and final are very difficult.
  • Don’t do this unless you have a LOT of time! It was quite time consuming, but it is certainly an experience (you get free meals and merch) since it’s so well funded. You have a lot of staff support, but you need to be proactive about using it.
  • i would recommend this course to anyone interested in CS. however, be prepared to spend time on PSETS. the support of office hours and tutorials make this class bearable.
  • This is an extremely rewarding class. It's perfect if you do not have much experience in CS because they give you a thorough introduction to all the topics and do not assume any prior knowledge. I dreaded the idea of CS coming into the class because I didn't know really anything about it. However, this class makes all the topics seem not only accessible and manageable, but also interesting, relevant, and useful. There is incredibly good staff support––all the CAs and TFs are really knowledgable, patient, and helpful, and I always felt like there was somewhere I could turn for help. The experience of the class as a whole is also highly worthwhile––the whole thing feels very much like a production. The lectures felt to me like Ted Talks because they are so well produced, and there are lots of activities outside of class that are interesting to attend as well, such as the hackathon––even if you aren't that interested in the CS itself, it's fun to go just to admire the over–the–top production aspect of it. I recommend the class even if you don't need it for a concentration requirement because it is a pretty iconic Harvard experience. Moreover, it really does make you feel more comfortable with CS, and teaches you how to think in ways you might not have before.
  • CS50 is not particularly challenging but it will require a lot of time. Even if you have experience with computer science, I recommend giving the course your full effort as it is easy to fall behind.
  • Hard class but worth it if you’re trying to pin down whether concentrating in CS might be for you. Lots of concepts are presented (albeit sometimes in an ineffective way) so it’s a trade–off between breadth and depth. If you have the time in your schedule to dedicate to the weekly PSETs, doing well in the class is doable. Some weeks are really stressful, and the final project definitely feels too rushed so don’t leave it for last minute.
  • Go to office hours and tutorials if you're stuck with your code! And start early on your PSETs, don't wait until the last day.
  • More than anything, I think CS50 is a time–consuming class. So if you are willing to put in the time and effort, and have fun along the way, I think CS50 is definitely worth taking, especially if you form some sort of PSET group where you are able to ask each other questions when stuck.
  • Engage with as many of the resources the class offers as possible. There are so many that you can take advantage of and taking CS50 at Harvard is an iconic experience.
  • I would be very careful taking this class. This is not to say that you shouldn't take this class at all, because it is often fun and rewarding. However, one gets the sense that CS50 believes it is the most important class at Harvard and thus they don't seem to care about your other classes. The result is that you can get overloaded with work. There is a 2.75 hour lecture, a section, a lab and a lab assignment, and the problem set (the most time–consuming part of the course). The problem set is due on Sunday night and the next one is assigned on Monday, so it can feel like you never get a break from CS if you don't get ahead. I had no experience with CS coming in, so if this is the same for you, think about how stressed you are willing to be.
  • I absolutely loved this course. I didn't know if I wanted to pursue CS, but after this course I definitely am thinking of a CS concentration
  • Don't take it unless you know you like computer science or have to.
  • This class is very time consuming. There is a lot of class time and time devoted outside of class on the problem sets. Also, it is true that many students in the course have had previous experience but that does not mean you have to.
  • its very difficult
  • Take CS50! I met so many of my closest friends during this class, and I learned a lot about how to think like a coder and how to think through challenges you encounter whilst coding. The TFs are your best friends, and if you get to know them and attend the tutorials and labs that they hold, you will learn a lot and do well in this course.
  • There are three rules you should follow in CS50 to save yourself from pain.
  • 1. Start problem sets early.
  • 2. Schedule in tutorials so you can get answers on psets.
  • 3. Start the TEST and final project as EARLY AS POSSIBLE.
  • Also, if you're just looking to learn how to code solidly with one language & you know you won't want to go further with CS– consider CS32.
  • Take CS50! I had no programming experience before enrolling in the class, but by the end of it the p–sets started to be pretty intuitive to finish. David does go pretty fast in lectures but it shouldn’t be too hard to follow along. Also take advantage of tutorials because they really help with finishing the p–sets on time. And don’t skip section!
  • Stay on top of your work! The most difficult part about this course is really the time management. If you start your psets early in the week and really pay attention in lecture/section, CS50 is manageable even with no prior experience.
  • This class is incredibly frustrating and difficult, especially for students who don't have previous coding experience. I took two years of computer science in high school and still struggled in this course because of the large disconnect between lecture and psets. Lectures feel like "The David Malan Show" rather than anything about the actual material, and oftentimes the lectures will teach a general overview of a language or concept and then the pset will demand a very deep understanding of the same thing. The result is hours of my life that I will never get back spent on Stack Exchange trying to understand the specific semantics of SQL and many many many late nights for a class that I took pass/fail. I would highly caution someone considering taking this class, especially students who just want a basic coding introduction. Much of this class teaches C, which is a cool language, but is largely obsolete for students who just want the basics of Python, HTML, JavaScript etc. There is also nothing in the class that teaches students how to use code for research purposes, which, for STEM majors, is pretty disappointing.
  • BE PREPARED TO PUT IN THE WORK. This is no breeze in the park. You have to stay on top of your psets and make sure you understand the concepts week by week. The material definitely builds on itself, so falling behind just puts you in a bad spot.
  • This is an amazing course to take if considering computer science at all. This will really help you answer the question if computer science is or isn't for you.
  • CS50 is pretty fast paced and honestly does not like the easiest intro class. You definitely have to put a lot of work into it to understand everything and ask a lot of questions. This course would've been a lot harder if I didn't have prior experience.
  • Start assignments early.
  • The class was mainly fun because of the PSET's. The staff support is tremendous as well. If you're in lecture, be prepared to just have a fun time laughing at the quirkiness of the course. The main cons I have to say is that sections and labs felt useless that, as someone that usually tries to come to all classes, they felt very skippable.
  • Here's a haiku:
  • Oh, CS50
  • Lecture is a performance
  • PSETS are one too.
  • CS50 feels more like a company than a class. This means that creating a presentable product is often prioritized over your learning experience. For example, the lectures are over engineered to the point where they are often unhelpful; many of the problem sets are tedious; and you will be asked to do many things are that are wholly unnecessary (quizzes, forms after each problem, labs, etc.).
  • Furthermore, multiple TFs have complained about the class unprompted. Most of their complaints center around being overworked, being asked to do things that are completely pointless, and having to teach much of the material because David Malan's lectures are never enough.
  • Overall, this class will not ruin your semester; it is not terribly difficult, and the support network is great. But you might be better served by other computer science classes that have fewer frills and focus on more tangible CS skills.
  • Meet with your TF early in the year to understand their design preferences.
  • Take this class with an open mind, and be willing to dedicate at least 10 hours outside of class to really be able to have a fulfilling experience with this course and understand the material!
  • I recommend this class if you're interested in computer science. To me (I like CS), CS50 presents topics in very fun and fulfilling ways, especially with the problem solving psets. You get what you give in this class – you have the potential to create a really nice website or final project, though it just may take some time.
  • CS50 may be marketed as an introductory course but it definitely is not. Unless you have background knowledge about computer science and a multitude of programming languages, you will struggle with the psets and keeping up with lectures/sections. Expect to spend a lot of time in tutorials or office hours and feel completely lost at times. The course is taught way too quickly to allow for proper retention of knowledge, so you will simply feel like you are learning the necessary points for the pset and then forgetting them immediately after.
  • Because it's Harvard's best bet at an introduction to programming, and so many people take it, CS50 seems like a rite of passage. Be prepared to put in a lot of time and effort to actually understanding the content beyond the draining 2.5–hour lectures, and to question every week why the course chooses to spend so little time on each language.
  • A lot of the psets are actually fun and relevant, although there will be a few in the middle of the course that'll knock you down. The course goes from relatively easy with basic C stuff to difficult with pointers to relatively understandable again with SQL, so plan your semester accordingly, whatever that means lol.
  • This class will definitely challenge you and push you outside your comfort zone, no matter the level of computer science knowledge you currently have. That being said, it's an incredibly fun and engaging class. You get to learn while having fun and connecting with peers while doing the psets.
  • I really liked CS50! As someone with a bit of a CS background (AP CSA, coding projects, software internship, etc), I found the course material easy at first but definitely more challenging and satisfying as the weeks went by. Even if you have some CS background, I would strongly recommend taking CS50 and not skipping ahead to a more challenging CS class immediately, mainly for the whole experience of taking CS50. The weekly lunches, Puzzle Day, Hackathon, and Fair were all fantastic experiences that improved my first–semester experience. I was also able to learn some new concepts such as memory management in C, Flask in Python, and how to design better code in general. If you are newer to computer science, you might find that there is a steeper learning code and end up spending a lot of time on p–sets and assignments. If you find yourself struggling, I think there are a lot of fantastic resources for this course that help make sure that everyone has an opportunity to learn. The last thing is that the lectures are pretty long and tend to become hard to follow at times, so always look for the course notes and rewatch the recordings in case you missed something. Overall, definitely take this class!!
  • Incredible course—a must–take at Harvard.
  • CS50 is a good experience if you know what you're getting yourself into. I felt like I learned very little concrete knowledge throughout the semester and was just learning the material to survive the psets, which made the class unenjoyable. But, if you go in knowing that you're going to get so, so much information thrown at you and the whole purpose is to gain a feeling for cs, then you might enjoy it a lot (also if you take it pass/fail). I would have definitely much rather have taken CS32 for more concrete learning.
  • This class moves deceptively quickly in the last half of the course. Make sure you understand each week's topics and go to tutorials if you need help! Also your lab and section TFs are great resources and always willing to help.
  • This class is heavily advertised as a beginner’s class, but most people I met have taken a CS course in high school. I took a CS class in high school, but psets were still definitely a struggle and very time consuming.
  • Full of humor.
  • Start your pset the day of the lecture, and always go to tutorials.
  • Do not take this course if you already have basic CS knowledge or background. Take a higher level course if that is the case.
  • Go to office hours; go to tutorials; dont psets on sunday.
  • Take CS50 if you want to gain a foundational knowledge of CS – but be prepared to learn on your own!
  • It is demanding, difficult, and often unintuitive, if you are taking this course, take at least one light workload class to balance it out.
  • Great course! I'm not a CS/STEM person, and it was still great and not too hard (though I had taken 1 year of CS in high school). It gives you a good basic understanding of CS, which I think is very helpful for anyone moving through the world. TAKE IT!!
  • Great class to take if you're interested in CS at all. Don't need any background in coding and there is so much support and resources for you to utilize if you ever get stuck.
  • Very great community and class, however the grading is quite odd and really it's just a function of what grade they think you deserve. In addition, there are definitely some cases where the graders make some mistakes.
  • You learn a lot from the class and there are so many avenues for help. Tutorials are a lifesaver but you should have some coding background.
  • This class is definitely a roller coaster, but there is an IMMENSE amount of support. There are over 50+ tutorials per week which are small 6–student sections to help with the PSETs with consistent Office Hours every single Sunday. If you are willing to put in the work for this class, then it's not necessarily horrible and can be extremely engaging. You learn an immense amount of information in this course very quickly. I'd highly recommend starting the PSETs early in the week because it will make your life so much easier in the course. Oftentimes if you started the PSETs on Tuesday, you could reasonably get them finished by Thursday/Friday and then you didn't have to worry about them on the weekend which was nice. Absolutely use the tutorials to your advantage: it's not worth it to spend 2–3 hours trying to debug one small thing that a TF could easily figure out for you.
  • Weeks 0–4 are too bad in the class. The workload in Week 5 gets really heavy and demanding. Weeks 6–8 are a breeze because you're basically learning Python which is just a more user–friendly version of what you learned through Weeks 0–5. Week 9 is pretty heavy and you should definitely start the PSET early this week, especially given that the test is the following week.
  • Despite the mixed reviews, I think this class is extremely helpful, even if you don't want to go into CS. I once had a friend tell me that they learned everything in CS50 that they needed for the Meta SWE internship they did the following summer if that's any consolation of the amount of information you're learning in this course. You could realistically walk away from this course and put together an entire website, all the way from the backend to the front end.
  • Go to office hours
  • This is a hard course but very rewarding, it can be very frustrating depending on how good you are At CS but you’ll learn a lot
  • The amount of hours you put into this course is what you will get out of the class. There are countless resources to improve such as tutorials, office hours, labs, etc. However, these are all time–consuming and when you are balancing 3–4 other classes it can be tricky to put in the amount of work needed to get the fullest out of the course. Lectures are also very long and often not very helpful. Consider watching them on your own time if you are someone who can't focus for long periods of time in a big lecture hall.
  • Take this class if you're looking for a dabble in CS / STEM or just because practically everyone else is taking it. It's pretty fun, you get to meet a bunch of people, and you get free food!
  • Do not take this class if you have never programmed before. You won't actually learn the languages being taught and will likely struggle on the problem sets. It definitely isn't impossible for someone that hasn't coded before to take this course, but I wouldn't recommend. Sign up for tutorials and try to get through the problem sets early. Try to find a course that will actually teach you.
  • If you have no CS experience, I highly recommend this course as an intro to many different venues of computer science (although it may be a bit challenging). If you have a lot of coding experience, I do not recommend this course. It will feel like a lot of busy work. Overall, the course is a good way to get an intro to different aspects of CS but is not deep whatsoever, and it is definitely a hyper–marketed, unnecessarily–theatrical course due to the CS50 audience beyond Harvard (as an online course), which can be annoying at times.
  • Would highly recommend CS50! I came into CS50 having limited programming knowledge. That being said, I found that I was able to learn so much from the course and felt set up for success. CS50 not only teaches programming, but great problem solving and troubleshooting skills. I had initially not planned to take a CS class after CS50, but I am now planning to take more CS because I enjoyed CS50 so much. As far as advice, start the test immediately after it opens. This is not something that you want to wait until the last day to complete. The test is something that you can do well on if you allow yourself enough time, but it will be very tough otherwise, and the test will count for a large part of your grade. Also, go to tutorials!!! Tutorials are extremely, extremely helpful so that you 1) learn how to best approach the problem and 2) don't spend hours trying to troubleshoot something or figure something out when you can get advice about where your thinking might be flawed. Finally, before you submit PSETs, I'd recommend reading over your code for stylistic changes. Also don't forget that style50 exists. This will help with design score.
  • Start PSETs early!
  • FANTASTIC class. Everyone should take it! SO MANY resources and support. Class was structured great. Highly recommend.