Rosetta Code:Village Pump/Suggest a programming task: Difference between revisions

From Rosetta Code
Content added Content deleted
m (Selection sort added)
m (Moved added note to "recently completed")
Line 53: Line 53:


:: Added [[Life in two dimensions]]. Conways Game of Life. --[[User:Paddy3118|Paddy3118]] 22:21, 10 October 2008 (UTC)
:: Added [[Life in two dimensions]]. Conways Game of Life. --[[User:Paddy3118|Paddy3118]] 22:21, 10 October 2008 (UTC)
* Heapsort, Selection Sort, and maybe some other sorts from http://en.wikibooks.org/wiki/Algorithm_implementation/Sorting
* Heapsort and maybe some other sorts from http://en.wikibooks.org/wiki/Algorithm_implementation/Sorting
:: Selection sort added --[[User:Lupus|Lupus]] 20:40, 21 November 2008 (UTC)
===System===
===System===
* Copy a directory tree recursively
* Copy a directory tree recursively
Line 81: Line 80:
=Recently Completed=
=Recently Completed=
If a task has been completed, move the request to this category. Add a link to the task page, and sign (add <nowiki>--~~~~</nowiki>) to the request. Completed tasks more than a week old should be removed from the list.
If a task has been completed, move the request to this category. Add a link to the task page, and sign (add <nowiki>--~~~~</nowiki>) to the request. Completed tasks more than a week old should be removed from the list.
* [[Selection sort]] added --[[User:Lupus|Lupus]] 20:40, 21 November 2008 (UTC)

=On hold=
=On hold=
==Sounds Like Homework==
==Sounds Like Homework==

Revision as of 20:49, 21 November 2008

So you want to see a problem solved? If you're not comfortable creating the task page yourself, feel free to edit this page, and describe the problem below. (To edit this page, click the "edit" tab at the top.)

When making a request, please place it in the Unsorted section.

When reviewing requests, please help sort them into the categories farther down, based on the category descriptions.

Incomplete

Further restructuring. I propose to group the tasks related to the language types algebra under this category, like it was done with control flow statements. A types algebra is a set of predefined types and the operations constructing new types out of given ones. For example, the array type is produced by such an operation. It takes the type of the index, the type of the element and produces a new container type called array. Here is an incomplete list of algebraic operations most common to higher-level typed languages:

  • Array type construction;
  • Record type construction;
  • Enumeration type construction;
  • Reference/pointer type construction;
  • Parametrization, aka parametric polymorphism of types, aka class template, aka generic type;
  • Inheritance, aka dynamic polymorphism, aka type extension;
  • Type constraining, aka subtyping (non-Liskov subtyping), aka specialization;
  • Type cloning (produces a type which is a copy of the argument type);
  • Class rooted in the type (polymorphism).

The predefined types are well known:

  • Boolean;
  • Integer;
  • Modular integer;
  • Unconstrained integer;
  • String;
  • Floating-point number;
  • Fixed-point number;
  • Complex number;
  • Address.

Partially some of the predefined types are rather constructed by algebraic operations. --Dmitry-kazakov 20:03, 28 October 2008 (UTC)

Unsorted

  • Create a COM client (with early binding) (particularly with GCC/MinGW) (if possible under Winelib in linux is also interesting)
  • Provide a SOAP server function

Task level

Database / Network

  • Simple DB connection and queries.
  • Certificate-authenticated SSL
  • Secure Socket Layer

Mathematics and algorithms

  • Iterating over elements in a collection
See: Loop Structures... I know at least the Java category has a Collections example --mwn3d 23:36, 9 November 2007 (EST)
Variable-length Collection-type-specific examples (Java collections, C++/STL container classes, functional lists, etc.) would be worthwhile. --Short Circuit 22:28, 6 December 2007 (MST)
  • Closures
  • Monads
  • SAX. As well as DOM and XPath it would probably be useful to demonstrate parsing a simple XML document with SAX.
  • Base64 encode/decode
  • Game of life
