Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What I Did And Didn't Do in GSoC 2017 #632

Open
antmarakis opened this issue Aug 24, 2017 · 23 comments
Open

What I Did And Didn't Do in GSoC 2017 #632

antmarakis opened this issue Aug 24, 2017 · 23 comments

Comments

@antmarakis
Copy link
Collaborator

What I Did (in short):

  • Worked on the notebooks, mainly on Natural Language Processing, Learning and Knowledge. This work includes adding sections for new algorithms explaining how they work and giving examples, new visualizations and clean-up in old ones, fixing grammar/stylistic/formatting mistakes and adding more information on older sections.

  • Implemented algorithms and utilities in the aforementioned modules.

Click to view my commits

What I Didn't Do (but wish that I had):

  • A big issue with the notebooks and visualizations is that visualization code is usually ugly and unrelated to the contents of the notebook. For that reason, we added a new file, notebook.py, to put all the unrelated (not just the visualizations) code in. Initially I wanted to transfer all such code to the new file, but unfortunately I got sidetracked and didn't have time for it.

  • Towards the end of the program we came up with the idea of notebooks for applications, where we would showcase basic applications for the concepts in a module. Unfortunately there was not much time to flesh them out and they are lacking at the time of writing this.

  • When writing the notebooks, I should have spent more time and gone in greater detail on the "Implementation" sections. Currently I mostly glossed over them, assuming that most could follow the code easily, but of course that is not always the case. I should have specified the purpose of some select individual lines of code, so that students can more easily get a grip on what the source does without having much Python knowledge.

@norvig
Copy link
Collaborator

norvig commented Aug 25, 2017

Good write-up, thanks.

@apb7
Copy link
Contributor

apb7 commented Nov 11, 2017

Hello @MrDupin and @norvig, to improve the visualizations for the games.py, along with the existing the existing Canvas, we can also use some Python GUI framework like Tkinter. We will implement the algorithms as given in games.py and then provide a demonstration of the respective game with the help of Tkinter.
I would surely love to work on this aspect!

@antmarakis
Copy link
Collaborator Author

@apb7: Do you mean to use Tkinter alongside the notebooks, or in the notebooks?

Seems like a great idea, I would love to hear more.

@apb7
Copy link
Contributor

apb7 commented Nov 12, 2017

@MrDupin: I originally thought a separate Tkinter implementation alongside the notebooks. Later we can merge it in the notebooks.
For instance, in Tic-Tac-Toe there would be options like Vs Computer, Vs Player for the user. A proper 3×3 grid with buttons would be displayed where the user will click upon his turn.

@antmarakis
Copy link
Collaborator Author

Sounds interesting. I would like to see a demo of this, for some of the simpler visualizations.

Can you do it?

@apb7
Copy link
Contributor

apb7 commented Nov 12, 2017

I had worked on a Tic-Tac-Toe GUI a few weeks ago. It uses the minimax algorithm (might be a bit different from the code given in games.py) without alpha-beta pruning.
This is a simple version and can be later modified according to the algorithms of the book.

@antmarakis
Copy link
Collaborator Author

Can you convert it to Python 3.4? This is the version we are using for the repository right now.

@apb7
Copy link
Contributor

apb7 commented Nov 13, 2017

Yes. Tkinter support Python 3.4 as well. There won't be any problem @MrDupin.

@apb7
Copy link
Contributor

apb7 commented Nov 14, 2017

@MrDupin, @norvig and @Chipe1 : I am currently working on it and will be done with a basic version of the GUI, which incorporates the minimax algorithm of games.py, in a day.

@apb7
Copy link
Contributor

apb7 commented Nov 14, 2017

Hey @MrDupin, I have pushed the code to the forked repository. You can find it under the gui folder. The GUI now makes use of the algorithms of games.py and is compatible with Python 3.4.

@antmarakis
Copy link
Collaborator Author

Awesome, I will take a look during the weekend when I will have more time.

@Chipe1
Copy link
Contributor

Chipe1 commented Nov 18, 2017

@apb7 Looks good. The choice to change the AI at every step is nice. With the extra freedom that comes with using Tkinter instead of just notebook can we make the application more expressive? Like a tree which shows the thought process and decision tree of the AI.
@norvig What do you think about having Tkinter applications in the repo? I'm not sure if we can run it from within notebooks.

@apb7
Copy link
Contributor

apb7 commented Nov 18, 2017

@Chipe1 : Yes we can have a side panel which shows the thought process as well as the decision tree of the AI along with the gameplay. This will definitely look good!

@antmarakis
Copy link
Collaborator Author

Hey, that was really cool, I would love to see more tkinter on the project!

I opened an issue about this: #659.

@apb7
Copy link
Contributor

apb7 commented Nov 18, 2017

@MrDupin: Sure! I'll work out on other games as well.

@Dragneel7
Copy link
Contributor

Dragneel7 commented Dec 12, 2017

@MrDupin @Chipe1 Hi I am a machine learning enthusiast and want to learn and contribute in this organisation. Plus if possible I am also looking for gsoc2018, can you suggest me how to take up a new challenge here.

@antmarakis
Copy link
Collaborator Author

Hi @Dragneel7. I am glad you want to join the project! A great place to start looking for ideas is the contributing guide. Take a look and see what kind of work we are doing here, and if you have any further questions feel free to ask.

@the-ethan-hunt
Copy link

@MrDupin @Chipe1 Hello! I read about aimacode's idea list page specifically the possible documentation of packages like NLTK. I am an NLP enthusiast and a GSoC'18 aspirant. Any leads I need to follow to help with the idea? 😄

@antmarakis
Copy link
Collaborator Author

This is something I was also interested in, but it was decided that at least for the summer we would not be adding external libraries such as Tensorflow or NLTK. In the future though this will possibly change, so only @norvig can tell as when we can star adding these libraries.

@alpha721
Copy link

alpha721 commented Feb 16, 2018

@MrDupin @Chipe1 @norvig I am interested in contributing to aima-python as a gsoc 2018 aspirant. I have gone through the project ideas list and decided to contribute to "Project 1: Finish aima-python algorithms and add explanatory notebooks". I have set up the repository and gone through contributing guidelines.
I would be really thankful if you could provide any suggestions on how to get started.

@alpha721
Copy link

I have a few queries in general:
i) When is the right time to mail the mentors regarding the project?
ii)Should I just pick a few issues and get started on them, or is there any other procedure to follow?
iii) Are contributions to aima-python only criteria for application consideration or does other relevant work matter too?
I would really appreciate if you could give a perspective on how things work in general. Thanks a lot !

@antmarakis
Copy link
Collaborator Author

Hello @alpha721!

i) I am not sure, I am only a student. :)

ii) There are some contribution ideas on CONTRIBUTING, in particular the sections "New And Improved Algorithms" and "Jupyter Notebooks". You can also work on open issues that others aren't working on.

iii) As far as I know, relevant work matters as well, even though it is suggested you work on this repository at least a little bit, to get to know the ropes.

Generally speaking, there are two main veins of work here: a) Completing the algorithms (you can find a list of unimplemented algorithms on the README) and b) Writing Notebooks. It is in b) that most of the current work falls under. To see how to help in that department, you can take a look at the CONTRIBUTING link from above.

Hope this helped!

@alpha721
Copy link

Thanks a lot @MrDupin . I would keep things in mind :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants