Code Monkey home page Code Monkey logo

exercism's Introduction

For support, please post in the new Exercism forum. New posts here will be closed.


Welcome to Exercism

Where to open issues

For the time being we are triaging all issues from our forum. Please start a new topic there for your issue (presuming there isn't one already). Issues opened here will be automatically closed and you will receive a message redirecting you to the forum.

Feeling uncomfortable?

If you need to report a code of conduct violation, please email us at [email protected] and include [CoC] in the subject line. We will follow up with you as a priority.

Where to find the code

The code for the website lives in exercism/website. The code for the old website is in this repository, in the v1.exercism.io branch.

Who's behind Exercism?

Read about our Team on the site: https://exercism.org/team

exercism's People

Contributors

aleksandrilyin avatar cohen-carlisle avatar erikschierboom avatar exercism-bot avatar freginold avatar ihid avatar isaacg avatar kytrinyx avatar patrickmcsweeny avatar saschamann avatar sethfalco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

exercism's Issues

CLI Feedback

I feel a little removed from what's going on during the submission process. A boilerplate message "received, will update the site in a moment" would be nice. I ended up submitting an assignment twice because it wasn't super apparent how a new submission differed from an update.

Create example.rb nomination process

See #7 for discussion.

Rather than go through the code ourselves, create a process where nitpickers can nominate a snippet of code as the defacto answer to a code problem. Or perhaps as just one excellent answer to the problem.

This may be outside of the MVP and it may be easier to just do it manually for now so I'm leaving #7 open as well.

Separate out submissions with arguments on the nits

Make it easy to see where you need to jump into a discussion.

I don't know if this should be only discussions on nits that you made or any nits.

For admins, maybe all discussions are interesting/important, whereas for participants it's just their own.

I don't want to encourage pile-on discussions.

Rote Learning

This is how I approach learning very new things:

https://github.com/theotherzach/ruby-crash

I try to memorize exact steps and reproduce them in order to capture some micro-lessons. I think it's a different, complimentary approach to solving puzzles and I wonder if there is room for something like this in Exercism.

Expose the next assignment via the API

Right now people end up waiting a bit for feedback, and they're itching to get started on the next problem.

We could expose the next assignment in the trail (exercism sneak-peak?) and they could work on it but not submit it until the previous one is completed.

Heck. We could even let them download the entire trail and just allow them to submit one at a time.

Regex Path

It would be really good to have a full-on step-by-step set of exercises for regexes.

Welcome Party Kick-Off Thread

I just wanted to kick this thing off by saying:

Thank you so much to everyone who has shown interest in this project and contributed ideas and time and code so far, and showing the willingness to contribute ideas and time and code in the future.

I intend to make this open source, but I want to have some idea of where it's going first. Right now the direction is a bit like "whatever we can think of that seems useful". Everything is a collection of hacks (a lot of it is tested, but I think the design pattern / architecture we've got going here is called "Mayhem" right now). So I figure in a few months or so we'll have an idea of how this is used and how we can structure things and how we can guide the project in a useful direction.

I'm adding anyone who shows any interest as collaborators on the project. Please feel free to create branches on the main repo, experiment, don't worry about picking up issues unless you feel like it's interesting or fun or whatever. If you have an idea, go for it!

Special thanks to @burtlo who has taken my complete butt-ugly prototype and added some color and usability to it. Thank you, also, to @vosechu who helped combine a number of warmups into single coherent exercises. Thank you to @theotherzach for experimenting with notifications, and for refactoring and improving things, and to @lalalainexd for exposing data to make the command-line client more usable. @theotherzach and @JoshCheek have been generous with their time and paired with me on it. @seeflanigan, @rubysolo, @vosechu, @JoshCheek and @burtlo have contributed warmup exercises, both originals and translations into other languages (clojure, javascript, elixir).

I've been having a ton of fun, I'm so excited that other people are excited about this, and I just wanted to say thanks and welcome.

Get gravatar url from Github rather than looking it up

Some users don't expose their email address in their github profile, and we end up with the gravatar for "".

Github kindly exposes the gravatar url for each user (avatar_url) in the data that comes in. We can use that instead.

Sequencing of assignments

I'm unsure of how best to decide the order for the assignments. With the current group of gSchool students, we've been making up warmups as we go, and sometimes we give them something that turns out to be difficult, which we then later break down into multiple assignments.

Any ideas on how to get feedback on the order that we have, or how to best determine what order assignments should be in?

Javascript assignments (+coffeescript)

