Introduction to Computer Science

Provided by:
9/10 stars
based on  149 reviews
Provided by:
Cost FREE , Add a Verified Certificate for $90
Start Date In Session

Key Concepts

lightbulb
We've created a summary of key topics covered in this course to help you decide if it's the right one for you. Click individual badges to see more courses on the same topic.

Course Details

Cost

FREE,
Add a Verified Certificate for $90

Upcoming Schedule

  • In Session

Course Provider

edX online courses
Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with edX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be tau...
Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with edX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be taught by David J. Malan, a senior lecturer on computer science at Harvard University for the School of Engineering and Applied Sciences. But there's not just one professor - you have access to the entire teaching staff, allowing you to receive feedback on assignments straight from the experts. Pursue a Verified Certificate to document your achievements and use your coursework for job and school applications, promotions, and more. EdX also works with top universities to conduct research, allowing them to learn more about learning. Using their findings, edX is able to provide students with the best and most effective courses, constantly enhancing the student experience.

Provider Subject Specialization
Sciences & Technology
Business & Management
14526 reviews

Course Description

This is CS50x, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. As of Fall 2016, the on-campus version of CS50x, CS50, was Harvard's largest course.

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own sche...

This is CS50x, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. As of Fall 2016, the on-campus version of CS50x, CS50, was Harvard's largest course.

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.


HarvardX requires individuals who enroll in its courses on edX to abide by the terms of the edX honor code. HarvardX will take appropriate corrective action in response to violations of the edX honor code, which may include dismissal from the HarvardX course; revocation of any certificates received for the HarvardX course; or other remedies as circumstances warrant. No refunds will be issued in the case of corrective action for such violations. Enrollees who are taking HarvardX courses as part of another program will also be governed by the academic policies of those programs.

HarvardX pursues the science of learning. By registering as an online learner in an HX course, you will also participate in research about learning. Read our research statement to learn more.

Harvard University and HarvardX are committed to maintaining a safe and healthy educational and work environment in which no member of the community is excluded from participation in, denied the benefits of, or subjected to discrimination or harassment in our program. All members of the HarvardX community are expected to abide by Harvard policies on nondiscrimination, including sexual harassment, and the edX Terms of Service. If you have any questions or concerns, please contact harvardx@harvard.edu and/or report your experience through the edX contact form.

Reviews 9/10 stars
149 Reviews for Introduction to Computer Science

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.

Sort By
ezix profile image
ezix profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
3 years, 10 months ago
First of all, I need to say that I had previous knowledge in programming languages, and even though I hadn't written in pure C for almost 2 years, it might have been easier for me. I've learned everything I know about CS on the internet and tried most of the different types : \- Written tutorials, some small around one notion, others on a whole language. \- Walkthroughs and videos (like The New Boston). \- Interactive and gamified tutorials (Codecademy's Python, Codeschool, CodeAvengers, and many others). \- iTunes U lectures (Stanford's CS193P - iPhone development) \- Online courses such as Coursera's CS215. \- I've never bought books and never had the need to. And yet, none of this was quite like CS50x. # The lectures The lecture are one of the most important parts of the course, David J. Malan is a great lecturer. He uses clever real life examples to make complicated notions easier, in fact, you don't need any programming experien... First of all, I need to say that I had previous knowledge in programming languages, and even though I hadn't written in pure C for almost 2 years, it might have been easier for me. I've learned everything I know about CS on the internet and tried most of the different types : \- Written tutorials, some small around one notion, others on a whole language. \- Walkthroughs and videos (like The New Boston). \- Interactive and gamified tutorials (Codecademy's Python, Codeschool, CodeAvengers, and many others). \- iTunes U lectures (Stanford's CS193P - iPhone development) \- Online courses such as Coursera's CS215. \- I've never bought books and never had the need to. And yet, none of this was quite like CS50x. # The lectures The lecture are one of the most important parts of the course, David J. Malan is a great lecturer. He uses clever real life examples to make complicated notions easier, in fact, you don't need any programming experience and it's still useful in non- programming jobs. Unlike many other programming courses, there is a balance between explanations and the actual code itself, not just slides without any context. Because Malan writes the code during the lectures, there are some unexpected events, bugs and typos. And indeed making errors is an important part of the process, so by showing mistakes we can encounter that makes the lectures interactive and close to real life programming. Moreover, there is an emphasis on explaining how stuff really works under the hood while most programming tutorials don't provide this kind of knowledge. There is here little focus on syntax but more on the logic behind computers. # Problem Sets Without a doubt, psets were the other important part of the course. They always involved finding a solution to a given problem, making some task easier using technology, and there often tackled new notions around CS like the structure of a bitmap or how corrupted data is retrieved. The use of the CS50 Appliance, a virtual machine made with all the necessary tools built-in, avoids all the pain related to cross-platform compatibility so we can focus of the code. Like a real life course, you can't gloss over some requirements. The psets are always challenging but doable because we are always taught how to break it down and given a starting point. In the specifications, we are aslo encouraged to write efficient and elegant code. The psets are the core of the course but can even make great challenges for a programmer outside this context. Most of the time is spend using, applying and actually working with the notions so we end up naturally knowing them. I used to struggle a bit with pointers and now they look so easy. # Additional Content Sections: I haven't watched any of them, I guess they are different way of learning. Shorts: They were an in-depth look at either one of the lecture's notions or a new one. Their short format made them interesting to watch. Walkthrough: I never used them for the first half of the psets, but once we moved to harder stuff they were very useful as a guide for the code design and never gave up the solution. # Community The lecture and psets elements already made it a great course, but the novelty here and the important part was making it an online course. And the community part, CS50x Discuss was available on EdX's website, made it the closest you can get to real-life course. There's this real spirit of help that brings people together to find solutions to the psets or discuss around the course's content. What you will learn (among other) \- C \- PHP \- MVC \- Data Types \- Search and sort algorithms \- Asymptotic notation \- Scratch It was memorable and much more than any other learning experience I've ever had online because it successfully managed to make it a journey. CS50x isn't just the quintessential Harvard course, it's now the quintessential online course.
Was this review helpful? Yes25
 Flag
