Good Morning All,
6th week is here and the sun is shining. I daresay soon it will be flip flop weather.
This Wednesday we will be having our important Annual General Meeting, during which we
will be electing a committee to replace Alex, Ian, Laurens and I. There will be pizza, and
potentially hot cross buns. Please note yet another change in venue for this event from
our printed term card. We will be on the first floor of St Catherine's lodge.
Since, yet again, no one correctly solved last week's technology challenge the prize
for whoever solves it this week will be £15. Along with last weeks clue, another is
printed below.
Details about the AGM, the technology challenge, an event CoreFiling are running and
possibly more are below.
Have a good one,
Ben and Alex
CompSoc Co-Presidents
*******************************************
The Oxford Computer Society
*******************************************
CompSoc AGM including elections:
Wednesday 22/02, 6pm, St Catz Arumugan Building First Floor Meadow Facing
FB Event:
http://www.facebook.com/events/276868755717384/
Please note the change in venue compared to our printed termcard
Out with the old, in with the new.
We will be reviewing progress the society has made this term and discussing any other
issues that arise. Elections for the 2012/2013 committee will be held (further details to
be sent on mailing list). If you are interested in standing for a position please get in
touch with the committee if you have any questions.
If you are interested in the intricacies of how the AGM/society works then please see the
constitution. (
http://compsoc.net/constitution/)
Pizza and drinks will be provided! (and possibly hot cross buns)
The Arumugan building is the fancy name of the lodge, we will be in the room just to the
left after you go up the stairs. We'll put up some signs in the lodge (which is that
big glass building straight in front of you as you walk into catz) to the room.
Here is a handy map for finding Catz:
http://g.co/maps/eeut2. If you get truly lost in
Catz, you can call Ben on 0754 999 3401.
This event, like most CompSoc events, is free for anyone to attend. Although only members
of the society may vote in the meeting.
Specific election information:
If you think you might be interested in a role on the committee then please feel free to
get in touch with us over committee@ox.compsoc.net<mailto:committee@ox.compsoc.net>
and we'd be happy to answer any questions that you might have - alternatively speak to
us in person of course!
Along with the positions required by the university (President, Secretary and Treasurer) a
number of other roles could be suitably created, such as Vice President, Social Secretary,
Sponsorship Secretary, Publications Officer, etc. (basically whatever title + support that
you think could be provided to the society). Personally, I (Ben) believe that a larger
committee than the required roles is highly preferable - there is an upper limit of 10
members to the committee. Constitutionally, we have the that the required positions are:
The President, to preside over meetings, to authorise all expenditure and ultimately be
responsible for the running of the Society.
The Secretary, to take minutes at meetings, deal with Society correspondence and stand in
for the President when necessary.
The Treasurer, to maintain the accounts of the Society, report to the members thereon, and
to stand in for the Secretary when necessary.
The elections themselves will proceed as follows. Initially nominations for President will
be asked for, candidate(s) will then give a few words in proposition, questions may be
asked to the candidate(s), and then a secret ballot (everyone at the meeting (who is a
member) writes down their vote on paper) will be held to determine the winner by simple
majority (not counting abstentions). The same will then follow for Secretary and
Treasurer. Following this any other positions can be nominated and voted on.
To be nominated you must be proposed by another member, and then seconded by another
different member - you must also be a member. You may stand for as many roles as you like,
although once you have been appointed to one you cannot stand for another. You may propose
or second as many other members as you like (but only 1 per position). For each position
you may vote to abstain from voting.
If you are considering standing and need a proposer/seconder feel free to get in touch
with committee@ox.compsoc.net<mailto:committee@ox.compsoc.net> as we would be happy
to support any candidates looking to stand.
------------------------------------------------------------------------
CoreFiling Drinks:
Local software company CoreFiling is hosting an informal get-together at
The Red Lion pub on Thursday 23rd February. Members of the development
team will be on hand to talk to students considering careers in the
software industry and to discuss the opportunities for internships and
full time positions available at CoreFiling. Are you interested in
working with Java, Python, XML and Linux? Curious about Extreme
Programming and Test Driven Development? Want to know how international
software projects are managed? If so then come along for a chat over a
drink or two to find out more.
Drinks and snacks will be provided. No need to book.
Date: Thursday 23rd February (6th week)
Time: 5.30pm - 8.30pm.
Location: Red Lion Pub, Gloucester Green.
------------------------------------------------------------------------
Technology Competition:
Challenge 6:
A discrete elevator simulation.
This challenge is using a given list of discrete elevator request events (found at
http://compsoc.dartoxia.com/request.txt) determine the number of elevators required to
service the requests, and their final configuration once the requests have been serviced.
The number of elevators required is the minimum needed to ensure all requests are serviced
within 21 time blocks (ie completed in 21 or fewer time blocks after creation).
In the file of event requests, an event is either "SKIP", or a list of requests
in the form "x to y;". "SKIP" is the event where no request was made.
"x to y;" is the request go from floor x to floor y. Each line corresponds to
the a time block, ie line 0 = time 0, line 1 = time 1 etc. In a single time block the
requests for that block are made, then the elevators move in the direction they are
travelling in, then the elevators service any requests at the floor they are now at. If an
elevator is empty it can enter travel mode, where it will travel towards a selected
request with the intention of servicing specifically that request (it can service others
as long as they do not want to go past the selected request), as soon as it has picked up
the specific request it travels in the direction needed for that request and resumes
normal mode.
An elevator can only move up 1 floor, down 1 floor or remain at the same floor during each
time block.
There is a building containing elevators which is 10 stories high, with each floor
numbered 0 through to 9 (ie. 0 is the ground floor). Users request the elevator by pushing
a button on the floor they are currently at, indicating the floor they are going to.
An elevator's initial configuration is that it is idling at level 0. Individual
elevators follow the following protocol:
Elevators can be in 2 modes: Normal mode and Travel mode
Normal mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator
out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if no one is in the elevator, then direction = 0 //ie we are idling
4 if anyone is waiting at currentFloor and would like to travel in the same direction as
the elevator (or the elevator is idling) then they get on and we go to the floor they
requested, if we were idling then we go in the direction for that floor. We always let the
people who have been waiting the longest on first.
Travel mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator
out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if anyone is waiting at currentFloor and would like to travel between targetFloor and
currentFloor then they get on
4 if currentFloor = targetFloor then let anyone on who would like to go in
targetDestination direction and set direction to be towards targetDestination
5 switch to Normal mode
An elevator will switch into Travel mode if at the end of part 4 of normal mode it does
not contain any passengers. When it switches into travel mode, it will take a request (x
to y) which isn't being acted upon by another elevator and travel to targetFloor (x),
doing as much transporting as it can on the way, then will travel towards
targetDestination (y). When it is travelling towards targetDestination it has switched
back into Normal mode.
If there are [0..N] elevators the system acts in the following manner:
1 todo = <read in request events happening on this time block (if there are any)>
2 for i = 0 to N do
3 execute elevator i's protocol once, removing any request events from todo which
it can immediately handle
4 for i = 0 to N do
5 if elevator i is in Normal mode and empty, and todo is not empty then
6 take the request which has been waiting longest (x to y) from todo, and switch
elevator i into Travel mode with targetFloor = x and targetDestination = y
7 advance the time by 1 and go back to step 1
One request is determined to be waiting longer than another if it was generated before the
other. If they were generated at the same time, then the request before the other in the
list defining them in the requests.txt file is the one that has been waiting longer.
Answers can be submitted to
http://compsoc.dartoxia.com/answer/<num<http://compsoc.dartoxia.com/a…
of elevators><final floor of elevator 0><final floor of elevator
1><etc..> (obviously without the brackets, ie just a string of numbers). Whilst
the solution to this challenge may seem to favour using methods taught in 2nd year
CompSci, it can clearly be solved without using any of that fanciness.
An example runthrough and solution can be found at
http://compsoc.dartoxia.com/example.txt.
As a clue to help you solve it, 6 elevators are required to service all of the requests in
time. A second clue is that none of the lifts end up in positions 0, 2, 4, 6 or 9.
Anyone (with a .ox.ac.uk email address) can sign up to the competition through the
http://compsoc.dartoxia.com website, but only members can receive prizes.
Compsoc.dartoxia.com isn't connected to the compsoc network, and so you will need to
make a new account to participate.
For more details about the competition see
http://compsoc.net/technology_competition or
contact committee@ox.compsoc.net<mailto:committee@ox.compsoc.net> if you have
questions about this round.
------------------------------------------------------------------------
Technology Competition:
Week 5 result:
No one solved the challenge!
------------------------------------------------------------------------
CompSoc Jobs Mailing list
The society receives a number of advertisements each week from companies and individuals
interested in employing our members. The jobs range from graduate positions, to a bit of
help with another societies website.
If you would like to receive these emails just email
compsoc-jobs-request@lists.ox.compsoc.net<mailto:compsoc-jobs-request@lists.ox.compsoc.net>
with 'subscribe' in the subject line.