aimacode/aima-javascript

Division of work

Ghost---Shadow opened this issue · 73 comments

If you are applying to Google Summer of Code, do not work on any issues. Read the wiki instead.

In 2016–2017 this issue tracked the list of chapters and their discussion pages. As of 2019 it is no longer being used.

Chapter Volunteers Discussion page
1
2 #77
3 #57
4 #58
5 #72
6 #88
7 #65
8
9
10
11
12
13
14
15 #59
16
17
18 #60
19 #68
20
21 #62
22 #103
23
24
25
kepta commented

Before that you souradeep let us please decide about the architecture, because I don't want you to be rolling back your efforts.

On Mar 20, 2016, at 2:53 PM, Souradeep Nanda notifications@github.com wrote:

To avoid wasting time, we should decide who should do what. Since @kepta and I are the only active members right now, I will pick the even chapters and @kepta can pick the odd chapters.

If more members join, we would do some kind of modulo n arithmetic and decide who should do what.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Hello guys, I haven't actively participated in the discussions yet although I'm interested to work on the planning chapter (for a start).

@kepta @Ghost---Shadow Alright let's do it this way. We all propose our structure with Point-by-Point Adv. & Disadv. Then we'll put it to a vote. Otherwise we're going to spend a lot of time discussing this.

@astyanax we're currently trying to decide upon the repo structure in order to avoid goof ups later. You too can contribute your perspective.
The goal is: for every algorithm in the book: we need to have 1 basic JS implementation (the core algorithm's code, which can be read, understood and run by any user), a script for running tests on that algorithm's implementation and an HTML document containing the visualization for that algorithm (D3 / Canvas, whichever you prefer - the user should see a visual representation that they can understand).

While talking about the structure, you need to keep the above goal in mind and also that the user of this repo must be provided with a clean interface.

I suggest that we uglify and compress all the scripts that are common to all pages (bootstrap, jQuery etc) as main.js

We will then have a folder for each chapter having code and its visualization. We may or may not uglify these scripts. Something like this. Let us keep the code and its corresponding visualization in the same js file. Some chapters like chapter 4 has 6-7 algorithms. Having one visualization js file would make it difficult to manage and debug.

The main index.html will function like a website homepage and the user can click on each chapter to see the code, visualization and a brief description to give a context.

I think Mr. @norvig will be happy with anything we unanimously decide upon.

GiriB commented

Hey guys! I was just going through the project and would like to contribute.
I agree with @Ghost---Shadow on having separate visualisation files and how he has proposed the structure to be. It would be helpful if the structure is finalised ( with few examples? @Ghost---Shadow 's implementation of Intelligent Agents is a good example ) so that people can start contributing.

I also had a doubt regarding following.

screen shot 2016-04-03 at 5 59 49 pm

Why is there a separate Chapter5 when we a folder for this already exists ? ( Everyone should be careful while merging requests.)

@Ghost---Shadow Your index.html shows this. Take a look it why is it so.

screen shot 2016-04-03 at 6 17 06 pm

' Part 1, Part 2 ...' is not required when you already have ' Part I , Part II ...' .

@GiriB I wrote the minimax algorithm in JS, created the directory "Chapter 5" and made a PR following my dir. structure. At the same time, @Ghost---Shadow and 2 others were making their PRs. This resulted in a blend of GS's directory structure and mine, hence the outlier: Chapter 5/minimax.

This structure conflict is the primary reason for the existence of this thread.

I dont think folder structure matters a lot. Since the production is highly parallelizable, we can refactor easily. Also, I would like to finish Chapter 4 since it is midway done.

@GiriB I screwed up during squashing. I will fix that on Sunday,

Hi guys,

I'm keen to contribute to this too - am happy to pick up Chapter 6 to start with.

GiriB commented

I have already started with Chapter-6. @KailashVohra can start with
something else. Also I have my exams going on now, I'll start back by next
week.

I'm keen to contribute to this too - am happy to pick up Chapter 6 to
start with.

Oh right - I've already sent a pull request for 6.1.1 Map Coloring...
On 19 May 2016 11:14 p.m., "Giri Gaurav Bhatnagar" notifications@github.com
wrote:

I have already started with Chapter-6. @KailashVohra can start with
something else. Also I have my exams going on now, I'll start back by next
week.

I'm keen to contribute to this too - am happy to pick up Chapter 6 to
start with.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#27 (comment)

Ah OK, you've reassigned chapters - I had started work on Chapter 13, I'll commit the progress to the same pull request, so both can be merged.

@umgupta if you think its useful you can build from that.

@Ghost---Shadow you may consider allowing people to request for chapters to work on that interest them. Progress may move faster that way.

Cheers!

@kaiesh Requesting chapters seems a good idea. Start placing your requests.

@Ghost---Shadow I'd started on 6 and 13, so I'd be interested to continue and complete those.

Hey Guys,
I read previous discussions and here are few of my suggestions :

  1. Build / testing process. Why do we use jspm & gulp when there are better options (read webpack). A google search for jspm Vs webpack will give enough arguments to convince you. But main features are hot loading & single command build. I can happily port whatever is there to webpack and write a guide for structuring project using webpack. (It takes care of uglifying/minifying and splitting the code at one place)
  2. What library we use for canvas/svg manipulation ? Or is it simply JS.
  3. Can someone please write how to implement a module (where each file should go ideally?)

@kaiesh What should I work on finally?

  1. Go ahead. I am still new to the MEAN stack. Most of this is mumbo jumbo to me.
  2. I am using two.js just because I heard about it before and it is super flexible. You might also like d3.js.
  3. We haven't officially decided it yet but I think this is a good way to do it.
  • The actual program will be in a whatever.js in each chapter
  • The visualization will be in c_whatever.js in the same folder
  • The index.html will include both these scripts. I am using AJAX in c_whatever.js to load whatever.js in the HTML page so that the user can refer it while watching the visualization.

Just pick a chapter of your choice or at random. I will add it to the list.

@Ghost---Shadow

  1. I will try to switch build process to webpack with whatever minimal changes I can.
  2. I will try to figure out a universal/flexible choice
  3. Sure, I like this way to precise to read and easy to follow.

I will need some time (till weekend) to actually put webpack things in a place. I will choose chapter (1 and 2), I dont know if 1 requires some work actually. But 2 might require some cleanup to work with other stack.

@kepta : Do you have any views about what to use and what not?

Hey, guys! I would like to work on chapter 3 "Solving-Problems-By-Searching".

Hi, I would love to take the chapters 22/23 (NLP). If no one else has started on them, I will.

Hello, may I sumarize that in working and haved implement to one file in repo for another want to contribute will see what not implemented yet.

hello guys, I would like to work on chapter 2 visualizations for searching algorithms .

@sourabh2k15 I think you meant chapter 3. Look at the contributions page. Chapter 2 is done as far as I know.

Ohh yes . I was mistaken. I meant to contribute to building visualizations for searching algorithms in chapter 3.

Hello guys!
I would like to contribute to this project. @norvig @Ghost---Shadow Could you please guide me through this.
I can use Node.js, Express.js, MEAN stack architecture. I am going through 'Introduction to AIMA' course in Udacity and AIMA(3rd addition).
And I would like to know whether this is acceptable to GSoC.
Thanks in advance!

@vamshi9 Anyone can contribute but for GSOC, make sure you fill the appropriate paperwork in GSOC's main website. Take a look at how far the project has been done and request what you would like to add into it.

The only reason for this thread is to make sure that people dont step on each other's toes.

Hello everyone!
I am interested to work on this project.
I have read the documentation and the folder structure seems super neat !
Could anyone please guide me on how to start ?
Thanks a lot!

You can see in Contribution file and finding that not implemented. Also you may asked the progress that on working. If you can work on it, comment to this issue.

I suggest to doing that not implemented yet or completed any chapter (maybe some algorithm missed).

@Ghost---Shadow I would like to know the progress on chapter 3 of aima-javascript. Will it be possible for me to help in those chapters? or should i target some other chapter? Could anyone please guide me on what should be the appropriate way to communicate with the mentors? Like an IRC channel maybe ? Also, Is aima participating in GSOC-2017 ?
Thanks in advance.

@Rishav159 By Chapter 3 I assume you mean Solving Problems By Searching. You can help by adding scripts or visualizations. However, I cannot help you with the remaining two questions.

@Ghost---Shadow Yes. I would like to work on Chapter 3 Solving Problems By Searching. Regarding the IRC channel, Can you inform whom should I contact and by what means should I contact? If we don't have the channel, we can start by creating a new one. As GSOC approaches, many participants will want to work on this project and it is an excellent opportunity to develop this project.

Hello people,
I'd like to contribute to this project too. I'm currently following this book for a module at my university and came across this.
@Ghost---Shadow I see that most of chapter 3 (Solving problems by Searching) is marked as "On Working" for months. Shall I join @Rishav159 in completing them?

Hello, @merovingienne I started working on chapter 3 a few days ago. There does not seem to be a mentor around here although the ideas list of AIMA specified the development of Javascript repository.

@Rishav159 hi, so do you intend to complete it on your own or would you like to share the work in chapter 3?

I see, so we can divide the work and complete according to what's already finished?

@merovingienne I intend to complete chapter 3 on my own. Yes, we can divide work and complete according to what's already finished.

@Rishav159 Noted, I'll start working on chapter 4 then. Great, thanks!

hello all,
I am highly interested in contributing to this project. I'm currently following this book for few topics in my university. I would like to work on the chapter 18 of the book i.e, "Learning-From-Examples" ( I also intend to continue implementing the complete section ). As this chapter is not assigned to any one, I assume that no one is working on it.

Thank you.

@Ghost---Shadow please add me for Chapter 15

Hey guys, I would like to contribute in Chapter 3 (visualizations).

I'm trying to determine who's actively working on visualizations and/or code. I've created a github issue for each of the chapters I believe is being worked on.

Are there any others who are actively working on a chapter? If so, let's create a github issue for discussions. There are plenty of chapters that no one is working on, so I'd encourage one or two of you working on chapter 3 to consider another chapter.

The primary focus of aima-javascript for gsoc-2017 will be the visualizations, and the code will be a secondary goal. We don't yet know which concepts and algorithms will work best with interactive/animated visualizations so there will be some experimentation and learning as we go.

Hi everyone, I want to work on chapter 21-Reinforcement-Learning.
I was wondering if there are any limitations on the JS libraries we can use to help with the visualizations (The completed chapters seem to be only depending on jQuery)?

@alireza-a We are kinda going for a static hosting so no server side stuff. Other than that knock yourself out. I think we are currently using jQuery, two.js and the js of bootstrap.

@alireza-a Great! We have been using two.js, and probably should continue to use it unless there's a visualization where it would make a huge difference. I created a page #62 for discussion of chapter 21

Hi everyone, this is Chi-Hsien. Short self-intro: graduate student from UIUC, working on visual analytics. I plan to start working on chapter 7 since it looks like no one has touched it before. Any suggestion would be appreciated!

@chihsienyen Great! I've opened #65 for discussion of chapter 7. We are using two.js for now, but when it gets closer to summer we can evaluate two.js vs d3.js vs other libraries and switch if there's a compelling reason.

@redblobgames Sure! I can focus on brainstorming what kind of interactive visualizations would be most effective for learning and also fun to play with. Once we have the concrete ideas later we can better decide which library is more suitable.

@chihsienyen The wumpus world diagram seems like the straightforward first step for this chapter. Even without an AI agent, you could build a diagram that waits for the player to select a move.

@redblobgames Yes! That will be my first step. I commented my thoughts in the #65 thread. Thanks.

Hi everyone, I am Olessia and I would like to start working on Chapter 19 - Knowledge-In-Learning as the starting point to GSoC programm.
A short intro: second year student of Igor Sikorsky Kyiv Polytechnic Institute, have passion about helping other people to realize that AI is not that hard to understand.

@MasterOfTheU great! I created issue #68 for discussion.

I read the above messages and got to know that @MasterOfTheU is working on chapter 19. I am also planning to focus on chapter 19, Knowledge in Learning and the 4 algorithms within that which are:
Current-Best-Learning
Version-Space-Learning
Minimal-Consistent-Determination
FOIL
I am pretty sure that I will be able to complete these 4 in the given time span in python and javascript and if time permits I will try to implement those in Scala and Java too. Currently I have implemented Decision Trees, Logistic Regression, Naive Bayes, Perceptron and pruning in decision trees while studying Machine Learning course.
So I understand the requirements for the algorithms and would like to work with the one who is eager to mentor me with this.

@jaydeepingle great! For aima-javascript there will be visualizations that do not have algorithms and some algorithms will not have visualizations, and algorithms may have to be written differently to support visualization, so the code will not be the same style as the python and java code. For GSoC, I am the mentor for the javascript visualizations; Peter Norvig will be the mentor for Python and someone else for Java (see the aima-java wiki pages), and there are no AIMA-GSoC projects this year for Scala or other languages. I recommend picking one language & many chapters for your proposal instead of one chapter & many languages.

Hi @redblobgames I read the above messages and went through some of the work that has been implemented. I am intending to focus on some of the chapters from the index.
Chapter 5 : Adversarial search
i. Minmax
ii. Alpha Beta pruning

Chapter 6:
i. min conflicts
ii. Tree CSP

Also there are some algorithms that can have visualizations in chapter 10:
i. Air-Cargo-problem
ii. Spare-Tire-Problem
iii. Three-Block-Tower
iv. Cake-Problem
I would like to have your thoughts on this chapter (10) and issue chapter 5 and 6 to work on.
Thanks :)

@ishapotnis1 Great! I created issue #72 for discussing chapter 5. It will be useful to focus on one chapter at a time. After you've done one you'll have many more ideas for other chapters.

@umgupta @kaiesh @laurit17 Are you still working on this project? If not I can remove those chapters from the list of current work. Thanks!

Hi @redblobgames I want to work on Chapter 3, A Star Search. Can you add me to the list of contributers?

@krishnatejasalimeda Ok, but it's a low priority, and @Rishav159 already has half of it implemented. If there's any other visualization you're interested in, work on that first, or if A* is the only thing you want to work on, be sure to read the existing ucs algorithm code and graph visualization code in that chapter.

Also I'm planning to implement A Star Search without any external libraries, just plain javascript and canvas. Will it be accepted?

@krishnatejasalimeda javascript and canvas is fine, but keep in mind that chapter 3 is already using two.js, and you won't be able to reuse the existing code if you are starting something different. We are not building visualizations of algorithms one at a time, but showing the concepts of how each algorithm compares with other algorithms in the same chapter. If you are building something inconsistent with the rest of the chapter then it's not as useful of a visualization. Look at what is already in chapter 3 before you start your visualization.

I'm removing @umgupta @kaiesh @laurit17 from the current work list.

Chapter 2 has an visualization of the vacuum cleaner algorithm; I'd like to work on a visualization of the concepts to go along with it (discussion in issue #77).

I'm removing deleted user @krishnatejasalimeda from chapter 3

Is there anything I can help you with? If you're not working on these anymore that's fine; I will clean up the list of who's working on what.

@redblobgames yes I am working on Ch 04, got occupied with college work. Please do feel free to assign anyone who's faster. Learning three.js on the go.

@ishapotnis1 @merovingienne Cool, great to hear it! Let me know if you need anything. I'm starting to work on some wiki pages that give some examples of different ways to organize code but I haven't gotten very far.

@merovingienne Ok, @Rishav159 is working on ch 4 now but if you are still working on it, let us know so that we can coordinate.

@preethi26 Are you still working on chapter 18? If so, please coordinate with @Rishav159

@ishapotnis1, @redblobgames
If either one of you is still active, would it be alright if I worked on ch 5?

@regalhotpocket Sure, go ahead. See issue #72 for a place to discuss ideas

Is there something I can start working on? I am relatively new so I would prefer one of the earlier chapters as passed to the later ones, but anything works.

@AnimeshSinha1309 There are many open issues organized by chapter. I would pick one and start there, but you should probably check to see if anyone is working on them to be safe.

Okay. Chapter 13. I wanna try implementing estimation of probabilities on a 4x4 grid.

Actually, the Wumpus world I want to implement starts in Chapter 7 with propositional logic. The grid structure will be the same and therefore I want to see if I can try Chapter 7 first. Someone has already taken chapter 7, but the work done on it is too primitive and I really want to add to it.

@regalhotpocket or anyone else, can you please tell me if it's OK to start working on Chapter 7 Wompus world, for the contributions and plans made to it were in the 2017 cycle?

I did begin to work on Chapter 7 and 13. I have implemented the full Wumpus World game. Is there anyone here who can check if my code works and if I should continue working on this project. I have filed a Pull Request #171.

I'd like to contribute some code I wrote to complete an independent study project
using this text. I created a visualization for the Workspace and Configuration
Space of a simple two degree of freedom robot arm (in a 2D space). It is based
off Figure 25.14 of the text.

I've hosted it on my own GitHub site for now;

https://github.com/jconallen/configuration-and-workspace

I would like to move it here and incorporate it with the other fine
visualizations and interactions. Is there a process I can follow to submit my
work for consideration?

@AnimeshSinha1309 There is no one active on this project right now. If you are interested in GSoC, the guidelines are in the wiki (TL;DR is that you should not submit code, but instead write a project proposal).

@jconallen Looks cool! There is no one active on this project right now, and I think it's only accepting longer explanations of topics written with a mentor involved. @samuelgoto may want to take a look at your page.

I'm closing this issue, as this type of work is no longer the focus of the project.