We have a handful of javascript assignments, but it's a bit of a hodge-podge. It would be helpful to know which order we want to have them in (see #5) so that we can prioritise.

This is one task that I definitely need help with. I think Franklin and Cory around here are open to helping out with that. Would any of your advanced students be interested in this sort of thing, @vosechu?

Allow approval to include a comment

I have run into a few cases where I am approving a submission, and want to comment on some choices they've made.

Let's make it so that the comment box in the nitpick page has two buttons:

  1. comment & approve
  2. nitpick

Tell user to upgrade gem if using an old version

The exercism gem uses a custom user-agent header, exercism-CLI-v0.0.11 (or whatever the version happens to be). This has been the case since the earliest releases, so we could detect that someone is using an outdated version of the gem and tell them to install the newest version.

Refactor existing examples

Right now most of the example files example.rb are just whatever solution first popped into mind. It would be nice to refactor these so that they are actually good solutions.

Add notifications

  • you have nitpicks (not approved yet)
  • it's been approved. See the example, and fetch the next assignment.

Rename assignment test file

Go does not recognize test.go as being a test. The file needs to be named something_test.go.

Apparently we can name files things like word-count_test.go and it doesn't blow up. So for the moment I'm suggesting that we use the slug as a prefix for the test file name.

Command-line nits?

Would it be interesting to have an exercism nits ruby command to get the current nits just outputted to your terminal?

What should happen when you get to the end of a language trail?

Right now it just breaks. That's not very nice.

What should the experience for the user be?

What should happen if we make new assignments available after you've finished a trail?
What should happen if we make new assignments available earlier in the trail than where you are currently at?

Add presenter for the submissions views

The nitpick, current submission and completed submission views are complex and have many similarities. Let's see if we can improve this when we know a bit more about what the UX is going to be.

Admin Page: Redesign

I want to update each of the current admin page entries needing review and you can't stop me.

Change it from this per entry:

screen shot 2013-06-22 at 6 08 43 pm

To be something like this:

nitpick

Ditch MongoDB? Use PostgreSQL?

I originally thought this would be a very document-oriented system, but it's turning out to be ridiculously relational.

I don't think MongoDB is a good choice for this anymore.

Difficulty Ratings & Self-Assessment

We talked a bit about possible ways of assessing difficulty of the assignments (presumably in order to sequence them better) in this issue.

Here's a comment from @seeflanigan on the same topic

Also I wonder if there's a way to crowdsource difficulty ratings, and for a
user to correlate a self-assessment of skill level with their rating, ie.
I am a [grasshopper, novice, intermediate, advanced, one with the
shellcode] and found XYZ exercise [adorable, a cakewalk, average, daunting,
ARE YOU INSANE?].

Thoughts?

Expose submission history for assignment

Several students have asked about seeing the history of submissions and nits/discussion for an assignment.

We have the data, it's just a matter of exposing links to the older submissions.

In particular, once a submission has passed, it might be interesting to show the first + last (before/after) to highlight how much they improved. That is to say, if they submitted more than once on the assignment.

Run tests on submitted code

Would it be possible to display the results of the tests in the nitpick screen? This might also encourage people to do their tests correctly.

Write a tutorial about paths on *nix systems

The whole default path vs absolute path vs relative path is screwing people up pretty badly. They don't understand the default *nix behavior, and we need to help them understand it. Maybe there should be a tour page that tells about all these things in detail.

Nits with codefences do not properly format

Example Nit Input

The secondWord is the input and you split it each time in the match function. I think you only need to do it once.

wordSplitter is not the best name in my mind as it seems as though it is splitting words but really what it is doing is getting an sorted character array.

Also shorten it up a bit.

var wordSplitter = function(word){ 
  return word.split("").sort().join();
};

Favoriting students

Could we add a feature to favorite particular students so we see them float to the top? Thinking about my students (and I'm sure you have the same thing) but I'm also wondering if this goes against any philosophies; maybe we want everyone who's qualified to nitpick everyone else?

Explain how to nitpick after first assignment is approved

Explain that nitpicking is nudging in the direction they're already taking.

Look at examples as just that -- examples. They may be exemplary, but other people's code doesn't have to look like it to be approved.

Here are a number of typical things that we might nitpick.

Running list of dev setup tasks

I know it's hard to remember all the dev setup tasks after you've done them so I'm documenting the problems I run into as I go and as I figure them out:

  • Getting mongoid running √
  • How to set ENV vars to use ENV.fetch. Where to put these when we don't have config/initializers √
  • Getting API key for Github √
  • Seed data for default admin user to activate 'Be Admin' button.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.