Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for Comment: Intro to Programming Courses #589

Closed
waciumawanjohi opened this issue Aug 21, 2019 · 30 comments
Closed

Request for Comment: Intro to Programming Courses #589

waciumawanjohi opened this issue Aug 21, 2019 · 30 comments

Comments

@waciumawanjohi
Copy link
Member

waciumawanjohi commented Aug 21, 2019

Problem:
The first courses in the curriculum are not appropriate for students who do not know how to program.

Duration:
September 30, 2019

Current State:
Awaiting feedback

Proposer:
Waciuma Wanjohi

Details:
OSSU lists prerequisites for students. These are all high school level math and science concepts. However, the first course of the curriculum demands a strong grasp of programming. As stated by @bradleygrant, "[The first course's] biggest downside is it assumes that the student knows Python inside and out by Week 2, which is pretty much unattainable for a first-timer -- especially since the class does little to get you there."

OSSU promises to detail a "Path to a free self-taught education in Computer Science!" That path should be clear about what preparation students need to undertake before starting on the path. Either OSSU must put in clear prerequisites for knowing how to program or OSSU must provide a clear path for beginners to learn how to program.

Proposal:
Give students a choice between three different courses that focused on teaching programming.

Each of these courses is an introductory programming course from a strong University. None assume prior experience coding. Together these courses have received over 10,000 online reviews on an independent platform. Each has an average rating above 4.5 stars.

Commenters may wonder at the decision to recommend a choice between three courses rather than a single course. The primary reason is that the introductory courses tend to generate the most debate among OSSU students. De-emphasizing any particular choice should make clear that students are welcome to choose whichever course they think will best suit. Ultimately, a student's success will be determined not by which course they chose first, but by their perseverance through the dozens of courses that follow.

After the intro to programming course, there would follow an introduction to computer science course. This would then be followed by core classes.

Alternatives:
OSSU can list basic understanding of programming as a prerequisite. This would allow the first course to be an introduction to computer science rather than an introduction to programming.

@Zaris47
Copy link

Zaris47 commented Aug 25, 2019

Harvard's CS50 introduction to computer programming course is pretty good actually. I used that as my first CS course and its very beginners friendly and comprehensive. It's there on Edx.

@cipherblock
Copy link

Harvard's CS50 introduction to computer programming course is pretty good actually. I used that as my first CS course and its very beginners friendly and comprehensive. It's there on Edx.

Am I mistaken or is this part of the curriculum under 'Core CS: Core Systems'?

@Zaris47
Copy link

Zaris47 commented Aug 26, 2019

Harvard's CS50 introduction to computer programming course is pretty good actually. I used that as my first CS course and its very beginners friendly and comprehensive. It's there on Edx.

Am I mistaken or is this part of the curriculum under 'Core CS: Core Systems'?

Oh my mistake, sorry. I just went to look and indeed it is a part of the curriculum. I don't know why we need two introductory courses though.

@cipherblock
Copy link

I am just starting out on my CS journey and found the OSSU not long ago. I enrolled in 'Introduction to Computer Science and Programming Using Python' and the course is due to start in two days time (28th August). Is it my understanding then that this would not be suitable for me as I have no prior knowledge?

@Alaharon123
Copy link
Contributor

It sounds like it's just quite difficult and you would need to put in a lot of effort. You can get a head start with SoloLearn's Python 3 tutorial and it sounds like in general you're going to need to put in extra effort into learning Python with third party materials. I'm saying that based almost entirely on the op, not personal experience.

@bradleygrant
Copy link
Member

bradleygrant commented Aug 26, 2019

I was the one who originally wrote the referenced comment:

"[The first course's] biggest downside is it assumes that the student knows Python inside and out by Week 2, which is pretty much unattainable for a first-timer -- especially since the class does little to get you there."

That was based on my experience taking the (MIT Intro To Computing with Python) course last year, after having already had the experience taking the Georgia Tech CS1301 course series. The MIT course was easy for me, but that's precisely because I'd had the benefit of having taken CS1301 I/II/III/IV specifically as a pre-course in Python syntax and control flow.

The beginning OSSU curriculum student should be cautioned that computer science and computer programming are two related but quite different disciplines, just as civil engineering and architectural drafting are different disciplines. Engineering programs frequently teach the basic-basics of drafting, because it's the common language of the discipline. For this reason, I believe an introductory course in computer programming is likewise useful, especially if the OSSU student has never had that exposure (and we have no reason to believe they would have if we didn't tell them to).

