Comments (6)
I agree that Kaggle supports some out-of-the-box features which otherwise would be tedious to implement. Ability to fork individual notebooks and support for graders/peer-reviews are some of the really cool features. I believe we should look more into it to see how many of these unanswered questions can be addressed. It is definitely worth exploring :)
from aima-exercises.
@norvig I think Kaggle is very great choice. and here is my little suggestions:
Do we create/edit exercises individually, or a notebook at a time?
Adding exercises per chapter will be more convenient. (i.e for notebooks we generated, each will be in a separate kernel)
What is the process for curating new suggested exercises?
Adding or receiving a new pull request with new exercise in aima-exercises repo, we must also update it’s corresponding kernel in Kaggle, that’s why I suggested that each file will be in a separate kernel, to easy maintain.
What is the mechanism for a canonical, permanent symbol name for an exercise?
This really depends on how we want to organize it:
- by difficulty
- by it's appearance order in it's chapter
- addition order
- randomly
The last two options will be very easy to maintain, (Just incrementing the exercise number), also we must not contradict with the naming in the book.
Can other hosts besides Kaggle also participate if they want to? If so, what is the process for keeping them in sync?
If I understood this point well, I think syncing will be using Github repo as well, updating one notebook in the repo, we must update it's corresponding kernel in Kaggle.
Summary: I think we should use both Jekyll and Kaggle.
Jekyll with Github pages; for making it open source repo that contains all the exercises in .md and .ipynb format, and receives pull requests for other new exercises created by professors or by others, or any other type of open contribution.
Kaggle; for the discussion forums, forking the exercises to add answers that will be graded or executed, plus other features you mentioned.
Looking forward for other suggestions as well.
from aima-exercises.
I agree with @Nalinc and @yakout here. I had a similar Idea about the project. We need a standard GitHub page (backed up with Jekyll or by any other means which supports MathJax) to display the exercises. The students who just want to see the exercises can refer to this page.
Whereas for the students who want to get involved by creating new exercises, ranking exercises or projecting their views about any misconception regarding a question, we need to host a community. For this kaggle may be perfect. Then all the newly added exercises will come in as a Pull request and can be viewed in the standard page we maintain.
Again we need to keep a look for any issues that might occur in the future. Also, the limitations of hosting a community in kaggle must not affect our progress in implementing new ideas in the coming years. If we think so, We need to develop a community from scratch( which I initially considered as the goal). I personally think that kaggle is pretty much flexible. If I'm missing something here, I kindly request everyone to let me know.
from aima-exercises.
Do we create/edit exercises individually, or a notebook at a time?
Adding exercises per chapter will be more convenient. (i.e for notebooks we generated, each will be in a separate kernel)
I agree that adding exercises per chapter will be more convenient. That's because we already have Jupyter notebooks and they can directly be imported to Kaggle. However, this is only convenient from an instructor's point of view, or for situations where instructors give assignments to the class. From a student's perspective, this essentially means that they will only be able to have discussions on kernel level. This could be a blocking factor because students most often find only certain questions in a chapter more challenging than others and want to discuss possible approaches only for those questions. Instructors might as well prefer addressing each question individually and provide solutions to only certain questions.
What is the process for curating new suggested exercises?
Adding or receiving a new pull request with new exercise in aima-exercises repo, we must also update it’s corresponding kernel in Kaggle, that’s why I suggested that each file will be in a separate kernel, to easy maintain.
This basically means that one has to first fork the aima-exercises repo on Github, and once changes are merged, both(pull requester and merger) would have to sync their corresponding kernel in Kaggle (assuming the pull-requester has also forked the Kernel on Kaggle). Even if the exercises are divided on kernel level, the process is tedious because there's manual syncing involved on multiple ends.
To summarize, though Kaggle is good to host assignments and review and grade them, I don't think it is really promising as a discussion forum. Long comment threads on kernel level would not only be less attractive for students, but also difficult to track.
from aima-exercises.
I agree with everything above . But I have a question , that why can't we use a full website with database integration ?
from aima-exercises.
I think Kaggle and notebooks combined will be a good option.
from aima-exercises.
Related Issues (20)
- Request to get Community solution for Exercise 'ex_5' in '2-Intelligent-Agent'
- Request to get Community solution for Exercise 'ex_1' in '1-Introduction'
- Request to get Community solution for Exercise 'ex_1' in '1-Introduction'
- Request to get Community solution for Exercise 'ex_2' in '24-Perception'
- Request to get Community solution for Exercise 'ex_1' in '8-First-Order-Logic'
- Request to get Community solution for Exercise 'ex_4' in '7-Logical-Agents'
- Request to get Community solution for Exercise 'ex_17' in '14-Probabilistic-Reasoning'
- Request to get Community solution for Exercise 'ex_17' in '14-Probabilistic-Reasoning'
- Request to get Community solution for Exercise 'ex_4' in '10-Classical-Planning'
- Request to get Community solution for Exercise 'ex_2' in '14-Probabilistic-Reasoning'
- Request to get solution for Exercise 'ex_7' in '6-Constraint-Satisfaction-Problems'
- Request to get Community solution for Exercise 'ex_2' in '2-Intelligent-Agent'
- Request to get solution for Exercise 'ex_1' in '13-Quantifying-Uncertainity'
- Request to get solution for Exercise 'ex_1' in '13-Quantifying-Uncertainity'
- Request to get Community solution for Exercise 'ex_7' in '1-Introduction'
- Title: Incorrect or Malformed Staticman Identifier in README
- Issue Title: Request for Feature Enhancements
- Request to get solution for Exercise 'ex_26' in '3-Solving-Problems-By-Searching'
- Request to get Community solution for Exercise 'ex_1' in '3-Solving-Problems-By-Searching'
- Request to get solution for Exercise 'ex_8' in '8-First-Order-Logic'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aima-exercises.