Hi,
I am currently graduated from high school and have a communication device to speak. I would like go on to post-secondary to learn computer science. Unfortunately, I need an aide to help me. Ex: to push me because I am in a wheelchair and my hands do not work. However, universities or colleges do not have aides to help with my needs. The OSSU would help a lot. It is layed out perfectly and I can be independent. As a student, you like to do questions that are graded to know you are the right track. I tried to do the first course "How to Code - Simple Data" and the question page after every video said: "Graded assessments are available to Verified Track learners. Upgrade to unlock ($125)". Is every course going to be this way from edX? I thought edX was a non-profit organization to help people who can not go on to universities. Here is a comment from Reddit about this change: https://www.reddit.com/r/edX/comments/a71824/edx_changes_the_audit_courses_policy_what_do_you/ebzscl9/ I am disappointed and shocked because they were trying to get everyone an equal opportunity. I wanted to get my opinion heard.
Thank you for your time to read this.
John
There are still costs, albeit largely reduced, for universities/lecturers to provide learning content on online platforms such as edx. Another thing to note is you still have access to a large amount of the courses that you can audit and still benefit from. I would recommend this approach, subsidized with projects to show what you can do and it really can cost $0. Goodluck and have fun!
Hi,
Thank you for your quick response @jackw1111.
Are the multiple choice questions after every video lecture helpful? If I work out every problem in the Problem Bank tab or a corresponding problem on the internet, without taking the multiple choice questions, would that be enough to learn the concept?