The MIT course IS an excellent beginner computer science course. But as a course, it makes the mistake of de-emphasizing the computer programming and instead relies on the strength/perseverance of the average on-campus undergraduate MIT student (most of whom have had some exposure in high school prep courses) to overcome the programming skills gap in a short amount of time. I believe this is an unreasonable expectation for an OSSU student.

@cipherblock - You have time, assuming you start right now and can devote the next 2 weeks to getting through Parts 1 and 2 of the CS1301 course (and completing Part 3 concurrently with the MIT course). (All you're doing is completing a guided study of basically what MIT would have you do anyway...they seriously want you up to speed on basic Python in about 2 weeks.) Depending on your goals, I would believe that expended effort is worthwhile, you don't want to lose six or eight months to catch the next live session of the MIT course. (And the second half of the MIT course -- Introduction to Computational Thinking and Data Science -- although it isn't in the OSSU curriculum I highly recommend you take it anyway if you want a very early exposure to real-world applications.)

Still, the entire point of THIS PR is to prevent others like you from having to scramble in order to prepare to take what is ostensibly the introductory course into the curriculum...

@cipherblock
Copy link

@bradleygrant Thank you for your response. Is the CS1301 course you're recommending the one on edX? I'm not sure if it was a free course when you took it but I believe it costs £291 now. Would you have any other suggestions for a course I should look at before attempting the MIT course (ideally something free or less expensive than the Georgia Tech one)?

@bradleygrant
Copy link
Member

@cipherblock -- For CS1301 and for most other courses on EdX, you have the option to pay for the courses, or to "audit" them and take them for free. Just take them for free. You might have to ignore a couple of nag screens. As long as you still have access to all the course material, homework, and the tests, the only thing you're missing out on by not paying is the certificate at the end.

That's how almost all the courses in the OSSU curriculum are set up -- indeed, requirement #1 is that they are freely available.

Some of our "sophomore" curriculum has been increasingly paywalled in recent months and we've had issues with using the free tier (as documented in #581, #586, #588). In those cases we've begun looking for alternative courses.

But for CS1301, audit access should be sufficient. Try it, and report back if it isn't working.

@KathrynN
Copy link

KathrynN commented Aug 27, 2019

Hi @bradleygrant
Have you taken an edX course lately?
They threaten that your access to a course will end on X date - unless you pay in two weeks for the certificate version, of course. In the courses I've looked at, you tend to get 2 months of a course before it is closed to you forever.
From your comment, this does not match your experience?

Kat

image

@bradleygrant
Copy link
Member

bradleygrant commented Aug 27, 2019

tl;dr: sure, you have time limits now, but in this case it doesn't limit you in any meaningful way. in addition to not getting access to the most valuable parts of the course. That's unfortunate.

@KathrynN -- yes, the new trend on EdX is to limit your audit time to the projected length of the course. (It's not that way with every course, and instructor-led sessions tend to last for the entire length of the session anyway). If EdX thinks it takes 15 weeks to get through a self-paced course, you get 15.0 weeks from the day you click Start to get through all the material.

@cipherblock -- for the case of CS1301, you get 5.0 weeks for each of the four subsections. I don't think that's particularly limiting. Just make sure to sign up for each one in turn, and not all four at once.

To test, I signed up for the new section of CS1301 Part I. As an audit student, without paying, I have access to all of the videos, text, graded review questions, graded practice problems, graded coding exercises, and graded non-proctored midterms and final exams. I have that access until October 1st, and I know enough about the new EdX audit model to believe that if you're 93% finished on October 2, they will let you die on their doorstep rather than come back in to finish. apparently didn't test on all systems or something happened between then and now, but it's paywalled to death now.

@bradleygrant
Copy link
Member

bradleygrant commented Aug 27, 2019

@cipherblock

Bottom line: go sign up for the Georgia Tech Computing in Python course, part 1 -- Fundamentals And Procedural Programming.

It's free on EdX, don't pay the $100, choose to audit instead. You'll get full access for 5 weeks. You'll need full access for no more than 5 days. It's a quick course. No longer true...

Once you get that one done, proceed to Part 2. That one will probably take you twice as long as part one, there's more concepts and more coding. Part 3 might take you twice as long as part 2, and part 4 could require the whole 5 weeks.

If you get through the first two and start into number three, you should be in excellent shape for your MIT course, which I think the idea was you'll be taking concurrently.

@cipherblock
Copy link

@bradleygrant I really appreciate you taking the time out to check all of that for me and answer my questions. As you've mentioned the time limits, the MITx course is due to begin tomorrow. So with that in mind do you think I'd still be ok, time wise, to take parts 1 and 2 of the GT course, then come back and begin the MITx course while concurrently finishing up parts 3 and 4 of the GT course?

@bradleygrant
Copy link
Member

@bradleygrant I really appreciate you taking the time out to check all of that for me and answer my questions. As you've mentioned the time limits, the MITx course is due to begin tomorrow. So with that in mind do you think I'd still be ok, time wise, to take parts 1 and 2 of the GT course, then come back and begin the MITx course while concurrently finishing up parts 3 and 4 of the GT course?

To be honest, that kind of depends on the time you have and the time you're willing to spend.

The GT course assumes nothing (except that you know algebra, and have seen trig functions enough to understand what they mean). They start with "what is a computer" and bring you all the way up through the basic basics of programming, while also teaching computer science concepts along the way. (That's why I think it's quite valuable as a very first course.)

If you kinda already know what a computer is, you'll find that first course to be very fast. Honestly, I did it end-to-end in about 12 hours over the course of a single day. Book, homework, code assignments, tests, and all. Part 2 took me 3 days. I'm not telling you to go knock it out today. I'm telling you that if you have the OPPORTUNITY to go knock it out today, and you find the material to be fairly easy such that you whiz through it, then you should have no problem with completing Part 2 and into Part 3 by Week 2 of your MIT course.

You also have to look at it as "shared time" -- you're not taking two completely different classes, you're using one as structured study for the other one. You would be spending that time anyway, probably less effectively.

And if you can't, won't, or prefer not to go that hard, that's okay -- this is all self-paced. The point of this open issue is so OSSU can do a better job at giving you a gentler on-ramp so you don't HAVE to go that hard all at once to cover the first course.

@pachecohjr
Copy link

@bradleygrant Where do you see the practice problems, questions, or exercises available? I do not, at least as of yesterday, when I tested the course. They show the course questions as locked because of the audit.

@bradleygrant
Copy link
Member

bradleygrant commented Aug 27, 2019

@cipherblock @pachecohjr

Crap, I'm seeing that now too:

Well, that just became a lot less attractive...

@waciumawanjohi It appears that the Georgia Tech Computing in Python series, while still an excellent series, does not fulfill OSSU's intent at this time for reasons identical to those listed in Issue #588. I therefore recommend it be stricken from the list of proposed courses attached to this open issue.

@speedygonzales9
Copy link

speedygonzales9 commented Aug 29, 2019

Hi @bradleygrant

It seems every course on edX has been paywalled on graded assignments. For example: 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 found the graded assignments motivated me to complete the course. I think everyone likes to know what their doing wrong.

This picture is in "How to Code: Simple Data"

How to Code

Hopefully, this gets resolved for the students wanting to take OSSU.

@ClockCat
Copy link

The content for the intro to programming course is only shown for the first lesson...but audit ends access next month and says you won't be able to view it any longer. I'm guessing next week the second lesson will show up as available....so it won't be possible to complete the course at all without paying for it?

@pachecohjr
Copy link

@ClockCat No, you should be able to view any of the weeks of lectures at any time. You work at your pace. Besides the grievances made here about the free audit access, once the two weeks are up, your "View Course" will be gone and you will no longer have access anymore.

To prevent that while you're in the middle of access / lectures, you can always make a dummy account...

@ahmedbenammar029
Copy link

you should add more Infos about the courses like its frequency like once a month twice ...
also the access period especially with EDX's new audit policy

@waciumawanjohi
Copy link
Member Author

@ahmedbenammar029 I agree that both of these ideas are useful information for students!

Re: the access period especially with EDX's new audit policy
The access period is determined for individual courses, edX has no site wide policy for how long access will last.
One possibility is to add a link to this page on the homepage somewhere. At the moment I don't have a clear idea of where that might fit. The homepage at the moment is focused on the high level concerns (which courses, what prereqs, etc) rather than low level details of individual course platforms. If you have ideas for where you think this link could naturally live on the homepage, definitely share!

Re: add more Infos about the courses like its frequency like once a month twice
On this, I suspect this information is unknowable. I haven't seen a schedule where any platform promises to hold new sessions on any particular schedule. The platforms just report when the next session is going to be held. And even for individual courses, the frequency can vary widely. I've seen a course (that we eventually de-listed for not being offered frequently enough) whose frequency varied between a few times a year to once every few years. Without clear communication from the platforms, any prediction of frequency on our part would just be a guess.

@ClockCat
Copy link

ClockCat commented Sep 9, 2019

@ClockCat No, you should be able to view any of the weeks of lectures at any time. You work at your pace. Besides the grievances made here about the free audit access, once the two weeks are up, your "View Course" will be gone and you will no longer have access anymore.

To prevent that while you're in the middle of access / lectures, you can always make a dummy account...

I can only view the first two weeks. The entire course is not available?

image

@cipherblock
Copy link

@ClockCat I was pretty confused about this as well because I can also only see the first two weeks. When the course first began (on the 28th of August I believe), only Week 1 was there so I thought maybe the next week gets added every Wednesday. Is this not normally the case?

@waciumawanjohi
Copy link
Member Author

@ClockCat @cipherblock
Thank you for taking the time to let us know about these changes. Which course is giving you access 1 week at a time? Is this Computing in Python from Georgia Tech? Intro to Computer Science from MIT? Or another course?

@cipherblock
Copy link

@ClockCat @cipherblock
Thank you for taking the time to let us know about these changes. Which course is giving you access 1 week at a time? Is this Computing in Python from Georgia Tech? Intro to Computer Science from MIT? Or another course?

Absolutely no problem. It's Intro to Computer Science and Programming using Python from MIT. I'm not 100% sure if that is what's happening because I'm not sure how it used to work. Maybe if I were to complete all available lectures before the next week began it would show up with the next week but I doubt it. I hope somebody else can shed more light on this.

@bradleygrant
Copy link
Member

bradleygrant commented Sep 10, 2019

When I've taken MIT 600.1x in the past, they would release one week of material, one week at a time. That's true whether you audit or get verified for the class. The course calendar tells you what day they're going to drop each week's material.

Now, if they have 13 weeks worth of material to drop, and you only have 5 weeks of time to audit (I'm presuming this, I don't know), that it seems like you only get to see the first 5 weeks. So the thing to do would be enter the class in the last five weeks and try to do the whole thing in 5 weeks.

They weren't doing any of this a year ago, and I still have perpetual access to all of these introductory classes.

Would it be helpful at all if I were to try to life-raft some of this information into a free repository somewhere? I'm not sure the extent to which that can be done, as I'm pretty sure it's a licensed work even if it's not chargeable.

@bradleygrant
Copy link
Member

bradleygrant commented Sep 10, 2019

One class that's still fully free to audit for the entire length of the course is UT Austin's "Linear Algebra: Foundations to Frontiers" on EdX. AND you get access to MATLAB for the duration of the course. Even if you audit for free.

It comes in later in the OSSU CS curriculum (but it also happens to be Class #1 in the OSSU Data Science curriculum)

@ivicts
Copy link

ivicts commented Sep 10, 2019

I have taken this course earlier this year (after Edx policy changed). If let's say the course is 13 weeks, you will have access from the start until the final exam (after 13th week). So, you do not get only 5 weeks. What you get depends on the course length.

@cipherblock
Copy link

Yes @bradleygrant I think @ivicts is correct, I've just checked 'Important Course Dates' and it's telling me that the course will end on 30th October.

On an unrelated note, could somebody help me to understand what the difference is between the 6.00.1x course on edx and the version that is on OCW because while doing the course on edx one of the community TA's advised somebody to watch this: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/lecture-videos/lecture-1-what-is-computation/
So I'm wondering if they're the same/similar why is it being advised to also watch these lectures?

@joshmhanson
Copy link
Member

I recently came across Princeton University's introductory CS class on Coursera:

Significantly, all features are available completely for free. Has anyone tried these courses?

@waciumawanjohi
Copy link
Member Author

Close of the Comment Period

Findings:

  1. The feedback above highlighted the uncertainty that students feel around edX courses. Several students were unclear whether they would be able to view all of the lectures in the courses they were auditing. Several students expressed disappointment that they could not view the assessments for their edX course.

  2. New courses were identified that may fit the goal of the Intro to Programming section. Questions about the courses quality remain unanswered.

  3. Several students endorsed the course CS50.

Response:

  1. As students begin their educational journey to the equivalent of a bachelor's in Computer Science, OSSU should reduce student uncertainty. We should prioritize courses that offer students full access to materials. For that reason, Computing in Python I: Fundamentals and Procedural Programming will not be added to Intro to Programming. If there is a change to edX's policies in the future, it would be wise to reevaluate this decision.

  2. It is only possible to evaluate courses with feedback from participants. I look forward to reading such feedback for Princeton's new courses!

  3. CS50 remains a popular course. It is also a course that begins by diving to a very low level of abstraction, teaching manual memory management by the 4th week. This is an increasingly rare approach, with CS departments increasingly using higher level languages in introductory courses. I have written in depth why I do not believe CS50 should be the first course in OSSU here.

Conclusion
Intro to Programming will recommend two of the three proposed courses:

Programming for Everybody
An Introduction to Interactive Programming in Python

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests