-
Notifications
You must be signed in to change notification settings - Fork 0
/
afbeeldigen.tex
59 lines (38 loc) · 5.33 KB
/
afbeeldigen.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
%---------- Inleiding ---------------------------------------------------------
\section{Introductie} % The \section*{} command stops section numbering
\label{sec:introductie}
%Hier introduceer je werk. Je hoeft hier nog niet te technisch te gaan.
%Je beschrijft zeker:
%\begin{itemize}
% \item de probleemstelling en context
% \item de motivatie en relevantie voor het onderzoek
% \item de doelstelling en onderzoeksvraag/-vragen
%\end{itemize}
Artificiële intelligentie wordt als maar belangrijker in de toekomst. Self-driving cars, machine learning, ... Binnenkort komt overal AI aan te pas. Waarom dan niet in de wereld van de programmeurs? Is het bijvoorbeeld mogelijk om AI in te zetten bij het schrijven van code op basis van functionele specificaties? Indien dit mogelijk is, moeten programmeurs dan enkel de code nog finetunen om ze volledig op punt te zetten? Of zijn programmeurs dan totaal overbodig? Eén van de voordelen zou zijn dat je herhalende stukken code niet zelf meer moet herschrijven.
In dit onderzoek ga ik op zoek naar antwoorden op de volgende onderzoeksvragen:
\begin{itemize}
\item Hoe ver staat de technologie om AI in te zetten bij het schrijven van code op basis van functionele specificaties?
\item Kan het doorgetrokken worden naar andere programmeertalen?
\item Wat is de haalbaarheid om deze technologie te gebruiken in andere programmeertalen?
\end{itemize}
%---------- Stand van zaken ---------------------------------------------------
\section{State-of-the-art}
\label{sec:state-of-the-art}
Er zijn al onderzoeken gebeurd naar de technologie om AI in te zetten bij het programmeren van code. Onder andere Microsoft is met DeepCoder al bezig met het ontwikkelen van zo'n systeem \autocite{DeepCoder}. Via DeepCoder kan een idee in een paar seconden omgezet worden in code. Maar programmeurs zullen hierbij niet moeten vrezen voor hun job. Programmeurs zullen bij DeepCoder eerder ingezet worden voor het moeilijke, uitdagende werk, terwijl AI gebruikt zal worden voor het eerder minder leuke werk.
Dankzij mijn stagebedrijf \(Delaware\), heb ik nog meer informatie te weten gekomen in verband met zelfschrijvende code. In het artikel van \textcite{primaryObject} staat een volledig artikel geschreven over hoe AI kan gebruikt worden om code te laten genereren. Daarnaast is er via deze site een mogelijkheid om een tutorial te volgen over hoe AI programming kan geïmplementeerd kan worden. De broncode kan hiervan op Github \autocite{github} teruggevonden worden. Verder valt er ook een volledige studie \autocite{aiProgrammer} terug te vinden over het allereerste machine learning systeem, \textbf{AI Programmer} genaamd. AI Programmer kan automatisch code genereren met een minimum aan menselijke assistentie.
Google is ook bezig met een gelijksoortig onderzoek, dit valt te lezen in het artikel van \textcite{greene}. Google zijn \textbf{AutoML} is een machine learning taal die nu al slimmer is dan de programmeurs die het ontwikkeld hebben.
Dit zijn een aantal voorbeelden van huidige technologieën in verband met AI en automatisch geschreven code. Maar mijn onderzoek gaat verder. Ik ga namelijk onderzoeken hoe ver men staat met de huidige technieken, zoals DeepCoder, maar ook of het mogelijk is dit verder door te trekken naar andere programmeertalen.
%---------- Methodologie ------------------------------------------------------
\section{Methodologie}
\label{sec:methodologie}
Allereerst voer ik een literatuurstudie uit over de huidige machine learning technieken (DeepCoder, Google AutoML). Later zal ik ook de tutorial van \textcite{github} volgen om te weten te komen hoe deze techniek in elkaar zit.
Daarnaast zal ik onderzoeken hoe ver dit alles op punt staat. Om dan uiteindelijk onderzoek te voeren naar de haalbaarheid om dit alles uit te breiden naar andere programmeertalen. Bijvoorbeeld: Is het mogelijk om AI te gebruiken om op basis van functionele specificaties Java-code te schrijven? Dit ga ik onderzoeken door middel van literatuurstudies en het zelf uit proberen van allerhande algoritmen, die nu al bijvoorbeeld bij Microsoft gebruikt worden, om code in Java te laten genereren.
Naast literatuurstudies zal ik ook uitgebreid de tijd nemen om de theorie om te zetten in de praktijk. Ik zal allerlei mogelijke praktijktoepassingen bedenken en door middel van experimenten bepalen voor welke cases deze technieken al dan niet geschikt zijn
%---------- Verwachte resultaten ----------------------------------------------
\section{Verwachte resultaten}
\label{sec:verwachte_resultaten}
Bij de resultaten zal er niet alleen de uitkomst van de haalbaarheid vermeld worden, maar ook de uitkomst van het onderzoek naar de huidige technieken. Wat is de huidige stand van zaken? Wat kan er verbeterd worden? Is het wel mogelijk om AI overal in het programmeren te gebruiken? Dit zal allemaal worden onderzocht.
%---------- Verwachte conclusies ----------------------------------------------
\section{Verwachte conclusies}
\label{sec:verwachte_conclusies}
Ik verwacht wel dat het mogelijk is om AI in te zetten bij het genereren van code door middel van functionele specificaties. De moeilijkheid in dit onderzoek zal eerder liggen bij het feit dat de implementatie ervan moeilijk zal verlopen. Moeilijke implementaties duren dan ook zeer lang. Indien het echt een must is om via AI code te laten genereren, zou het aangeraden zijn om er op tijd aan te beginnen.