Closed waciumawanjohi closed 4 years ago
Maybe we could integrate something like this to replace the Firebaseapp. It's a pretty slick progress tracker.
Hi, @waciumawanjohi. Thanks for your feedback. I was once responsible for maintaining this web app, however eventually it became apparent that to maintain this application we needed to create a proper admin dashboard. Nobody had enough time for this and @ericdouglas decided to move progress tracking to Trello cards. This is even stated in the main README here. I think I can add a big red notification in the app that it is outdated, but I cannot promise that I will update the curriculum in any foreseeable future.
OSSU Firebase app is an open source project so if anyone has passion and desire to update it I will gladly accept any valid PRs. The repo is here
I see that this website is tracked by Google Analytics. Any idea what the current usage is?
It would probably be nice to at least put some kind of a notification on the Firebase app saying that the curriculum there is outdated, and to go to the Github repo instead.
@FlorianHoornaar I looked at the analytics, and I am surprised that relatively many people are visiting OSSU app. May be I should spend some time on this project
Hey everyone, I'm one of the guys that sparked this conversation by asking about the web app curriculum on the forums. Just to let you know, I came across the Firebase app by browsing the README file under the Data Science curriculum for OSSU. It states that in order to become a student, you have to go the Firebase app and sign up. So, eliminating that statement might alleviate some confusion.
@SergeyKhval I think that would be a good idea. Having a web presence outside of github might be helpful to draw new students, like myself, who aren't yet github savvy, but are interested in a computer science education. Most schools have a regular website that has introductory information about their program, which is helpful for prospective students and for adding credibility to the school. Once students enroll, then they are instructed to set up github accounts, sign up for Slack, etc. I know OSSU is different, being open source and self-directed, but I think having a dedicated web app could do a lot to add to the credibility of OSSU and drive new enrollments. Just my honest opinion.
Hello All, One observation. There is a reset button in the app. Does the course update to the latest one when it is clicked.
I've just created a pull request for the data science track to delete the reference to the firebase app. (In particular, the app has never included the data science curriculum).
@SergeyKhval glad you were able to pull the numbers on the app. It's good that learners are finding OSS.
When you say, "May be I should spend some time on this project", do you have the time to maintain it? If so, it sounds like there are users that would like that. If not, I think that the best impact you can have on learners is to take the app down so that they don't get confused by the outdated curriculum. As I'm sure you're aware, many changes have been made because of courses that are no longer offered and because of collective discussion of the best learning progressions.
So I took a quick look at the current state of the app. Many of its dependencies are outdated and the app cannot be built following instructions from the README without some additional steps and hacks. The UI should definitely be overhauled. App also needs at least the simplest admin dashboard. Its been two years since the app got its last update, some of the tools used (like grunt and bower) are almost dead today. It looks to me that it would be easier to rewrite everything from the ground then trying to reanimate the current version. Considering the scale of the application its not that hard as it may sound.
@waciumawanjohi What do you mean by maintaining? I think I have time to rewrite the app and implement additional features that would make it more appealing to users. I think I can update curriculum from time to time as it is more or less stable and big updates are a rare occasion. If you also mean customer support, marketing, constant flow of new features then I am definitely out of resources for these tasks. However one can think of some natural way to deal with them (like use gitter for support and community to spread the word etc.).
Also we should definitely listen to what @ericdouglas thinks of this. On the one hand the app showed that people are willing to use it in spite of not having regular updates, on the other hand it may be not the best PR to have an outdated app again if we struggle to at least keep the curriculum up to date.
@amorriscode many thanks for sharing this link. I really like this approach since it's very simple to maintain. We can invite the author to move the project to OSSU organization or fork the project and provide an "official curriculum", that will be the oficial progress.js
file, but students will have flexibility to add sections and courses in their page.
@jeremy-gray thanks for your opinion. Indeed, a web-app would bring other kind of students to OSSU and also increase our credibility. We definitely should put some effort in this direction. Personally, for the curriculum tracking system I prefer the kind of project @amorriscode linked above, since create a web-app that has all features we need to handle curriculum updates while keeping students in other versions of the curriculum is not a simple task/application.
We should ask students to know which kind of app they prefer.
If we go with the app @amorriscode linked here, we should also create a static page to show what is the OSSU project and what course we are current offering.
Please, share you opinion about which kind of curriculum tracking system do you prefer:
@SergeyKhval when I say maintaining, I mean making sure that the curricular changes that have been made on github are up to date on the app and that the app is working. That sounds like a match with your intentions!
I'd be happy to contribute to, say, a Flutter or React Native app. Good way to improve my skills in those areas too.
On Mon, Mar 19, 2018 at 12:45 PM, Eric Douglas notifications@github.com wrote:
A poll to verify the general opinion about this topic:
https://ericdouglas.typeform.com/to/t3mdam
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ossu/computer-science/issues/466#issuecomment-374199237, or mute the thread https://github.com/notifications/unsubscribe-auth/AFV6C9kAyal7iYEuE5_D7zPnIHWezq1cks5tf6iDgaJpZM4SqUbu .
I would also love to contribute (for the same reasons as @KathrynN). I'm however in no position to give my commitment to anything.
@waciumawanjohi when you say
making sure that the curricular changes that have been made on github are up to date on the app
Would a js-file containing the curricular hosted in this github repo do the trick? Other apps could simply pull data from that, without duplicate maintenance.
See also https://jsonresume.org/schema/
@ericdouglas, any chance to get some insights from your poll?
@SergeyKhval yes for sure:
Hi everyone,
Not sure what the latest progress on this is but would love to get involved!
I am actually already working on a project to build something similar to the OSSU static web-app so might be able to leverage some of that 😄
The main reason for my vote towards the dynamic web app is accountability. @amorriscode's solution works well, and you could possible link to your final project, or certificate from their, but it doesn't offer true integratiog with Edx, or Coursera.
I realized today after it was forked that the simplistic way in which I'm keeping track of my progress may appeal to others.
@SergeyKhval It's been 1/2 a year and the Firebase app is still out of date. In particular, it recommends starting with a class we've moved much later in the curriculum. If you don't have time to update the app (we're all busy people, I know!) can you take it offline so that new students are more likely to find the Github page.
I'll add that for v9, it might be low-hanging fruit to just set up a static website for now using GitHub Pages. It's free, and the static approach received the most votes in Eric's poll. (GitHub can even automatically generate a static page just from a Markdown document, though the result isn't necessarily pretty.)
Having a more dynamic/interactive website is something we can look at for v10.
@waciumawanjohi and others. A quick update on this.
FYI @ericdouglas
@SergeyKhval I think the 1 week deadline to deploy sounds great. I'm looking forward to seeing the new app! It's wonderful that you're putting in time to maintain this resource for learners.
@SergeyKhval Is there anything we can do with the format of the current curriculum that would allow automatic updates to the webapp to occur? Such as, for example, switching from Markdown to something that can be easily parsed by the webapp?
The workflow I had in mind was that we would continue to use the dev
branch for making live/experimental updates to the curriculum, and then occasionally merge a batch of updates to master
(along with tagging a new release) which would trigger the rebuild of whatever website the curriculum is being hosted on.
It's been a week since my last message so here is a quick update on the progress.
I almost finished recreating current app with Vue (Nuxt in particular in SPA mode). I am deploying updates to staging environment here ossu-dev.firebaseapp.com. Some features can be broken yet. Here is a dev branch, feel free to contribute.
It took me longer than I initially thought. Mostly because I am still thinking about new data model for the app (based on the current curriculum structure). I'd like it to be more flexible to support inevitable future changes to curriculum. This also leads to considerations of how to migrate current users to new model.
So regarding data model I suppose it will be smth like this
Degree | Level | Category | Course |
---|---|---|---|
Computer Science | Core CS | Core Programming | How to code - simple data |
Computer Science | Core CS | Core math | Essence of Linear Algebra |
Computer Science | Advanced CS | Advanced systems | Reliable Distributed Systems, Part 1 |
So remaining features for the MVP are:
@SergeyKhval Thank you for your work and I apologize that no one's gotten back to you sooner.
As you can probably see from the other issues being posted in daily, the implicit data model of what will become the next version of the curriculum is changing rapidly.
For example, it's very likely that courses will no longer be the smallest unit of organization in the curriculum. Subjects like Core Programming might either contain a more narrative-like description of what the student should learn, with links to various resources that can be used (text, video, etc.), or it might have very lightweight structure as you can see in the proposal for Foundations: #531. I generally prefer more structure over less, but there will be more narrative in v9 for sure. There might also be subordinate subjects, like different subjects under Core Math.
A data model that permits the app to be totally neutral about how we organize the curriculum might be an arbitrary arity tree where the leaves are the content nodes and everything else is some kind of section, as shown below excluding the leaves:
digraph ossu {
"Open Source Society University" -> "Computer Science"
"Open Source Society University" -> "Bioinformatics"
"Open Source Society University" -> "Data Science"
"Computer Science" -> "Foundations"
"Computer Science" -> "Core CS"
"Computer Science" -> "Advanced CS"
"Computer Science" -> "Domains of CS"
"Foundations" -> "K-8 Math"
"Foundations" -> "High School Math"
"Foundations" -> "Single-variable Calculus"
"Foundations" -> "Multivariable Calculus"
"Foundations" -> "Probability"
"Foundations" -> "Physics"
"Foundations" -> "Electricity"
"Foundations" -> "Modern Technology"
"Core CS" -> "Core Programming"
"Core CS" -> "Core Math"
"Core CS" -> "Core Structures"
"Core CS" -> "Core Software Engineering"
"Core CS" -> "Core Computing Systems"
"Core CS" -> "Core Theory"
"Advanced CS" -> "Advanced Programming"
"Advanced CS" -> "Advanced Math"
"Advanced CS" -> "Advanced Structures"
"Advanced CS" -> "Advanced Software Engineering"
"Advanced CS" -> "Advanced Computing Systems"
"Advanced CS" -> "Advanced Theory"
"Domains of CS" -> "Machine Learning"
"Domains of CS" -> "Computer Graphics"
"Domains of CS" -> "Cryptography"
"Domains of CS" -> "Artificial Intelligence"
"Domains of CS" -> "Robotics"
"Domains of CS" -> "Frontend Development"
"Domains of CS" -> "Backend Development"
"Domains of CS" -> "Computer Vision"
"Domains of CS" -> "Natural Language Processing"
"Domains of CS" -> "Data Mining"
"Domains of CS" -> "Image Processing"
}
I used graph format so that you can paste it into Webgraphviz if you want to see it visualized, but a graph datastructure is not actually appropriate.
And here is an example of one leaf, this time using JSON5 format:
{
subject: "High School Math",
subjectDependencies: ["K-8 Math"],
subjectsUsedBy: ["Single-variable Calculus", "Physics", "Linear Algebra"],
topicsProvided: ["Algebra I", "Algebra II", "etc"], // or possibly more granular topics
notes: "",
resources: [
{
url: "https://www.khanacademy.org/math/math-1-2-3",
title: "Khan Academy High school math",
useCases: ["refresh", "practice", "learn"],
notes: "Choose the section appropriate to your level."
},
{
url: "https://www.edx.org/course/college-algebra-problem-solving-asux-mat117x",
title: "ASU College Algebra",
useCases: ["refresh", "practice"],
notes: "You can use this if you've learned algebra before and don't want to re-learn it from scratch, but but you still want a refresher before moving onto precalculus."
},
{
url: "https://www.edx.org/course/precalculus-asux-mat170x",
title: "ASU Precalculus",
useCases: ["refresh", "practice"],
notes: "Use this to review precalculus if you're struggling with calculus."
},
{
url: "https://www.reddit.com/r/learnmath/",
title: "/r/learnmath",
useCases: ["help"],
notes: "This is one of the best communities for getting help with math."
}
]
}
I like this idea. I pushed updates to ossu-dev.firebaseapp.com.
However it makes transitioning current students to new curriculum more difficult. May be instead of migrating existing data I can send an email to existing users warning them about coming curriculum changes and suggesting to save their progress elsewhere
Thanks @hanjiexi for moving the topic in #546 to an appropriate thread. Still, I'd like to discuss the idea of GitHub Pages that would mirror the OSSU CS repository. The advantages are that it always show the current status of the OSSU Curriculum, requires no maintenance and automatically updates whenever changes are committed to the repository.
And I don't see how it contradicts to having a firebaseapp, which is occasionally updated on major changes in the Curriculum with the main purpose of providing a tool for progress tracking. Though, as I mentioned in #546, many students prefer tracking progress in a public repository or Trello board, which can be customized to include related personal extra-curriculum activities.
Today there was another conversation in the Gitter where students were trying to determine if they should follow the curriculum on the Firebase app.
An issue from January about the app was closed with the message "the Firebase app isn't actually valid". The code is still part of the OSSU organization and has it's own backlog of unaddressed issues. (This is the same error that a student came to the gitter to ask about today.)
Should this code and app remain if we aren't maintaining it?
It's been an issue for so long, it really should just go.
Can you guys tell me how the firebase app tracks the progress? The course taker flags each chapter on own will? Or, its been tracked somehow automatically?
BTW, I'm interested in keeping that firebase app alive. People (including me) are getting confused. I'm not a pro by any means. But, why stick to firebase? I'm thinking about getting free quota in Google Cloud & re-create the app (using Python & Flask maybe). Firebase is like ... reducing portability. I'm ready to maintain the app. I hope I can.
I'd say remove the app until an alternative is ready
Reminder to y'all that there is already a Trello Board as an alternative
Can someone send me screenshots or better (live demo) to understand the app. So, I can recreate in a more general way. (w/o firebase.) We'll use GCP's free tier. It will be more flexible.
@SergeyKhval 10 months ago you wrote,
I think simply putting down the app is not an option. There are still a lot of daily visits and I need to at least set the message for all those people to redirect to this repository... I can set a deadline e.g. for a week and deploy updated app, otherwise I'll take it down. If everyone still thinks that this webapp is more confusing then helpful I can take it down within 48 hours I guess.
Today another student filed an issue in this repository about the Firebase app, pointing out error messages. In addition, the curriculum has not been updated in years, despite the fact that OSSU has changed courses, added assessments, etc.
Over 1/3 of the links on the Firebase app are broken.
I appreciate the effort that went into creating the app. But at this point the main effect of the app is to confuse students. They cannot track progress and the app directs them to the wrong courses. Can you pull down the app until it is in a working state and reflects the current OSSU curriculum?
It has been nearly 2 years since this issue was opened. In the intervening time 3 other issues have been opened regarding the Firebase app. The last commit to the app's repo was 3 years ago.
I have added a note that the app is unmaintained and deprecated. I included a link to the FAQ, which has a little more information.
Every few months, someone messages in the Gitter to ask if the Firebaseapp is the correct version of the curriculum to follow. The curriculum there has not been updated in years, even as the curriculum here has undergone multiple revisions. Can we reach out to the person maintaining the project to ask them to update it or take it down. If they are not responsive, can we put a note in the README that this version is more up to date than what's found elsewhere?