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.
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.