Nikolaos Stougiannos profile image
Nikolaos Stougiannos profile image

Nikolaos Stougiannos

9/10 starsCompleted
11 hours ago
If you are interested in Computer Science, this is a must! Even if you are in an Intermediate or even Advanced level.
Was this review helpful? Yes0
 Flag
Daniel Petkov profile image
Daniel Petkov profile image

Daniel Petkov

10/10 starsTaking Now
1 week, 6 days ago
That was one of the best expirience for me beouse the instructor allways in easy way show us how the mashine heart works after our code.Thank you!
Was this review helpful? Yes0
 Flag
sameh malak profile image
sameh malak profile image

sameh malak

8/10 starsCompleted
4 weeks, 1 day ago
That was the best experience i have so far in programming .. it was great for me to study this course and i hope that the course's psets to be improved a little bit just to be perfect
Was this review helpful? Yes0
 Flag
Leonard Bode profile image
Leonard Bode profile image

Leonard Bode

10/10 starsTaking Now
1 month, 3 weeks ago
Being a self-taught geek myself, this course has filled in the gaps and helped deepen my understanding of topics already understood. David J. Malan is an excellent instructor and the covered topics are relevant, interesting, and challenging. Wish I had come across this sooner, and would recommend it to anyone with beginner/intermediate computer science experience.
Was this review helpful? Yes0
 Flag
Leyang Wang profile image
Leyang Wang profile image

Leyang Wang

10/10 starsTaking Now
2 months, 2 weeks ago
This could be one of best course to get your foot in to the door of programming and everything about CS field. But rember CS50 is offered by Harvard even it is an online course, it is not easy! If you are not acadmic focused, or you would rather just learn how to code, this course is not your choice just yet,I would say learn some higher level programming like Java/C# first, onece you understand what is going on then dive into this course to learn more.
Was this review helpful? Yes0
 Flag
hanan ibrahim profile image
hanan ibrahim profile image

hanan ibrahim

10/10 starsTaking Now
2 months, 2 weeks ago
it is a good course.it is nice to learn An introduction to the intellectual enterprises of computer science and the art of programming.
Was this review helpful? Yes0
 Flag
Molly Pfaff profile image
Molly Pfaff profile image

Molly Pfaff

10/10 starsCompleted
6 months, 3 weeks ago
I began with practically no coding experience, and yet at no point in this course was I totally or hopelessly lost. Frustrated? Yes, but that's just the nature of the material. Everything is explained very well, and they made sure all the resources you need are there if you're willing to take advantage of them. If you're hesitating, just do it.
Was this review helpful? Yes3
 Flag
cuthbert Chukwuemeka profile image
cuthbert Chukwuemeka profile image

cuthbert Chukwuemeka

10/10 starsTaking Now
5 months, 1 week ago
Its a scientifically oriented program which affords the enrollees the unique opportunities to be first hand ambassadors of solutions proffers to the society and world at large
Was this review helpful? Yes0
 Flag
