Replies: 9 comments 9 replies
-
Thanks for writing this up @goran1010! I think theres value in this idea! would you mind linking the original Discord conversation too?
I think this part could be a potential bottleneck. Finding and curating good submissions would likely be the most time-consuming part of the process — and with the limited number of maintainers we have, I don’t think it would scale well. I’d also be hesitant to add another ongoing responsibility to our workload. But maybe there is a different approach we could take? heres just a few ideas: Maintainer written solutions
Tagging system on submissions
Flag solutions as good
We actually added a sorting feature on the submissions page for this exact reason — learners can sort by “Newest” or “Most Liked”. The idea was that “Newest” would show submissions from people going through the curriculum around the same time as you, and those shouldn't include advanced/unfamilar tools or concepts. Did you get a chance to try using the Newest sort option? Thanks again! 🙌 |
Beta Was this translation helpful? Give feedback.
-
Hi @KevinMulhern, thanks for the response! Here’s the link to the original Discord conversation.
I absolutely agree with this idea, it actually solves a few other potential issues like you pointed out:
Funnily enough, the reason I initially proposed that maintainers select learner submissions rather than write their own was because I assumed that would be the faster and more convenient option.
This seems like a good approach too, though I wonder how much overlap there might be with the existing Most Liked section?
I did, and it definitely helps in terms of showing submissions that stick to concepts covered up to that point in the curriculum. However, having a separate featured section would still provide more clarity for learners who want to be sure they’re looking at appropriate examples. |
Beta Was this translation helpful? Give feedback.
-
One thing to note is maintainability if/when project specs change for whatever reason. While it does rely on the team maintaining them accordingly, team-written solutions would be better in this regard than potentially having to sift through and orphan chunks of old submissions. Adding to team-written solutions, I'd imagine providing only one example solution per project would potentially lead many users to interpret them as "best practice"/"correct" solutions. It's already very prevalent in the CSS and JS exercises, and I'd presume also the Ruby exercises repo stuff. Many learners come to share their disheartenment that they did things differently to the provided example, despite plenty of curriculum notice about them being examples and not "you should've written this" answers. |
Beta Was this translation helpful? Give feedback.
-
I have created a discussion along with my thoughts on this subject, I wholeheartedly believe we need a curated list for the solution page. EDIT: Earlier in the discussion, the focus was focused on whether these are indeed AI-generated contents, and it is clear that while there are obvious tell tale signs to it (complete solution in a single commit, multiple complete solutions on the same day from the same user, AI generated readme and code comments), it is not a hard proof that these contents are indeed AI generated unless we take time to investigate each cases. That being said, should the issue be ignored? Our discussion was shifted to the general quality of the community solutions page, where I expressed concerned on the potential downward spiral if we allowed copy and paste or AI projects to spam the community solutions page, and if left unchecked, this may result learners getting the wrong impression on the expectation of the given project. Carlos mentioned that a curated list of project could potential address this issue and suggested that we can start a discussion here on the project repo. Below are my proposed change in fullHello, I would like to make a proposal to change how the community solutions (project submissions page) present solutions to fellow learners.This is a follow-up to a discussion I had on discord. The issueWhen I visit the community solutions pages across various key projects, I have noticed that, increasingly, there are solutions that are potentially created mostly or completely with the help of AI. I have noticed the following patterns: giant single commits, AI-like sentences within readme files and code comments, and unprofessional wording within commit messages such as 'vibe code the rest of the project…'. Whilst it is true that none of these can definitively pinpoint that these learners are in fact using AI-generated content, it is self-evident that these patterns showcase unprofessionalism and appear amusing in some cases, and that this is polluting the community solutions pool. I am happy to provide examples I suspect on request (either privately or openly, subject to mods' approval). I also want to point out that whilst it can be helpful to allow 'bad examples' to be seen by others, allowing too many poor solutions or not pointing out that these are indeed bad submissions may confuse other learners during their learning. Over time, I fear it will decrease the quality of the site. Proposed changeI wish to see a list of community solutions that are curated and where all featured solutions are valid and have followed the no-AI requirements set out by TOP. Each solution need not share the same approach and doesn't need to be perfect, but it should give fellow learners a good point of reference to validate their work. One good example here is that when looking at an exercise created by TOP, it is comforting to know that the provided solution is verified by staff. I believe such a change will not alter the role of the page, but it will counter the use of AI as well as bad actors who fork a project and post it as community solutions. Possible solutionWe could potentially set up a focus group consisting of staff, contributors, and past students either here on GitHub or Discord, where we can vote on project entries. Essentially, a semi-private layer would be built between vetted and unvetted projects so that learners don't have to comb through dozens of solutions to find one that is worth checking out. I also recognise that curating a collection is a time-consuming task, hence we can start with a small list and grow from there. For instance, we could create a list of featured projects that consist of 5 projects that were created at any time in the past and 5 that are recent. For the voting itself, we can start off simply with a tick ✅ and short feedback (even one sentence is fine) from members within the focus group. Once enough votes are added to a given project (let's say 9 from past students and 1 from a mod), it will be viewable in the public solution list. I want to clarify that the goal here is not to present only the best solutions but rather any valid project. Thank you for reading my proposal and please feel free to share your thoughts. TOP is genuinely a great place to learn. |
Beta Was this translation helpful? Give feedback.
-
Thanks @AncientNimbus — I think combatting AI-generated solutions is another great reason for doing this. Would you mind editing your comment to include a brief summary of that discussion? It’s best to keep all conversation about this feature centralised in this issue rather than scattered across separate threads. |
Beta Was this translation helpful? Give feedback.
-
That’s a good point — learners might interpret "good” differently from what we’re actually hoping to highlight.
Thanks answering this @goran1010 — that makes a lot of sense. A featured section like this wouldn’t be too different from the way we surface example solutions in the exercise repos.
Thanks for sharing your thoughts @MaoShizhong — that’s a really valid point, and definitely something we’ll need to account for.
I think you're right, that could be a challenge. We might need to take a hybrid approach — mixing maintainer-written solutions with a curated selection of learner submissions. What put me off the idea initially was the fairness aspect — reviewing all submissions just isn’t practical, especially with the thousands we have in the Foundations projects. But if we set expectations that we’re simply selecting the first X strong-looking solutions we come across, that feels much more workable. I’ll run this by the team and get back to you all. Ultimately, it will depend on what most of us feel comfortable maintaining over the long term. |
Beta Was this translation helpful? Give feedback.
-
Thanks @KevinMulhern for the ping, I have updated the comment with a summary of the discussion I had on Discord. I hope this provide a bit more context in additional to my proposed change. Feel free to quote my original post if you have any questions. |
Beta Was this translation helpful? Give feedback.
-
Hey all — I talked to the team about this, and everyone agrees the overall idea is solid and worth pursuing. There are some concerns around maintainability, especially when project specs change, but nothing that seems insurmountable. What this really needs now is someone on the team with the bandwidth to take it on and see it through. Since it’s not quite ready to move forward yet, I’ve moved it to a discussion. |
Beta Was this translation helpful? Give feedback.
-
@goran1010 @KevinMulhern i just recently faced this issue im still a beginner and was working on my rock paper scissors project 2nd part that is the one with DOM manipulation soo all that was needed was 3 buttons and a score no styling nothing and i checked community solutions and the first one i came across was this very beautiful webpage with pretty css and very complex designing and i freaked out then later i reached out to discord and sought solace there and found it was probably done by someone who was revisiting their project after completing further part of their course. My simple solution to this make a github repo managed by the TOP where each project has a template solution for that particular project only using the lessons taught until that project and also make sure that only the basic project that is completed using the requires lessons and nothing more. This template project repo can be made by TOP mods (if u want i can contribute for this and can get a experience of open source work). And then once the solution repo has been made the required changes can be made to the TOP website first showing the required project then showing the community solutions |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Checks
Feature Request: brief description of feature request
format, e.g.Feature Request: Add a dark mode to the website
Description of the Feature Request
Following a brief discussion on Discord, I'd like to propose a feature that would improve the student experience when exploring submissions done by other learners.
The idea is that these featured submissions should:
Acceptance criteria
Additional Comments
When going through the curriculum, I would look at other students' submissions to compare with my own and learn other possible approaches. I quickly stopped doing so, because many of the popular solutions were from learners who had revisited the projects after advancing further in the curriculum.
As a result, their code often included unfamiliar concepts or tools not yet covered in the course, making it confusing and not helpful to the learning process.
Beta Was this translation helpful? Give feedback.
All reactions