Wikipedia talk:WikiProject Computer science
|This is the talk page for discussing WikiProject Computer science and anything related to its purposes and tasks.
|Archives: Index, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10|
|WikiProject Computer science||(Rated Project-class)|
|WikiProject Computer science was featured in a WikiProject Report in the Signpost on 7 November 2011. If you wish to get involved with the Signpost, please visit the Newsroom.|
- 1 Quote_notation: overly optimistic
- 2 Looking for feedback on a tool on Visual Editor to add open license text from other sources
- 3 AVL Trees - Pseudo Code
- 4 Possible Editing help/expanding new articles
- 5 Guidelines for individual software design pattern articles
- 6 Blockchain data structure and "blockchain" as an emerging imprtant technology
- 7 WikiProject PHP
Quote_notation: overly optimistic
The article on "Quote_notation", although sort of interesting, is overly optimistic on the usefulness of this notation for general computation with fractions. There is an obvious problem that the length of a quote notated fraction is linear in its denominator, often even close to it.
This optimism is already there in the original article.
For example, the suggestion is that subtraction of two quote notated number is "just subtract". Here a bad counterexample: To subtract 1/19 from 1/17 (giving 2/323), you compute 2941176470588235'3 - 894736842105263159'9, and after subtraction you get a number with a repeating part of 144 digits, ending in ...4334365325077'4
This is not easy by any stretch of the imagination. However, the notation is still an interesting thought experiment, so I would suggest not to remove it, but just make it a bit more realistic.
Looking for feedback on a tool on Visual Editor to add open license text from other sources
I'm designing a tool for Visual Editor to make it easy for people to add open license text from other sources, there are a huge number of open license sources compatible with Wikipedia including around 9000 journals. I can see a very large opportunity to easily create a high volume of good quality articles quickly. I have done a small project with open license text from UNESCO as a proof of concept, any thoughts, feedback or endorsements (on the Meta page) would be greatly appreciated.
AVL Trees - Pseudo Code
I have examined the pseudo code on the AVL Tree page and it appears to be flawed in many respects. I contacted Wikipedia via email and gave them the source code to AVL Trees in C++, C# and Java. I look forward to a better presentation resulting from this step.
AVL Trees account for Sets, Maps and Trees - the three most important classes in computer science. Therefore it is critical that the correct code be presented (if Wiki is to maintain credibility). NNcNannara (talk) 06:04, 3 July 2016 (UTC)
The Pseudo Code for AVL Trees involves pointers whereas the actual C# and Java contains no pointers. Perhaps Psuedo Code is a dated subject. It needs to be ascertained precisely how to approach the presentation of trees. My opinion is that actual modern code is better than dated pseudo code. The question is which language to use C++, C# or Java. I have already supplied the source code to AVL in Native C++, Managed C++, C# and Java at Rosetta. NNcNannara (talk) 13:38, 16 July 2016 (UTC)
- Thank you for your interest in improving wikipedia, but this is not how it works. We don't publish original thout. Please read WP:NOR, WP:CITE, WP:RS. - üser:Altenmann >t 15:37, 24 July 2016 (UTC)
- Thout is indeed the correct hecsadeinnal spelling ou "thought". The original thout canne phronn the cited repherence ou Kruse. I uuish I could tace credit - but alas the Russian's got there phirst. It has sonne neuu pheatures such as a 4th state phor the Header node.NNcNannara (talk) 11:46, 26 July 2016 (UTC)
Possible Editing help/expanding new articles
Hello! I am a Museum Studies Graduate Student currently working at the Living Computer Museum in Seattle, Washington. I am working with staff members and with the collections/library database to expand/create articles about vintage computing, retro computing, and computer science that pertain to the items and knowledge here at the museum. If anyone would like to help edit these pages, or be interested in an edit-a-thon, or just want some more information on what we hope to accomplish please message me on my talk page! -- MBlairMartin (talk) 21:28, 12 July 2016 (UTC)
Guidelines for individual software design pattern articles
I recently made some significant edits to Singleton pattern to remove content which I perceived as overly Java-oriented. I received a negative reaction from an anonymous IP on my talk page whom I have replied to at Talk:Singleton pattern. I stand by my edits, but regardless, I have observed that there is very little consistency between the various software design pattern articles. Perhaps there need to be some, at least unofficial, guidelines which all of the articles should follow? I list my suggestions and thoughts here.
In my opinion, articles on individual software design patterns should be as programming language-neutral as possible. By this I mean that the article should discuss the pattern in a way that is generally applicable to the majority of languages in which that pattern is relevant. Examples that violate this guidelines include:
- Code samples which rely on features not present in the majority of relevant languages (e.g. using Java enums to implement the singleton pattern)
- Discussion of language-specific implementation details or bugs which should be accounted for when implementing a pattern (e.g. the Java
No superfluous information or opinions
These articles are about software design patterns, not about things like naming conventions or software design best practices. For example, the following sentence from the Adapter pattern article is totally inappropriate:
- When implementing the adapter pattern, for clarity one can apply the class name [ClassName]To[Interface]Adapter to the provider implementation, for example
Code samples should be embedded in the relevant sections of the article, not placed in a separate "Code samples" section. Code samples perform a similar function to images: they are an illustrative aid to understanding the topic under discussion. Segregating them to a separate section of the article only makes things harder for the reader. In addition, if we start listing code samples in various languages, how do we determine which languages deserve an entry? Presumable we have to draw the line somewhere, as these articles are not stand-alone lists. And we have to ask ourselves: what purpose does this serve? Is the article really improved by having a C++ example and a Java example and a C# example, when the syntax for all three languages is very similar? Does it help to get across important additional information about the pattern? I would say no.
There is still the question of which language should be used to provide the code samples? For the sake of consistency (I'm a software engineer after all), I would be perfectly fine if a consensus could be reached on a language to use for all articles on patterns (e.g. C++ or Java or C# for all object-oriented software design patterns – I would probably advocate Java on the basis that it is probably the most widely understood language). However, I can see this consensus being near-impossible to reach, so perhaps the language should be chosen per-article. I am open to the idea of using different languages for each code sample within an article – variation is good and neutral – but I worry that it will be harder to compare code samples if they are written in different languages (they will generally demonstrate different variations of the pattern). I'm keen to hear opinions on this.
Lastly, code sample should be as minimal as is appropriate. If a bare-bones template is sufficient to illustrate the pattern, then that should be used. If providing some additional dummy functionality is necessary to accurately convey the purpose of the pattern, then it's fine to elaborate a bit. However, the sample should be kept short. For example, the Adapter pattern PHP example is far too long.
We might be able to devise an infobox template for software design patterns. If possible, the infobox should contain the class diagram (or other applicable diagram) for the basic pattern. Other information the infobox could contain:
- The type of pattern (creational, structural, behavioural, ...)
- Summary of the purpose of the pattern (if this is do-able in infobox format).
- Well-known publications that discuss the pattern (e.g. GOF)
- Related patterns
However, perhaps there is simply not enough to summarize to justify an infobox. Definitely open of suggestions about this.
I propose the general headings to be standardized across all articles:
- Lead – Should summarise the article. As per Wikipedia guidelines, should not contain information not provided and sourced elsewhere.
- Purpose – Should describe what the pattern does and where, why and how it should be used (and should be well-sourced). I don't think it is necessary to subdivide this section unless the section becomes unmanageable.
- Implementation – Should list the requirements and general approach to implementation of the pattern. If there are variations on the pattern then they can have subsections here.
These headings are not hard and fast, and I'm certainly open to other suggestions, but it would be nice to have some consistency. For example, I would like to see a "Criticisms" section in the singleton pattern article, as it is a somewhat controversial pattern.
Blockchain data structure and "blockchain" as an emerging imprtant technology
Since data structures of the concatenate chain model, or blockchains (originally "block chains", but now most commonly spelled "blockchain") seem to be much in the news with major financial sector initiatives underway in addition to their tradition digital currency exchange-of-value use case, and since WikiProject Databases seems to be in hiatus, it would be real helpful to have a few more editors from the WikiProject Computer science project consider taking a look at a few of the articles in that space. The ones that I know could use much more work to improve them are blockchain (database) and Ethereum. But I'd be happy to suggest/find others if asked. Hope to see some of you over there. Cheers. N2e (talk) 01:13, 28 August 2016 (UTC)
|Hello WikiProject Computer science.
You are cordially invited to participate in WikiProject PHP, a project dedicated on improving Wikipedia's coverage and detail regarding the PHP programming language.