Thank you for helping me
John
It's up to you when you feel comfortable with a concept and some are easier than others. I generally wouldn't trust the multiple choice questions for everything, especially, if you plan on doing more courses in the OSSU plan, you will find some courses have more free revision exercises than others. What I would rely on is taking notes, subsidized with diagrams, find others to talk about the topics (Stack overflow chat, Discord, freenode, etc...), teach concepts to others, and pick things that interest you to make with what you learn! Can't stress that last one enough, keep it interesting and enjoyable.
For some perspective, it hasn't been a linear approach for me. I started learning Python as my first language with MIT 6.00.1x , then dived into learning app development with C#, completed another couple courses and am learning the basic/intermediate stages of C++, while largely putting the OSSU plan on the backburner. My rough goals are in low level embedded hardware, so I will be moving onto learning low-level C next, but my goals have always been somewhat maths related (machine learning, graphics programming, low-level hardware) so I am always pushing to understand "how computers do stuff".
But it ultimately on where your goals lie with deciding where to focus your studies.
If you need any more questions answered I will answer them as best I can!
Goodluck on your journey John!
Hey jhubler99,
Would you mind telling me what you're using as a tutorial or references to learn OpenGL with C++
please
?
I have that popular Udemy course learning a similar subject that also goes over Unity as well, but not the same thing. And I wanted to take that San Diego Intro to Graphics Programming course that taught OpenGL but I realized I was not ready for it 2-3 years ago, and because of the edX policy change, I have not been able to re-audit the course.
Hi,
Thank you for your feedback @jackw1111. I might just dive into C++ and create mini projects from what I've learned.
John
Hi @pachecohjr
I am just beginning to learn the field in computer science. As far as your question regarding OpenGL, I have not learnt graphics programming yet. I hope you get an answer with someone who has more experience than me.
and am learning the basic/intermediate stages of C++, while largely putting the OSSU plan on the backburner. My rough goals are in low level embedded hardware, so I will be moving onto learning low-level C next,
Hi @jackw1111
I would love if you could tell me what resources you have down for learning lower level programming i.e. in C programming, because I am trying to go for the same self teaching path. I was actually going to look into the courses that teach computer engineering as well.
@jhubler99
Good luck. You could do it. In fact, just being here is potential to show you will do it. Impressive enough at your age. But, stay focused. And definitely look into online computer science curriculums taught so you can be a distance learning student for a university or college. I made the mistake of taking intensive math and programming classes like Calculus I, Computational Structures (it's like Discrete Math just a different / re-arranged set of topics that are taught later in DM), and then C Programming without ever having programmed back in 2014.
I failed them all, but I made up for it in the end ;)
If I knew about resources like these, Geeks4Geeks, or any other good YouTube channel, etc. and this site: https://www.indiabix.com/c-programming/questions-and-answers/ earlier I would have passed that all of those 'introductory' classes no problem.
Oh, and, if you start early, like getting an Associate's of Science degree in a computer science related field focusing on computer science or programming courses, then you will be definitely more than prepared when you go for a Bachelor's degree. I started late. Look into different online universities and pick the one that you can set at your own pace, and look at their prerequisites. Most universities have different science and math pre-reqs, but they are all the same in core courses because they need to be ABET-accredited.
You sound like you got an idea or two of what the field of computer science entails. But if you are still unsure, take a look at this and MajorPrep's channel:
https://www.youtube.com/watch?v=Tzl0ELY_TiM
He also compares different majors and fields of engineering (i.e. electrical, computer, mechanical) and information technology to computer science, since they are all different.
Hi @pachecohjr,
For learning graphics I started in pygame (this video was brilliant https://www.youtube.com/watch?v=g4E9iq0BixA, they also implemented a simple minecraft clone in 300 lines of code iirc). I followed javidx's software rasterizer series (this is the end result https://www.youtube.com/watch?v=nBzCS-Y0FcY). Then I moved onto simple hardware accelerated graphics in immediate mode OpenGL (https://www.opengl.org/archives/resources/code/samples/glut_examples/examples/examples.html), before moving onto Opengl 3.3+ (shader based), following youtubers like ThinMatrix and TheChernoProject. Some good sites I am using to learn OpenGL are learnopengl.com and http://ogldev.atspace.co.uk/ and even reddit.com/r/GraphicsProgramming.
As for embedded C, I haven't done too much in terms of building anything, but I have begun on the journey with Ben Eater's youtube videos, but my plans will be in learning how to use a hardware debugger, oscilloscope, arduinos/stm8/esp32 etc...
@jhubler99
Lot's of people dislike it and say there are better resources, but I started learning Python with codecademy.com and it was really fun.
Also, good advice there.
I too started with university (B. Comp Eng), having never programmed, and failed the maths before many would consider it getting "hard". The programming wasn't necessary difficult but got quite abstract without having any pet projects to figure it out. So my plans with OpenGL are to passively/intuitively learn linear algebra/ harder calculus to get me back on track with my studies.
You know who's amazing at OpenGL screensavers who I wish had a GitHub? jwz . He's got a blog though, with some source code on his stuff from time to time.
A Twitch streamer who's a game dev told me about Shadertoy https://www.shadertoy.com/. It is amazing, full of all kinds of open source Unity and WebGL. Simply beautiful.
Thank you for all of the resources @jackw1111 . I appreciate it a lot. Didn't know about any of these channels or pages.
As far as embedded C goes, yeah. I'm in the same boat as you. I read one Quora article that just basically said, learn and eat C everyday for breakfast until you are completely familiar with C, but ha, easier said than done. I was gifted a Raspberry Pi but I don't know what to do with it. I have plenty of Arduino and Make books that I wanted to play with, from Humble Bundle. I might start there.
I have a friend who works at a startup dealing with smart home devices. He tells me Node.js is very good to learn for back end in devices or IoT.
Whoa his blog is incredible, I'll dig through and see if I can find any source code, thanks.
Yes, shadertoy is fantastic, still on my journey with GLSL shader language though, so alot of it is witchcraft.
I much prefer hardware to software. My ambitions in CS are directed towards understanding hardware enough to repair/hack it. The problem I find is, it gets expensive. Strange Parts has a pretty sweet setup, but he makes mistakes and it costs him (granted only a couple dollars most of the time), but it definitely adds up. Software is so easy to just throw away an old project and all you lose is the time it took (in exchange for experience though). Hardware is such an investment, man. Especially self-taught cause it takes up so much space with all the equipment you need.
Plus, I live with others, and I guess it looks all "antisocial" to be "hacking" hardware together in your room all the time, "H...hey, what you doin?" , lol.
Got to not let that worry me and bite the bullet though. I got a bit of spending money and might look through an electronics catalogue and see what fancies my interest. Cheers !
Here we is:
https://github.com/Zygo/xscreensaver/tree/master/hacks
Go to directory xscreensaver for home directory.
Definitely @jackw1111 , I see your point. But, however way you can follow me, I'll try to do the same. We gotta stick it out, and stick together. I wonder where the other closest community would be for learning embedded C and hardware for noobs like ourselves would be, before this thread gets closed.
before this thread gets closed.
As long as there's a lively academic discussion ongoing, this thread will live. Glad that you guys are connecting over a topic you're both passionate about!
If you want a place where the conversation can die down and then be picked up later, consider the Gitter for OSSU. There are a number of OSSU students that keep up a low level of chatter week by week.
Yes! We can just keep this thread alive with talk about embedded C. Or talk in Gitter??
Or use this page to scour and dump anything to do with IoT, arduino/raspberry pi, cool makers stuff that we find...
But, @pachecohjr, I know what you mean, it's few and far between with good quality information. I want to get into the nitty gritty of C too. I saw this project where someone wrote a complete 3D software rasterizer from scratch in C89, only using extremely primitive windowing API's to get a very basic window handle. I wonder how embedded C is similar/dissimilar? Would you be programming against an API or would it be lower than that?
Also, I'm attempting to build the xscreensaver repo. Hope it works...
Hi @jackw1111
I decided to learn Python as my first language. Since you have taken the MIT 6.00.1x course, I wanted to know how challenging is it?
Thank you
Hey @jhubler99,
Python is a fantastic language to learn a broad expanse of computer science and progamming concepts with. In a lot of languages, the syntax of creating a variable (int, float, string, etc...) requires you to define its type, eg. string salad = "potato" . But, Python is designed to figure out the type so you just write salad = "potato". You can also set salad=1, or change the type easily compared to other languages. It is interpreted which means it doesn't compile code to an intermediate "bytecode" or "assembly" code before runtime. These features save ALOT of development time, and is thus an excellent language to learn, without be weighed down by long compile times and lengthy compiler errors.
The MIT course is a good quality course, but definitely requires discipline on the students part to complete and submit the problem sets before the due date. But, the pace is manageable if you set aside enough time in small chunks every week for them.
But hey, the OSSU moderators have heard the complaints of the students and are petitioning to change the introduction courses to a more suitable free course.
So, if you are learning Python as your first language can I ask you a quick question...
Which of the 3 courses on this page stands out to you as being the course that you would be most likely interested in???
If you like one of those courses you could try it and report back about how it went for you, to improve the structure of the OSSU degree for future students :)
But in any order, I would be grateful if you could let me know which one stands out to you.
Thanks, and if you have any issues or questions, even regarding Python, let me know and I will help!
Hi @jackw1111
I would have to go with Computing in Python I: Fundamentals and Procedural Programming. It is paywalled to do the graded assignment, which I still disagree with.
Thank you
Hi @jhubler99,
Thank you for telling me your preference. That is a bummer, and one of the reasons why I suggested 6.00x courses, because AFAIK, there was complete access to the course material / graded assignments which I found was a huge motivator / great feedback when completing it. However, as others are pointing out on the alternate thread, it may feel quite fast-paced for a beginner course. I would strongly recommend on having a working knowledge of Python before starting the course, because it does focus strongly on the introduction to computer science concepts side and less on the introduction to programming.
Hi
I can confirm that in the summer of 2018, there was complete access to the course material / graded assignments as I completed two courses for free. The graded assignments motivated me to complete the course too. Now I am completely finished high school, and wanting to learn more code because I enjoyed learning it last year. I hope edX realizes they made a mistake changing their policy.
Thank you
Ah, so Georgia Tech teaches this series. Well, I can see the frustration you may have. My cousin graduated from Georgia Tech and they actually do teach Python as a main entry for computer science or engineering students over there. I guarantee there certainly are alternatives you can find such as free ebooks and courses that teach in Python that go over similar problems. I signed up for the the first course in the series and see what you mean, as in I can't see any of the Coding Problems, exercises, or questions that were once available.
These classes are not the be-all end-all, and at least you're able to view some of the lectures tied to this. That's one good thing you do have. You can guarantee that you will find just as challenging problems and programming questions in sites like HackerRank, Geeks4Geeks, etc. .
But, as far as larger and challenging projects, you won't have access to those because those normally require numerous files and an environment. But, definitely look around for some. I attended FSU and the intro course is now taught in Python. There are certainly available undergraduate courses and challenges you can find, especially in Python. I'm certain you can find sites that hold project files online. Now, having them graded is another thing. I'm in agreement with you on all of this because audit learners don't get their assignments graded anyways.
Also: git gud with Google searching. I found (spoiler alert) solutions to a few of the Chapter problems on this github, but I'm sure if you look some more, especially looking through each file name and extension (i.e. Coding Problem 2.4.2 had a driver program done for you outlining the problem, but I saw the challenge on other sites including on HackerRank, which is a program that gives you back or makes change, "MakingChange.py" is what the course had the implementation file assigned as).
Here's an example: http://www.cs.fsu.edu/~jayarama/pythonsu18.php
If anyone is frustrated by not having access to problems sets on Edx for MIT's 6.001 or 6.002, you can use MITOpenCourseware as a complement.
Thank you ruoshui-git. Noted, I was auditing and screening that class and the lectures yesterday.
@jhubler99 So, there's good news here. I found this URL on the course page and it's the course series Slack chat maintained by a couple of the course owners inc. David Joyner. Definitely join it, and look around the chat for any previous exercises that you may be looking for. If you can't find it, either post on the edX course's discussion board or on this Slack chat I just passed you.
Also, UCBerkeley has a great course that teaches everything based on MIT's Structure and Interpretation of Computer Programs: https://cs61a.org/
Hi @pachecohjr
I completed the course "Introduction to Python: Absolute Beginner" with full access to the graded assignments for free in 2018. Just to see if it is still free, I enrolled in it now and the graded assignments are paywalled. It seems every course on edX are going this route now. This course used electronic grading, so you can get the mark immediately. I think everyone likes to know what their doing wrong.
Thank you, I will check the information
Sure thing.
@jhubler99 Check this archived edX course out: it's the older version of HtC1, and it has access to all of the questions to HtC1.
https://courses.edx.org/courses/course-v1:UBCx+SPD1x+1T2016/course/
@jackw1111 I found these on edX, know anything about them? They're taught by UT, or UTAustinX.
It's the first of a three-part series course:
Embedded Systems - Shape The World: Microcontroller Input/Output
https://www.edx.org/course/embedded-systems-shape-the-world-microcontroller-inputoutput-2
Embedded Systems - Shape The World: Multi-Threaded Interfacing
https://www.edx.org/course/embedded-systems-shape-the-world-multi-threaded-interfacing-2
The third course, which kind of seems like an optional build up from the first two:
Real-Time Bluetooth Networks - Shape the World
https://www.edx.org/course/real-time-bluetooth-networks-shape-the-world-2
The series requires purchasing a Texas Instruments TM4C123 microcontroller kit and a few electronic components. The third course involves purchasing a Bluetooth RTOS and a specific test kit as part of the lab:
http://edx-org-utaustinx.s3.amazonaws.com/UT601x/RTOSkit.html
This whole course series is very hands on and states the labs are necessary to pass and learn from.
YouTube recently suggested this channel and playlist to me:
Building an 8-bit breadboard computer!
https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU
It seems a little tough because he starts way ahead of an early review or material, to which I have to go back to my knowledge of circuits back in Physics class, and some Digital Design that I learned back in my Computer Organization I course.