6. Mai 2013 - 12. Mai 2013

Rückblick

Am Abend des 03. Juni wurden im Leipziger Westin zur Meet Magento die Sieger des fünften Coding Contest gekürt. Der vom Leipziger E-Commerce-Spezialist Netresearch App Factory initiierte Programmierwettbewerb bot den Teilnehmern vom 06. bis 12. Mai 2013 die Chance in mehreren Wahlkategorien ihr Können zu beweisen.

Beim fünften Leipziger Coding Contest zeigten erneut zahlreiche Studentenm Absolventen und Quereinsteiger ihre IT-Begeisterung. Über 100 angemeldete Teilnehmer konnten zwischen drei verschiedenen Aufgaben wählen. Die am Ende der Programmierwoche eingereichten Lösungen überzeugten die Jury der jeweiligen Kategorie. Die Sieger des Wettbewerbes wurden am 03. Juni 2013 im Rahmen der Magento-Fachkonferenz Meet Magento geehrt und konnten mit den beteiligten Partnern, wie zum Beispiel Ipoque oder unserem Schirmherrn Cluster IT Mitteldeutschland, in Kontakt treten. Anschließend konnten die Teilnehmer bei der Meet Magento After-Show-Party in der Moritzbastei ihren Sieg feiern.

5-CoCo_1.-Platz-_NetresearcMartin Czygan, Informatikstudent im 6. Semester, ist der Gewiner der von Netresearch gesponserten PHP-Kategorie. Als Preis konnte er ein Samsung Galaxy Tab 2 P3110 entgegennehmen. René Martin (2. Platz) und Tobias Teepe (3. Platz) gewannen für ihre Lösungen jeweils einen Einkaufsgutschein für Hard- & Software.

RTEmagicC_5-CoCo_1.-Platz-_ThoughtWor.jpgDer Erstplatzierte der von ThoughtWorks gesponserten Kategorie Java, Ruby und C#, Eugen Meissner, freute sich über eine Kindle Fire HD Tablet sowie Coachingstunden. Die zusätzliche Möglichkeit sich mit dem Sieg direkt bei der ThoughtWorks University-Auswahl für ein 6-wöchiges Training in Indien zu qualifizieren waren für ihn ausschlaggebend für die Teilnahme an dieser Kategorie. Ralf Berger (2. Platz) erhielt für seine Lösung ebenfalls Coachingstunden und eine Polaroid Z 2300. Christoph Schmidl (3. Platz) hat die signierte Ausgabe von Martin Fowler’s “Domain Specific Language” gewonnen.

Thomas Fleck, Vorstand der Netresearch App Factory, äußerte sich zufrieden über die Wettbewerbskategorien, Teilnehmer und Partner: „Beim fünften Coding Contest konnten wir dank unserer Partner, wie der Apinauten GmbH, mehrere interessante Programmieraufgaben anbieten. Wir geben den Teilnehmern so einen größeren Anreiz und freuen uns, dass einige Teilnehmer den Coding Contest treu bleiben und wiederholt mitgemacht haben.”


Aufgaben

Beim fünften Coding Contest konnten die Teilnehmer zwischen mehreren Kategorien und Aufgaben wählen.

Es standen zur Wahl:

PHP, Backend-Entwicklung für Apps und Java, Ruby oder C#.

In den Bereichen gab es unterschiedliche Aufgaben.


KATEGORIE PHP

Aufgabe der Kategorie PHP (powered by Netresearch)

Objektverwaltung mit Google Drive

Die Programmieraufgabe für den fünften Coding Contest im Bereich PHP-Entwicklung beschäftigt sich mit der Google Spreadsheets API sowie der Datenvisualisierung mittels eines Kartendienstes.

Ausgangslage

Eine sehr breit aufgestellte Agentur verwaltet schon seit vielen Jahren Objekte, die tageweise ausgeliehen werden können. Die Mitarbeiter sind nicht sehr bewandert im Umgang mit modernen Webapplikationen und möchten ihre Objekte gerne weiterhin mittels Kalkulationstabellen pflegen. Bisher konnten die Belegungsdaten nur telefonisch erfragt werden. Das soll sich nun ändern, alle Objekte sollen mit Standort und Belegungsstatus online verfügbar gemacht werden. Die Google Spreadsheets existieren bereits, unter den Mietobjekten befinden sich – ganz klassisch – Ferienwohnungen und Kraftfahrzeuge, aber auch Bohrmaschinen und Hundesitter. Allen Objekten ist gemein, dass sie durch eine Bezeichnung, Standortkoordinaten und Paare aus (Datum, Belegungsstatus) beschrieben werden können.

Aufgabe

Die Aufgabe ist in mehrere Meilensteine zerlegt. Für die Teilnahme genügt das Erreichen des ersten Meilensteins (“Basis”). Alle weiteren Features sind optional. Gern gesehen sind eigene Ideen. Insbesondere die Informations-Visualisierung lässt Spielraum für Kreativität.

