I think Multics introduced the first hierarchical filesystem and presented it at the 1965 Fall Joint Computer Conference. (The reference is one of the papers from that conference, describing the filesystem.)
Unix of course also has an hierarchical filesystem, which it seems to have inherited from Multics.
The wikipedia article on Unix says:
Unix also popularized the hierarchical file system with arbitrarily nested subdirectories, originally introduced by Multics. Other common operating systems of the era had ways to divide a storage device into multiple directories or sections, but they had a fixed number of levels, often only one level. Several major proprietary operating systems eventually added recursive subdirectory capabilities also patterned after Multics. DEC's RSX-11M's "group, user" hierarchy evolved into VMS directories, CP/M's volumes evolved into MS-DOS 2.0+ subdirectories, and HP's MPE group.account hierarchy and IBM's SSP and OS/400 library systems were folded into broader POSIX file systems.
The earliest hierarchical file system with which I had personal experience at the time of its release was ODS-2, introduced with VMS in 1979.
Augusta Ada King, Countess of Lovelace (1815 - 1852) is credited by most as the first programmer.
The first program was an algorithm to calculate Bernoulli numbers for Charles Babbage's Analytical Engine, and it appeared in her translation notes of Luigi Menabrea's memoir "Sketch of the Analytical Engine Invented by Charles Babbage", more specifically Note G. That said, the math necessary for calculating Bernoulli numbers were known long before Ada's time, however Ada's algorithm is the first instance of a calculating algorithm designed to be executed by a (at the time still hypothetical) machine.
Konrad Zuse (1910 – 1995) is also a solid candidate for the "first programmer" moniker, having invented a floating point binary mechanical calculator with limited programmability, the Z1 (1936) but more importantly the Z3 (1941), a Turing complete electro-mechanical computer.
When it comes to electronic computers, the Atanasoff–Berry Computer (conceived in 1937, operational by 1942) is credited as the first electronic digital computing device, so it's reasonable to think of its designers, John Vincent Atanasoff and Clifford Berry as programming pioneers. The Atanasoff–Berry Computer wasn't programmable though, the first programmable electronic computer was ENIAC (1946).
Although ENIAC's designers John Mauchly and J. Presper Eckert probably did a fair share of programming, most of ENIAC's programming were done by these lovely ladies:
Their names from left to right are Kathy Kleiman1, Jean Bartik, Marlyn Meltzer, Kay Mauchly Antonelli and Betty Holberton at the front. Two of the ENIAC's female programmers, Fran Bilas and Ruth Lichterman, are missing from the photo.
When it comes to digital computers, the first one was Colossus (operational by December 1943), and the project's lead Tommy Flowers (1905 – 1998) should also be considered a programming pioneer, along with Max Newman (1897 – 1984) who was responsible for formulating the requirements for the machine and of course Alan Turing (1912 – 1954), who had designed Bletchley Park's earlier electromechanical cryptanalytical machine, the Bombe (1939), and was influential in Colossus design2.
1 Kathy Kleiman is the founder of the ENIAC Programmers Project and obviously not an ENIAC programmer (too young :)
2 A History of Computing in the Twentieth Century: The Colossus - B. Randell, Newcastle University (PDF)
Best Answer
The "Dining philosophers problem" was the problem presented.
This has its roots in concurrent systems and is a typical university question presented when discussing Concurrency.
I believe that 4 or 5 "official" algorithms have been developed to solve the problem but a quick search on google for "Dining philosophers problem" will get you a vareity of results.
For details on this problem from Standford U please visit: http://academicearth.org/lectures/dining-philosopher-problem
The wikipedia article is located at: http://en.wikipedia.org/wiki/Dining_philosophers_problem
A Solution from MSDN Magizine is located at: http://msdn.microsoft.com/en-us/magazine/dd882512.aspx
If you read the original version of the paper in the footnotes on page 866 it states: "Proceedings of the IFIP Congress 1965, 213-217. " Solutions of a problem in concurrent programming control."
The problem in concurrency and shared resources is the "Dining Philosophers Problem". :-)
Hope that helps.