Omar fawzy profile image
Omar fawzy profile image

Omar fawzy

10/10 starsTaking Now
5 months, 3 weeks ago
I like to way of teaching this course it's so cool, and I have to say thanks so much for anyone who's sharing this course and help some students to be a better problem solver in real live
Was this review helpful? Yes0
 Flag
Omar Ahmed profile image
Omar Ahmed profile image

Omar Ahmed

10/10 starsTaking Now
5 months, 3 weeks ago
It's awesome staff and comprehensive course to get a background solid in Computer Science. I think it's future to learn how to program and solve real problems in your life.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
8 months, 2 weeks ago
Just finished the assignments. Currently working on final project. If this course doesn't get you buzzing about CS, nothing will. Loved it! Thank you Harvard for sharing.
Was this review helpful? Yes4
 Flag
Nick m profile image
Nick m profile image

Nick m

10/10 starsCompleted
8 months, 2 weeks ago
Absolutely fantastic course! Fun and engaging with challenging problem sets. The IDE used to program on is a fantastic tool as well. I went from knowing nearly nothing about coding beyond a little HTML and some basic concepts to feeling proficient enough to take on my own projects and continue learning. Besides programming fundamentals and thinking how to solve problems as a computer would. you will also get a decent handle on C programming as well as PHP and a little Java. No matter your skill level there is content here for you. For the less comfortable the problem sets will walk you through, for those more comfortable there are hacker editions which go beyond the base problem sets.
Was this review helpful? Yes3
 Flag
Manu Sood profile image
Manu Sood profile image

Manu Sood

10/10 starsTaking Now
8 months, 1 week ago
It took me 6 weeks to have my 'aha' moment and I had only got to end of the 3rd week. It is a tough course cause; I am an older student and studying alone from home. Its hard to get set up, get motivated and get your mind working on logic; especially frustrating because I can solve the problems in Excel in minutes. However, it is a very rewarding experience after you finally solve the assignments! And it looks easy afterwards. I got bored from other learn to program methods I tried. Notes are very detailed, plenty of videos of lectures that you can pause and rewind and there are many support forums etc.
Was this review helpful? Yes2
 Flag
keegan kapepe profile image
keegan kapepe profile image

keegan kapepe

10/10 starsTaking Now
9 months, 1 week ago
CS50 is the detailed course have ever taken in My life. from the time i knew coding, i did not know a lot of things, that i only discover when enrolled for CS50,.. i like all the instructors , they are helpful , friendly,ever guiding , Good instructors.. Thanks a lot for giving me opportunity to Study CS50 through Edx
Was this review helpful? Yes2
 Flag
Javi Mar profile image
Javi Mar profile image

Javi Mar

10/10 starsTaking Now
7 months, 2 weeks ago
I am not going to repeat what my online peers have written. Just want to say this is a fantastic course. I am CS graduate, but during the years I "forgot" how to code as I used to, but by taking this course, everything is coming back, and most importantly, the way is taught, is simply great. Contents are simply outstanding, and David Malan is a great professor and lecturer. Thanks HarvardX to make such a fantastic course available to everybody for free.
Was this review helpful? Yes1
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
7 months, 3 weeks ago
CS50 offers an incredible feeling of empowerment pset after pset. Those problem are real intellectual challenges, not checks of course understanding. CS50 is light years ahead of everything I've seen, and I can't even imagine what it must feel in campus.
Was this review helpful? Yes1
 Flag
Dom Myers profile image
Dom Myers profile image

Dom Myers

10/10 starsCompleted
7 months, 3 weeks ago
Incredibly well delivered course. I had some limited programming knowledge from uni but mostly focusing on web app development. The course is amazingly well taught and kept interesting by utilising students attending the class in person and various activities. The problem challenges are challenging in a fun way and made easy to attempt through the VM they have created to support it. Covers a good range of topics and although I mostly took on the C programming challenges for fun, the web programming has massively improved my web development skills and helped me in my current job. 100% would recommend,
Was this review helpful? Yes1
 Flag
MANISH SINGH profile image
MANISH SINGH profile image

MANISH SINGH

10/10 starsTaking Now
8 months ago
The Instructor is Awesome ! Content is well organized and is full of Information. The lectures are available in all languages. Problem sets are challenging and fun. I strongly recommend this course to people from all disciplines of Life. The Verified Certificate is Worth it !
Was this review helpful? Yes1
 Flag