Darstellung der Objekte auf einer Karte (Basis)

Grundlegende Aufgabe der Applikation ist es, die Daten aus dem Spreadsheet zu lesen, zu verarbeiten und auf einer Karte (OSM, Google Maps, Bing) darzustellen. Mindestens gefordert ist dabei die Anzeige der Objektbezeichnung sowie des Belegungsstatus des heutigen Tages.

Erweiterung Frontend

Interessant für den Benutzer der Applikation ist, welche Objekte an einem Ort zu einem bestimmten Datum verfügbar sind. Er sollte also (a) einen Ort / eine PLZ eingeben können, der dann in der Karte fokussiert wird. Zusätzlich sollte er (b) ein Datum oder einen Datumsbereich wählen können, woraufhin der Belegungsstatus der Objekte auf der Karte aktualisiert wird. Um das Grundrauschen zu minimieren, können außerdem (c) diejenigen Objekte auf der Karte per Umschalter ausgeblendet werden, die zu dem gewählten Zeitraum nicht verfügbar sind. Hilfreich für den Benutzer wäre auch, (d) Zusatzinformationen (Adresse, nächstes unbelegtes Datum oder ähnliches) zu den aktuell im Kartenausschnitt befindlichen Objekten in einer
nebenstehenden Tabelle anzuzeigen.

Schreibender Zugriff auf Spreadsheets

Eine weitere Ausbaustufe der Objektverwaltung beinhaltet eine einfache Buchung. Objekte, die für ein Datum als unbelegt markiert sind, sollen über das Web-Frontend als “belegt” markiert werden können. Im einfachsten Fall wird dabei das Belegungsstatus-Flag im Spreadsheet umgelegt. Optional können auch Zeitpunkt der Buchung oder Name des Buchenden via Frontend erfasst und in das Spreadsheet übertragen werden.

Anforderungen und Hinweise

Vorgegeben sind ausschließlich die Programmiersprache PHP für den API-Zugriff sowie der Einsatz eines öffentlichen Git-Repositorys zur Versionsverwaltung. Zwingend erforderlich ist nur der als “Basis” deklarierte Teil der Aufgabenstellung. An den weiteren Features kann sich der Teilnehmer nach Belieben und Interesse (auch partiell) bedienen.

Für die Bearbeitung steht dir das vorgefasste Spreadsheet als .ods zur Verfügung. Dieses lädst du dir in Google-Drive als Spreadsheet hoch und kannst damit arbeiten. Mit Abgabe deiner Lösung setzt du den Zugriff für das Dokument auf “Jeder, der über den Link verfügt” und stellst ihn uns in deiner Repository-URL mit zur Verfügung.

Bei Abgabe der Aufgabe ist die Repository-URL zu übermitteln. Wenn nicht selbsterklärend, sollte dort auch eine Installationsanleitung (README) zu finden sein. Hier können bei Bedarf auch sonstige Anmerkungen (Feature-Liste, Bedienungsanleitung, etc.) enthalten sein. Darüber hinaus ist zur Teilnahme die Wahl der Mittel völlig frei, Frameworks oder Bibliotheken können natürlich eingesetzt werden.


KATEGORIE BACKEND-ENTWICKLUNG FÜR APPS

Aufgabe der Kategorie Backend-Entwicklung für Apps (powered by Apinauten GmbH)

Ausgangslage

Backend as a Service ist eine neue neue Technologie, die Entwicklungsprozesse beim Erstellen von Backends deutlich vereinfacht. Für das Entwickeln und Hosten von Backends waren bis vor kurzem noch Spezialkenntnisse in verschiedenen Gebieten notwendig. Backend as a Service ermöglicht die Konfiguration und das Hosten von Backends über eine leicht zu bedienende Web-Oberfläche. Häufig benötigte Fuktionalitäten im Backend werden von BaaS-Anbietern als Module zur Verfügung gestellt. Beispiele für solche zusätzlichen Module sind:

  • Senden von Push-Mitteilungen
  • Importieren und Exportieren von Daten (z.B. Formate CSV, XML)
  • Synchronisieren von XML-Schnittstellen
  • Verbinden einer App mit Social Media-Accounts (z.B. Facebook, Twitter)
  • Synchronisation mit CMS (z.B. WordPress)
  • Messaging, Chat

Aufgabe

Im Rahmen des Contests soll für iOS oder Android eine App erstellt werden, die Daten mit einem Backend austauscht. Das Backend soll mit Hilfe des BaaS-Anbieters apiomat.comaufgesetzt werden. Der Einsatz der vorgefertigten Module ist erwünscht aber keine Pflicht.

Anforderung

Ziel ist eine App, die in einen der App-Stores eingestellt werden kann. Die Rechte für die App bleiben bei dem Entwickler.


KATEGORIE JAVA, RUBY ODER C#

Aufgabe der Kategorie Jave, Ruby oder C# (powered by ThoughtWorks)

