Over the summer, I’ve been working on a project that I think you all will like. I created an online learning platform called iKODAT.com to help students learn how to code. It’s still in the early stages, and I could really use your feedback since you all are so knowledgeable in the area I’m trying to expand. Our programming team in 612 uses the tool a lot to collaborate and complete coding challenges together. The challenges once you get to higher ranks like Team Lead or Senior Developer, will get very challenging, and has worked to engage our programming team through the pandemic.
iKODAT is a rank-based educational, corporate simulation platform designed to teach students programming and problem-solving skills. Users compete and rise up a simulated corporate ladder of ranks in a gamified social network environment. Starting as an Intern, users can progress all the way to CEO by completing engaging challenges. The ranks are linked to a progression of programming skills and lessons. iKODAT is a perfect balance between the educational aspects of Khan Academy and the social environment of Scratch. https://www.iKODAT.com
Thank you! Please let me know what you all think, and if you have any questions/suggestions.
I have a good chunk of feedback for you. Some context: I’m of the belief that bootcamp-style introductions to programming have one usage and one usage alone: Getting folks comfortable with the syntax of a particular programming languages. I’ve yet to see one which helps with the design process or engineering thought processes that are critical to actually writing good software, or writing software against requirements that weren’t written by a software engineer.
My overall feedback: “Learning to code” is too broad a topic to be a concrete outcome for someone who completes the website activities. Though you can use it as part of your advertising (because it does get non-software people to look into it), I’d recommend having a much more precisely defined set of pedagogical outcomes, and build up content around those. It’ll help inform the exact sorts of explanations and exercises you give, as well as the sequence of information you push onto your users.
Gamification is definitely a great idea. I like the idea of attaching achievement to help keep people involved and engaged, especially through some of the initial slog. Incrimental Games like Cookie Clicker might be a useful reference for the model of keeping folks engaged.
The remainder of my advice varies from overly-specific observations to nit-picks. Keep in mind I created all of this with the “I don’t like bootcamps grrrrr” attitude, I’m probably not your target audience.
Still, good job overall - I see a lot of potential for a very interactive environment like this to help folks quickly ramp up!
When I created an account, I attempted to link it with my google account (assuming this would prevent me from needing separate authentication). Instead, it just used my email address, and apparently made me still enter a password manually?
A password of “1111” got a response of simply “Invalid Password”. A password of “11111111” was accepted. I’d highly recommend that you enforce stronger passwords , and display the requirements at creation time.
Character creation was cool
The intro was very long and extended. I’d prefer to get information when I need it, rather than all at once when I first log in.
Hmmm… “Fundamental and basic” is a weirdly vague and loaded way to describe this, IMO. There is one heck of a lot of complexity in how a C code printf statement actually ends up in the consol. You might want to instead talk about how all programs have Input, Processing, and Output. Printing to console is one form of output.
I tried doing something evil:
and it did not do anything bad. This is good!
This statement, though not incorrect, is imprecise:
In general, there aren’t any checks I’m seeing to verify that certain things are being done in the code… which means that if I was struggling, I might find a way to offboard the calculation and just submit the answer:
Not saying this is something to fix now. But, if you’re looking to create a truly guided experience, you may need to incorporate some guidance that shows where mistakes are, and confirms that users are indeed arriving at the solution you intended them to.
It would be good if the “Submit” button did not appear until after valid output had been achieved.
A lot of the lessons seem to state a task without describing the tools that need to be used to solve it properly. For example, the lesson where for loops are introduced doesn’t mention for anywhere in the description. The user needs to click the link (which, if you didn’t know what a for loop was, why would you think it’s related?) Also, ctrl-c + ctrl-v, along with line numbers, makes quick work of the activity without needing to:
Honestly, amazing feedback and thank you for taking the time to check it out. I 100% am an anti bootcamp guy myself. The only way to learn how to code is to practice. And I tried to pivot the curriculum more to solving problems rather than learning specific nuances of a certain language. So I agree “learn to code” is really the whole marketing of it when in reality I feel this tool is good practice as a supplement to computer science students not an all in one solution. And for the gaming the entire ide by hard inputting solutions, currently I’m working on adding code quality checking, such as line length and formatting that will affect “merit increase” of the challenge. Putting print(“Hello!”) 254 times is a solution, a bad one, but I hope adding more incentives to good quality code will stir people into the right direction. Also, some of the higher ranks such as senior developer have some pretty difficult challenges with functions that are hard to bypass with direct inputs. Once again, thank you for checking it out. I hope it was fun, and I will definitely apply your feedback!
The merit increases are applied when you have a promotion, I believe. I guess that should be confirmed.
That is pretty good advice. I didn’t think of that. One can’t submit their answer until the output is valid, but it would clear up some confusion if there was a “Run and check” button, and then if the output was valid there’d be a submit button.
Thank you so much for trying out iKODAT! I’m glad you’re enjoying it as much as I did as a beta tester . I do agree with a lot of your feedback
Feel free to try out some community challenges. I made a few challenges (though all but the PrOfFeSsIoNaL oNe have something that I need to fix). Also feel free to make your own! The ability to edit your challenges hasn’t been rolled out yet, but it’s coming soon.
Currently, if you’d like to do a speed run of sorts to get to the top of the leaderboard, feel free to do that as well.