Botwe Emmanuel Asamoah profile image
Botwe Emmanuel Asamoah profile image

Botwe Emmanuel Asamoah

10/10 starsCompleted
7 months, 1 week ago
CS50's Introduction To The Intellectual Enterprise of computer science and the art of programming is one of the best computer science introductory courses for people with sophomores or people with no prior experience in computer science, computer science concentrators and technology lovers. I tried it and I can't stop taking it every year. This CS50.
Was this review helpful? Yes0
 Flag
Vitalii Zabelskyi profile image
Vitalii Zabelskyi profile image

Vitalii Zabelskyi

10/10 starsCompleted
7 months, 2 weeks ago
I attended courses in the Ukrainian language in 2016, adapted from 2014. I do not work as a programmer. But I want to be a professional programmer. This is my first course, I can not compare with anything else. A magnificent course. I try to deepen my knowledge of the English language and be sure to take a course directly from Harvard. I recommend this course to all starting.
Was this review helpful? Yes0
 Flag
Zhenfeng Liu profile image
Zhenfeng Liu profile image

Zhenfeng Liu

10/10 starsTaking Now
8 months ago
Can't be more grateful. This course is with tons of interesting things and make learning C an easy as learning python! Incredible!
Was this review helpful? Yes0
 Flag
Saad Tariq profile image
Saad Tariq profile image

Saad Tariq

10/10 starsTaking Now
8 months, 4 weeks ago
A huge fan of sir david malan and his team, they all are so nice, humble and helpful. I seriously love their content, All of the videos are with so much effort and are in such a manner that student like me a full introvert loves to adapt to this course.
Was this review helpful? Yes0
 Flag
Richard Marwa profile image
Richard Marwa profile image

Richard Marwa

5/10 starsTaking Now
9 months, 1 week ago
As an Bachelor of education mathematics and Information and Communication Technology with an interest in designing and teaching, I have always wanted to learn computer science and programming in my free time, to be competence database, networking and designing graphics.
Was this review helpful? Yes0
 Flag
Arthur Lorente profile image
Arthur Lorente profile image

Arthur Lorente

10/10 starsTaking Now
9 months, 3 weeks ago
This course changed my life. Even though I never completed me, it showed me what it means to really engage with education and that I could only go as far as I dreamed of.
Was this review helpful? Yes0
 Flag
Megan Charles profile image
Megan Charles profile image

Megan Charles

