<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Integration von DevOps in Lernplattformen Wie die Programmierausbildung weiterentwickelt werden könnte und die didaktischen Implikationen</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Paul</forename><surname>Grimm</surname></persName>
						</author>
						<title level="a" type="main">Integration von DevOps in Lernplattformen Wie die Programmierausbildung weiterentwickelt werden könnte und die didaktischen Implikationen</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9A6E4BC5F007D348F49E3EF4ED70EDBE</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T00:55+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Programmieren</term>
					<term>Programmierung</term>
					<term>DevOps</term>
					<term>Continuous Integration</term>
					<term>Lernumgebungen</term>
					<term>eLearning</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The further development in the working structures for software development should lead to integrate these structures into programming education programs: for example, by increasing the use of aspects of DevOps, an up-to-date approach for software development characterized through automatization and monitoring. Instead of creating artificial learning environments in which teachers give feedback to learners, novel learning environments could already base fully on processes and tools that play a major role in everyday work. A direct benefit could also be a better and faster feedback for the learners.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0" /><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>1</head><label></label><figDesc>Nutzung von DevOps für die Lehre DevOps als aktueller Ansatz in der Softwareerstellung zeichnet sich insbesondere durch Automatisierung aus, die mit Hilfe einer entsprechenden Deployment-Pipeline umgesetzt wird und mit Hilfe eines geeigneten Monitorings überwacht wird [Ha15]. Die Deployment Pipeline basiert hierbei auf einem geeigneten Versionsmanagementsystem und integriert Schritte wie Code Review, Unit-Testing und Profiling ebenso um wie statische (wie z.B. Syntax Check) und dynamische Analysen (wie z.B. Lasttests oder Benchmarks). Paul Grimm Üblicherweise werden in der Programmierausbildung von den Lehrenden Aufgaben herausgegeben, die dann nach der Bearbeitung durch die Lernenden abgegeben bzw. vorgezeigt werden. Abschließend kann eine manuelle oder automatisierte Bewertung erfolgen. Hierzu können Lernplattformen wie Moodle [Mo18] in Kombination mit entsprechenden PlugIns wie CodeRunner [Co18] zum Einsatz kommen. Als Feedback erhält der Lernende somit entweder eine Antwort des Lehrenden oder die automatisierte Antwort. Konsequenterweise könnte ein Ansatz in der Programmierausbildung sein, dass anstelle bisherigen Abgabemöglichkeiten über Lernplattformen ein Versionsmanagementsystem (wie z.B. Subversion [Su18] oder Git [Gi18]) zum Einsatz kommt, über das alle Abgaben zu erfolgen haben. Feedback könnte in diesem Sinne dank einem Automatisierungstools wie Jenkins [Je18] mit Hilfe von Unit-Tests und anderen Monitoringelementen erfolgen, die das toolgestützte manuelle Code Review unterstützen. Ähnlich wie bei PlugIns wie CodeRunner erhalten die Lernenden direkt bei der Abgabe durch die automatische Auswertung der Unit-Tests ohne Zeitverzögerung das Feedback über die Qualität ihrer Abgabe. Zudem lernen die Studierenden direkt die Vorteile einer testgetriebenen Entwicklung (Test-Driven-Developments, TDD) kennen. Grundlegend muss betrachtet werden, welche Implikationen an die Didaktik durch die vorgeschlagene Vorgehensweise resultieren und welche Anforderungen daraus wieder an die technische Umsetzung abgeleitet werden können. Wenn für eine gesamte Gruppe ein gemeinsames Codeverwaltungssystem eingesetzt wird, so führt dies beispielsweise dazu, dass jeder Lernende Zugriff auf die Abgaben aller Anderen erhält. Der automatische Reflex hierbei ist, dass dies nicht möglich sein darf, um Plagiate bei den Abgaben zu verhindern. Andererseits wäre es wünschens-und erstrebenswert, dass Lernende die Lösungen der anderen mit der eigenen Lösung vergleichen. Nicht nur erhält hierdurch jeder Lernende gute Anregungen, er lernt auch, wie fremder Code betrachtet werden muss bzw. wie man sicherstellt, dass der eigene Code von anderen gelesen werden kann. Interessant ist die Vorstellung, dass es für einen gesamten Studiengang oder einen Fachbereich ein einziges gemeinsames Versionsmanagementsystem gibt statt getrennte für einzelne Kurse. Hierüber würden Studierende nicht nur erlernen, wie große Repositories gut strukturiert werden können, es würden sich auch Synergieeffekte dadurch ergeben, dass Lernende wie Lehrende nicht jedes Mal eine neue Umgebung kennen lernen bzw. aufsetzen müssen und immer die gleiche zuverlässige Automatisierungs-Infrastruktur vorfinden würden. Dies würde soweit führen, dass diese auch für Projekte und Abschlussarbeiten der Lernenden genutzt werden könnten. Das Ergebnis einer Integration von DevOps in Lernumgebungen hätte auf jeden Fall den Vorteil, dass Lernende von ersten Tag der Hochschulausbildung an langsam an die Arbeitsorganisation im späteren Berufsleben herangeführt werden können. Während zu Beginn das Feedback durch Code Review, Unit Tests und Monitoring die Lerngeschwindigkeit positiv beeinflussen könnten, kann im Verlauf der Programmierausbildung immer mehr erklärt werden, wie die eigentliche Lernumgebung aufgebaut ist und wie die Arbeitsprozesse durch den Aufbau unterstützt werden können. Integration von DevOps in Lernplattformen Dieser Beitrag gibt Anregungen für die Weiterentwicklung von Lernumgebungen für die Programmierausbildung. Da die Programmierausbildung sehr vielfältig ist, konnten hierzu nur einzelne Ideen vorgeschlagen werden bzw. nur einzelne Aspekte betrachtet werden ohne dass daraus ein Anspruch auf Vollständig abgeleitet wird.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Hochschule Fulda, Angewandte Informatik, Leipziger Straße 123, 36037 Fulda, paul.grimm@cs.hs-fulda.de</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">W</forename><surname>Hasselbring</surname></persName>
		</author>
		<ptr target="http://eprints.uni-kiel.de/29215/1/2015-07-10Architekturen.pdf" />
		<title level="m">DevOps: Softwarearchitektur an der Schnittstelle zwischen Entwicklung und Betrieb</title>
				<imprint>
			<date type="published" when="2015-06-27">2015. am 27.6.2018</date>
			<biblScope unit="volume">10</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="https://moodle.org/plugins/qtype_coderunner" />
		<title level="m">CodeRunner PlugIn für Moodle</title>
				<imprint>
			<date type="published" when="2018-06-27">am 27.6.2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title/>
		<author>
			<persName><surname>Jenkins</surname></persName>
		</author>
		<ptr target="https://jenkins.io" />
		<imprint>
			<date type="published" when="2018-06-27">am 27.6.2018</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