Added Life in one dimension. --Paddy3118 21:39, 8 October 2008 (UTC)
This doesn't seem to differ much from Sierpinski triangle. (Or I may be thinking of the same task on the Literate Programs wiki.) Maybe call this Cellular automaton to avoid confusion with Conway's 2-D Game of Life? --IanOsgood 18:51, 9 October 2008 (UTC)
The name is from [here] amongst other places. The name is known and so may be searched for. I purposefully added the one dimension in the title to distinguish it from Conway's Game of Life, which is naturally 2D, and did not mention Conway in the description at all. (I mention cellular automata in the description so it will come up in a search). --Paddy3118 19:32, 9 October 2008 (UTC)
Added Life in two dimensions. Conways Game of Life. --Paddy3118 22:21, 10 October 2008 (UTC)

System

  • Copy a directory tree recursively
    • On a local filesystem
    • With an option to specify files or folder to exclude
  • Call function in shared library

Syntax

  • Comparison methods and operators
Could this be added to Comparing two integers? --Mwn3d 07:28, 21 December 2007 (MST)
  • keyword arguments (defining a procedure which takes named arguments)
Isn't this already accomplished in Creating a Function? --Mwn3d 15:51, 1 June 2008 (MDT)
Probably means smalltalk style parameter passing (but without defined order) i.e [mymethod myarg1: 'One' myarg2: 'two'] Rahul 20:24, 7 October 2008 (UTC)
Looks like language specific implementation of passing parameters, not a programming task. --PauliKL 15:14, 23 October 2008 (UTC)
I thought it appropriate to mention keyword args under Varargs for Python. --Paddy3118 18:58, 16 November 2008 (UTC)
  • optional arguments (defining a procedure which has optional arguments or arguments with default values)

Project level

  • Super Simple p2p network
Could be done with FIFOs for streams, and a constant number of clients. Needs to be more specific regarding what it does. --Short Circuit 22:28, 6 December 2007 (MST)
probably means some thing like this http://ansuz.sooke.bc.ca/software/molester/molester. To make it suitable for rc the restrictions need to be spelt out - i.e. fixing the protocol and discovery mechanisms Rahul 20:24, 7 October 2008 (UTC)
  • Writing a parser to parse structured text into appropriate native types. (A good demonstration format to parse might be JSON, though it should be about creating a parser rather handling JSON.)
  • [non-trivial] implement a table-based native code (macro?) assembler in various HLLs

Recently Completed

If a task has been completed, move the request to this category. Add a link to the task page, and sign (add --~~~~) to the request. Completed tasks more than a week old should be removed from the list.

On hold

Sounds Like Homework

These tasks may be interesting, but seem likely to be someone's homework. They should be put off until the end of the next regular semester.

  • doubly-linked list algorithms, both cursor- and pointer-based implementations
This could be approached some time in May --Short Circuit 23:43, 16 February 2008 (MST)
It's probably a good time to approach this, now.

Discuss

  • Querying devices for certain SNMP values and output reponses to .html or .txt-file.
    • Used for:
      • generating webpage where helpdesk can view the VLAN of a user-port
      • querying forwarding database of switch / ARP-table of router
    • Can be extended:
      • with config file for: device list, SNMP-values to interrogate, SNMP community strings, ...
      • support for SNMPv3
      • generating history reports: what mac-address has been on this port, when has a change been made, ...
    • Wanted to do this myself for a long time already using Python or Ruby, but not making a lot of progress. Any help or suggestion would be welcome.
This should probably be split into Query SNMP server and Retrieve configuration setting (for an application, not the SNMP server). There are already tasks for outputting to a file. --Short Circuit 23:43, 16 February 2008 (MST)
  • Win interface... C++ calls to Fortran F90/95 Source Code ... and back...
This should be as trivial as Call function in shared library, if the Fortran code has been compiled into a shared library. (Regardless of OS) --Short Circuit 23:43, 16 February 2008 (MST)