7/10 starsTaking Now
10 months, 2 weeks ago
The CS50 experience from a complete newbie. I’m adult female (over 30) with a science and data management background. While I have taken college courses online before (focus area in biomedical, biotech science), I am new to EdX, and have no prior programming experience. I originally signed up for the course because 1. I wanted to challenge myself/learn something new, 2. I was enticed by the opportunity to earn a certification for my efforts, and 3. this class was marketed towards beginner's as they note in their intro, the majority of those taking this class have never programmed a day in their lives. I was especially excited to learn how C works, along with the SQL portion of this course-set. Pros: While there is an end date, the course allows for self-paced learning. The information is presented in a very entertaining and helpful model. The instructors are extremely knowledgeable. The material is presented in both a more com... The CS50 experience from a complete newbie. I’m adult female (over 30) with a science and data management background. While I have taken college courses online before (focus area in biomedical, biotech science), I am new to EdX, and have no prior programming experience. I originally signed up for the course because 1. I wanted to challenge myself/learn something new, 2. I was enticed by the opportunity to earn a certification for my efforts, and 3. this class was marketed towards beginner's as they note in their intro, the majority of those taking this class have never programmed a day in their lives. I was especially excited to learn how C works, along with the SQL portion of this course-set. Pros: While there is an end date, the course allows for self-paced learning. The information is presented in a very entertaining and helpful model. The instructors are extremely knowledgeable. The material is presented in both a more comfortable and less comfortable study set. You are provided with multiple sources of information: various videos, transcripts, slides, audio, etc. Users are encouraged to network with one another on social media. Allowing all the opportunity to learn from some of the most elite institutions via this platform is wonderful. Cons: Err rather noting my experience and concerns I will forewarn anyone interested, per the experience of a person who has never programmed a day in her life but who is otherwise digitally literate, that unless you have a moderate grasp of computers and aced every math-based word problem ever posed to you, you may struggle with this class. You are expected to start programming after the first week. Yes, this is a class about programming, so naturally you'd be expected to program. I made the mistake of assuming we'd be drilled the first few weeks on what we'd learned before being expected to build multiple projects. You know, crawl before we walk. I would have preferred a few weeks of material review while performing gradually increasing in difficulty practice sets similar to the project sets, and then been subjected to testing. Meaning, when they say you will be learning to problem solve, they mean it. This class isn't solely learning and then later being tested on what you know in the traditional sense of exams. Instead you are instantly thrown into having to program several project sets each week in order to demonstrate the work. Projects typically consist of creating one or more programs at a time for a grade. Overall, the first pset of projects essentially felt like I was taking a math class where they decided to show us how to create a few basic programs, then skipped a few steps, and jumped straight to the test. As for building the projects, while we are given the general tools, we are not provided with ever-increasing in complexity, step by step examples similar to that of the skill sets we’re being graded on. Like in math, some of us need a few step by step examples to further cement our understanding of what is being asked of us. Over time, we require this less. But in the beginning, you bet I want as many examples as possible to reference back to. Again, yes, we are given examples demonstrating the basic principles of code, form, and function, but not something as potentially-multifaceted as the graded assignment. CS50 does have videos giving helpful suggestions on what you may use, but at no point before building the project am I given detailed examples to learn from. Thus, for some, the start point for each project is the biggest hurdle, and there can be a lot of trial and error as a result. In reference to my first non-Scratch project experience, I reviewed all of the videos, walkthroughs, sections, shorts, and psets, took both assiduously detailed digital and manual notes, recreated all of the class examples (like the basics on conditions and functions) on the course's IDE, engaged fellow classmate on social media forums, and even bought the suggested programming for beginner's book. While my formatting and style are now excellent - as again I practiced recreating items performed in class as well as those from the book and elsewhere online, alongside taking them apart and determining what each line did - I still felt ill-equipped to build something completely from scratch. Again, some examples akin in complexity to the project sets would have made a world of difference. Yes, the walkthroughs suggest how to go about creating the projects, but no real comparative examples are presented and dissected. While I managed to labor through creating my assignments through trial and error, I spent quite a bit of time doing it (noting that the aforementioned study took me 20+ hours, which did not include my time building the assigned projects). Sure, this is a beginner talking, so take it for what you will. And I've noticed several fellow students out there who are especially adroit at grasping this material quickly. As such, they do offer a hacker's-level version of the skill sets. I digress, if material is missing or there are broken links within the study sets, you are told to let someone know via a group page on social media as EdX is not responsible for the missing content, as per the email I received when I tried to let someone know an entire portion of a week's lesson was MIA (generating a 404 error). I was then encouraged instead to look around online elsewhere and piecemeal the missing information. This is concerning to a newbie when you are not entirely sure if the content of the previous year’s match that of the current one, or is even available. For a true beginner who may have difficultly initially understanding the material, this is not a 12-week class. It is more like a 6 month class, which is good because they give you until the end of the year to complete it. To sum up, I will likely not pursue the certification at this point (e.g. will work on assignments but I won't concern myself with passing right now). I will instead continue to take the course in hopes of further improving my overall understanding, and perhaps in the future I will reattempt the certification. I wish my fellow students luck in successfully meeting and exceeding their goals.
Was this review helpful? Yes5
 Flag
Joel Payne profile image
Joel Payne profile image

Joel Payne

10/10 starsCompleted
10 months, 2 weeks ago
Took CompSci with Dave Malan a few years back Would *highly* *highly* *highly* recommend! Very patient and thorough professor that takes his time to go over key parts of the material.
Was this review helpful? Yes1
 Flag
Vladimir Kazarin profile image
Vladimir Kazarin profile image

Vladimir Kazarin

10/10 starsCompleted
1 year ago
This is the best computer science course on Edx! The course's content developed to fully engage students.
Was this review helpful? Yes1
 Flag
Subrat Mainali profile image
Subrat Mainali profile image

Subrat Mainali

10/10 starsCompleted
10 months ago
EXCELLENT! I LEARNED SOOOO MUCH IN THIS COURSE! PROFESSOR MALAN AND THE CS50 STAFF ARE AWESOME! TAKE THIS COURSE IF YOU ARE EVEN REMOTELY (OR SUPER DUPER) INTERESTED IN CS IN GENERAL.
Was this review helpful? Yes0
 Flag
Camila Sarantopoulos profile image
Camila Sarantopoulos profile image

Camila Sarantopoulos

10/10 starsTaking Now
10 months, 3 weeks ago
Estou adorando o curso, muito fácil e simples. Parabéns por disponibilizarem um material fantástico tão acessível por alunos do mundo inteiro.
Was this review helpful? Yes0
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.