Coding Contest 2013: DNA Sequencing

Please read the description of the problem thoroughly and then create a program to solve it. For the solution, we request that you use Java, Ruby, or C#.

You may not use any external libraries to solve this problem, but you may use external libraries or toolsfor building or testing purposes. Specifically, you may use unit-testing libraries or build tools available foryour chosen language (e.g., JUnit, Ant, NUnit, Rspec, Rake, etc.).

System security is very important to us and certain file extensions will be blocked for security purposes,resulting in delays to your review. You should NOT include any executable attachments, including thosewith .exe or .lib extensions. We need to be able to run and build your code ourselves, so please submityour code as a zipped file of source code and supporting files, without any compiled code. If you’resubmitting in C#, please do not submit your code as a .msi file.

Please include a brief explanation of your design and assumptions, along with your code, as well asdetailed instructions to run your application.

We assess a number of things including the design aspect of your solution and your object orientedprogramming skills. While this is a small problem, we expect you to submit what you believe isproduction-quality code; code that you’d be able to run, maintain, and evolve. You don’t need to goldplate your solution, however we are looking for something more than a bare-bones algorithm.

  •  There must be a way to supply the application with the input data via text file.
  •  The application must run.
  •  You should provide evidence that your solution works correctly against the supplied test data.

Coding problem: DNA Sequencing

Design a program that can analyze a DNA sequence for patterns.

DNA consists of long strands of nucleotides. Each nucleotide has a nucleobase. There are only fourprimary nucleobases in all DNA: cytosine, guanine, adenine and thymine, abbreviated s C, G, A and Trespectively. DNA for an organism can be represented as a long sequence of just these four letters.

You have to write a program that analyzes a given DNA sequence for the occurrence of specific patterns.

This is a 1000-nucleobase long segment of the DNA sequence of a 35-year-old female of unspecified race:

ggaatttagggagttcccacattgcccagacgactcgtatagaattggtagttggccatg
cgtccatatcacaaagacacagtccctggccgaccacactgtaaccacgaatatgcccta
tcgtacgggttgggatgcacttttgagttatacgcgctcgaatctatgcccagtacacat
ggtgccgacacctaactaggcagtgaggggcactcagacctgacatgagcggaagaaaga
acccgcgggggccccacgacgtagcggcgacggctcaaccaatgccccgcccctttcata
aggccaagcggactgggctttcgcccgagtctaaacccactgtatttaccattcatagtc
aacagagggactttcaaaattcctaaactggttactgactaagaggaatcctcgcgctaa
tgaagacaacctccatagaggtcaaatggcgcgcagttgacttcagtattgaccttcttc
agggtcccccatctttgatacttcacttatggacccggccaccgtgagttgaatcccggc
gtccctcgcgtccccaacacagacaatatttttacgtgtccaagggcggaaagtgacgag
gtgagaactggcgccgcgagaccggcccgatttctaataggcgggatagagatctgcccg
acgcatttcacttgtagtcactcacggtatgactgtgcatgcactgaccgtcgctggcgt
gtctttaatttaagctaggcttgacgtggagtgcagaatgaccatgttcaaggtgcttcg
gggctatatacttgggataaacgcgatcctgcggagtagcgtcgagaacaccgactgccg
aatgtacaatccgcgtgacaatgccgaggctcgagatatcacttgaactgcgggcgaatc
gattcgagagcccgatcgttaacaagtcgtcggctgtagccaataatatcttggttttag
atcttgagtgtgggggcgtttacttaaccatccgaacgcg

Answer the following questions:

1. Three distinct sequences of “GGG” within any 1000-nucleobases signify an elevated riskto acquiring Tyberius syndrome. Based on the given DNA segment, is this female at suchrisk?

2. The sequence “CAG” followed by exactly one “C” or one “G” and then not followed by Tin the next 2 slots signifies brown eyes. Does this female have brown eyes?

3. How many of each nucleobase does this segment have?

4. What’s the location of the first occurrence of the sequence “CTAG” in the given segment(assume nucleobases are numbered from 1 to 1000).

In-Office Extension:

Here’s some additional information about DNA:

Each nucleobase has a complementary nucleobase. A and T are complementary; C and G arecomplementary. A sequence is complementary to another sequence if it has the complementarynucleobases in the reverse order. For example, the complementary sequence to TTAC is GTAA.

Adenine and guanine belong to the double-ringed class of molecules called purines (abbreviated as R).Cytosine and thymine are pyrimidines (abbreviated as Y).

Answer the following:

1. Does this segment have more purines than pyrimidines?

2. Four purines followed by four pyrimidines have been shown to have a strong correlationwith the early onset of Frømingen’s dischrypsia. Does this DNA strand show evidence forthis correlation?

3. What’s the complementary sequence for the entire 1000-nucleobase segment?

Kontakt

Annett Kretzschmar
Sandra Schueritz

Schirmherr des Coding Contest

clustermitteldeutschland

Kommentare