https://itp.tugraz.at/wiki/api.php?action=feedcontributions&user=Winny&feedformat=atomPhysik - Benutzerbeiträge [de-at]2024-03-19T02:35:18ZBenutzerbeiträgeMediaWiki 1.34.2https://itp.tugraz.at/wiki/index.php?title=Meditor&diff=3728Meditor2005-11-14T10:42:20Z<p>Winny: /* Fragen */</p>
<hr />
<div>==Ziel==<br />
<br />
Ein professioneller Editor für Matlab<br />
<br />
Features:<br />
* Syntax-Highlighting<br />
* Automatische Einrückung<br />
* Matching Brackets<br />
* Templates?<br />
<br />
<br />
==Vorhandene Strukturen==<br />
In <span style="color:#00CC44">grün</span> Geschriebenes sind die selbst entwickelten Klassen.<br />
<br />
===Editor===<br />
...<br />
|- org.eclipse.ui.texteditor.AbstractTextEditor<br />
|- org.eclipse.ui.texteditor.StatusTextEditor<br />
|- org.eclipse.ui.texteditor.AbstractDecoratedTextEditor<br />
|- org.eclipse.ui.editors.text.TextEditor<br />
|- at.tugraz.itp.mltutor.meditor.editors.<span style="color:#00CC44">MatlabEditProjection</span><br />
|- at.tugraz.itp.mltutor.meditor.editors.<span style="color:#00CC44">MatlabEditor</span><br />
<br />
<br />
===Partitionierung des Dokuments===<br />
PartitionScanner ist <tt>MatlabPartitionScanner</tt>.<br />
java.lang.Object<br />
|- org.eclipse.jface.text.rules.RuleBasedScanner<br />
|- org.eclipse.jface.text.rules.BufferedRuleBasedScanner<br />
|- org.eclipse.jface.text.rules.RuleBasedPartitionScanner<br />
|- at.tugraz.itp.mltutor.meditor.editors.<span style="color:#00CC44">MatlabPartitionScanner</span><br />
<br />
Der Partitioner ist <tt>FastPartitioner</tt> (war vorher der deprecated <tt>DefaultPartitioner</tt>)<br />
<br />
<br />
Weiters gibt es <span style="color:#00CC44"><tt>MatlabScanner</tt></span>, welche allerdings nur für die Erstellung eines <tt>DefaultDamageRepairer</tt> in der Funktion <span style="color:#00CC44"><tt>MatlabConfiguration.getPresentationReconciler(...)</tt></span> verwendet wird. <br />
java.lang.Object<br />
|- org.eclipse.jface.text.rules.RuleBasedScanner<br />
|- at.tugraz.itp.mltutor.meditor.editors.<span style="color:#00CC44">MatlabScanner</span><br />
<br />
'''Warum zwei Scanner:''' <br><br />
<tt>FastPartitioner</tt> wird von <tt>MatlabDocumentProvider.createDocument(...)</tt> verwendet, und braucht ein <tt>IPartitionTokenScanner</tt>. Dieses wird von <tt>RuleBasedPartitionScanner</tt> implementiert, jedoch nicht von <tt>RuleBasedScanner</tt>. <tt>RuleBasedPartitionScanner</tt> ist jedoch für <tt>IPredicateRules</tt>, was von <tt>WordRule</tt> nicht implementiert ist, gedacht. Letzteres wird für das Scannen nach den Keywords benutzt, weshalb für diesen Zweck letztendlich eine weitere Klasse von <tt>RuleBasedScanner</tt> abgeleitet wurde. <br><br />
ABER: es gibt auch die Funktion <tt>RuleBasedPartitionScanner.setRules(IRule[] rules)</tt>, es müsste nur ausprobiert werden, ob die <tt>WordRule</tt>s damit wirklich funktionieren (bin ein wenig durch die Hilfe verwirrt --[[User:Osiris|Osiris]]).<br />
<br />
==Weitere Schritte==<br />
<br />
===Partitionierung===<br />
* Schön wäre es, wenn auch Regular Expressions für die Partitionierung verwendet werden könnten. Damit könnten z.B. Variablen erkannt werden, weiters ist es besonders praktisch, dass die RegEx bereits entwickelt sind. <br />
** Leider gibt es als Futter für den <tt>RuleBasedScanner</tt> nur die Klassen:<br />
**# <tt>NumberRule</tt><br />
**# <tt>PatternRule</tt>, davon abgeleitet:<br />
**#* <tt>MultiLineRule</tt><br />
**#* <tt>SingleLineRule</tt><br />
**# <tt>WhitespaceRule</tt><br />
**# <tt>WordRule</tt> <br />
**Idee: Eine Klasse für RegEx schreiben, die <tt>IRule</tt> oder <tt>IPredicateRule</tt> implementiert.<br />
<br />
Diese Klasse gibt es schon fertig implementiert:<br />
[http://dev.radrails.org/trac/browser/trunk/org.radrails.rails.ui/src/org/radrails/rails/internal/ui/editors/rhtml/RegExRule.java?rev=476 RegExRule] <br><br />
Eine Möglichkeit wäre es vielleicht teilweise auch, die vorgegebenen Rules für dieses Unterfangen zu verwenden, z.B.<br />
WordRule wordRule = new WordRule(new MatlabWordDetector(), def); <br />
wobei MatlabWordDetector wie folgt implementiert wird:<br />
import java.util.regex.Pattern;<br />
import org.eclipse.jface.text.rules.IWordDetector;<br />
public class MatlabWordDetector implements IWordDetector {<br />
public boolean isWordStart(char c) {return Pattern.matches("Regular Expression für WordStart", String.valueOf(c));}<br />
public boolean isWordPart(char c) {return Pattern.matches("Regular Expression für WordPart", String.valueOf(c));}<br />
--[[User:Camhy|Camhy]] 09:10, 14 November 2005 (CET)<br />
<br />
==Diverses==<br />
<br />
===Anmerkungen zur Entwicklung===<br />
<br />
Folgende Plugins werden vom Meditor-Plugin benötigt (einzutragen bei Dependencies)<br />
* org.eclipse.ui<br />
* org.eclipse.core.runtime<br />
* org.eclipse.ui.workbench.texteditor<br />
* org.eclipse.jface.text<br />
* org.eclipse.ui.editors<br />
* org.eclipse.core.resources<br />
* org.eclipse.ui.ide<br />
* org.eclipse.ui.views<br />
* org.eclipse.jdt.ui<br />
<br />
===Erstellen eines eigenen Editors (nur Anmerkungen)===<br />
<br />
# Klasse von <tt>AbstractTextEditor</tt> ableiten<br />
# Klasse von <tt>SourceViewerConfiguration</tt> ableiten <br> Dies ist der Ausgangspunkt für das Hinzufügen von eigenen Funktionalitäten<br />
# Einen <tt>DocumentProvider</tt> erweitern um ein <tt>IDocument</tt> Objekt, welches die Datenrepräsentation darstellt, zu erhalten. Dies ist auch der Ausgangspunkt für Notifacations. <br />
# Actions werden in der Funktion <tt>createActions()</tt> (Memberfunktion des erzeugten Editors) hinzugefügt.<br />
<br />
<br />
==Fragen==<br />
<br />
* Wie wichtig ist eine korrekte Partitionierung des Dokuments? => evt. sollten die beiden Scanner zusammengelegt werden.<br />
* Deprecated Klassen wegkriegen?<br />
:Wäre vielleicht nicht schlecht, unter Eclipse 3.2 solltens aber noch funktionieren, wenn das ähnlich wie beim aktuellen RC läuft. --[[User:Camhy|Camhy]] 09:18, 14 November 2005 (CET)<br />
:Unbedingt notwendig, da man sich typischerweise besser auskennt, wenn man gerade daran arbeitet. Sonst kann sich jemand in relativer zeitlicher Nähe wieder damit bechäftigen. Das heisst insgesamt sollte man bei solchen Projekten eher auf Zukunftssicherheit setzen.--[[User:Winny|Winny]] 11:42, 14 November 2005 (CET)</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=MLTutor_Ablaufplanung&diff=3678MLTutor Ablaufplanung2005-11-10T11:09:44Z<p>Winny: </p>
<hr />
<div>Diese Seite soll Grundlagen für die Ablaufplanung bei der Verwendung von MLTutor liefern. Hier sind sicher Details dabei, die sich momentan nicht realisieren lassen. Andere werden von Anfang an extrem wichtig sein.<br />
<br />
= Grundlegende Entscheidungen =<br />
== Kommunikation ==<br />
Eine wichtige Form der Kommunikation wir auch aus MLTutor heraus die E-mail sein. Da wollen wir aber nichts duplizieren, sondern nur ermöglichen, dass man relativ leicht eine Email an Vortragenden oder Tutor schreiben kann. Bevorzugt über das Mailprogramm, das der Benutzer sowieso verwendet. <br />
<br />
Bei uns im Computerraum werden wir da Probleme haben, da typischerweise kein Mailprogramm konfiguriert ist und die Studierenden WebMail verwenden. Dies funktioniert aber nicht für Links mit mailto. Wie man eine solche Konfiguration für Studierende im CR leicht machen könnte, weiss ich nicht.<br />
<br />
:Eine Möglichkeit wäre vielleicht, dass wir einen Eclipse-basierten mail-client mit in den MLTutor einbauen. So weit ich weiß, wäre<br />
:es auch nicht schwer direkt per SMTP über Java zu schicken. Man müsste nur ein Dialogfenster bauen, wo die StudentIn den Text<br />
:reinschreibt. --[[User:Camhy|Camhy]] 03:00, 10 November 2005 (CET)<br />
<br />
= Wartung der Lehrveranstaltung =<br />
Einige der hier besprochenen Tasks müssen sicher nicht von Anfang an über GUIs durchführbar sein. Sie können durchaus über externe Aufrufe ausgeführt werden. Die Funktionalität an sich, scheint aber von Anfang an extrem wichtig zu sein.<br />
<br />
== Anlegen einer Lehrveranstaltung ==<br />
Der MLTutor sollte von Anfang an für die Benutzung in mehreren Lehrveranstaltungen konzipiert sein, wobei jede LV in mehrere Gruppen aufgeteilt sein kann. Zumindest muss eine Standardgruppe definiert sein. Der LV bzw. Gruppe sind dann Lehrende und Tutoren zugeordnet.<br />
* Wichtig ist auch das Jahr der Abhaltung, da alte LVs und ihre Teilnehmer und sonstige Metadaten auf keinen Fall verschwinden sollen.<br />
* Den Gruppen sollen am Anfang über die Daten vom [[MLTutor Ablaufplanung#Austausch mit TUG-Online|TUG-Online]] Teilnehmer zugeteilt werden. Spätere Verschiebungen müssen aber auch händisch möglich sein, da sich nach dem Anfang manchmal noch etwas verschieben kann. <br />
* Entsprechende Links zu TUG-Online Infos zur LV, WiKi und Skriptum sollten vorhanden sein, damit man diese rasch abrufen kann. <br />
* Ziel sollte sein, möglichst wenig Daten, die z.B. in TUG-Online sind zu duplizieren.<br />
* Datum und Zeit der Abhaltung werden wir wohl da und dort eintragen müssen, da das auch auf Seiten des MLTutor wichtig ist für die Abgabetermine. <br />
<br />
== Lehrende und Tutoren ==<br />
Auch für Lehrende und Tutoren werden wir Metadaten in der Datenbank brauchen. Diese können dann wieder LVs bzw. Gruppen zugeordnet werden. Für die Studierenden soll leicht einsehbar sein, wer ihnen helfen kann und wie man ihm eine E-mail schickt.<br />
<br />
== Austausch mit TUG-Online ==<br />
Vom TUG-Online werden Teilnehmerlisten für die einzelnen Gruppen in einer Comma Separated List exportiert, die unter anderem Vorname, Nachname, Matrikelnummer und Email-Addresse beinhaltet. Diese Daten müssen übernommen werden können. Was dabei natürlich fehlt, sind die Benutzernamen auf unserem Linux-System. Diese Verbindung sollte hergestellt werden, damit völlig klar ist, welcher Student welcher Benutzer bei uns ist. Die Studierenden sollen ausser die Anmeldung für die LV im TUG-Online und die Anmeldung für unsere Accounts keine weitere Registrierung vornehmen müssen.<br />
:Könnte man das vielleicht über finger herausfinden? Bei zwei gleichen Namen müsste man jedoch wahrscheinlich händisch überprüfen. --[[User:Camhy|Camhy]] 03:00, 10 November 2005 (CET)<br />
<br />
:Ich nehme mal an, dass es für jeden Studierenden einen Eintrag in die Datenbank geben wird, wo alle seine Metadaten gespeichert sind.<br />
::Genau, die Daten werden unter seinem Benutzernamen gespeichert. --[[User:Camhy|Camhy]] 03:00, 10 November 2005 (CET)<br />
== Zuordnung von Beispielen zu einer LV ==<br />
Beispiele im MLTutor sollten (mehreren) Lehrveranstaltungen (bzw. später auch Prüfungen) zugeordnet werden können. Andere nicht zugeordnetet Beispiele sollen aber von den Studierenden natürlich auch gemacht werden können. Irgendwie muss es da einen unterschiedlichen Status für verschiedene Beispiele geben, die quasi zu einer Einheit gehören. Da sollte man auch auf das Skriptum verweisen können oder noch einen einleitenden Text schreiben können.<br />
* Empfohlene Vorbereitung - kann gemacht und abgegeben werden<br />
* Notwendig - muss bis zu einem gewissen Termin abgegeben werden. Der Termin kann von Gruppe zu Gruppe unterschiedlich sein. Sie können natürlich auch nach dem Termin noch abgeben werden. Bei uns sollte es kein Hard-Limit geben. Für andere Vortragende oder andere LVs wären vielleicht auch Hard-Limits in Zukunft interessant. <br />
* Freiwillig - kann gemacht werden und wirkt sich positiv auf die Note aus.<br />
<br />
Studierende sollte jedenfalls bevorzugt die Beipiele sehen, die sie aktuell machen müssen, bzw. natürlich auch ganz prominent die, die schon überfällig sind. Die anderen sollen sie natürlich auch zugänglich haben. Es wird wohl irgendwie für uns schwierig sein, dafür zu sorgen, dass der Baum mit den Beispielen nicht zu riesig wird.<br />
<br />
Man muss natürlich auch Beispiele einer Prüfung zuordnen können. Diese sollten dann natürlich erst ab einem fixem Zeitpunkt sichtbar sein.<br />
<br />
= Studierende =<br />
Was sollen Studierende mit dem MLTutor machen können. <br />
<br />
== Grundlegendes ==<br />
Die Wunschvorstellung wäre, dass Studierende relativ übersichtlich und ohne verwirrenden Overhead die einzelnen Arbeiten für die Übungen machen können. Dazu notwendig ist Folgendes:<br />
* Übersichtliche Darstellung der notwendigen Aufgaben und der dazugehörigen Abgabetermine<br />
* Leichter Zugang zu Skriptum, Matlab-Hilfe, Wiki<br />
* Leichte Möglichkeit eine Email an Vortragenden oder Tutor zu schreiben<br />
* Kein allzu großer Unterschied beim Arbeiten im Computerraum oder am Heim-PC<br />
* Abgabe von Beispielen<br />
* Erhalt von Informationen, Korrekturen, Anmerkungen <br />
* Leichte Update-Möglichkeit wenn sich der MLTutor oder Inhalt geändert hat<br />
* Sicht der eigenen Statistik - abgegeben, in Ordung, fehlerhaft, überfällig, ...<br />
* Möglichkeit zu Bemerkungen, Kommentaren, Fehlerberichten zu MLTutor oder zu einzelnen Beispielen<br />
* In einem Modus für Fortgeschrittene sollte es auch möglich sein neue Beispiele zu gestalten und zu submitten, die dann von einem Lehrenden übernommen werden können.<br />
<br />
==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=MLTutor_Ablaufplanung&diff=3675MLTutor Ablaufplanung2005-11-09T18:45:30Z<p>Winny: </p>
<hr />
<div>Diese Seite soll Grundlagen für die Ablaufplanung bei der Verwendung von MLTutor liefern. Hier sind sicher Details dabei, die sich momentan nicht realisieren lassen. Andere werden von Anfang an extrem wichtig sein.<br />
<br />
= Grundlegende Entscheidungen =<br />
== Kommunikation ==<br />
Eine wichtige Form der Kommunikation wir auch aus MLTutor heraus die E-mail sein. Da wollen wir aber nichts duplizieren, sondern nur ermöglichen, dass man relativ leicht eine Email an Vortragenden oder Tutor schreiben kann. Bevorzugt über das Mailprogramm, das der Benutzer sowieso verwendet. <br />
<br />
Bei uns im Computerraum werden wir da Probleme haben, da typischerweise kein Mailprogramm konfiguriert ist und die Studierenden WebMail verwenden. Dies funktioniert aber nicht für Links mit mailto. Wie man eine solche Konfiguration für Studierende im CR leicht machen könnte, weiss ich nicht.<br />
<br />
= Wartung der Lehrveranstaltung =<br />
Einige der hier besprochenen Tasks müssen sicher nicht von Anfang an über GUIs durchführbar sein. Sie können durchaus über externe Aufrufe ausgeführt werden. Die Funktionalität an sich, scheint aber von Anfang an extrem wichtig zu sein.<br />
<br />
== Anlegen einer Lehrveranstaltung ==<br />
Der MLTutor sollte von Anfang an für die Benutzung in mehreren Lehrveranstaltungen konzipiert sein, wobei jede LV in mehrere Gruppen aufgeteilt sein kann. Zumindest muss eine Standardgruppe definiert sein. Der LV bzw. Gruppe sind dann Lehrende und Tutoren zugeordnet.<br />
* Wichtig ist auch das Jahr der Abhaltung, da alte LVs und ihre Teilnehmer und sonstige Metadaten auf keinen Fall verschwinden sollen.<br />
* Den Gruppen sollen am Anfang über die Daten vom [[MLTutor Ablaufplanung#Austausch mit TUG-Online|TUG-Online]] Teilnehmer zugeteilt werden. Spätere Verschiebungen müssen aber auch händisch möglich sein, da sich nach dem Anfang manchmal noch etwas verschieben kann. <br />
* Entsprechende Links zu TUG-Online Infos zur LV, WiKi und Skriptum sollten vorhanden sein, damit man diese rasch abrufen kann. <br />
* Ziel sollte sein, möglichst wenig Daten, die z.B. in TUG-Online sind zu duplizieren.<br />
* Datum und Zeit der Abhaltung werden wir wohl da und dort eintragen müssen, da das auch auf Seiten des MLTutor wichtig ist für die Abgabetermine. <br />
<br />
== Lehrende und Tutoren ==<br />
Auch für Lehrende und Tutoren werden wir Metadaten in der Datenbank brauchen. Diese können dann wieder LVs bzw. Gruppen zugeordnet werden. Für die Studierenden soll leicht einsehbar sein, wer ihnen helfen kann und wie man ihm eine E-mail schickt.<br />
<br />
== Austausch mit TUG-Online ==<br />
Vom TUG-Online werden Teilnehmerlisten für die einzelnen Gruppen in einer Comma Separated List exportiert, die unter anderem Vorname, Nachname, Matrikelnummer und Email-Addresse beinhaltet. Diese Daten müssen übernommen werden können. Was dabei natürlich fehlt, sind die Benutzernamen auf unserem Linux-System. Diese Verbindung sollte hergestellt werden, damit völlig klar ist, welcher Student welcher Benutzer bei uns ist. Die Studierenden sollen ausser die Anmeldung für die LV im TUG-Online und die Anmeldung für unsere Accounts keine weitere Registrierung vornehmen müssen.<br />
<br />
:Ich nehme mal an, dass es für jeden Studierenden einen Eintrag in die Datenbank geben wird, wo alle seine Metadaten gespeichert sind.<br />
<br />
== Zuordnung von Beispielen zu einer LV ==<br />
Beispiele im MLTutor sollten (mehreren) Lehrveranstaltungen (bzw. später auch Prüfungen) zugeordnet werden können. Andere nicht zugeordnetet Beispiele sollen aber von den Studierenden natürlich auch gemacht werden können. Irgendwie muss es da einen unterschiedlichen Status für verschiedene Beispiele geben, die quasi zu einer Einheit gehören. Da sollte man auch auf das Skriptum verweisen können oder noch einen einleitenden Text schreiben können.<br />
* Empfohlene Vorbereitung - kann gemacht und abgegeben werden<br />
* Notwendig - muss bis zu einem gewissen Termin abgegeben werden. Der Termin kann von Gruppe zu Gruppe unterschiedlich sein. Sie können natürlich auch nach dem Termin noch abgeben werden. Bei uns sollte es kein Hard-Limit geben. Für andere Vortragende oder andere LVs wären vielleicht auch Hard-Limits in Zukunft interessant. <br />
* Freiwillig - kann gemacht werden und wirkt sich positiv auf die Note aus.<br />
<br />
Studierende sollte jedenfalls bevorzugt die Beipiele sehen, die sie aktuell machen müssen, bzw. natürlich auch ganz prominent die, die schon überfällig sind. Die anderen sollen sie natürlich auch zugänglich haben. Es wird wohl irgendwie für uns schwierig sein, dafür zu sorgen, dass der Baum mit den Beispielen nicht zu riesig wird.<br />
<br />
Man muss natürlich auch Beispiele einer Prüfung zuordnen können. Diese sollten dann natürlich erst ab einem fixem Zeitpunkt sichtbar sein.<br />
<br />
= Studierende =<br />
Was sollen Studierende mit dem MLTutor machen können. <br />
<br />
== Grundlegendes ==<br />
Die Wunschvorstellung wäre, dass Studierende relativ übersichtlich und ohne verwirrenden Overhead die einzelnen Arbeiten für die Übungen machen können. Dazu notwendig ist Folgendes:<br />
* Übersichtliche Darstellung der notwendigen Aufgaben und der dazugehörigen Abgabetermine<br />
* Leichter Zugang zu Skriptum, Matlab-Hilfe, Wiki<br />
* Leichte Möglichkeit eine Email an Vortragenden oder Tutor zu schreiben<br />
* Kein allzu großer Unterschied beim Arbeiten im Computerraum oder am Heim-PC<br />
* Abgabe von Beispielen<br />
* Erhalt von Informationen, Korrekturen, Anmerkungen <br />
* Leichte Update-Möglichkeit wenn sich der MLTutor oder Inhalt geändert hat<br />
* Sicht der eigenen Statistik - abgegeben, in Ordung, fehlerhaft, überfällig, ...<br />
* Möglichkeit zu Bemerkungen, Kommentaren, Fehlerberichten zu MLTutor oder zu einzelnen Beispielen<br />
* In einem Modus für Fortgeschrittene sollte es auch möglich sein die</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=MLTutor_Ablaufplanung&diff=3674MLTutor Ablaufplanung2005-11-09T16:49:50Z<p>Winny: </p>
<hr />
<div>Diese Seite soll Grundlagen für die Ablaufplanung bei der Verwendung von MLTutor liefern. Hier sind sicher Details dabei, die sich momentan nicht realisieren lassen. Andere werden von Anfang an extrem wichtig sein.<br />
<br />
= Wartung der Lehrveranstaltung =<br />
Einige der hier besprochenen Tasks müssen sicher nicht von Anfang an über GUIs durchführbar sein. Sie können durchaus über externe Aufrufe ausgeführt werden. Die Funktionalität an sich, scheint aber von Anfang an extrem wichtig zu sein.<br />
<br />
== Anlegen einer Lehrveranstaltung ==<br />
Der MLTutor sollte von Anfang an für die Benutzung in mehreren Lehrveranstaltungen konzipiert sein, wobei jede LV in mehrere Gruppen aufgeteilt sein kann. Zumindest muss eine Standardgruppe definiert sein. Der LV bzw. Gruppe sind dann Lehrende und Tutoren zugeordnet.<br />
* Wichtig ist auch das Jahr der Abhaltung, da alte LVs und ihre Teilnehmer und sonstige Metadaten auf keinen Fall verschwinden sollen.<br />
* Den Gruppen sollen am Anfang über die Daten vom [[MLTutor Ablaufplanung#Austausch mit TUG-Online|TUG-Online]] Teilnehmer zugeteilt werden. Spätere Verschiebungen müssen aber auch händisch möglich sein, da sich nach dem Anfang manchmal noch etwas verschieben kann. <br />
<br />
<br />
== Lehrende und Tutoren ==<br />
Auch für Lehrende und Tutoren werden wir Metadaten in der Datenbank brauchen. Diese können dann wieder LVs bzw. Gruppen zugeordnet werden.<br />
<br />
<br />
== Austausch mit TUG-Online ==<br />
Vom TUG-Online werden Teilnehmerlisten für die einzelnen Gruppen in einer Comma Separated List exportiert, die unter anderem Vorname, Nachname, Matrikelnummer und Email-Addresse beinhaltet. Diese Daten müssen übernommen werden können. Was dabei natürlich fehlt, sind die Benutzernamen auf unserem Linux-System. Diese Verbindung sollte hergestellt werden, damit völlig klar ist, welcher Student welcher Benutzer bei uns ist. Die Studierenden sollen ausser die Anmeldung für die LV im TUG-Online und die Anmeldung für unsere Accounts keine weitere Registrierung vornehmen müssen.<br />
<br />
:Ich nehme mal an, dass es für jeden Studierenden einen Eintrag in die Datenbank geben wird, wo alle seine Metadaten gespeichert sind.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=MLTutorBeispielerstellung&diff=3657MLTutorBeispielerstellung2005-11-08T15:41:03Z<p>Winny: /* Beispiel2 */</p>
<hr />
<div>== Beispiel2 ==<br />
Projektverzeichnissname:<br />
<b>andrej.sommer2005.aufgabe2a</b><br><br />
Weis nicht ob es so gedacht war, aber jedenfalls die erste aufgabe mit Testscript:<br />
<br />
Nur eine Anmerkung: Das Überprüfen des Ergebnisses vom Studenten übernimmt das MLTutor-Programm, aber im Prinzip läuft es genau so ab, wie du es geschrieben hast. Wenn du selber die Überprüfung übernehmen willst, dann kannst du natürlich gerne deine eigene Routine schreiben, aber im ml_test1_check.m würde bei diesem Test nur <br />
V2,F2,R2,r2 <br />
drinnenstehen, damit das Programm weiß, welche Variablen überprüft werden sollten. Im XML-File, dass man dazu erstellt, kann man dann definieren, mit welcher Genauigkeit der Check abläuft und ähnliches.<br />
--[[User:Camhy|Camhy]] 15:39, 3 Nov 2005 (CET)<br />
<br />
Ich bin total dagegen, dass jemand eigene Überprüfungsroutinen schreibt. Das gehört total zum mlTutor und hat überhaupt nichts mit den Beispielen selbst zu tun. Bitte unbedingt nur die Syntax von David verwenden. Wenn irgendetaws für den gewünschten Test nicht ausreicht, dann unbedingt als Anregung an David und mich leiten. Dann müssen wir uns auf Seite des mlTutor darum kümmern.<br />
--[[User:Winny|Winny]] 16:40, 8 Nov 2005 (CET)<br />
<br />
<br><br />
=== regpol.m ===<br />
<pre><br />
function [V,F,R,r]=regpol(typ,a)<br />
<br />
switch lower(typ(1))<br />
case 't'<br />
V=a^3/12*sqrt(2);<br />
F=a^2*sqrt(3);<br />
R=a/4*sqrt(6);<br />
r=a/12*sqrt(6);<br />
case 'w'<br />
V=a^3;<br />
F=6*a^2;<br />
R=a/2*sqrt(3);<br />
r=a/2;<br />
case 'o'<br />
V=a^3/3*sqrt(2);<br />
F=2*a^2*sqrt(3);<br />
R=a/2*sqrt(2);<br />
r=a/6*sqrt(6);<br />
case 'd'<br />
V=a^3/4*(15+7*sqrt(5));<br />
F=3*a^2*sqrt(5*(5+2*sqrt(5)));<br />
R=a/4*(1+sqrt(5))*sqrt(3);<br />
r=a/4*sqrt((50+22*sqrt(5))/5);<br />
case 'i'<br />
V=5*a^3/12*(3+sqrt(5));<br />
F=5*a^2*sqrt(3);<br />
R=a/4*sqrt(2*(5+sqrt(5)));<br />
r=a/2*sqrt((7+3*sqrt(5))/6);<br />
end<br />
</pre><br />
<br />
=== ml_test1_after.m ===<br />
<pre><br />
typ = 'W';<br />
a=2;<br />
[V2,F2,R2,r2] = regpol(typ,a);<br />
</pre><br />
<br />
=== ml_test1_check.m ===<br />
<pre><br />
switch lower(typ(1))<br />
case 't'<br />
V=a^3/12*sqrt(2);<br />
F=a^2*sqrt(3);<br />
R=a/4*sqrt(6);<br />
r=a/12*sqrt(6);<br />
case 'w'<br />
V=a^3;<br />
F=6*a^2;<br />
R=a/2*sqrt(3);<br />
r=a/2;<br />
case 'o'<br />
V=a^3/3*sqrt(2);<br />
F=2*a^2*sqrt(3);<br />
R=a/2*sqrt(2);<br />
r=a/6*sqrt(6);<br />
case 'd'<br />
V=a^3/4*(15+7*sqrt(5));<br />
F=3*a^2*sqrt(5*(5+2*sqrt(5)));<br />
R=a/4*(1+sqrt(5))*sqrt(3);<br />
r=a/4*sqrt((50+22*sqrt(5))/5);<br />
case 'i'<br />
V=5*a^3/12*(3+sqrt(5));<br />
F=5*a^2*sqrt(3);<br />
R=a/4*sqrt(2*(5+sqrt(5)));<br />
r=a/2*sqrt((7+3*sqrt(5))/6);<br />
end<br />
<br />
variable_names = {'V','F','R','r'};<br />
variable_student = {V2,F2,R2,r2};<br />
variable_tutor = {V,F,R,r};<br />
<br />
for j=[1:numel(variable_names)]<br />
if check(variable_student{j},variable_tutor{j})<br />
disp([variable_names{j},' richtig berechnet']);<br />
else<br />
disp([variable_names{j},' falsch berechnet']);<br />
end<br />
end<br />
</pre><br />
<br />
Mit der check.m funktion<br />
=== check.m ===<br />
<br />
<pre><br />
function result = check(a,b)<br />
if abs(a-b) < 10*eps()<br />
result = 1;<br />
else<br />
result = 0;<br />
end<br />
</pre></div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=MLTutorBeispielerstellung&diff=3656MLTutorBeispielerstellung2005-11-08T15:32:02Z<p>Winny: /* Beispiel2 */</p>
<hr />
<div>== Beispiel2 ==<br />
Projektverzeichnissname:<br />
<b>andrej.sommer2005.aufgabe2a</b><br><br />
Weis nicht ob es so gedacht war, aber jedenfalls die erste aufgabe mit Testscript:<br />
<br />
Nur eine Anmerkung: Das Überprüfen des Ergebnisses vom Studenten übernimmt das MLTutor-Programm, aber im Prinzip läuft es genau so ab, wie du es geschrieben hast. Wenn du selber die Überprüfung übernehmen willst, dann kannst du natürlich gerne deine eigene Routine schreiben, aber im ml_test1_check.m würde bei diesem Test nur <br />
V2,F2,R2,r2 <br />
drinnenstehen, damit das Programm weiß, welche Variablen überprüft werden sollten. Im XML-File, dass man dazu erstellt, kann man dann definieren, mit welcher Genauigkeit der Check abläuft und ähnliches.<br />
--[[User:Camhy|Camhy]] 15:39, 3 Nov 2005 (CET)<br />
<br />
Ich bin total dagegen, dass jemand eigene Überprüfungsroutinen schreibt. Das gehört total zum mlTutor und hat überhaupt nichts mit den Beispielen selbst zu tun. Bitte unbedingt nur die Syntax von David verwenden. Wenn irgendetaws für den gewünschten Test nicht ausreicht, dann unbedingt als Anregung an David und mich leiten. Dann müssen wir uns auf Seite des mlTutor darum kümmern.<br />
<br />
<br />
<br><br />
=== regpol.m ===<br />
<pre><br />
function [V,F,R,r]=regpol(typ,a)<br />
<br />
switch lower(typ(1))<br />
case 't'<br />
V=a^3/12*sqrt(2);<br />
F=a^2*sqrt(3);<br />
R=a/4*sqrt(6);<br />
r=a/12*sqrt(6);<br />
case 'w'<br />
V=a^3;<br />
F=6*a^2;<br />
R=a/2*sqrt(3);<br />
r=a/2;<br />
case 'o'<br />
V=a^3/3*sqrt(2);<br />
F=2*a^2*sqrt(3);<br />
R=a/2*sqrt(2);<br />
r=a/6*sqrt(6);<br />
case 'd'<br />
V=a^3/4*(15+7*sqrt(5));<br />
F=3*a^2*sqrt(5*(5+2*sqrt(5)));<br />
R=a/4*(1+sqrt(5))*sqrt(3);<br />
r=a/4*sqrt((50+22*sqrt(5))/5);<br />
case 'i'<br />
V=5*a^3/12*(3+sqrt(5));<br />
F=5*a^2*sqrt(3);<br />
R=a/4*sqrt(2*(5+sqrt(5)));<br />
r=a/2*sqrt((7+3*sqrt(5))/6);<br />
end<br />
</pre><br />
<br />
=== ml_test1_after.m ===<br />
<pre><br />
typ = 'W';<br />
a=2;<br />
[V2,F2,R2,r2] = regpol(typ,a);<br />
</pre><br />
<br />
=== ml_test1_check.m ===<br />
<pre><br />
switch lower(typ(1))<br />
case 't'<br />
V=a^3/12*sqrt(2);<br />
F=a^2*sqrt(3);<br />
R=a/4*sqrt(6);<br />
r=a/12*sqrt(6);<br />
case 'w'<br />
V=a^3;<br />
F=6*a^2;<br />
R=a/2*sqrt(3);<br />
r=a/2;<br />
case 'o'<br />
V=a^3/3*sqrt(2);<br />
F=2*a^2*sqrt(3);<br />
R=a/2*sqrt(2);<br />
r=a/6*sqrt(6);<br />
case 'd'<br />
V=a^3/4*(15+7*sqrt(5));<br />
F=3*a^2*sqrt(5*(5+2*sqrt(5)));<br />
R=a/4*(1+sqrt(5))*sqrt(3);<br />
r=a/4*sqrt((50+22*sqrt(5))/5);<br />
case 'i'<br />
V=5*a^3/12*(3+sqrt(5));<br />
F=5*a^2*sqrt(3);<br />
R=a/4*sqrt(2*(5+sqrt(5)));<br />
r=a/2*sqrt((7+3*sqrt(5))/6);<br />
end<br />
<br />
variable_names = {'V','F','R','r'};<br />
variable_student = {V2,F2,R2,r2};<br />
variable_tutor = {V,F,R,r};<br />
<br />
for j=[1:numel(variable_names)]<br />
if check(variable_student{j},variable_tutor{j})<br />
disp([variable_names{j},' richtig berechnet']);<br />
else<br />
disp([variable_names{j},' falsch berechnet']);<br />
end<br />
end<br />
</pre><br />
<br />
Mit der check.m funktion<br />
=== check.m ===<br />
<br />
<pre><br />
function result = check(a,b)<br />
if abs(a-b) < 10*eps()<br />
result = 1;<br />
else<br />
result = 0;<br />
end<br />
</pre></div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=LaTeX&diff=2749LaTeX2005-10-24T06:55:19Z<p>Winny: /* Wo LaTeX noch vorkommt */</p>
<hr />
<div>==Einstieg==<br />
LaTeX ist ein Textsatzsystem. Bei LaTeX schreibt man den Quellcode in reinem<br />
Text (ähnlich einer Programmiersprache) in einem beliebigen Editor und lässt<br />
diesen Text dann durch das Programm <tt> latex </tt> kompilieren. Das<br />
Ergebnis ist eine DVI-Datei (Device Independent = Geräte unabhängig), die<br />
dann in weitere, gängige Formate wie zum Beispiel Postscript und PDF<br />
konvertiert werden kann.<br />
<br />
Besonders zum schreiben von Protokollen und wissenschaftlichen Texten mit<br />
vielen Formeln ist LaTeX sehr gut geeignet. Die meisten Scripte der TU-Graz<br />
sind mit LaTeX geschrieben. Um sich mit Latex zurechtzufinden braucht man<br />
ungefähr einen halben Tag. Dieser Aufwand dürfte es aber wert sein.<br />
<br />
Ein [[LaTeX Beispiel]]<br />
<br />
==Editoren== <br />
Als Editor sollte entweder [[Emacs]] oder die<br />
Entwicklungsumgebung [[Kile]] verwendet werden. Kile bietet viele<br />
Erleichterungen (vor allem der Einstieg wird wesentlich erleichtert).<br />
So ist das Einfügen von Pfeilen, mathematischen Symbolen und Ähnlichem<br />
mit Hilfe von Icons möglich. Weiters kann der Sourcecode mit Hilfe von<br />
Knöpfen in der Toolbar kompiliert und betrachtet werden.<br />
<br />
==LaTeX kompilieren, konvertiern, ansehen, drucken==<br />
===Kompilieren===<br />
Mit<br />
$ latex <dokument.tex><br />
wird eine Datei dokument.dvi erzeugt.<br />
Der Befehl<br />
$ pdflatex <dokument.tex><br />
erzeugt eine pdf-Datei.<br />
===Konvertieren===<br />
Um eine dvi-Datei in ein PDF oder ein PS umzuwandeln:<br />
$ dvipdf <dokument.dvi><br />
oder<br />
$ dvips <dokument.dvi><br />
<br />
===Ansehen===<br />
DVIs öffnet man mit dem Befehl<br />
$ xdvi <dokument.dvi>.<br />
PDFs werden wie gewohnt mit<br />
$ acroread <dokument.pdf><br />
und ps-Dateien mit<br />
$ gv <dokument.ps><br />
geöffnet.<br />
===Drucken===<br />
<br />
Um kompilierte Dateien zu drucken, sind sie entweder in ein PS oder<br />
PDF zu verwandeln. DVIs können nicht direkt gedruckt werden. Wie ps-<br />
und pdf-Dateien gedruckt werden können, ist auf der Seite [[Drucken]]<br />
zu finden.<br />
<br />
== Bilder in LaTeX Dokumente einbinden ==<br />
Bilder einzubinden kann etwas umständlich sein, da LaTeX nur mit<br />
Grafiken im '''eps''' (Encapsulated Postscript) oder '''ps''' Format<br />
etwas anfangen kann. Mit dem [[Kommandozeilen]] Befehl<br />
<tt>jpeg2ps</tt> lassen sich '''jpeg''' Grafiken in '''ps''' Grafiken<br />
umwandeln. Mit <tt>gif2tiff</tt> und dann <tt>tiff2ps</tt> geht das<br />
auch mit '''gif''' Grafiken. Alternativ gibt es auch das Programm<br />
convert<br />
$ convert bildname.jpg bildname.eps<br />
oder<br />
$ convert bildname.gif bildname.eps<br />
<br />
<tt>convert</tt> beherrscht extrem viele bildformate und hat viele<br />
optionen wie Bildskalierung und Drehung. Weitere Inforamtionen git es<br />
auf [http://www.imagemagick.com/www/convert.html#usage<br />
ImageMagick->convert] und bei <tt>man convert</tt><br />
<br />
Im Computerraum Physik und am Institut steht eine Skript <tt><br />
LaTeX-pictures </tt> zur Verfügung, das mit Bildern in den Formaten<br />
EPS, JPG und PNG umgehen kann. Die Bilder werden jeweils so<br />
konvertiert, daß sowohl LaTeX, pdfLaTeX und latex2html damit sinnvoll<br />
arbeiten können. Details dazu stehen in userem Beispieldokument zum<br />
Projekt "Multimediale Lehre" unter<br />
http://itp.tugraz.at/MML/beispiel/beispiel/ im Abschnitt "Verwenden<br />
von Bildern".<br />
<br />
== Präsentationen mit LaTeX ==<br />
Um Bildschirmpräsentationen zu erstellen, eignen sich folgende Pakete:<br />
* [http://prosper.sourceforge.net/ Prosper]<br />
* [http://stuwww.uvt.nl/~hendri/index.html?/~hendri/Downloads/haprosper.html&mainframeha HA-Prosper]<br />
* [http://latex-beamer.sourceforge.net/ LaTeX-Beamer]<br />
<br />
== Wo LaTeX noch vorkommt ==<br />
Die Latex-Bibliotheken werden von vielen Systemen unterstützt. Auch von<br />
dieser Wikipedia site!<br />
<br />
<br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} \;\; n \;\;\mbox{is even} \\ 3n+1, & \mbox{if} \;\; n \;\; \mbox{is odd} \end{cases}<br />
</math><br />
<br />
Und so sieht dieser Artikel-code aus:<br><br />
<pre><br />
<nowiki><br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} \;\; n \;\; \mbox{is even} \\ 3n+1, & \mbox{if} \;\; n \;\; \mbox{is odd} \end{cases}<br />
</math><br />
</nowiki><br />
</pre><br />
<br />
Mehr über LaTeX in wikipedia: [http://meta.wikimedia.org/wiki/Help:Formula<br />
Help:Formula]<br />
<br />
Auch [[Matlab]] unterstützt teilweise die Mathematischen Umgebungen von<br />
Latex. Etwa bei den Beschriftungen der Plots.<br />
<br />
== Manuals ==<br />
<br />
=== Online Manuals ===<br />
Online-Katalog aller Pakete und Tools:<br />
[http://www.dante.de/CTAN/help/Catalogue/alpha.html Latex-Katalog]<br />
<br />
Eine kurze Einführung:<br />
[http://www.ctan.org/tex-archive/info/lshort/german/ LaTeX2e-Kurzbeschreibung]<br />
<br />
Eine kurze Einführung hat Daniel Tscharnuter geschrieben:<br />
[http://physik.htu.tugraz.at/wiki/index.php/LaTeX LaTeX-Einführung]<br />
<br />
Sehr zu empfehlen ist auch [http://latex.tugraz.at/ LaTeX@TUG] hier gibt es<br />
eine ausführlichere Anleitung mit Latex Vorlagen.<br />
<br />
Von der Institutssite:<br />
[http://itp.tugraz.at/Comp/Manual/man-user-node8.html#SECTION00082000000000000000 LaTeX im Computerraum]<br />
<br />
Mathematik-Einführung für LaTeX:<br />
[http://skadi.algebra.math.uni-siegen.de/~peters/mathe.pdf Mathematik mit LaTeX] (pdf)<br />
<br />
=== Lokale Manuals ===<br />
* '''/usr/share/doc/texmf/help/Catalogue/catalogue.html''' <br><br />
(Hier sind fast alle Packages aufgelistet, mit Links zu den einzelnen<br />
Dokumentationen; '''ACHTUNG''': Die online-Version dieses Kataloges<br />
ist aufgrund seiner Aktualität zu bevorzugen)<br />
Weitere manuals:<br />
* /usr/share/doc/texmf/index.html<br />
* /usr/share/doc/texmf/latex/latex2e-html/index.html<br />
<br />
=== Links ===<br />
* [http://www.latex-project.org/ LaTeX: A document preparation system]<br />
* [http://www.tug.org/ TUG - TeX Users Group Information]<br />
* [http://www.dante.de/ DANTE - German TeX Users Group]<br />
* [http://www.dante.de/faq/ Fragen und Antworten über TeX, LaTeX und DANTE]<br />
* [http://www.dante.de/faq/de-tex-faq/ Fragen und Antworten über TeX, LaTeX und DANTE (DE-TeX-FAQ)]<br />
* [http://www.dante.de/cgi-bin/ctan-index CTAN - Comprehensive TeX Archive Network]<br />
* [http://www.tug.org/fonts/ Fonts and TeX]<br />
* [http://www.tug.org/texshowcase/ TeX showcase]<br />
* [http://www-texdev.mpce.mq.edu.au/l2h/docs/manual/ The LaTeX2HTML Translator]<br />
<br />
<br />
== Problemlösungen, Tipps ==<br />
=== Lebenslauf mit europecv ===<br />
Die europäische Kommission hat kürzlich Richtlinien für Lebensläufe herausgegeben, stellt jedoch nur Word-Vorlagen zur Verfügung. europecv ist eine nicht-offizielle LaTeX-Klasse, mit der man einen europäischen "Normlebenslauf" ähnlich wie mit den Klassen cv, currvita, usw. erstellen kann. <br />
<br />
Das Paket und Dokumentation findet man z.B. [http://texcatalogue.sarovar.org/entries/europecv.html hier] <br><br />
Für Windows-User ist das Paket in der aktuellen MikTex-Version enthalten.<br />
<br />
Falls es jemanden stört, dass der Lebenslauf mit "Europäisches Lebenslauf-Muster" betitelt ist, so lässt sich das am Begin des Files <tt>ecvLA.def</tt> ändern, wobei <tt>LA</tt> für die Sprachkennung (zwei Kleinbuchstaben) steht.<br />
<br />
=== Präsentation mit der Dokumentklasse beamer ===<br />
Mit beamer lassen sich schnell und einfach sehr ansprechende Präsentationen generieren. Der (Minimal-)Ablauf ist folgender: <br />
* Dokumentklasse beamer verwenden<br />
* Eines der zahlreichen vorgefertigten Layouts auswählen<br />
* Farbschema auswählen<br />
* Folien erstellen (mit <tt>\frame{...}</tt> )<br />
* Grobeiteilung innerhalb einer Folie mit Blöcken ( <tt>\begin{block} ... \end{block}</tt> ) <br />
* Zeitliche Abfolgen innerhalb einer Folie (wie z.B. Elemente nacheinander einblenden) mit <tt>\pause</tt><br />
<br />
Eine Einteilung mit <tt>\section</tt> usw. ist möglich. Diese kann auch angezeigt werden, wobei das aktuelle Kapitel hervorgehoben wird. <br />
<br />
Das Betrachten über DVI funktioniert nur bedingt, am Besten gleich pdf erzeugen und dieses anschauen. <br />
<br />
Eine kurze '''Einführung''' samt '''Bildern''' von drei Layouts findet sich [http://www.pro-linux.de/t_office/latex-beamer.html hier]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=LaTeX&diff=1938LaTeX2005-10-24T06:53:58Z<p>Winny: /* Wo LaTeX noch vorkommt */</p>
<hr />
<div>==Einstieg==<br />
LaTeX ist ein Textsatzsystem. Bei LaTeX schreibt man den Quellcode in reinem<br />
Text (ähnlich einer Programmiersprache) in einem beliebigen Editor und lässt<br />
diesen Text dann durch das Programm <tt> latex </tt> kompilieren. Das<br />
Ergebnis ist eine DVI-Datei (Device Independent = Geräte unabhängig), die<br />
dann in weitere, gängige Formate wie zum Beispiel Postscript und PDF<br />
konvertiert werden kann.<br />
<br />
Besonders zum schreiben von Protokollen und wissenschaftlichen Texten mit<br />
vielen Formeln ist LaTeX sehr gut geeignet. Die meisten Scripte der TU-Graz<br />
sind mit LaTeX geschrieben. Um sich mit Latex zurechtzufinden braucht man<br />
ungefähr einen halben Tag. Dieser Aufwand dürfte es aber wert sein.<br />
<br />
Ein [[LaTeX Beispiel]]<br />
<br />
==Editoren== <br />
Als Editor sollte entweder [[Emacs]] oder die<br />
Entwicklungsumgebung [[Kile]] verwendet werden. Kile bietet viele<br />
Erleichterungen (vor allem der Einstieg wird wesentlich erleichtert).<br />
So ist das Einfügen von Pfeilen, mathematischen Symbolen und Ähnlichem<br />
mit Hilfe von Icons möglich. Weiters kann der Sourcecode mit Hilfe von<br />
Knöpfen in der Toolbar kompiliert und betrachtet werden.<br />
<br />
==LaTeX kompilieren, konvertiern, ansehen, drucken==<br />
===Kompilieren===<br />
Mit<br />
$ latex <dokument.tex><br />
wird eine Datei dokument.dvi erzeugt.<br />
Der Befehl<br />
$ pdflatex <dokument.tex><br />
erzeugt eine pdf-Datei.<br />
===Konvertieren===<br />
Um eine dvi-Datei in ein PDF oder ein PS umzuwandeln:<br />
$ dvipdf <dokument.dvi><br />
oder<br />
$ dvips <dokument.dvi><br />
<br />
===Ansehen===<br />
DVIs öffnet man mit dem Befehl<br />
$ xdvi <dokument.dvi>.<br />
PDFs werden wie gewohnt mit<br />
$ acroread <dokument.pdf><br />
und ps-Dateien mit<br />
$ gv <dokument.ps><br />
geöffnet.<br />
===Drucken===<br />
<br />
Um kompilierte Dateien zu drucken, sind sie entweder in ein PS oder<br />
PDF zu verwandeln. DVIs können nicht direkt gedruckt werden. Wie ps-<br />
und pdf-Dateien gedruckt werden können, ist auf der Seite [[Drucken]]<br />
zu finden.<br />
<br />
== Bilder in LaTeX Dokumente einbinden ==<br />
Bilder einzubinden kann etwas umständlich sein, da LaTeX nur mit<br />
Grafiken im '''eps''' (Encapsulated Postscript) oder '''ps''' Format<br />
etwas anfangen kann. Mit dem [[Kommandozeilen]] Befehl<br />
<tt>jpeg2ps</tt> lassen sich '''jpeg''' Grafiken in '''ps''' Grafiken<br />
umwandeln. Mit <tt>gif2tiff</tt> und dann <tt>tiff2ps</tt> geht das<br />
auch mit '''gif''' Grafiken. Alternativ gibt es auch das Programm<br />
convert<br />
$ convert bildname.jpg bildname.eps<br />
oder<br />
$ convert bildname.gif bildname.eps<br />
<br />
<tt>convert</tt> beherrscht extrem viele bildformate und hat viele<br />
optionen wie Bildskalierung und Drehung. Weitere Inforamtionen git es<br />
auf [http://www.imagemagick.com/www/convert.html#usage<br />
ImageMagick->convert] und bei <tt>man convert</tt><br />
<br />
Im Computerraum Physik und am Institut steht eine Skript <tt><br />
LaTeX-pictures </tt> zur Verfügung, das mit Bildern in den Formaten<br />
EPS, JPG und PNG umgehen kann. Die Bilder werden jeweils so<br />
konvertiert, daß sowohl LaTeX, pdfLaTeX und latex2html damit sinnvoll<br />
arbeiten können. Details dazu stehen in userem Beispieldokument zum<br />
Projekt "Multimediale Lehre" unter<br />
http://itp.tugraz.at/MML/beispiel/beispiel/ im Abschnitt "Verwenden<br />
von Bildern".<br />
<br />
== Präsentationen mit LaTeX ==<br />
Um Bildschirmpräsentationen zu erstellen, eignen sich folgende Pakete:<br />
* [http://prosper.sourceforge.net/ Prosper]<br />
* [http://stuwww.uvt.nl/~hendri/index.html?/~hendri/Downloads/haprosper.html&mainframeha HA-Prosper]<br />
* [http://latex-beamer.sourceforge.net/ LaTeX-Beamer]<br />
<br />
== Wo LaTeX noch vorkommt ==<br />
Die Latex-Bibliotheken werden von vielen Systemen unterstützt. Auch von<br />
dieser Wikipedia site!<br />
<br />
<br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} \; n ;\mbox{is even} \\ 3n+1, & \mbox{if} n \mbox{is odd} \end{cases}<br />
</math><br />
<br />
Und so sieht dieser Artikel-code aus:<br><br />
<pre><br />
<nowiki><br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} n \mbox{is even} \\ 3n+1, & \mbox{if} n \mbox{is odd} \end{cases}<br />
</math><br />
</nowiki><br />
</pre><br />
<br />
Mehr über LaTeX in wikipedia: [http://meta.wikimedia.org/wiki/Help:Formula<br />
Help:Formula]<br />
<br />
Auch [[Matlab]] unterstützt teilweise die Mathematischen Umgebungen von<br />
Latex. Etwa bei den Beschriftungen der Plots.<br />
<br />
== Manuals ==<br />
<br />
=== Online Manuals ===<br />
Online-Katalog aller Pakete und Tools:<br />
[http://www.dante.de/CTAN/help/Catalogue/alpha.html Latex-Katalog]<br />
<br />
Eine kurze Einführung:<br />
[http://www.ctan.org/tex-archive/info/lshort/german/ LaTeX2e-Kurzbeschreibung]<br />
<br />
Eine kurze Einführung hat Daniel Tscharnuter geschrieben:<br />
[http://physik.htu.tugraz.at/wiki/index.php/LaTeX LaTeX-Einführung]<br />
<br />
Sehr zu empfehlen ist auch [http://latex.tugraz.at/ LaTeX@TUG] hier gibt es<br />
eine ausführlichere Anleitung mit Latex Vorlagen.<br />
<br />
Von der Institutssite:<br />
[http://itp.tugraz.at/Comp/Manual/man-user-node8.html#SECTION00082000000000000000 LaTeX im Computerraum]<br />
<br />
Mathematik-Einführung für LaTeX:<br />
[http://skadi.algebra.math.uni-siegen.de/~peters/mathe.pdf Mathematik mit LaTeX] (pdf)<br />
<br />
=== Lokale Manuals ===<br />
* '''/usr/share/doc/texmf/help/Catalogue/catalogue.html''' <br><br />
(Hier sind fast alle Packages aufgelistet, mit Links zu den einzelnen<br />
Dokumentationen; '''ACHTUNG''': Die online-Version dieses Kataloges<br />
ist aufgrund seiner Aktualität zu bevorzugen)<br />
Weitere manuals:<br />
* /usr/share/doc/texmf/index.html<br />
* /usr/share/doc/texmf/latex/latex2e-html/index.html<br />
<br />
=== Links ===<br />
* [http://www.latex-project.org/ LaTeX: A document preparation system]<br />
* [http://www.tug.org/ TUG - TeX Users Group Information]<br />
* [http://www.dante.de/ DANTE - German TeX Users Group]<br />
* [http://www.dante.de/faq/ Fragen und Antworten über TeX, LaTeX und DANTE]<br />
* [http://www.dante.de/faq/de-tex-faq/ Fragen und Antworten über TeX, LaTeX und DANTE (DE-TeX-FAQ)]<br />
* [http://www.dante.de/cgi-bin/ctan-index CTAN - Comprehensive TeX Archive Network]<br />
* [http://www.tug.org/fonts/ Fonts and TeX]<br />
* [http://www.tug.org/texshowcase/ TeX showcase]<br />
* [http://www-texdev.mpce.mq.edu.au/l2h/docs/manual/ The LaTeX2HTML Translator]<br />
<br />
<br />
== Problemlösungen, Tipps ==<br />
=== Lebenslauf mit europecv ===<br />
Die europäische Kommission hat kürzlich Richtlinien für Lebensläufe herausgegeben, stellt jedoch nur Word-Vorlagen zur Verfügung. europecv ist eine nicht-offizielle LaTeX-Klasse, mit der man einen europäischen "Normlebenslauf" ähnlich wie mit den Klassen cv, currvita, usw. erstellen kann. <br />
<br />
Das Paket und Dokumentation findet man z.B. [http://texcatalogue.sarovar.org/entries/europecv.html hier] <br><br />
Für Windows-User ist das Paket in der aktuellen MikTex-Version enthalten.<br />
<br />
Falls es jemanden stört, dass der Lebenslauf mit "Europäisches Lebenslauf-Muster" betitelt ist, so lässt sich das am Begin des Files <tt>ecvLA.def</tt> ändern, wobei <tt>LA</tt> für die Sprachkennung (zwei Kleinbuchstaben) steht.<br />
<br />
=== Präsentation mit der Dokumentklasse beamer ===<br />
Mit beamer lassen sich schnell und einfach sehr ansprechende Präsentationen generieren. Der (Minimal-)Ablauf ist folgender: <br />
* Dokumentklasse beamer verwenden<br />
* Eines der zahlreichen vorgefertigten Layouts auswählen<br />
* Farbschema auswählen<br />
* Folien erstellen (mit <tt>\frame{...}</tt> )<br />
* Grobeiteilung innerhalb einer Folie mit Blöcken ( <tt>\begin{block} ... \end{block}</tt> ) <br />
* Zeitliche Abfolgen innerhalb einer Folie (wie z.B. Elemente nacheinander einblenden) mit <tt>\pause</tt><br />
<br />
Eine Einteilung mit <tt>\section</tt> usw. ist möglich. Diese kann auch angezeigt werden, wobei das aktuelle Kapitel hervorgehoben wird. <br />
<br />
Das Betrachten über DVI funktioniert nur bedingt, am Besten gleich pdf erzeugen und dieses anschauen. <br />
<br />
Eine kurze '''Einführung''' samt '''Bildern''' von drei Layouts findet sich [http://www.pro-linux.de/t_office/latex-beamer.html hier]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=LaTeX&diff=1937LaTeX2005-10-24T06:53:06Z<p>Winny: /* Wo LaTeX noch vorkommt */</p>
<hr />
<div>==Einstieg==<br />
LaTeX ist ein Textsatzsystem. Bei LaTeX schreibt man den Quellcode in reinem<br />
Text (ähnlich einer Programmiersprache) in einem beliebigen Editor und lässt<br />
diesen Text dann durch das Programm <tt> latex </tt> kompilieren. Das<br />
Ergebnis ist eine DVI-Datei (Device Independent = Geräte unabhängig), die<br />
dann in weitere, gängige Formate wie zum Beispiel Postscript und PDF<br />
konvertiert werden kann.<br />
<br />
Besonders zum schreiben von Protokollen und wissenschaftlichen Texten mit<br />
vielen Formeln ist LaTeX sehr gut geeignet. Die meisten Scripte der TU-Graz<br />
sind mit LaTeX geschrieben. Um sich mit Latex zurechtzufinden braucht man<br />
ungefähr einen halben Tag. Dieser Aufwand dürfte es aber wert sein.<br />
<br />
Ein [[LaTeX Beispiel]]<br />
<br />
==Editoren== <br />
Als Editor sollte entweder [[Emacs]] oder die<br />
Entwicklungsumgebung [[Kile]] verwendet werden. Kile bietet viele<br />
Erleichterungen (vor allem der Einstieg wird wesentlich erleichtert).<br />
So ist das Einfügen von Pfeilen, mathematischen Symbolen und Ähnlichem<br />
mit Hilfe von Icons möglich. Weiters kann der Sourcecode mit Hilfe von<br />
Knöpfen in der Toolbar kompiliert und betrachtet werden.<br />
<br />
==LaTeX kompilieren, konvertiern, ansehen, drucken==<br />
===Kompilieren===<br />
Mit<br />
$ latex <dokument.tex><br />
wird eine Datei dokument.dvi erzeugt.<br />
Der Befehl<br />
$ pdflatex <dokument.tex><br />
erzeugt eine pdf-Datei.<br />
===Konvertieren===<br />
Um eine dvi-Datei in ein PDF oder ein PS umzuwandeln:<br />
$ dvipdf <dokument.dvi><br />
oder<br />
$ dvips <dokument.dvi><br />
<br />
===Ansehen===<br />
DVIs öffnet man mit dem Befehl<br />
$ xdvi <dokument.dvi>.<br />
PDFs werden wie gewohnt mit<br />
$ acroread <dokument.pdf><br />
und ps-Dateien mit<br />
$ gv <dokument.ps><br />
geöffnet.<br />
===Drucken===<br />
<br />
Um kompilierte Dateien zu drucken, sind sie entweder in ein PS oder<br />
PDF zu verwandeln. DVIs können nicht direkt gedruckt werden. Wie ps-<br />
und pdf-Dateien gedruckt werden können, ist auf der Seite [[Drucken]]<br />
zu finden.<br />
<br />
== Bilder in LaTeX Dokumente einbinden ==<br />
Bilder einzubinden kann etwas umständlich sein, da LaTeX nur mit<br />
Grafiken im '''eps''' (Encapsulated Postscript) oder '''ps''' Format<br />
etwas anfangen kann. Mit dem [[Kommandozeilen]] Befehl<br />
<tt>jpeg2ps</tt> lassen sich '''jpeg''' Grafiken in '''ps''' Grafiken<br />
umwandeln. Mit <tt>gif2tiff</tt> und dann <tt>tiff2ps</tt> geht das<br />
auch mit '''gif''' Grafiken. Alternativ gibt es auch das Programm<br />
convert<br />
$ convert bildname.jpg bildname.eps<br />
oder<br />
$ convert bildname.gif bildname.eps<br />
<br />
<tt>convert</tt> beherrscht extrem viele bildformate und hat viele<br />
optionen wie Bildskalierung und Drehung. Weitere Inforamtionen git es<br />
auf [http://www.imagemagick.com/www/convert.html#usage<br />
ImageMagick->convert] und bei <tt>man convert</tt><br />
<br />
Im Computerraum Physik und am Institut steht eine Skript <tt><br />
LaTeX-pictures </tt> zur Verfügung, das mit Bildern in den Formaten<br />
EPS, JPG und PNG umgehen kann. Die Bilder werden jeweils so<br />
konvertiert, daß sowohl LaTeX, pdfLaTeX und latex2html damit sinnvoll<br />
arbeiten können. Details dazu stehen in userem Beispieldokument zum<br />
Projekt "Multimediale Lehre" unter<br />
http://itp.tugraz.at/MML/beispiel/beispiel/ im Abschnitt "Verwenden<br />
von Bildern".<br />
<br />
== Präsentationen mit LaTeX ==<br />
Um Bildschirmpräsentationen zu erstellen, eignen sich folgende Pakete:<br />
* [http://prosper.sourceforge.net/ Prosper]<br />
* [http://stuwww.uvt.nl/~hendri/index.html?/~hendri/Downloads/haprosper.html&mainframeha HA-Prosper]<br />
* [http://latex-beamer.sourceforge.net/ LaTeX-Beamer]<br />
<br />
== Wo LaTeX noch vorkommt ==<br />
Die Latex-Bibliotheken werden von vielen Systemen unterstützt. Auch von<br />
dieser Wikipedia site!<br />
<br />
<br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} n \mbox{is even} \\ 3n+1, & \mbox{if} n \mbox{is odd} \end{cases}<br />
</math><br />
<br />
Und so sieht dieser Artikel-code aus:<br><br />
<pre><br />
<nowiki><br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} n \mbox{is even} \\ 3n+1, & \mbox{if} n \mbox{is odd} \end{cases}<br />
</math><br />
</nowiki><br />
</pre><br />
<br />
Mehr über LaTeX in wikipedia: [http://meta.wikimedia.org/wiki/Help:Formula<br />
Help:Formula]<br />
<br />
Auch [[Matlab]] unterstützt teilweise die Mathematischen Umgebungen von<br />
Latex. Etwa bei den Beschriftungen der Plots.<br />
<br />
== Manuals ==<br />
<br />
=== Online Manuals ===<br />
Online-Katalog aller Pakete und Tools:<br />
[http://www.dante.de/CTAN/help/Catalogue/alpha.html Latex-Katalog]<br />
<br />
Eine kurze Einführung:<br />
[http://www.ctan.org/tex-archive/info/lshort/german/ LaTeX2e-Kurzbeschreibung]<br />
<br />
Eine kurze Einführung hat Daniel Tscharnuter geschrieben:<br />
[http://physik.htu.tugraz.at/wiki/index.php/LaTeX LaTeX-Einführung]<br />
<br />
Sehr zu empfehlen ist auch [http://latex.tugraz.at/ LaTeX@TUG] hier gibt es<br />
eine ausführlichere Anleitung mit Latex Vorlagen.<br />
<br />
Von der Institutssite:<br />
[http://itp.tugraz.at/Comp/Manual/man-user-node8.html#SECTION00082000000000000000 LaTeX im Computerraum]<br />
<br />
Mathematik-Einführung für LaTeX:<br />
[http://skadi.algebra.math.uni-siegen.de/~peters/mathe.pdf Mathematik mit LaTeX] (pdf)<br />
<br />
=== Lokale Manuals ===<br />
* '''/usr/share/doc/texmf/help/Catalogue/catalogue.html''' <br><br />
(Hier sind fast alle Packages aufgelistet, mit Links zu den einzelnen<br />
Dokumentationen; '''ACHTUNG''': Die online-Version dieses Kataloges<br />
ist aufgrund seiner Aktualität zu bevorzugen)<br />
Weitere manuals:<br />
* /usr/share/doc/texmf/index.html<br />
* /usr/share/doc/texmf/latex/latex2e-html/index.html<br />
<br />
=== Links ===<br />
* [http://www.latex-project.org/ LaTeX: A document preparation system]<br />
* [http://www.tug.org/ TUG - TeX Users Group Information]<br />
* [http://www.dante.de/ DANTE - German TeX Users Group]<br />
* [http://www.dante.de/faq/ Fragen und Antworten über TeX, LaTeX und DANTE]<br />
* [http://www.dante.de/faq/de-tex-faq/ Fragen und Antworten über TeX, LaTeX und DANTE (DE-TeX-FAQ)]<br />
* [http://www.dante.de/cgi-bin/ctan-index CTAN - Comprehensive TeX Archive Network]<br />
* [http://www.tug.org/fonts/ Fonts and TeX]<br />
* [http://www.tug.org/texshowcase/ TeX showcase]<br />
* [http://www-texdev.mpce.mq.edu.au/l2h/docs/manual/ The LaTeX2HTML Translator]<br />
<br />
<br />
== Problemlösungen, Tipps ==<br />
=== Lebenslauf mit europecv ===<br />
Die europäische Kommission hat kürzlich Richtlinien für Lebensläufe herausgegeben, stellt jedoch nur Word-Vorlagen zur Verfügung. europecv ist eine nicht-offizielle LaTeX-Klasse, mit der man einen europäischen "Normlebenslauf" ähnlich wie mit den Klassen cv, currvita, usw. erstellen kann. <br />
<br />
Das Paket und Dokumentation findet man z.B. [http://texcatalogue.sarovar.org/entries/europecv.html hier] <br><br />
Für Windows-User ist das Paket in der aktuellen MikTex-Version enthalten.<br />
<br />
Falls es jemanden stört, dass der Lebenslauf mit "Europäisches Lebenslauf-Muster" betitelt ist, so lässt sich das am Begin des Files <tt>ecvLA.def</tt> ändern, wobei <tt>LA</tt> für die Sprachkennung (zwei Kleinbuchstaben) steht.<br />
<br />
=== Präsentation mit der Dokumentklasse beamer ===<br />
Mit beamer lassen sich schnell und einfach sehr ansprechende Präsentationen generieren. Der (Minimal-)Ablauf ist folgender: <br />
* Dokumentklasse beamer verwenden<br />
* Eines der zahlreichen vorgefertigten Layouts auswählen<br />
* Farbschema auswählen<br />
* Folien erstellen (mit <tt>\frame{...}</tt> )<br />
* Grobeiteilung innerhalb einer Folie mit Blöcken ( <tt>\begin{block} ... \end{block}</tt> ) <br />
* Zeitliche Abfolgen innerhalb einer Folie (wie z.B. Elemente nacheinander einblenden) mit <tt>\pause</tt><br />
<br />
Eine Einteilung mit <tt>\section</tt> usw. ist möglich. Diese kann auch angezeigt werden, wobei das aktuelle Kapitel hervorgehoben wird. <br />
<br />
Das Betrachten über DVI funktioniert nur bedingt, am Besten gleich pdf erzeugen und dieses anschauen. <br />
<br />
Eine kurze '''Einführung''' samt '''Bildern''' von drei Layouts findet sich [http://www.pro-linux.de/t_office/latex-beamer.html hier]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=LaTeX&diff=1936LaTeX2005-10-24T06:52:16Z<p>Winny: /* Wo LaTeX noch vorkommt */</p>
<hr />
<div>==Einstieg==<br />
LaTeX ist ein Textsatzsystem. Bei LaTeX schreibt man den Quellcode in reinem<br />
Text (ähnlich einer Programmiersprache) in einem beliebigen Editor und lässt<br />
diesen Text dann durch das Programm <tt> latex </tt> kompilieren. Das<br />
Ergebnis ist eine DVI-Datei (Device Independent = Geräte unabhängig), die<br />
dann in weitere, gängige Formate wie zum Beispiel Postscript und PDF<br />
konvertiert werden kann.<br />
<br />
Besonders zum schreiben von Protokollen und wissenschaftlichen Texten mit<br />
vielen Formeln ist LaTeX sehr gut geeignet. Die meisten Scripte der TU-Graz<br />
sind mit LaTeX geschrieben. Um sich mit Latex zurechtzufinden braucht man<br />
ungefähr einen halben Tag. Dieser Aufwand dürfte es aber wert sein.<br />
<br />
Ein [[LaTeX Beispiel]]<br />
<br />
==Editoren== <br />
Als Editor sollte entweder [[Emacs]] oder die<br />
Entwicklungsumgebung [[Kile]] verwendet werden. Kile bietet viele<br />
Erleichterungen (vor allem der Einstieg wird wesentlich erleichtert).<br />
So ist das Einfügen von Pfeilen, mathematischen Symbolen und Ähnlichem<br />
mit Hilfe von Icons möglich. Weiters kann der Sourcecode mit Hilfe von<br />
Knöpfen in der Toolbar kompiliert und betrachtet werden.<br />
<br />
==LaTeX kompilieren, konvertiern, ansehen, drucken==<br />
===Kompilieren===<br />
Mit<br />
$ latex <dokument.tex><br />
wird eine Datei dokument.dvi erzeugt.<br />
Der Befehl<br />
$ pdflatex <dokument.tex><br />
erzeugt eine pdf-Datei.<br />
===Konvertieren===<br />
Um eine dvi-Datei in ein PDF oder ein PS umzuwandeln:<br />
$ dvipdf <dokument.dvi><br />
oder<br />
$ dvips <dokument.dvi><br />
<br />
===Ansehen===<br />
DVIs öffnet man mit dem Befehl<br />
$ xdvi <dokument.dvi>.<br />
PDFs werden wie gewohnt mit<br />
$ acroread <dokument.pdf><br />
und ps-Dateien mit<br />
$ gv <dokument.ps><br />
geöffnet.<br />
===Drucken===<br />
<br />
Um kompilierte Dateien zu drucken, sind sie entweder in ein PS oder<br />
PDF zu verwandeln. DVIs können nicht direkt gedruckt werden. Wie ps-<br />
und pdf-Dateien gedruckt werden können, ist auf der Seite [[Drucken]]<br />
zu finden.<br />
<br />
== Bilder in LaTeX Dokumente einbinden ==<br />
Bilder einzubinden kann etwas umständlich sein, da LaTeX nur mit<br />
Grafiken im '''eps''' (Encapsulated Postscript) oder '''ps''' Format<br />
etwas anfangen kann. Mit dem [[Kommandozeilen]] Befehl<br />
<tt>jpeg2ps</tt> lassen sich '''jpeg''' Grafiken in '''ps''' Grafiken<br />
umwandeln. Mit <tt>gif2tiff</tt> und dann <tt>tiff2ps</tt> geht das<br />
auch mit '''gif''' Grafiken. Alternativ gibt es auch das Programm<br />
convert<br />
$ convert bildname.jpg bildname.eps<br />
oder<br />
$ convert bildname.gif bildname.eps<br />
<br />
<tt>convert</tt> beherrscht extrem viele bildformate und hat viele<br />
optionen wie Bildskalierung und Drehung. Weitere Inforamtionen git es<br />
auf [http://www.imagemagick.com/www/convert.html#usage<br />
ImageMagick->convert] und bei <tt>man convert</tt><br />
<br />
Im Computerraum Physik und am Institut steht eine Skript <tt><br />
LaTeX-pictures </tt> zur Verfügung, das mit Bildern in den Formaten<br />
EPS, JPG und PNG umgehen kann. Die Bilder werden jeweils so<br />
konvertiert, daß sowohl LaTeX, pdfLaTeX und latex2html damit sinnvoll<br />
arbeiten können. Details dazu stehen in userem Beispieldokument zum<br />
Projekt "Multimediale Lehre" unter<br />
http://itp.tugraz.at/MML/beispiel/beispiel/ im Abschnitt "Verwenden<br />
von Bildern".<br />
<br />
== Präsentationen mit LaTeX ==<br />
Um Bildschirmpräsentationen zu erstellen, eignen sich folgende Pakete:<br />
* [http://prosper.sourceforge.net/ Prosper]<br />
* [http://stuwww.uvt.nl/~hendri/index.html?/~hendri/Downloads/haprosper.html&mainframeha HA-Prosper]<br />
* [http://latex-beamer.sourceforge.net/ LaTeX-Beamer]<br />
<br />
== Wo LaTeX noch vorkommt ==<br />
Die Latex-Bibliotheken werden von vielen Systemen unterstützt. Auch von<br />
dieser Wikipedia site!<br />
<br />
<br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if }n\mbox{ is even} \\ 3n+1, & \mbox{if}n\mbox{ is odd} \end{cases}<br />
</math><br />
<br />
Und so sieht dieser Artikel-code aus:<br><br />
<pre><br />
<nowiki><br />
<math><br />
f(n) = \begin{cases} n/2, & \mbox{if} n \mbox{is even} \\ 3n+1, & \mbox{if} n \mbox{is odd} \end{cases}<br />
</math><br />
</nowiki><br />
</pre><br />
<br />
Mehr über LaTeX in wikipedia: [http://meta.wikimedia.org/wiki/Help:Formula<br />
Help:Formula]<br />
<br />
Auch [[Matlab]] unterstützt teilweise die Mathematischen Umgebungen von<br />
Latex. Etwa bei den Beschriftungen der Plots.<br />
<br />
== Manuals ==<br />
<br />
=== Online Manuals ===<br />
Online-Katalog aller Pakete und Tools:<br />
[http://www.dante.de/CTAN/help/Catalogue/alpha.html Latex-Katalog]<br />
<br />
Eine kurze Einführung:<br />
[http://www.ctan.org/tex-archive/info/lshort/german/ LaTeX2e-Kurzbeschreibung]<br />
<br />
Eine kurze Einführung hat Daniel Tscharnuter geschrieben:<br />
[http://physik.htu.tugraz.at/wiki/index.php/LaTeX LaTeX-Einführung]<br />
<br />
Sehr zu empfehlen ist auch [http://latex.tugraz.at/ LaTeX@TUG] hier gibt es<br />
eine ausführlichere Anleitung mit Latex Vorlagen.<br />
<br />
Von der Institutssite:<br />
[http://itp.tugraz.at/Comp/Manual/man-user-node8.html#SECTION00082000000000000000 LaTeX im Computerraum]<br />
<br />
Mathematik-Einführung für LaTeX:<br />
[http://skadi.algebra.math.uni-siegen.de/~peters/mathe.pdf Mathematik mit LaTeX] (pdf)<br />
<br />
=== Lokale Manuals ===<br />
* '''/usr/share/doc/texmf/help/Catalogue/catalogue.html''' <br><br />
(Hier sind fast alle Packages aufgelistet, mit Links zu den einzelnen<br />
Dokumentationen; '''ACHTUNG''': Die online-Version dieses Kataloges<br />
ist aufgrund seiner Aktualität zu bevorzugen)<br />
Weitere manuals:<br />
* /usr/share/doc/texmf/index.html<br />
* /usr/share/doc/texmf/latex/latex2e-html/index.html<br />
<br />
=== Links ===<br />
* [http://www.latex-project.org/ LaTeX: A document preparation system]<br />
* [http://www.tug.org/ TUG - TeX Users Group Information]<br />
* [http://www.dante.de/ DANTE - German TeX Users Group]<br />
* [http://www.dante.de/faq/ Fragen und Antworten über TeX, LaTeX und DANTE]<br />
* [http://www.dante.de/faq/de-tex-faq/ Fragen und Antworten über TeX, LaTeX und DANTE (DE-TeX-FAQ)]<br />
* [http://www.dante.de/cgi-bin/ctan-index CTAN - Comprehensive TeX Archive Network]<br />
* [http://www.tug.org/fonts/ Fonts and TeX]<br />
* [http://www.tug.org/texshowcase/ TeX showcase]<br />
* [http://www-texdev.mpce.mq.edu.au/l2h/docs/manual/ The LaTeX2HTML Translator]<br />
<br />
<br />
== Problemlösungen, Tipps ==<br />
=== Lebenslauf mit europecv ===<br />
Die europäische Kommission hat kürzlich Richtlinien für Lebensläufe herausgegeben, stellt jedoch nur Word-Vorlagen zur Verfügung. europecv ist eine nicht-offizielle LaTeX-Klasse, mit der man einen europäischen "Normlebenslauf" ähnlich wie mit den Klassen cv, currvita, usw. erstellen kann. <br />
<br />
Das Paket und Dokumentation findet man z.B. [http://texcatalogue.sarovar.org/entries/europecv.html hier] <br><br />
Für Windows-User ist das Paket in der aktuellen MikTex-Version enthalten.<br />
<br />
Falls es jemanden stört, dass der Lebenslauf mit "Europäisches Lebenslauf-Muster" betitelt ist, so lässt sich das am Begin des Files <tt>ecvLA.def</tt> ändern, wobei <tt>LA</tt> für die Sprachkennung (zwei Kleinbuchstaben) steht.<br />
<br />
=== Präsentation mit der Dokumentklasse beamer ===<br />
Mit beamer lassen sich schnell und einfach sehr ansprechende Präsentationen generieren. Der (Minimal-)Ablauf ist folgender: <br />
* Dokumentklasse beamer verwenden<br />
* Eines der zahlreichen vorgefertigten Layouts auswählen<br />
* Farbschema auswählen<br />
* Folien erstellen (mit <tt>\frame{...}</tt> )<br />
* Grobeiteilung innerhalb einer Folie mit Blöcken ( <tt>\begin{block} ... \end{block}</tt> ) <br />
* Zeitliche Abfolgen innerhalb einer Folie (wie z.B. Elemente nacheinander einblenden) mit <tt>\pause</tt><br />
<br />
Eine Einteilung mit <tt>\section</tt> usw. ist möglich. Diese kann auch angezeigt werden, wobei das aktuelle Kapitel hervorgehoben wird. <br />
<br />
Das Betrachten über DVI funktioniert nur bedingt, am Besten gleich pdf erzeugen und dieses anschauen. <br />
<br />
Eine kurze '''Einführung''' samt '''Bildern''' von drei Layouts findet sich [http://www.pro-linux.de/t_office/latex-beamer.html hier]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_f%C3%BCr_Fortgeschrittene&diff=1944Applikationssoftware für Fortgeschrittene2005-09-23T13:40:51Z<p>Winny: </p>
<hr />
<div>== Wichtige Nachrichten für das WS 2005/06 ==<br />
<br />
Ein möglicher und von meiner Seite wünschwerter Schwerpunkt für die projektorientierte Lehrveranstaltung ist heuer die aktive Mitarbeit an der Entwicklung des Programms MatlabTutor.<br />
<br />
MatlabTutor ist eine Programmentwicklung von David Camhy und mir, die im Rahmen der Matlab-Ausbildung verwendet werden soll. Das Packet bietet automatische Beispielverwaltung, automatische Überprüfung von Lösungen, Lernhilfen, Anleitung zum Selbststudium, automatisierte Abgabe von Übungs- und Prüfungsbeispielen, Matlab-Editor, Unterstützung bei der Erstellung von Beispielen (LaTex), usw.. Das Programm kann an der TU Graz aber auch von zu Hause aus verwendet werden und bietet eine Vielzahl von Möglichkeiten über das Web. Der geplante erste wirkliche Einsatz der Software ist die Lehrveranstaltung „Applikationssoftware und Programmierung“ im nächsten SS.<br />
<br />
Dafür notwendig ist die Erstellung und Anpassung von guten Matlabbeispielen aus einer Vielzahl von Gebieten, die auch in Zusammenarbeit mit Teilnehmern dieser Lehrveranstaltung erstellt werden könnten. Über euer mögliches Interesse würde ich mich freuen. Inhaltlich würde der Schwerpunkt der Arbeit dann bei Matlab und LaTex liegen. <br />
<br />
Andere Themen sind nach Rücksprache mit mir natürlich auch möglich.<br />
<br />
Wegen zweier Tagungsbesuche findet die erste Lehrveranstaltung erst am Montag, dem 17. Oktober um 15:15 im Computerraum Physik statt.<br />
<br />
Liebe Grüße, Winfried Kernbichler</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Main_Page&diff=1800Main Page2005-09-23T13:38:43Z<p>Winny: /* Lehrveranstaltungen */</p>
<hr />
<div>Die Seiten sollen neben Diskussionsmöglichkeiten über Physik auch eine Hilfestellung zur [[Computer Benutzung]] am [http://itp.tugraz.at/ Institut für Theoretische Physik] und dem [[Computerraum Physik]] bieten. Es ist ausdrücklich erlaubt und erwünscht, dass diese Wikipedia Site von den Studenten und Professoren ergänzt oder richtiggestellt wird. Jeder darf etwas schreiben und seine Erfahrungen teilen - wir hatten in der letzten Woche leider einige Probleme mit ''link spam'', daher ist Schreiben derzeit nur für angemeldete Benutzer möglich.<br />
<br />
'''In den letzten Tagen wurden Accounts im Wiki automatisiert angelegt, vorübergehend wird das Anlegen von Accounts daher gesperrt.'''--[[User:Ahi|Ahi]] 11:37, 24 May 2005 (CEST)<br />
<br />
==Computerraum Physik==<br />
<br />
* '''[[Wichtiges zur Computerbenutzung]]: Bitte durchlesen'''<br />
* '''[[Computer Benutzung]]: Weiterführende Hilfe '''<br />
* [[Liste bekannter Probleme]]: Probleme und Lösungen<br />
* [[Computerraum Physik]] Allgemeines<br />
* Informationen über diese Wiki: <br />
** [[Konventionen im Bereich Computerraum]]<br />
** [[Fragen, Probleme, Anregungen ...]]<br />
** [[Tipps zum Wiki]]: Suchhilfe, Editieren von Artikeln ...<br />
* [[Administration]]: Administratives bezüglich Wiki und CR<br />
<br />
Während des Semester halten 2 Studienassistenten im Computerraum<br />
'''Sprechstunden'''. Die '''Zeiten''' und '''Mailadressen''' findet<br />
ihr unter [[Computerraum Physik]]<br />
<br />
==Lehrveranstaltungen==<br />
*[[Applikationssoftware und Programmierung]] - [[Applikationssoftware - Beiträge|Beiträge]] - [[Applikationssoftware - Projekte|Projekte]]<br />
**[[Matlab]] - [[Matlab - Beiträge|Beiträge]] - [[Matlab - Fehler|Fehler]]<br />
*[[Applikationssoftware für Fortgeschrittene]]<br />
*[[Fusionsphysik]]<br />
*[[Numerische Methoden]]<br />
*[[Buchempfehlungen#Elektromagnetische_Felder.2C_Elektrodynamik_.28Elektrodynamik.29|Elektrodynamik Buchempfehlungen]]<br />
<br />
==Physik==<br />
Es steht jedem frei in diesem Bereich Seiten zu physikalischen Themen anzulegen. <br />
* [[Physik]]<br />
** [[Tschernobyl]]<br />
<br />
==Informationen von Studenten für Studenten==<br />
In diesem Bereich kann jeder sein Wissen weitergeben. Vielleicht profitieren einige Studenten oder auch sonstige Personen von diesen Informationen.<br />
* [[Cpp Programmierung]]<br />
* [[Buchempfehlungen]]<br />
<br />
<br />
----<br />
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]<br />
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_und_Programmierung&diff=2820Applikationssoftware und Programmierung2005-06-25T16:31:47Z<p>Winny: /* Prüfungsbeispiele */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Diese Seite ist schreibgeschützt, da sie wichtige Informationen für die Lehrveranstaltung beinhaltet. Beiträge von Studierenden und Besuchern sind auf [[Applikationssoftware - Beiträge]] und [[Matlab - Beiträge]] erwünscht. <br />
<br />
== Wichtige Nachrichten ==<br />
<br />
* Die erste Übung mit Abgabepflicht findet in der Woche vom 7. März 2005 statt.<br />
* Die Anwesenheit bei der ersten Lehrveranstaltung am Montag, den 28.2.2005 ist unbedingt erforderlich. Dabei werden die Accounts für den Computerraum vergeben.<br />
* Füllen sie vorher unser [http://www.itp.tu-graz.ac.at/cgi-bin/new_account.pl Anmeldeformular] aus, dann erhalten sie von mir in der ersten Lehrveranstaltung das Password.<br />
* Bei den Übungen herrscht Anwesenheitspflicht. Bitte informieren sie sich über die [[Applikationssoftware und Programmierung#Regeln| Regeln]] die für diese Lehrveranstaltung gelten.<br />
* Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Die Anzahl von vier Gruppen wird mit Sicherheit nicht erhöht es soll aber auch niemand von der Lehrveranstaltung ausgeschlossen sein. [[Applikationssoftware und Programmierung#Anzahl der Teilnehmer| Mögliche Ausnahmen]] und die Abwicklungsmöglichkeit über [[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] sind weiter unten angeführt.<br />
<br />
== Inhalt der Lehrveranstaltung== <br />
<br />
Grundzüge des Programmierens unter Verwendung der Programmiersprache MATLAB.<br />
<br />
Die Verwendung von Computern wurde, wie in vielen Bereichen des Lebens, auch<br />
in der Physik zu einem zentralen Bestandteil sowohl der Ausbildung als auch<br />
der Forschung. Die meisten Forschungsbereiche wären heute ohne die Verwendung<br />
von Computern und entsprechender Software gar nicht mehr denkbar. Das gilt<br />
sowohl für Experimente, deren Steuerung und Auswertung, als auch für die<br />
theoretische Behandlung von Problemen bzw. die numerische Simulation von<br />
Experimenten.<br />
<br />
Die Lehrveranstaltung Applikationssoftware und Programmierung wurde im<br />
Studienplan der Studienrichtung Technische Physik daher bewußt an den Anfang<br />
des Studiums gestellt. Die Studierenden sollen dabei mit folgenden Bereichen<br />
konfrontiert werden:<br><br />
* Verwendung von Computern, wie sie im Bereich der Physik üblich ist.<br />
* Kennenlernen der Computerinfrastruktur für Studierende im Bereich der TU-Graz und speziell im Bereich der Physik.<br />
* Kennenlernen und Verwenden von Programmpaketen (Applikationen), die für das weitere Studium nützlich sind <br />
** Auswertung und Darstellung von Messungen<br />
** numerische Berechnungen<br />
** Visualisierung <br />
** Arbeiten mit [[Matlab | Matlab]]<br />
* Informationsbeschaffung aus dem World Wide Web, aus lokalen Dokumentationen oder von ihren Kollegen.<br />
* Grundzüge des Programmierens.<br />
<br />
Die Studierenden sollen daher von Anfang an die Möglichkeit erhalten, das<br />
für sie bereitgestellte System in vielen Bereichen ihres Studiums zu<br />
verwenden. Außerdem sollen sie auf eine Fülle aufbauender Lehrveranstaltungen<br />
bestmöglich vorbereitet sein.<br />
<br />
== Ziele ==<br />
<br />
Die Ziele der Lehrveranstaltung liegen also <br><br />
* in der Vermittlung der GRUNDLAGEN des PROGRAMMIERENS <br />
* mit Hilfe der Programmiersprache MATLAB;<br />
* in der Entwicklung EIGENSTÄNDIGER LÖSUNGSKOMPETENZ <br />
* auch für KOMPLEXERE AUFGABEN (im weiteren Studienverlauf);<br />
* in der Vermittlung der Idee, dass es sich hier um eine CHANCE handelt Fähigkeiten zu lernen, die man in vielen beruflichen Bereichen verwenden kann, und nicht um eine QUAL, die man über sich ergehen lassen muss;<br />
* in der Vermittlung von Fähigkeiten, HILFE beim PROGRAMMIEREN aus unterschiedlichsten QUELLEN zu finden<br />
* und dabei ENGLISCH als wichtigste SPRACHE zu akzeptieren;<br />
* im Wunsch sowohl ANFÄNGER an das Programmieren heranzuführen, als auch FORTGESCHRITTENEN etwas zu bieten, was sie interessiert. <br />
<br />
Das Ziel ist auch, dass zumindest 80 PROZENT den ABSCHLUSS am ENDE DES SOMMERSEMESTERS mit eher GUTEN NOTEN schaffen sollen und die restlichen Studierenden (zumindest die, die weiter hier studieren) die Prüfung im Oktober absolvieren. <br />
<br />
Eigentlich möchte ich keinen Teilnehmer von heuer bei den Übungen im nächsten Jahr mit den gleichen Inhalten "quälen" müssen. Meine Bereitschaft dazu ist gegeben, es funktioniniert natürlich aber nur mit eurem nötigen Engagement. Daher reden sie auch (und vor allem) bei Problemen rechtzeitig mit mir.<br />
<br />
== Termine == <br />
<br />
Die Übungen finden im Computerraum Physik zu folgenden Zeiten statt<BR><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Übungszeiten'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
! style="background:#efefef;" | Leiter<br />
|-<br />
| A <br />
| Montag <br />
| 16:15 <br />
| 17:45 <br />
| Kernbichler<br />
|-<br />
| B <br />
| Montag <br />
| 18:00 <br />
| 19:30 <br />
| Kernbichler<br />
|-<br />
| C <br />
| Mittwoch <br />
| 08:30 <br />
| 10:00 <br />
| Kernbichler<br />
|-<br />
| D <br />
| Mittwoch <br />
| 14:15 <br />
| 15:45 <br />
| Kernbichler<br />
|-<br />
|}<br />
Ein Wechsel zu anderen Gruppen ist nur nach Absprache mit mir möglich.<br />
<br />
== Übungen ==<br />
<br />
Die erste Übungseinheit findet in der Woche ab dem 28. Februar statt. Sie dient nur dem Kennenlernen des Computersystems und dem Sammeln von ersten Erfahrungen mit Matlab. Für diese Übungseinheit ist keine Abgabe von Beispielen notwendig, es herrscht aber Anwesenheitspflicht. Probieren sie Matlab aus, starten sie die Hilfe und den Editor und machen sie sich mit dem System vertraut.<br />
<br />
[[Erste Schritte]] für die Computerbenutzung sollten den Einstieg erleichtern.<br />
<br />
=== Übungen mit Abgabeverpflichtung ===<br />
<br />
Die zu erstellenden Files müssen mit dem exakt richtigen Namen abgegeben werden. Zur Abgabe bzw. zur Information über den Status ihrer Übungen gibt es die Skripts,<br><br />
uebungsabgabe file1 file2 ...<br />
uebungsstatus <br />
welche im Terminal aufgerufen werden. Benötigt man in gewissen Übungen Daten, erhält man diese mit folgendem Skript:<br><br />
uebungsdaten<br />
Passen sie auf, dass sie sich im richtigen Verzeichnis befinden, wenn sie das Skript aufrufen, sonst können die Files nicht gefunden werden. In Matlab kann man die Skripts mit vorangestelltem Rufzeichen auch aufrufen:<br><br />
!uebungsabgabe file1 file2 ...<br />
!uebungsstatus <br />
!uebungsdaten<br />
<br />
<br />
;Mathematische Funktionen<br />
:Übung vom 7. März / 9. März 2005 - Abgabe bis spätestens 21. März / 23. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node61.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Reguläre Polyeder, Kegelschnitte<br />
:Übung vom 14. März / 16. März 2005 - Abgabe bis spätestens 28. März / 30. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node62.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Spiralen, Schwebung, Gaußverteilung<br />
:Übung vom 11. April / 13. April 2005 - Abgabe bis spätestens 25. April / 27. April 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node63.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Felder<br />
:Übung vom 18. April / 20. April 2005 - Abgabe bis spätestens 2. Mai / 4. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node64.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Logische Indizierung<br />
:Übung vom 25.April / 27. April 2005 - Abgabe bis spätestens 9. Mai / 11. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Berechnung von Reihen und Konvergenzverhalten<br />
:Übung vom 2. Mai/ 4. Mai 2005 - Abgabe bis spätestens 16. Mai / 18. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node66.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Kurvendiskussion<br />
:Übung vom 9. Mai/ 11. Mai 2005 - Abgabe bis spätestens 23. Mai / 25. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node67.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Darstellung von Daten<br />
:Übung vom 23. Mai/ 25. Mai 2005 - Abgabe bis spätestens 6. Juni / 8. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node68.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineare Gleichungssysteme<br />
:Übung vom 30. Mai/ 1. Juni 2005 - Abgabe bis spätestens 13. Juni / 15. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node69.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineares Fitten<br />
:Übung vom 6. Juni/ 8. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node70.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Nichtlineares Fitten - ABGABE NICHT VERPFLICHTEND<br />
:Übung vom 13. Juni/ 15. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node71.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
== Regeln ==<br />
<br />
Die Anwesenheit bei den Übungen ist verpflichtend. Bei Verhinderung ist unbedingt eine begründete Entschuldigung per e-mail notwendig. Auch bei einem Fernbleiben von der Übung (aus welchem Grund auch immer) müssen die entsprechenden Beispiele termingerecht abgegeben werden. Falls es in<br />
Ausnahmefällen damit Probleme gibt, wenden Sie sich an mich um eine spezielle Vereinbarung zu treffen. Im Regelfall gibt es eine zweiwöchige Frist für die Abgabe der Beispiele.<br />
<br />
Außer in Ausnahmefällen (siehe dazu auch [[Applikationssoftware und Programmierung#Projektarbeiten | Projektarbeiten]]) ist die Abgabe aller Übungsbeispiele notwendig um zur <br />
[[Applikationssoftware und Programmierung#Prüfung | Abschlussprüfung]] antreten und damit die Lehrveranstaltung ordnungsgemäß beenden zu können.<br />
<br />
Die Anwesenheit bei der Vorlesung ist natürlich nicht verplichtend. Ich möchte aber darauf hinweisen, dass die Übungsbeispiele in der Vorlesung sowohl vor- als auch nachbereitet werden. Damit ist ihre Durchführung um<br />
vieles leichter. Es gibt also eine starke Vernetzung von Vorlesung und Übung. Daher gibt es bei den Übungsterminen bis auf kleinere Anmerkungen keinen Vortrag von mir mehr. <br />
<br />
Bei der jeweiligen Übung soll die Aufgabe dieser Übungseinheit (und nicht einer vorherigen) bearbeitet werden. In vielen Fällen wird die Zeit während der Übungseinheit nicht zur Fertigstellung reichen. Die Aufgabe muss dann im Normalfall innerhalb von zwei Wochen außerhalb der Übungseineiten fertiggestellt werden. Aus meiner Sicht ist dieser zusätzliche Aufwand gerechtfertigt, da die selbständige Erledigung aller Übungsbeispiele die perfekte Vorberereitung auf die Prüfung ist und daher vor der Prüfung keine lange Vorbereitungsphase mehr notwendig ist.<br />
<br />
Nützen sie die Zeit während der Übung für Fragen. Erfahrungsgemäß haben diejenigen Studierenden die meisten Probleme die Lehrveranstaltung sinnvoll zu beenden, die aus welchen Gründen auch immer keine oder kaum Fragen stellen. Es ist kein Problem (und wid natürlich auch nicht negativ bewertet), wenn man etwas nicht verstanden hat und es sich nochmals (und nochmals) erklären lässt. Das wirkliche Problem tritt erst bei der Prüfung auf, wenn man vorher die ganze Zeit versucht die Mängel zu verstecken. Daher fragen sie mich, ihre Kollegen oder formulieren sie Fragen im Bereich [[Matlab - Beiträge|Matlab - Beiträge]]. Dort können sie auch Fragen beantworten oder Kommentare zu Antworten abgeben. Auch dieser Bereich lebt und wächst mit ihrer Beteiligung.<br />
<br />
Die Lösungen müssen selbständig erarbeitet werden. Natürlich kann es ihnen gelingen, Lösungen von Kollegen oder Kolleginen abzugeben und dann darauf zu hoffen, dass es von uns nicht bemerkt wird. Ob diese Vorgangsweise im Sinne der Prüfungsvorbereitung sinnvoll ist, bleibt ihnen zur Beurteilung überlassen. Es spricht aber natürlich nichts gegen Teamarbeit von der mehrere profitieren oder wo man clevere Lösungen von einem/einer anderen erfährt und dann selbst umsetzt. Der Schlüssel zum Erfolgt liegt hier darin, dann zu verstehen, was man wie und warum gemacht hat. Sinnvoll ist es auch die eigenen Überlegungen innerhalb des Programmes zu dokumentieren, da man die eigenen Beispiele alle während der Prüfung zur Verfügung hat. Tut man das nicht in sinnvoller Weise, kommt man rasch dahinter, wie schnell man den Sinn von Programmzeilen vergisst, die man selbst einmal geschrieben hat.<br />
Fügt man jedoch sinnvolle Komentare ein, kann man auch später noch viel aus alten Überlegungen lernen und man merkt auch, dass es relativ wenig Zeit kostet diese Kommentare zu schreiben.<br />
<br />
== Dokumentation ==<br />
<br />
Das Skriptum zur Lehrveranstaltung und sonstige Unterlagen findet man unter:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum]<br />
| pdf <br />
| Druckfähige Version mit Hyperlinks<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/ Skriptum]<br />
| html<br />
| LaTex2html Version, leichte Darstellungsprobleme<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/Praesentationen/Matlab_Einfuehrung.pdf Folien]<br />
| pdf <br />
| Matlab Einführung <br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1_talk.pdf Folien]<br />
| pdf <br />
| Landscape für Präsentation<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/ Kapitel]<br />
| pdf <br />
| Webseite mit weiteren Links zu den einzelnen Kapiteln<br />
|-<br />
|}<br />
Die Übungsbeispiele und auch das Skriptum werden laufend den Bedürfnissen<br />
angepasst. Überzeugen sie sich daher vor dem jeweiligen Übungsbeginn, ob sich<br />
etwas geändert hat.<br />
<br />
== Anzahl der Teilnehmer ==<br />
<br />
Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Der Grund dafür ist die Anzahl der vorhandenen Computer. Falls es trotz der geplanten 4 Gruppen Probleme gibt, ersuche ich Studierende mit eigenen Laptops diese zu verwenden. Es stehen zwei Netzwerkzugänge (cat-5) bzw. das [http://www.zid.tugraz.at/ki/netz/extern/wlan/ WLAN] der TU Graz, das im Bereich unseres Computerraumes zur Verfügung steht.<br />
<br />
== Prüfung ==<br />
<br />
Die Prüfung setzt sich aus einer Abschlussklausur, die aus einigen Programmieraufgaben besteht, und einem abschliesenden Prüfungsgespräch zusammen. Wegen der engen Verkopplung von Vorlesung und Übung findet auch de Prüfung über beide Teile so verkoppelt statt. <br />
<br />
Die Programmieraufgaben bei der Prüfung schliesen thematisch an die Übungsaufgaben an. Dabei dürfen alle Unterlagen, Übungsbeispiele, Skripten und Webseiten verwendet werden. Währen der Prüfung verboten ist nur die Kommunikation untereinander und mit der Außenwelt.<br />
<br />
Der sonst bei manchen Prüfungen bestehende Zeitdruck soll möglichst vermeiden werden. Daher stehen pro Termin vier Stunden zur Verfügung. Parallel dazu werden die mündlichen Gespräche mit denjenigen, die schon früher fertig sind, abgewickelt. Die Erfahrung zeigt, dass das was man bis dahin nicht geschafft hat wegen mangelnder Kenntnisse auch in viel längerer Zeit nicht schaffen kann. <br />
<br />
Das Prüfungsgespräch nach den Programmieraufgaben schliest an die Aufgaben an und überprüft wichtige Grundlagen des Programmierens und deren Umsetzung in Matlab. Nach Absolvierung beider Teile bekommt man ein Zeugnis über die Übung und über die Vorlesung. Es soll hier nochmals darauf hingewiesen werden, dass Übungen "immanenten Prüfungscharacter" haben und daher sowohl die Anwesenheit als auch die Abgabe aller Beispiele notwendig ist.<br />
<br />
Eine alternative Form der Abwicklung der Prüfung ist mit der Durchführung von <br />
[[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] möglich.<br />
<br />
=== Prüfungsbeispiele ===<br />
<br />
Prüfungsbeispiele aus den Jahren 2003 und 2004 stehen in folgender Form zur Verfügung:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_211003.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 21.10.2003<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0603dat.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2004<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0605.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2005<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0605.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
|}<br />
<br />
=== Prüfungstermine ===<br />
<br />
Die Prüfungen im Jahr 2005 werden zu folgenden Terminen stattfinden:<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Prüfungstermine'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Datum<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
|-<br />
| A <br />
| Montag<br />
| 20. Juni 2005 <br />
| 08:00 <br />
| 12:00 <br />
|-<br />
| B <br />
| Montag<br />
| 20. Juni 2005<br />
| 14:00 <br />
| 18:00 <br />
|-<br />
| C <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 08:00 <br />
| 12:00<br />
|-<br />
| D <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 14:00 <br />
| 18:00 <br />
|-<br />
|}<br />
Der Grund für die Vorverlegung um eine Woche liegt daran, dass ich in der letzten Woche vor Ferienbeginn an einer wissenschaftlichen Konferenz im Ausland teilnehmen muss. Die Gruppenteilnehmer werden automatisch bei ihrem jeweiligen Termin angemeldet. Änderungen sind nur möglich, falls Plätze zu anderen Terminen frei sind.<br />
<br />
Voraussichtlich Mitte Oktober findet dann eine Nachklausur für jene Teilnehmer statt, die den ersten Termin nicht geschafft haben oder die daran nicht teilnehmen konnten. DIese Ersatzlösung sollte aber hoffentlich nur für wenige Teilnehmer notwendig sein.<br />
<br />
Der Konflikt mit dem Prüfungstermin für Experimentalphysik am 22. Juni wurde gelöst. Prof. Ernst hat sich bereit erklärt den Termin auf 29. Juni zu verschieben.<br />
<br />
== Projektarbeiten ==<br />
<br />
Projektarbeiten sind eine alternative Form die Lehrveranstaltung zu absolvieren. Grundsätzlich gibt es zwei Formen<BR><br />
* Großes Projekt: Ersetzt den Besuch der Übung und die Prüfung<br />
* Kleines Projekt: Übung wird normal absolviert, Prüfung wird durch Projekt ersetzt<br />
<br />
Grundsätzlich eignen sich Projekte nicht dazu, sich die Absolvierung der Lehrveranstaltung möglichst einfach zu gestalten. Das Angebot richtet sich an Studierende, die entweder schon reifliche Programmiererfahrung oder zumindest ein tiefes Interesse am Inhalt der Lehrveranstaltung haben. Die Möglichkeit wurde im Wesentlichen deshalb von mir geschaffen um (in diesem Fach) begabten Studierenden eventuell für siehe fade Programmierbeispiele zu ersparen. Wenn man keine große Erfahrung mit Programmiersprachen hat, ist es sicher keine sinnvolle Idee ein großes Projekt zu starten. Wenn man im Laufe der Lehrveranstaltung die Erfahrung macht, dass einem die Übungsbeispiele sehr leicht fallen, kann man sich ja noch immer für ein Projekt entscheiden. <br />
<br />
Ein Projekt startet mit einem Plan vom Studierenden, was er gerne machen würde. Der Inhalt kann aus vielen Interessensgebieten stammen, muss also nicht unbedingt Physik zum Gegenstand haben. Das Projekt soll aber zeigen, dass man mit den Möglichkeiten von Matlab umgehen kann. Zu diesem Zweck erstellt man eine neue Wiki-Seite unter [[Applikationssoftware - Projekte|Applikationssoftware - Projekte]] und definiert sein Projekt. Nach Absprache mit mir folgt dann die Umsetzung in Matlab und die Dokumentation. Diese Beiträge werden dann ebenfalls auf der Wiki-Seite präsentiert. Zum Abschluss gibt es ein Gespräch über die Umsetzung des Projektes welches als eine Art der Prüfung angesehen werden kann.<br />
<br />
Es gibt keine genauen Vorgaben über den Umfang, die Betroffenen sollten einfach einen vernünftigen Vorschlag mit mir besprechen. Gespräche über den Verlauf sollen bevorzugt in den jeweiligen Übungseinheiten durchgeführt werden.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_und_Programmierung&diff=1751Applikationssoftware und Programmierung2005-06-09T10:08:50Z<p>Winny: /* Übungen mit Abgabeverpflichtung */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Diese Seite ist schreibgeschützt, da sie wichtige Informationen für die Lehrveranstaltung beinhaltet. Beiträge von Studierenden und Besuchern sind auf [[Applikationssoftware - Beiträge]] und [[Matlab - Beiträge]] erwünscht. <br />
<br />
== Wichtige Nachrichten ==<br />
<br />
* Die erste Übung mit Abgabepflicht findet in der Woche vom 7. März 2005 statt.<br />
* Die Anwesenheit bei der ersten Lehrveranstaltung am Montag, den 28.2.2005 ist unbedingt erforderlich. Dabei werden die Accounts für den Computerraum vergeben.<br />
* Füllen sie vorher unser [http://www.itp.tu-graz.ac.at/cgi-bin/new_account.pl Anmeldeformular] aus, dann erhalten sie von mir in der ersten Lehrveranstaltung das Password.<br />
* Bei den Übungen herrscht Anwesenheitspflicht. Bitte informieren sie sich über die [[Applikationssoftware und Programmierung#Regeln| Regeln]] die für diese Lehrveranstaltung gelten.<br />
* Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Die Anzahl von vier Gruppen wird mit Sicherheit nicht erhöht es soll aber auch niemand von der Lehrveranstaltung ausgeschlossen sein. [[Applikationssoftware und Programmierung#Anzahl der Teilnehmer| Mögliche Ausnahmen]] und die Abwicklungsmöglichkeit über [[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] sind weiter unten angeführt.<br />
<br />
== Inhalt der Lehrveranstaltung== <br />
<br />
Grundzüge des Programmierens unter Verwendung der Programmiersprache MATLAB.<br />
<br />
Die Verwendung von Computern wurde, wie in vielen Bereichen des Lebens, auch<br />
in der Physik zu einem zentralen Bestandteil sowohl der Ausbildung als auch<br />
der Forschung. Die meisten Forschungsbereiche wären heute ohne die Verwendung<br />
von Computern und entsprechender Software gar nicht mehr denkbar. Das gilt<br />
sowohl für Experimente, deren Steuerung und Auswertung, als auch für die<br />
theoretische Behandlung von Problemen bzw. die numerische Simulation von<br />
Experimenten.<br />
<br />
Die Lehrveranstaltung Applikationssoftware und Programmierung wurde im<br />
Studienplan der Studienrichtung Technische Physik daher bewußt an den Anfang<br />
des Studiums gestellt. Die Studierenden sollen dabei mit folgenden Bereichen<br />
konfrontiert werden:<br><br />
* Verwendung von Computern, wie sie im Bereich der Physik üblich ist.<br />
* Kennenlernen der Computerinfrastruktur für Studierende im Bereich der TU-Graz und speziell im Bereich der Physik.<br />
* Kennenlernen und Verwenden von Programmpaketen (Applikationen), die für das weitere Studium nützlich sind <br />
** Auswertung und Darstellung von Messungen<br />
** numerische Berechnungen<br />
** Visualisierung <br />
** Arbeiten mit [[Matlab | Matlab]]<br />
* Informationsbeschaffung aus dem World Wide Web, aus lokalen Dokumentationen oder von ihren Kollegen.<br />
* Grundzüge des Programmierens.<br />
<br />
Die Studierenden sollen daher von Anfang an die Möglichkeit erhalten, das<br />
für sie bereitgestellte System in vielen Bereichen ihres Studiums zu<br />
verwenden. Außerdem sollen sie auf eine Fülle aufbauender Lehrveranstaltungen<br />
bestmöglich vorbereitet sein.<br />
<br />
== Ziele ==<br />
<br />
Die Ziele der Lehrveranstaltung liegen also <br><br />
* in der Vermittlung der GRUNDLAGEN des PROGRAMMIERENS <br />
* mit Hilfe der Programmiersprache MATLAB;<br />
* in der Entwicklung EIGENSTÄNDIGER LÖSUNGSKOMPETENZ <br />
* auch für KOMPLEXERE AUFGABEN (im weiteren Studienverlauf);<br />
* in der Vermittlung der Idee, dass es sich hier um eine CHANCE handelt Fähigkeiten zu lernen, die man in vielen beruflichen Bereichen verwenden kann, und nicht um eine QUAL, die man über sich ergehen lassen muss;<br />
* in der Vermittlung von Fähigkeiten, HILFE beim PROGRAMMIEREN aus unterschiedlichsten QUELLEN zu finden<br />
* und dabei ENGLISCH als wichtigste SPRACHE zu akzeptieren;<br />
* im Wunsch sowohl ANFÄNGER an das Programmieren heranzuführen, als auch FORTGESCHRITTENEN etwas zu bieten, was sie interessiert. <br />
<br />
Das Ziel ist auch, dass zumindest 80 PROZENT den ABSCHLUSS am ENDE DES SOMMERSEMESTERS mit eher GUTEN NOTEN schaffen sollen und die restlichen Studierenden (zumindest die, die weiter hier studieren) die Prüfung im Oktober absolvieren. <br />
<br />
Eigentlich möchte ich keinen Teilnehmer von heuer bei den Übungen im nächsten Jahr mit den gleichen Inhalten "quälen" müssen. Meine Bereitschaft dazu ist gegeben, es funktioniniert natürlich aber nur mit eurem nötigen Engagement. Daher reden sie auch (und vor allem) bei Problemen rechtzeitig mit mir.<br />
<br />
== Termine == <br />
<br />
Die Übungen finden im Computerraum Physik zu folgenden Zeiten statt<BR><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Übungszeiten'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
! style="background:#efefef;" | Leiter<br />
|-<br />
| A <br />
| Montag <br />
| 16:15 <br />
| 17:45 <br />
| Kernbichler<br />
|-<br />
| B <br />
| Montag <br />
| 18:00 <br />
| 19:30 <br />
| Kernbichler<br />
|-<br />
| C <br />
| Mittwoch <br />
| 08:30 <br />
| 10:00 <br />
| Kernbichler<br />
|-<br />
| D <br />
| Mittwoch <br />
| 14:15 <br />
| 15:45 <br />
| Kernbichler<br />
|-<br />
|}<br />
Ein Wechsel zu anderen Gruppen ist nur nach Absprache mit mir möglich.<br />
<br />
== Übungen ==<br />
<br />
Die erste Übungseinheit findet in der Woche ab dem 28. Februar statt. Sie dient nur dem Kennenlernen des Computersystems und dem Sammeln von ersten Erfahrungen mit Matlab. Für diese Übungseinheit ist keine Abgabe von Beispielen notwendig, es herrscht aber Anwesenheitspflicht. Probieren sie Matlab aus, starten sie die Hilfe und den Editor und machen sie sich mit dem System vertraut.<br />
<br />
[[Erste Schritte]] für die Computerbenutzung sollten den Einstieg erleichtern.<br />
<br />
=== Übungen mit Abgabeverpflichtung ===<br />
<br />
Die zu erstellenden Files müssen mit dem exakt richtigen Namen abgegeben werden. Zur Abgabe bzw. zur Information über den Status ihrer Übungen gibt es die Skripts,<br><br />
uebungsabgabe file1 file2 ...<br />
uebungsstatus <br />
welche im Terminal aufgerufen werden. Benötigt man in gewissen Übungen Daten, erhält man diese mit folgendem Skript:<br><br />
uebungsdaten<br />
Passen sie auf, dass sie sich im richtigen Verzeichnis befinden, wenn sie das Skript aufrufen, sonst können die Files nicht gefunden werden. In Matlab kann man die Skripts mit vorangestelltem Rufzeichen auch aufrufen:<br><br />
!uebungsabgabe file1 file2 ...<br />
!uebungsstatus <br />
!uebungsdaten<br />
<br />
<br />
;Mathematische Funktionen<br />
:Übung vom 7. März / 9. März 2005 - Abgabe bis spätestens 21. März / 23. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node61.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Reguläre Polyeder, Kegelschnitte<br />
:Übung vom 14. März / 16. März 2005 - Abgabe bis spätestens 28. März / 30. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node62.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Spiralen, Schwebung, Gaußverteilung<br />
:Übung vom 11. April / 13. April 2005 - Abgabe bis spätestens 25. April / 27. April 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node63.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Felder<br />
:Übung vom 18. April / 20. April 2005 - Abgabe bis spätestens 2. Mai / 4. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node64.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Logische Indizierung<br />
:Übung vom 25.April / 27. April 2005 - Abgabe bis spätestens 9. Mai / 11. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Berechnung von Reihen und Konvergenzverhalten<br />
:Übung vom 2. Mai/ 4. Mai 2005 - Abgabe bis spätestens 16. Mai / 18. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node66.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Kurvendiskussion<br />
:Übung vom 9. Mai/ 11. Mai 2005 - Abgabe bis spätestens 23. Mai / 25. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node67.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Darstellung von Daten<br />
:Übung vom 23. Mai/ 25. Mai 2005 - Abgabe bis spätestens 6. Juni / 8. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node68.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineare Gleichungssysteme<br />
:Übung vom 30. Mai/ 1. Juni 2005 - Abgabe bis spätestens 13. Juni / 15. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node69.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineares Fitten<br />
:Übung vom 6. Juni/ 8. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node70.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Nichtlineares Fitten - ABGABE NICHT VERPFLICHTEND<br />
:Übung vom 13. Juni/ 15. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node71.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
== Regeln ==<br />
<br />
Die Anwesenheit bei den Übungen ist verpflichtend. Bei Verhinderung ist unbedingt eine begründete Entschuldigung per e-mail notwendig. Auch bei einem Fernbleiben von der Übung (aus welchem Grund auch immer) müssen die entsprechenden Beispiele termingerecht abgegeben werden. Falls es in<br />
Ausnahmefällen damit Probleme gibt, wenden Sie sich an mich um eine spezielle Vereinbarung zu treffen. Im Regelfall gibt es eine zweiwöchige Frist für die Abgabe der Beispiele.<br />
<br />
Außer in Ausnahmefällen (siehe dazu auch [[Applikationssoftware und Programmierung#Projektarbeiten | Projektarbeiten]]) ist die Abgabe aller Übungsbeispiele notwendig um zur <br />
[[Applikationssoftware und Programmierung#Prüfung | Abschlussprüfung]] antreten und damit die Lehrveranstaltung ordnungsgemäß beenden zu können.<br />
<br />
Die Anwesenheit bei der Vorlesung ist natürlich nicht verplichtend. Ich möchte aber darauf hinweisen, dass die Übungsbeispiele in der Vorlesung sowohl vor- als auch nachbereitet werden. Damit ist ihre Durchführung um<br />
vieles leichter. Es gibt also eine starke Vernetzung von Vorlesung und Übung. Daher gibt es bei den Übungsterminen bis auf kleinere Anmerkungen keinen Vortrag von mir mehr. <br />
<br />
Bei der jeweiligen Übung soll die Aufgabe dieser Übungseinheit (und nicht einer vorherigen) bearbeitet werden. In vielen Fällen wird die Zeit während der Übungseinheit nicht zur Fertigstellung reichen. Die Aufgabe muss dann im Normalfall innerhalb von zwei Wochen außerhalb der Übungseineiten fertiggestellt werden. Aus meiner Sicht ist dieser zusätzliche Aufwand gerechtfertigt, da die selbständige Erledigung aller Übungsbeispiele die perfekte Vorberereitung auf die Prüfung ist und daher vor der Prüfung keine lange Vorbereitungsphase mehr notwendig ist.<br />
<br />
Nützen sie die Zeit während der Übung für Fragen. Erfahrungsgemäß haben diejenigen Studierenden die meisten Probleme die Lehrveranstaltung sinnvoll zu beenden, die aus welchen Gründen auch immer keine oder kaum Fragen stellen. Es ist kein Problem (und wid natürlich auch nicht negativ bewertet), wenn man etwas nicht verstanden hat und es sich nochmals (und nochmals) erklären lässt. Das wirkliche Problem tritt erst bei der Prüfung auf, wenn man vorher die ganze Zeit versucht die Mängel zu verstecken. Daher fragen sie mich, ihre Kollegen oder formulieren sie Fragen im Bereich [[Matlab - Beiträge|Matlab - Beiträge]]. Dort können sie auch Fragen beantworten oder Kommentare zu Antworten abgeben. Auch dieser Bereich lebt und wächst mit ihrer Beteiligung.<br />
<br />
Die Lösungen müssen selbständig erarbeitet werden. Natürlich kann es ihnen gelingen, Lösungen von Kollegen oder Kolleginen abzugeben und dann darauf zu hoffen, dass es von uns nicht bemerkt wird. Ob diese Vorgangsweise im Sinne der Prüfungsvorbereitung sinnvoll ist, bleibt ihnen zur Beurteilung überlassen. Es spricht aber natürlich nichts gegen Teamarbeit von der mehrere profitieren oder wo man clevere Lösungen von einem/einer anderen erfährt und dann selbst umsetzt. Der Schlüssel zum Erfolgt liegt hier darin, dann zu verstehen, was man wie und warum gemacht hat. Sinnvoll ist es auch die eigenen Überlegungen innerhalb des Programmes zu dokumentieren, da man die eigenen Beispiele alle während der Prüfung zur Verfügung hat. Tut man das nicht in sinnvoller Weise, kommt man rasch dahinter, wie schnell man den Sinn von Programmzeilen vergisst, die man selbst einmal geschrieben hat.<br />
Fügt man jedoch sinnvolle Komentare ein, kann man auch später noch viel aus alten Überlegungen lernen und man merkt auch, dass es relativ wenig Zeit kostet diese Kommentare zu schreiben.<br />
<br />
== Dokumentation ==<br />
<br />
Das Skriptum zur Lehrveranstaltung und sonstige Unterlagen findet man unter:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum]<br />
| pdf <br />
| Druckfähige Version mit Hyperlinks<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/ Skriptum]<br />
| html<br />
| LaTex2html Version, leichte Darstellungsprobleme<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/Praesentationen/Matlab_Einfuehrung.pdf Folien]<br />
| pdf <br />
| Matlab Einführung <br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1_talk.pdf Folien]<br />
| pdf <br />
| Landscape für Präsentation<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/ Kapitel]<br />
| pdf <br />
| Webseite mit weiteren Links zu den einzelnen Kapiteln<br />
|-<br />
|}<br />
Die Übungsbeispiele und auch das Skriptum werden laufend den Bedürfnissen<br />
angepasst. Überzeugen sie sich daher vor dem jeweiligen Übungsbeginn, ob sich<br />
etwas geändert hat.<br />
<br />
== Anzahl der Teilnehmer ==<br />
<br />
Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Der Grund dafür ist die Anzahl der vorhandenen Computer. Falls es trotz der geplanten 4 Gruppen Probleme gibt, ersuche ich Studierende mit eigenen Laptops diese zu verwenden. Es stehen zwei Netzwerkzugänge (cat-5) bzw. das [http://www.zid.tugraz.at/ki/netz/extern/wlan/ WLAN] der TU Graz, das im Bereich unseres Computerraumes zur Verfügung steht.<br />
<br />
== Prüfung ==<br />
<br />
Die Prüfung setzt sich aus einer Abschlussklausur, die aus einigen Programmieraufgaben besteht, und einem abschliesenden Prüfungsgespräch zusammen. Wegen der engen Verkopplung von Vorlesung und Übung findet auch de Prüfung über beide Teile so verkoppelt statt. <br />
<br />
Die Programmieraufgaben bei der Prüfung schliesen thematisch an die Übungsaufgaben an. Dabei dürfen alle Unterlagen, Übungsbeispiele, Skripten und Webseiten verwendet werden. Währen der Prüfung verboten ist nur die Kommunikation untereinander und mit der Außenwelt.<br />
<br />
Der sonst bei manchen Prüfungen bestehende Zeitdruck soll möglichst vermeiden werden. Daher stehen pro Termin vier Stunden zur Verfügung. Parallel dazu werden die mündlichen Gespräche mit denjenigen, die schon früher fertig sind, abgewickelt. Die Erfahrung zeigt, dass das was man bis dahin nicht geschafft hat wegen mangelnder Kenntnisse auch in viel längerer Zeit nicht schaffen kann. <br />
<br />
Das Prüfungsgespräch nach den Programmieraufgaben schliest an die Aufgaben an und überprüft wichtige Grundlagen des Programmierens und deren Umsetzung in Matlab. Nach Absolvierung beider Teile bekommt man ein Zeugnis über die Übung und über die Vorlesung. Es soll hier nochmals darauf hingewiesen werden, dass Übungen "immanenten Prüfungscharacter" haben und daher sowohl die Anwesenheit als auch die Abgabe aller Beispiele notwendig ist.<br />
<br />
Eine alternative Form der Abwicklung der Prüfung ist mit der Durchführung von <br />
[[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] möglich.<br />
<br />
=== Prüfungsbeispiele ===<br />
<br />
Prüfungsbeispiele aus den Jahren 2003 und 2004 stehen in folgender Form zur Verfügung:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_211003.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 21.10.2003<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0603dat.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2004<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
|}<br />
<br />
=== Prüfungstermine ===<br />
<br />
Die Prüfungen im Jahr 2005 werden zu folgenden Terminen stattfinden:<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Prüfungstermine'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Datum<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
|-<br />
| A <br />
| Montag<br />
| 20. Juni 2005 <br />
| 08:00 <br />
| 12:00 <br />
|-<br />
| B <br />
| Montag<br />
| 20. Juni 2005<br />
| 14:00 <br />
| 18:00 <br />
|-<br />
| C <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 08:00 <br />
| 12:00<br />
|-<br />
| D <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 14:00 <br />
| 18:00 <br />
|-<br />
|}<br />
Der Grund für die Vorverlegung um eine Woche liegt daran, dass ich in der letzten Woche vor Ferienbeginn an einer wissenschaftlichen Konferenz im Ausland teilnehmen muss. Die Gruppenteilnehmer werden automatisch bei ihrem jeweiligen Termin angemeldet. Änderungen sind nur möglich, falls Plätze zu anderen Terminen frei sind.<br />
<br />
Voraussichtlich Mitte Oktober findet dann eine Nachklausur für jene Teilnehmer statt, die den ersten Termin nicht geschafft haben oder die daran nicht teilnehmen konnten. DIese Ersatzlösung sollte aber hoffentlich nur für wenige Teilnehmer notwendig sein.<br />
<br />
Der Konflikt mit dem Prüfungstermin für Experimentalphysik am 22. Juni wurde gelöst. Prof. Ernst hat sich bereit erklärt den Termin auf 29. Juni zu verschieben.<br />
<br />
== Projektarbeiten ==<br />
<br />
Projektarbeiten sind eine alternative Form die Lehrveranstaltung zu absolvieren. Grundsätzlich gibt es zwei Formen<BR><br />
* Großes Projekt: Ersetzt den Besuch der Übung und die Prüfung<br />
* Kleines Projekt: Übung wird normal absolviert, Prüfung wird durch Projekt ersetzt<br />
<br />
Grundsätzlich eignen sich Projekte nicht dazu, sich die Absolvierung der Lehrveranstaltung möglichst einfach zu gestalten. Das Angebot richtet sich an Studierende, die entweder schon reifliche Programmiererfahrung oder zumindest ein tiefes Interesse am Inhalt der Lehrveranstaltung haben. Die Möglichkeit wurde im Wesentlichen deshalb von mir geschaffen um (in diesem Fach) begabten Studierenden eventuell für siehe fade Programmierbeispiele zu ersparen. Wenn man keine große Erfahrung mit Programmiersprachen hat, ist es sicher keine sinnvolle Idee ein großes Projekt zu starten. Wenn man im Laufe der Lehrveranstaltung die Erfahrung macht, dass einem die Übungsbeispiele sehr leicht fallen, kann man sich ja noch immer für ein Projekt entscheiden. <br />
<br />
Ein Projekt startet mit einem Plan vom Studierenden, was er gerne machen würde. Der Inhalt kann aus vielen Interessensgebieten stammen, muss also nicht unbedingt Physik zum Gegenstand haben. Das Projekt soll aber zeigen, dass man mit den Möglichkeiten von Matlab umgehen kann. Zu diesem Zweck erstellt man eine neue Wiki-Seite unter [[Applikationssoftware - Projekte|Applikationssoftware - Projekte]] und definiert sein Projekt. Nach Absprache mit mir folgt dann die Umsetzung in Matlab und die Dokumentation. Diese Beiträge werden dann ebenfalls auf der Wiki-Seite präsentiert. Zum Abschluss gibt es ein Gespräch über die Umsetzung des Projektes welches als eine Art der Prüfung angesehen werden kann.<br />
<br />
Es gibt keine genauen Vorgaben über den Umfang, die Betroffenen sollten einfach einen vernünftigen Vorschlag mit mir besprechen. Gespräche über den Verlauf sollen bevorzugt in den jeweiligen Übungseinheiten durchgeführt werden.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_und_Programmierung&diff=1716Applikationssoftware und Programmierung2005-04-25T07:38:34Z<p>Winny: /* Übungen mit Abgabeverpflichtung */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Diese Seite ist schreibgeschützt, da sie wichtige Informationen für die Lehrveranstaltung beinhaltet. Beiträge von Studierenden und Besuchern sind auf [[Applikationssoftware - Beiträge]] und [[Matlab - Beiträge]] erwünscht. <br />
<br />
== Wichtige Nachrichten ==<br />
<br />
* Die erste Übung mit Abgabepflicht findet in der Woche vom 7. März 2005 statt.<br />
* Die Anwesenheit bei der ersten Lehrveranstaltung am Montag, den 28.2.2005 ist unbedingt erforderlich. Dabei werden die Accounts für den Computerraum vergeben.<br />
* Füllen sie vorher unser [http://www.itp.tu-graz.ac.at/cgi-bin/new_account.pl Anmeldeformular] aus, dann erhalten sie von mir in der ersten Lehrveranstaltung das Password.<br />
* Bei den Übungen herrscht Anwesenheitspflicht. Bitte informieren sie sich über die [[Applikationssoftware und Programmierung#Regeln| Regeln]] die für diese Lehrveranstaltung gelten.<br />
* Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Die Anzahl von vier Gruppen wird mit Sicherheit nicht erhöht es soll aber auch niemand von der Lehrveranstaltung ausgeschlossen sein. [[Applikationssoftware und Programmierung#Anzahl der Teilnehmer| Mögliche Ausnahmen]] und die Abwicklungsmöglichkeit über [[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] sind weiter unten angeführt.<br />
<br />
== Inhalt der Lehrveranstaltung== <br />
<br />
Grundzüge des Programmierens unter Verwendung der Programmiersprache MATLAB.<br />
<br />
Die Verwendung von Computern wurde, wie in vielen Bereichen des Lebens, auch<br />
in der Physik zu einem zentralen Bestandteil sowohl der Ausbildung als auch<br />
der Forschung. Die meisten Forschungsbereiche wären heute ohne die Verwendung<br />
von Computern und entsprechender Software gar nicht mehr denkbar. Das gilt<br />
sowohl für Experimente, deren Steuerung und Auswertung, als auch für die<br />
theoretische Behandlung von Problemen bzw. die numerische Simulation von<br />
Experimenten.<br />
<br />
Die Lehrveranstaltung Applikationssoftware und Programmierung wurde im<br />
Studienplan der Studienrichtung Technische Physik daher bewußt an den Anfang<br />
des Studiums gestellt. Die Studierenden sollen dabei mit folgenden Bereichen<br />
konfrontiert werden:<br><br />
* Verwendung von Computern, wie sie im Bereich der Physik üblich ist.<br />
* Kennenlernen der Computerinfrastruktur für Studierende im Bereich der TU-Graz und speziell im Bereich der Physik.<br />
* Kennenlernen und Verwenden von Programmpaketen (Applikationen), die für das weitere Studium nützlich sind <br />
** Auswertung und Darstellung von Messungen<br />
** numerische Berechnungen<br />
** Visualisierung <br />
** Arbeiten mit [[Matlab | Matlab]]<br />
* Informationsbeschaffung aus dem World Wide Web, aus lokalen Dokumentationen oder von ihren Kollegen.<br />
* Grundzüge des Programmierens.<br />
<br />
Die Studierenden sollen daher von Anfang an die Möglichkeit erhalten, das<br />
für sie bereitgestellte System in vielen Bereichen ihres Studiums zu<br />
verwenden. Außerdem sollen sie auf eine Fülle aufbauender Lehrveranstaltungen<br />
bestmöglich vorbereitet sein.<br />
<br />
== Ziele ==<br />
<br />
Die Ziele der Lehrveranstaltung liegen also <br><br />
* in der Vermittlung der GRUNDLAGEN des PROGRAMMIERENS <br />
* mit Hilfe der Programmiersprache MATLAB;<br />
* in der Entwicklung EIGENSTÄNDIGER LÖSUNGSKOMPETENZ <br />
* auch für KOMPLEXERE AUFGABEN (im weiteren Studienverlauf);<br />
* in der Vermittlung der Idee, dass es sich hier um eine CHANCE handelt Fähigkeiten zu lernen, die man in vielen beruflichen Bereichen verwenden kann, und nicht um eine QUAL, die man über sich ergehen lassen muss;<br />
* in der Vermittlung von Fähigkeiten, HILFE beim PROGRAMMIEREN aus unterschiedlichsten QUELLEN zu finden<br />
* und dabei ENGLISCH als wichtigste SPRACHE zu akzeptieren;<br />
* im Wunsch sowohl ANFÄNGER an das Programmieren heranzuführen, als auch FORTGESCHRITTENEN etwas zu bieten, was sie interessiert. <br />
<br />
Das Ziel ist auch, dass zumindest 80 PROZENT den ABSCHLUSS am ENDE DES SOMMERSEMESTERS mit eher GUTEN NOTEN schaffen sollen und die restlichen Studierenden (zumindest die, die weiter hier studieren) die Prüfung im Oktober absolvieren. <br />
<br />
Eigentlich möchte ich keinen Teilnehmer von heuer bei den Übungen im nächsten Jahr mit den gleichen Inhalten "quälen" müssen. Meine Bereitschaft dazu ist gegeben, es funktioniniert natürlich aber nur mit eurem nötigen Engagement. Daher reden sie auch (und vor allem) bei Problemen rechtzeitig mit mir.<br />
<br />
== Termine == <br />
<br />
Die Übungen finden im Computerraum Physik zu folgenden Zeiten statt<BR><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Übungszeiten'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
! style="background:#efefef;" | Leiter<br />
|-<br />
| A <br />
| Montag <br />
| 16:15 <br />
| 17:45 <br />
| Kernbichler<br />
|-<br />
| B <br />
| Montag <br />
| 18:00 <br />
| 19:30 <br />
| Kernbichler<br />
|-<br />
| C <br />
| Mittwoch <br />
| 08:30 <br />
| 10:00 <br />
| Kernbichler<br />
|-<br />
| D <br />
| Mittwoch <br />
| 14:15 <br />
| 15:45 <br />
| Kernbichler<br />
|-<br />
|}<br />
Ein Wechsel zu anderen Gruppen ist nur nach Absprache mit mir möglich.<br />
<br />
== Übungen ==<br />
<br />
Die erste Übungseinheit findet in der Woche ab dem 28. Februar statt. Sie dient nur dem Kennenlernen des Computersystems und dem Sammeln von ersten Erfahrungen mit Matlab. Für diese Übungseinheit ist keine Abgabe von Beispielen notwendig, es herrscht aber Anwesenheitspflicht. Probieren sie Matlab aus, starten sie die Hilfe und den Editor und machen sie sich mit dem System vertraut.<br />
<br />
[[Erste Schritte]] für die Computerbenutzung sollten den Einstieg erleichtern.<br />
<br />
=== Übungen mit Abgabeverpflichtung ===<br />
<br />
Die zu erstellenden Files müssen mit dem exakt richtigen Namen abgegeben werden. Zur Abgabe bzw. zur Information über den Status ihrer Übungen gibt es die Skripts,<br><br />
uebungsabgabe file1 file2 ...<br />
uebungsstatus <br />
welche im Terminal aufgerufen werden. Benötigt man in gewissen Übungen Daten, erhält man diese mit folgendem Skript:<br><br />
uebungsdaten<br />
Passen sie auf, dass sie sich im richtigen Verzeichnis befinden, wenn sie das Skript aufrufen, sonst können die Files nicht gefunden werden. In Matlab kann man die Skripts mit vorangestelltem Rufzeichen auch aufrufen:<br><br />
!uebungsabgabe file1 file2 ...<br />
!uebungsstatus <br />
!uebungsdaten<br />
<br />
<br />
;Mathematische Funktionen<br />
:Übung vom 7. März / 9. März 2005 - Abgabe bis spätestens 21. März / 23. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node61.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Reguläre Polyeder, Kegelschnitte<br />
:Übung vom 14. März / 16. März 2005 - Abgabe bis spätestens 28. März / 30. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node62.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Spiralen, Schwebung, Gaußverteilung<br />
:Übung vom 11. April / 13. April 2005 - Abgabe bis spätestens 25. April / 27. April 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node63.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Felder<br />
:Übung vom 18. April / 20. April 2005 - Abgabe bis spätestens 2. Mai / 4. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node64.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Logische Indizierung<br />
:Übung vom 25.April / 27. April 2005 - Abgabe bis spätestens 9. Mai / 11. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Berechnung von Reihen und Konvergenzverhalten<br />
:Übung vom 2. Mai/ 4. Mai 2005 - Abgabe bis spätestens 16. Mai / 18. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node66.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Kurvendiskussion<br />
:Übung vom 9. Mai/ 11. Mai 2005 - Abgabe bis spätestens 23. Mai / 25. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node67.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Darstellung von Daten<br />
:Übung vom 23. Mai/ 25. Mai 2005 - Abgabe bis spätestens 6. Juni / 8. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node68.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineare Gleichungssysteme<br />
:Übung vom 30. Mai/ 1. Juni 2005 - Abgabe bis spätestens 13. Juni / 15. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node69.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineares Fitten<br />
:Übung vom 6. Juni/ 8. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node70.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Nichtlineares Fitten<br />
:Übung vom 13. Juni/ 15. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node71.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
== Regeln ==<br />
<br />
Die Anwesenheit bei den Übungen ist verpflichtend. Bei Verhinderung ist unbedingt eine begründete Entschuldigung per e-mail notwendig. Auch bei einem Fernbleiben von der Übung (aus welchem Grund auch immer) müssen die entsprechenden Beispiele termingerecht abgegeben werden. Falls es in<br />
Ausnahmefällen damit Probleme gibt, wenden Sie sich an mich um eine spezielle Vereinbarung zu treffen. Im Regelfall gibt es eine zweiwöchige Frist für die Abgabe der Beispiele.<br />
<br />
Außer in Ausnahmefällen (siehe dazu auch [[Applikationssoftware und Programmierung#Projektarbeiten | Projektarbeiten]]) ist die Abgabe aller Übungsbeispiele notwendig um zur <br />
[[Applikationssoftware und Programmierung#Prüfung | Abschlussprüfung]] antreten und damit die Lehrveranstaltung ordnungsgemäß beenden zu können.<br />
<br />
Die Anwesenheit bei der Vorlesung ist natürlich nicht verplichtend. Ich möchte aber darauf hinweisen, dass die Übungsbeispiele in der Vorlesung sowohl vor- als auch nachbereitet werden. Damit ist ihre Durchführung um<br />
vieles leichter. Es gibt also eine starke Vernetzung von Vorlesung und Übung. Daher gibt es bei den Übungsterminen bis auf kleinere Anmerkungen keinen Vortrag von mir mehr. <br />
<br />
Bei der jeweiligen Übung soll die Aufgabe dieser Übungseinheit (und nicht einer vorherigen) bearbeitet werden. In vielen Fällen wird die Zeit während der Übungseinheit nicht zur Fertigstellung reichen. Die Aufgabe muss dann im Normalfall innerhalb von zwei Wochen außerhalb der Übungseineiten fertiggestellt werden. Aus meiner Sicht ist dieser zusätzliche Aufwand gerechtfertigt, da die selbständige Erledigung aller Übungsbeispiele die perfekte Vorberereitung auf die Prüfung ist und daher vor der Prüfung keine lange Vorbereitungsphase mehr notwendig ist.<br />
<br />
Nützen sie die Zeit während der Übung für Fragen. Erfahrungsgemäß haben diejenigen Studierenden die meisten Probleme die Lehrveranstaltung sinnvoll zu beenden, die aus welchen Gründen auch immer keine oder kaum Fragen stellen. Es ist kein Problem (und wid natürlich auch nicht negativ bewertet), wenn man etwas nicht verstanden hat und es sich nochmals (und nochmals) erklären lässt. Das wirkliche Problem tritt erst bei der Prüfung auf, wenn man vorher die ganze Zeit versucht die Mängel zu verstecken. Daher fragen sie mich, ihre Kollegen oder formulieren sie Fragen im Bereich [[Matlab - Beiträge|Matlab - Beiträge]]. Dort können sie auch Fragen beantworten oder Kommentare zu Antworten abgeben. Auch dieser Bereich lebt und wächst mit ihrer Beteiligung.<br />
<br />
Die Lösungen müssen selbständig erarbeitet werden. Natürlich kann es ihnen gelingen, Lösungen von Kollegen oder Kolleginen abzugeben und dann darauf zu hoffen, dass es von uns nicht bemerkt wird. Ob diese Vorgangsweise im Sinne der Prüfungsvorbereitung sinnvoll ist, bleibt ihnen zur Beurteilung überlassen. Es spricht aber natürlich nichts gegen Teamarbeit von der mehrere profitieren oder wo man clevere Lösungen von einem/einer anderen erfährt und dann selbst umsetzt. Der Schlüssel zum Erfolgt liegt hier darin, dann zu verstehen, was man wie und warum gemacht hat. Sinnvoll ist es auch die eigenen Überlegungen innerhalb des Programmes zu dokumentieren, da man die eigenen Beispiele alle während der Prüfung zur Verfügung hat. Tut man das nicht in sinnvoller Weise, kommt man rasch dahinter, wie schnell man den Sinn von Programmzeilen vergisst, die man selbst einmal geschrieben hat.<br />
Fügt man jedoch sinnvolle Komentare ein, kann man auch später noch viel aus alten Überlegungen lernen und man merkt auch, dass es relativ wenig Zeit kostet diese Kommentare zu schreiben.<br />
<br />
== Dokumentation ==<br />
<br />
Das Skriptum zur Lehrveranstaltung und sonstige Unterlagen findet man unter:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum]<br />
| pdf <br />
| Druckfähige Version mit Hyperlinks<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/ Skriptum]<br />
| html<br />
| LaTex2html Version, leichte Darstellungsprobleme<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/Praesentationen/Matlab_Einfuehrung.pdf Folien]<br />
| pdf <br />
| Matlab Einführung <br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1_talk.pdf Folien]<br />
| pdf <br />
| Landscape für Präsentation<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/ Kapitel]<br />
| pdf <br />
| Webseite mit weiteren Links zu den einzelnen Kapiteln<br />
|-<br />
|}<br />
Die Übungsbeispiele und auch das Skriptum werden laufend den Bedürfnissen<br />
angepasst. Überzeugen sie sich daher vor dem jeweiligen Übungsbeginn, ob sich<br />
etwas geändert hat.<br />
<br />
== Anzahl der Teilnehmer ==<br />
<br />
Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Der Grund dafür ist die Anzahl der vorhandenen Computer. Falls es trotz der geplanten 4 Gruppen Probleme gibt, ersuche ich Studierende mit eigenen Laptops diese zu verwenden. Es stehen zwei Netzwerkzugänge (cat-5) bzw. das [http://www.zid.tugraz.at/ki/netz/extern/wlan/ WLAN] der TU Graz, das im Bereich unseres Computerraumes zur Verfügung steht.<br />
<br />
== Prüfung ==<br />
<br />
Die Prüfung setzt sich aus einer Abschlussklausur, die aus einigen Programmieraufgaben besteht, und einem abschliesenden Prüfungsgespräch zusammen. Wegen der engen Verkopplung von Vorlesung und Übung findet auch de Prüfung über beide Teile so verkoppelt statt. <br />
<br />
Die Programmieraufgaben bei der Prüfung schliesen thematisch an die Übungsaufgaben an. Dabei dürfen alle Unterlagen, Übungsbeispiele, Skripten und Webseiten verwendet werden. Währen der Prüfung verboten ist nur die Kommunikation untereinander und mit der Außenwelt.<br />
<br />
Der sonst bei manchen Prüfungen bestehende Zeitdruck soll möglichst vermeiden werden. Daher stehen pro Termin vier Stunden zur Verfügung. Parallel dazu werden die mündlichen Gespräche mit denjenigen, die schon früher fertig sind, abgewickelt. Die Erfahrung zeigt, dass das was man bis dahin nicht geschafft hat wegen mangelnder Kenntnisse auch in viel längerer Zeit nicht schaffen kann. <br />
<br />
Das Prüfungsgespräch nach den Programmieraufgaben schliest an die Aufgaben an und überprüft wichtige Grundlagen des Programmierens und deren Umsetzung in Matlab. Nach Absolvierung beider Teile bekommt man ein Zeugnis über die Übung und über die Vorlesung. Es soll hier nochmals darauf hingewiesen werden, dass Übungen "immanenten Prüfungscharacter" haben und daher sowohl die Anwesenheit als auch die Abgabe aller Beispiele notwendig ist.<br />
<br />
Eine alternative Form der Abwicklung der Prüfung ist mit der Durchführung von <br />
[[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] möglich.<br />
<br />
=== Prüfungsbeispiele ===<br />
<br />
Prüfungsbeispiele aus den Jahren 2003 und 2004 stehen in folgender Form zur Verfügung:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_211003.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 21.10.2003<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0603dat.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2004<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
|}<br />
<br />
=== Prüfungstermine ===<br />
<br />
Die Prüfungen im Jahr 2005 werden zu folgenden Terminen stattfinden:<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Prüfungstermine'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Datum<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
|-<br />
| A <br />
| Montag<br />
| 20. Juni 2005 <br />
| 08:00 <br />
| 12:00 <br />
|-<br />
| B <br />
| Montag<br />
| 20. Juni 2005<br />
| 14:00 <br />
| 18:00 <br />
|-<br />
| C <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 08:00 <br />
| 12:00<br />
|-<br />
| D <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 14:00 <br />
| 18:00 <br />
|-<br />
|}<br />
Der Grund für die Vorverlegung um eine Woche liegt daran, dass ich in der letzten Woche vor Ferienbeginn an einer wissenschaftlichen Konferenz im Ausland teilnehmen muss. Die Gruppenteilnehmer werden automatisch bei ihrem jeweiligen Termin angemeldet. Änderungen sind nur möglich, falls Plätze zu anderen Terminen frei sind.<br />
<br />
Voraussichtlich Mitte Oktober findet dann eine Nachklausur für jene Teilnehmer statt, die den ersten Termin nicht geschafft haben oder die daran nicht teilnehmen konnten. DIese Ersatzlösung sollte aber hoffentlich nur für wenige Teilnehmer notwendig sein.<br />
<br />
Der Konflikt mit dem Prüfungstermin für Experimentalphysik am 22. Juni wurde gelöst. Prof. Ernst hat sich bereit erklärt den Termin auf 29. Juni zu verschieben.<br />
<br />
== Projektarbeiten ==<br />
<br />
Projektarbeiten sind eine alternative Form die Lehrveranstaltung zu absolvieren. Grundsätzlich gibt es zwei Formen<BR><br />
* Großes Projekt: Ersetzt den Besuch der Übung und die Prüfung<br />
* Kleines Projekt: Übung wird normal absolviert, Prüfung wird durch Projekt ersetzt<br />
<br />
Grundsätzlich eignen sich Projekte nicht dazu, sich die Absolvierung der Lehrveranstaltung möglichst einfach zu gestalten. Das Angebot richtet sich an Studierende, die entweder schon reifliche Programmiererfahrung oder zumindest ein tiefes Interesse am Inhalt der Lehrveranstaltung haben. Die Möglichkeit wurde im Wesentlichen deshalb von mir geschaffen um (in diesem Fach) begabten Studierenden eventuell für siehe fade Programmierbeispiele zu ersparen. Wenn man keine große Erfahrung mit Programmiersprachen hat, ist es sicher keine sinnvolle Idee ein großes Projekt zu starten. Wenn man im Laufe der Lehrveranstaltung die Erfahrung macht, dass einem die Übungsbeispiele sehr leicht fallen, kann man sich ja noch immer für ein Projekt entscheiden. <br />
<br />
Ein Projekt startet mit einem Plan vom Studierenden, was er gerne machen würde. Der Inhalt kann aus vielen Interessensgebieten stammen, muss also nicht unbedingt Physik zum Gegenstand haben. Das Projekt soll aber zeigen, dass man mit den Möglichkeiten von Matlab umgehen kann. Zu diesem Zweck erstellt man eine neue Wiki-Seite unter [[Applikationssoftware - Projekte|Applikationssoftware - Projekte]] und definiert sein Projekt. Nach Absprache mit mir folgt dann die Umsetzung in Matlab und die Dokumentation. Diese Beiträge werden dann ebenfalls auf der Wiki-Seite präsentiert. Zum Abschluss gibt es ein Gespräch über die Umsetzung des Projektes welches als eine Art der Prüfung angesehen werden kann.<br />
<br />
Es gibt keine genauen Vorgaben über den Umfang, die Betroffenen sollten einfach einen vernünftigen Vorschlag mit mir besprechen. Gespräche über den Verlauf sollen bevorzugt in den jeweiligen Übungseinheiten durchgeführt werden.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_und_Programmierung&diff=908Applikationssoftware und Programmierung2005-04-25T07:36:30Z<p>Winny: /* Übungen mit Abgabeverpflichtung */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Diese Seite ist schreibgeschützt, da sie wichtige Informationen für die Lehrveranstaltung beinhaltet. Beiträge von Studierenden und Besuchern sind auf [[Applikationssoftware - Beiträge]] und [[Matlab - Beiträge]] erwünscht. <br />
<br />
== Wichtige Nachrichten ==<br />
<br />
* Die erste Übung mit Abgabepflicht findet in der Woche vom 7. März 2005 statt.<br />
* Die Anwesenheit bei der ersten Lehrveranstaltung am Montag, den 28.2.2005 ist unbedingt erforderlich. Dabei werden die Accounts für den Computerraum vergeben.<br />
* Füllen sie vorher unser [http://www.itp.tu-graz.ac.at/cgi-bin/new_account.pl Anmeldeformular] aus, dann erhalten sie von mir in der ersten Lehrveranstaltung das Password.<br />
* Bei den Übungen herrscht Anwesenheitspflicht. Bitte informieren sie sich über die [[Applikationssoftware und Programmierung#Regeln| Regeln]] die für diese Lehrveranstaltung gelten.<br />
* Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Die Anzahl von vier Gruppen wird mit Sicherheit nicht erhöht es soll aber auch niemand von der Lehrveranstaltung ausgeschlossen sein. [[Applikationssoftware und Programmierung#Anzahl der Teilnehmer| Mögliche Ausnahmen]] und die Abwicklungsmöglichkeit über [[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] sind weiter unten angeführt.<br />
<br />
== Inhalt der Lehrveranstaltung== <br />
<br />
Grundzüge des Programmierens unter Verwendung der Programmiersprache MATLAB.<br />
<br />
Die Verwendung von Computern wurde, wie in vielen Bereichen des Lebens, auch<br />
in der Physik zu einem zentralen Bestandteil sowohl der Ausbildung als auch<br />
der Forschung. Die meisten Forschungsbereiche wären heute ohne die Verwendung<br />
von Computern und entsprechender Software gar nicht mehr denkbar. Das gilt<br />
sowohl für Experimente, deren Steuerung und Auswertung, als auch für die<br />
theoretische Behandlung von Problemen bzw. die numerische Simulation von<br />
Experimenten.<br />
<br />
Die Lehrveranstaltung Applikationssoftware und Programmierung wurde im<br />
Studienplan der Studienrichtung Technische Physik daher bewußt an den Anfang<br />
des Studiums gestellt. Die Studierenden sollen dabei mit folgenden Bereichen<br />
konfrontiert werden:<br><br />
* Verwendung von Computern, wie sie im Bereich der Physik üblich ist.<br />
* Kennenlernen der Computerinfrastruktur für Studierende im Bereich der TU-Graz und speziell im Bereich der Physik.<br />
* Kennenlernen und Verwenden von Programmpaketen (Applikationen), die für das weitere Studium nützlich sind <br />
** Auswertung und Darstellung von Messungen<br />
** numerische Berechnungen<br />
** Visualisierung <br />
** Arbeiten mit [[Matlab | Matlab]]<br />
* Informationsbeschaffung aus dem World Wide Web, aus lokalen Dokumentationen oder von ihren Kollegen.<br />
* Grundzüge des Programmierens.<br />
<br />
Die Studierenden sollen daher von Anfang an die Möglichkeit erhalten, das<br />
für sie bereitgestellte System in vielen Bereichen ihres Studiums zu<br />
verwenden. Außerdem sollen sie auf eine Fülle aufbauender Lehrveranstaltungen<br />
bestmöglich vorbereitet sein.<br />
<br />
== Ziele ==<br />
<br />
Die Ziele der Lehrveranstaltung liegen also <br><br />
* in der Vermittlung der GRUNDLAGEN des PROGRAMMIERENS <br />
* mit Hilfe der Programmiersprache MATLAB;<br />
* in der Entwicklung EIGENSTÄNDIGER LÖSUNGSKOMPETENZ <br />
* auch für KOMPLEXERE AUFGABEN (im weiteren Studienverlauf);<br />
* in der Vermittlung der Idee, dass es sich hier um eine CHANCE handelt Fähigkeiten zu lernen, die man in vielen beruflichen Bereichen verwenden kann, und nicht um eine QUAL, die man über sich ergehen lassen muss;<br />
* in der Vermittlung von Fähigkeiten, HILFE beim PROGRAMMIEREN aus unterschiedlichsten QUELLEN zu finden<br />
* und dabei ENGLISCH als wichtigste SPRACHE zu akzeptieren;<br />
* im Wunsch sowohl ANFÄNGER an das Programmieren heranzuführen, als auch FORTGESCHRITTENEN etwas zu bieten, was sie interessiert. <br />
<br />
Das Ziel ist auch, dass zumindest 80 PROZENT den ABSCHLUSS am ENDE DES SOMMERSEMESTERS mit eher GUTEN NOTEN schaffen sollen und die restlichen Studierenden (zumindest die, die weiter hier studieren) die Prüfung im Oktober absolvieren. <br />
<br />
Eigentlich möchte ich keinen Teilnehmer von heuer bei den Übungen im nächsten Jahr mit den gleichen Inhalten "quälen" müssen. Meine Bereitschaft dazu ist gegeben, es funktioniniert natürlich aber nur mit eurem nötigen Engagement. Daher reden sie auch (und vor allem) bei Problemen rechtzeitig mit mir.<br />
<br />
== Termine == <br />
<br />
Die Übungen finden im Computerraum Physik zu folgenden Zeiten statt<BR><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Übungszeiten'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
! style="background:#efefef;" | Leiter<br />
|-<br />
| A <br />
| Montag <br />
| 16:15 <br />
| 17:45 <br />
| Kernbichler<br />
|-<br />
| B <br />
| Montag <br />
| 18:00 <br />
| 19:30 <br />
| Kernbichler<br />
|-<br />
| C <br />
| Mittwoch <br />
| 08:30 <br />
| 10:00 <br />
| Kernbichler<br />
|-<br />
| D <br />
| Mittwoch <br />
| 14:15 <br />
| 15:45 <br />
| Kernbichler<br />
|-<br />
|}<br />
Ein Wechsel zu anderen Gruppen ist nur nach Absprache mit mir möglich.<br />
<br />
== Übungen ==<br />
<br />
Die erste Übungseinheit findet in der Woche ab dem 28. Februar statt. Sie dient nur dem Kennenlernen des Computersystems und dem Sammeln von ersten Erfahrungen mit Matlab. Für diese Übungseinheit ist keine Abgabe von Beispielen notwendig, es herrscht aber Anwesenheitspflicht. Probieren sie Matlab aus, starten sie die Hilfe und den Editor und machen sie sich mit dem System vertraut.<br />
<br />
[[Erste Schritte]] für die Computerbenutzung sollten den Einstieg erleichtern.<br />
<br />
=== Übungen mit Abgabeverpflichtung ===<br />
<br />
Die zu erstellenden Files müssen mit dem exakt richtigen Namen abgegeben werden. Zur Abgabe bzw. zur Information über den Status ihrer Übungen gibt es die Skripts,<br><br />
uebungsabgabe file1 file2 ...<br />
uebungsstatus <br />
welche im Terminal aufgerufen werden. Benötigt man in gewissen Übungen Daten, erhält man diese mit folgendem Skript:<br><br />
uebungsdaten<br />
Passen sie auf, dass sie sich im richtigen Verzeichnis befinden, wenn sie das Skript aufrufen, sonst können die Files nicht gefunden werden. In Matlab kann man die Skripts mit vorangestelltem Rufzeichen auch aufrufen:<br><br />
!uebungsabgabe file1 file2 ...<br />
!uebungsstatus <br />
!uebungsdaten<br />
<br />
<br />
;Mathematische Funktionen<br />
:Übung vom 7. März / 9. März 2005 - Abgabe bis spätestens 21. März / 23. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node61.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Reguläre Polyeder, Kegelschnitte<br />
:Übung vom 14. März / 16. März 2005 - Abgabe bis spätestens 28. März / 30. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node62.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Spiralen, Schwebung, Gaußverteilung<br />
:Übung vom 11. April / 13. April 2005 - Abgabe bis spätestens 25. April / 27. April 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node63.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Felder<br />
:Übung vom 18. April / 20. April 2005 - Abgabe bis spätestens 2. Mai / 4. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node64.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Logische Indizierung<br />
:Übung vom 25.April / 27. April 2005 - Abgabe bis spätestens 9. Mai / 11. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Berechnung von Reihen und Konvergenzverhalten<br />
:Übung vom 2. Mai/ 4. Mai 2005 - Abgabe bis spätestens 16. Mai / 18. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Kurvendiskussion<br />
:Übung vom 9. Mai/ 11. Mai 2005 - Abgabe bis spätestens 23. Mai / 25. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Darstellung von Daten<br />
:Übung vom 23. Mai/ 25. Mai 2005 - Abgabe bis spätestens 6. Juni / 8. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineare Gleichungssysteme<br />
:Übung vom 30. Mai/ 1. Juni 2005 - Abgabe bis spätestens 13. Juni / 15. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Lineares Fitten<br />
:Übung vom 6. Juni/ 8. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Nichtlineares Fitten<br />
:Übung vom 13. Juni/ 15. Juni 2005 - Abgabe bis spätestens 20. Juni / 22. Juni 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
== Regeln ==<br />
<br />
Die Anwesenheit bei den Übungen ist verpflichtend. Bei Verhinderung ist unbedingt eine begründete Entschuldigung per e-mail notwendig. Auch bei einem Fernbleiben von der Übung (aus welchem Grund auch immer) müssen die entsprechenden Beispiele termingerecht abgegeben werden. Falls es in<br />
Ausnahmefällen damit Probleme gibt, wenden Sie sich an mich um eine spezielle Vereinbarung zu treffen. Im Regelfall gibt es eine zweiwöchige Frist für die Abgabe der Beispiele.<br />
<br />
Außer in Ausnahmefällen (siehe dazu auch [[Applikationssoftware und Programmierung#Projektarbeiten | Projektarbeiten]]) ist die Abgabe aller Übungsbeispiele notwendig um zur <br />
[[Applikationssoftware und Programmierung#Prüfung | Abschlussprüfung]] antreten und damit die Lehrveranstaltung ordnungsgemäß beenden zu können.<br />
<br />
Die Anwesenheit bei der Vorlesung ist natürlich nicht verplichtend. Ich möchte aber darauf hinweisen, dass die Übungsbeispiele in der Vorlesung sowohl vor- als auch nachbereitet werden. Damit ist ihre Durchführung um<br />
vieles leichter. Es gibt also eine starke Vernetzung von Vorlesung und Übung. Daher gibt es bei den Übungsterminen bis auf kleinere Anmerkungen keinen Vortrag von mir mehr. <br />
<br />
Bei der jeweiligen Übung soll die Aufgabe dieser Übungseinheit (und nicht einer vorherigen) bearbeitet werden. In vielen Fällen wird die Zeit während der Übungseinheit nicht zur Fertigstellung reichen. Die Aufgabe muss dann im Normalfall innerhalb von zwei Wochen außerhalb der Übungseineiten fertiggestellt werden. Aus meiner Sicht ist dieser zusätzliche Aufwand gerechtfertigt, da die selbständige Erledigung aller Übungsbeispiele die perfekte Vorberereitung auf die Prüfung ist und daher vor der Prüfung keine lange Vorbereitungsphase mehr notwendig ist.<br />
<br />
Nützen sie die Zeit während der Übung für Fragen. Erfahrungsgemäß haben diejenigen Studierenden die meisten Probleme die Lehrveranstaltung sinnvoll zu beenden, die aus welchen Gründen auch immer keine oder kaum Fragen stellen. Es ist kein Problem (und wid natürlich auch nicht negativ bewertet), wenn man etwas nicht verstanden hat und es sich nochmals (und nochmals) erklären lässt. Das wirkliche Problem tritt erst bei der Prüfung auf, wenn man vorher die ganze Zeit versucht die Mängel zu verstecken. Daher fragen sie mich, ihre Kollegen oder formulieren sie Fragen im Bereich [[Matlab - Beiträge|Matlab - Beiträge]]. Dort können sie auch Fragen beantworten oder Kommentare zu Antworten abgeben. Auch dieser Bereich lebt und wächst mit ihrer Beteiligung.<br />
<br />
Die Lösungen müssen selbständig erarbeitet werden. Natürlich kann es ihnen gelingen, Lösungen von Kollegen oder Kolleginen abzugeben und dann darauf zu hoffen, dass es von uns nicht bemerkt wird. Ob diese Vorgangsweise im Sinne der Prüfungsvorbereitung sinnvoll ist, bleibt ihnen zur Beurteilung überlassen. Es spricht aber natürlich nichts gegen Teamarbeit von der mehrere profitieren oder wo man clevere Lösungen von einem/einer anderen erfährt und dann selbst umsetzt. Der Schlüssel zum Erfolgt liegt hier darin, dann zu verstehen, was man wie und warum gemacht hat. Sinnvoll ist es auch die eigenen Überlegungen innerhalb des Programmes zu dokumentieren, da man die eigenen Beispiele alle während der Prüfung zur Verfügung hat. Tut man das nicht in sinnvoller Weise, kommt man rasch dahinter, wie schnell man den Sinn von Programmzeilen vergisst, die man selbst einmal geschrieben hat.<br />
Fügt man jedoch sinnvolle Komentare ein, kann man auch später noch viel aus alten Überlegungen lernen und man merkt auch, dass es relativ wenig Zeit kostet diese Kommentare zu schreiben.<br />
<br />
== Dokumentation ==<br />
<br />
Das Skriptum zur Lehrveranstaltung und sonstige Unterlagen findet man unter:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum]<br />
| pdf <br />
| Druckfähige Version mit Hyperlinks<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/ Skriptum]<br />
| html<br />
| LaTex2html Version, leichte Darstellungsprobleme<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/Praesentationen/Matlab_Einfuehrung.pdf Folien]<br />
| pdf <br />
| Matlab Einführung <br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1_talk.pdf Folien]<br />
| pdf <br />
| Landscape für Präsentation<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/ Kapitel]<br />
| pdf <br />
| Webseite mit weiteren Links zu den einzelnen Kapiteln<br />
|-<br />
|}<br />
Die Übungsbeispiele und auch das Skriptum werden laufend den Bedürfnissen<br />
angepasst. Überzeugen sie sich daher vor dem jeweiligen Übungsbeginn, ob sich<br />
etwas geändert hat.<br />
<br />
== Anzahl der Teilnehmer ==<br />
<br />
Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Der Grund dafür ist die Anzahl der vorhandenen Computer. Falls es trotz der geplanten 4 Gruppen Probleme gibt, ersuche ich Studierende mit eigenen Laptops diese zu verwenden. Es stehen zwei Netzwerkzugänge (cat-5) bzw. das [http://www.zid.tugraz.at/ki/netz/extern/wlan/ WLAN] der TU Graz, das im Bereich unseres Computerraumes zur Verfügung steht.<br />
<br />
== Prüfung ==<br />
<br />
Die Prüfung setzt sich aus einer Abschlussklausur, die aus einigen Programmieraufgaben besteht, und einem abschliesenden Prüfungsgespräch zusammen. Wegen der engen Verkopplung von Vorlesung und Übung findet auch de Prüfung über beide Teile so verkoppelt statt. <br />
<br />
Die Programmieraufgaben bei der Prüfung schliesen thematisch an die Übungsaufgaben an. Dabei dürfen alle Unterlagen, Übungsbeispiele, Skripten und Webseiten verwendet werden. Währen der Prüfung verboten ist nur die Kommunikation untereinander und mit der Außenwelt.<br />
<br />
Der sonst bei manchen Prüfungen bestehende Zeitdruck soll möglichst vermeiden werden. Daher stehen pro Termin vier Stunden zur Verfügung. Parallel dazu werden die mündlichen Gespräche mit denjenigen, die schon früher fertig sind, abgewickelt. Die Erfahrung zeigt, dass das was man bis dahin nicht geschafft hat wegen mangelnder Kenntnisse auch in viel längerer Zeit nicht schaffen kann. <br />
<br />
Das Prüfungsgespräch nach den Programmieraufgaben schliest an die Aufgaben an und überprüft wichtige Grundlagen des Programmierens und deren Umsetzung in Matlab. Nach Absolvierung beider Teile bekommt man ein Zeugnis über die Übung und über die Vorlesung. Es soll hier nochmals darauf hingewiesen werden, dass Übungen "immanenten Prüfungscharacter" haben und daher sowohl die Anwesenheit als auch die Abgabe aller Beispiele notwendig ist.<br />
<br />
Eine alternative Form der Abwicklung der Prüfung ist mit der Durchführung von <br />
[[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] möglich.<br />
<br />
=== Prüfungsbeispiele ===<br />
<br />
Prüfungsbeispiele aus den Jahren 2003 und 2004 stehen in folgender Form zur Verfügung:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_211003.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 21.10.2003<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0603dat.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2004<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
|}<br />
<br />
=== Prüfungstermine ===<br />
<br />
Die Prüfungen im Jahr 2005 werden zu folgenden Terminen stattfinden:<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Prüfungstermine'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Datum<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
|-<br />
| A <br />
| Montag<br />
| 20. Juni 2005 <br />
| 08:00 <br />
| 12:00 <br />
|-<br />
| B <br />
| Montag<br />
| 20. Juni 2005<br />
| 14:00 <br />
| 18:00 <br />
|-<br />
| C <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 08:00 <br />
| 12:00<br />
|-<br />
| D <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 14:00 <br />
| 18:00 <br />
|-<br />
|}<br />
Der Grund für die Vorverlegung um eine Woche liegt daran, dass ich in der letzten Woche vor Ferienbeginn an einer wissenschaftlichen Konferenz im Ausland teilnehmen muss. Die Gruppenteilnehmer werden automatisch bei ihrem jeweiligen Termin angemeldet. Änderungen sind nur möglich, falls Plätze zu anderen Terminen frei sind.<br />
<br />
Voraussichtlich Mitte Oktober findet dann eine Nachklausur für jene Teilnehmer statt, die den ersten Termin nicht geschafft haben oder die daran nicht teilnehmen konnten. DIese Ersatzlösung sollte aber hoffentlich nur für wenige Teilnehmer notwendig sein.<br />
<br />
Der Konflikt mit dem Prüfungstermin für Experimentalphysik am 22. Juni wurde gelöst. Prof. Ernst hat sich bereit erklärt den Termin auf 29. Juni zu verschieben.<br />
<br />
== Projektarbeiten ==<br />
<br />
Projektarbeiten sind eine alternative Form die Lehrveranstaltung zu absolvieren. Grundsätzlich gibt es zwei Formen<BR><br />
* Großes Projekt: Ersetzt den Besuch der Übung und die Prüfung<br />
* Kleines Projekt: Übung wird normal absolviert, Prüfung wird durch Projekt ersetzt<br />
<br />
Grundsätzlich eignen sich Projekte nicht dazu, sich die Absolvierung der Lehrveranstaltung möglichst einfach zu gestalten. Das Angebot richtet sich an Studierende, die entweder schon reifliche Programmiererfahrung oder zumindest ein tiefes Interesse am Inhalt der Lehrveranstaltung haben. Die Möglichkeit wurde im Wesentlichen deshalb von mir geschaffen um (in diesem Fach) begabten Studierenden eventuell für siehe fade Programmierbeispiele zu ersparen. Wenn man keine große Erfahrung mit Programmiersprachen hat, ist es sicher keine sinnvolle Idee ein großes Projekt zu starten. Wenn man im Laufe der Lehrveranstaltung die Erfahrung macht, dass einem die Übungsbeispiele sehr leicht fallen, kann man sich ja noch immer für ein Projekt entscheiden. <br />
<br />
Ein Projekt startet mit einem Plan vom Studierenden, was er gerne machen würde. Der Inhalt kann aus vielen Interessensgebieten stammen, muss also nicht unbedingt Physik zum Gegenstand haben. Das Projekt soll aber zeigen, dass man mit den Möglichkeiten von Matlab umgehen kann. Zu diesem Zweck erstellt man eine neue Wiki-Seite unter [[Applikationssoftware - Projekte|Applikationssoftware - Projekte]] und definiert sein Projekt. Nach Absprache mit mir folgt dann die Umsetzung in Matlab und die Dokumentation. Diese Beiträge werden dann ebenfalls auf der Wiki-Seite präsentiert. Zum Abschluss gibt es ein Gespräch über die Umsetzung des Projektes welches als eine Art der Prüfung angesehen werden kann.<br />
<br />
Es gibt keine genauen Vorgaben über den Umfang, die Betroffenen sollten einfach einen vernünftigen Vorschlag mit mir besprechen. Gespräche über den Verlauf sollen bevorzugt in den jeweiligen Übungseinheiten durchgeführt werden.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=2849Matlab - Fehler2005-04-18T09:50:24Z<p>Winny: /* Fall mit mehreren Peaks */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
==== Einfacher Fall ====<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<center><math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></center><br><br />
erfolgt in MATLAB in einfachster Form mit<br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
Interessante Fehlemöglichkeiten sind<br />
* die Verwendung von x als Index<br />
g(x) = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* die Verwendung eines falschen Operators (x ist ein Array)<br />
g = exp(-(x-x0)^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* das Vergessen von Klammern<br />
g = exp(-(x-x0).^2/2*s^2) / (sqrt(2*pi)*s);<br />
* die Erstreckung des Wurzelausdruckes auf andere Variablen<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi*s));<br />
* die Inkonsistenz bei der Benennung von Variablen<br />
function g = gauss(x,x_0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
<br />
==== Fall mit mehreren Peaks ====<br />
<br />
Will man nun die Funktion erweitern, so dass sie mehrere Peaks umfassen kann, dann kann man das in der Mathematik so schreiben:<br><br />
<center><math><br />
g(x) = \frac{1}{n} \sum_{k=1}^{n} <br />
\frac{1}{\sqrt{2\pi}\sigma_k} \exp(-\frac{(x-x_{0,k})^2}{2\sigma_k^2})<br />
</math>,</center><br><br />
wobei <tt>n</tt> die Anzahl der Peaks und <tt>k</tt> eine Art Zählvariable ist.<br />
<br />
Der erste Versuch <br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
schlägt fehl, da <tt>x0</tt> und <tt>s</tt> nun Vektoren sind und man, z.B., zwei ungleich lange Vektoren nicht von einander subtrahieren kann.<br />
<br />
Der zweite Versuch mit einer <tt>for</tt>-Schleife<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
end<br />
schlägt fehl, da die Verwendung der Schleife noch nichts an der Formel geändert hat.<br />
<br />
Die Einführung der Indizes <tt>x0(k)</tt> und <tt>s(k)</tt><br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
lässt das Programm laufen, liefert aber nur den letzten Peak als Ergebnis.<br />
<br />
Die Idee, das man alle Peaks addieren muss<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
führt aber wieder zu einem Fehler, da beim ersten Durchlauf durch die Schleife <tt>g</tt> auf der rechten Seite nicht bekannt ist.<br />
<br />
Die Initialisierung von <tt>g</tt> und die Division durch <tt>n</tt> am Ende<br />
function g = gauss(x,x0,s)<br />
n = numel(x0);<br />
g = zeros(size(x));<br />
for k = 1:n<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
g = g / n;<br />
führt schließlich zum gewünschten Ergebnis, das man sich, z.B., mit<br />
x = linspace(-5,5,1000);<br />
plot(x, gauss(x, [-1,0,1], [0.5,0.3,1]) )<br />
anschauen kann.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=873Matlab - Fehler2005-04-18T09:46:50Z<p>Winny: /* Fall mit mehreren Peaks */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
==== Einfacher Fall ====<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<center><math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></center><br><br />
erfolgt in MATLAB in einfachster Form mit<br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
Interessante Fehlemöglichkeiten sind<br />
* die Verwendung von x als Index<br />
g(x) = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* die Verwendung eines falschen Operators (x ist ein Array)<br />
g = exp(-(x-x0)^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* das Vergessen von Klammern<br />
g = exp(-(x-x0).^2/2*s^2) / (sqrt(2*pi)*s);<br />
* die Erstreckung des Wurzelausdruckes auf andere Variablen<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi*s));<br />
* die Inkonsistenz bei der Benennung von Variablen<br />
function g = gauss(x,x_0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
<br />
==== Fall mit mehreren Peaks ====<br />
<br />
Will man nun die Funktion erweitern, so dass sie mehrere Peaks umfassen kann, dann kann man das in der Mathematik so schreiben:<br><br />
<center><math><br />
g(x) = \frac{1}{n} \sum_{k=1}^{n} <br />
\frac{1}{\sqrt{2\pi}\sigma_k} \exp(-\frac{(x-x_{0,k})^2}{2\sigma_k^2})<br />
</math>,</center><br><br />
wobei <tt>n</tt> die Anzahl der Peaks und <tt>k</tt> eine Art Zählvariable ist.<br />
<br />
Der erste Versuch <br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
schlägt fehl, da <tt>x0</tt> und <tt>s</tt> nun Vektoren sind und man, z.B., zwei ungleich lange Vektoren nicht von einander subtrahieren kann.<br />
<br />
Der zweite Versuch mit einer <tt>for</tt>-Schleife<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
end<br />
schlägt fehl, da die Verwendung der Schleife noch nichts an der Formel geändert hat.<br />
<br />
Die Einführung der Indizes <tt>x0(k)</tt> und <tt>s(k)</tt><br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
lässt das Programm laufen, liefert aber nur den letzten Peak als Ergebnis.<br />
<br />
Die Idee, das man alle Peaks addieren muss<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
führt aber wieder zu einem Fehler, da beim ersten Durchlauf durch die Schleife <tt>g</tt> auf der rechten Seite nicht bekannt ist.<br />
<br />
Die Initialisierung von <tt>g</tt> und die Division durch <tt>n</tt> am Ende<br />
function g = gauss(x,x0,s)<br />
n = numel(x0);<br />
g = zeros(size(x));<br />
for k = 1:n<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
g = g / n;<br />
führt schließlich zum gewünschten Ergebnis.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=872Matlab - Fehler2005-04-18T09:42:22Z<p>Winny: /* Einfacher Fall */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
==== Einfacher Fall ====<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<center><math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></center><br><br />
erfolgt in MATLAB in einfachster Form mit<br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
Interessante Fehlemöglichkeiten sind<br />
* die Verwendung von x als Index<br />
g(x) = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* die Verwendung eines falschen Operators (x ist ein Array)<br />
g = exp(-(x-x0)^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* das Vergessen von Klammern<br />
g = exp(-(x-x0).^2/2*s^2) / (sqrt(2*pi)*s);<br />
* die Erstreckung des Wurzelausdruckes auf andere Variablen<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi*s));<br />
* die Inkonsistenz bei der Benennung von Variablen<br />
function g = gauss(x,x_0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
<br />
==== Fall mit mehreren Peaks ====<br />
<br />
Will man nun die Funktion erweitern, so dass sie mehrere Peaks umfassen kann, dann kann man das in der Mathematik so schreiben:<br><br />
<center><math><br />
g(x) = \frac{1}{n} \sum_{k=1}^{n} <br />
\frac{1}{\sqrt{2\pi}\sigma_k} \exp(-\frac{(x-x_{0,k})^2}{2\sigma_k^2})<br />
</math>,</center><br><br />
wobei <tt>n</tt> die Anzahl der Peaks und <tt>k</tt> eine Art Zählvariable ist.<br />
<br />
Der erste Versuch <br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
schlägt fehl, da <tt>x0</tt> und <tt>s</tt> nun Vektoren sind und man, z.B., zwei ungleich lange Vektoren nicht von einander subtrahieren kann.<br />
<br />
Der zweite Versuch mit einer <tt>for</tt>-Schleife<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
end<br />
schlägt fehl, da die Verwendung der Schleife noch nichts an der Formel geändert hat.<br />
<br />
Die Einführung der Indizes <tt>x0(k)</tt> und <tt>s(k)</tt><br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
lässt das Programm laufen, liefert aber nur den letzten Peak als Ergebnis.<br />
<br />
Die Idee, das man alle Peaks addieren muss<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
führt aber wieder zu einem Fehler, da beim ersten Durchlauf durch die Schleife <tt>g</tt> auf der rechten Seite nicht bekannt ist.<br />
<br />
Die Initialisierung von <tt>g</tt> und die Division durch <tt>n</tt> am Ende<br />
function g = gauss(x,x0,s)<br />
g = zeros(size(x));<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
g = g / numel(x0);<br />
führt schließlich zum gewünschten Ergebnis.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=871Matlab - Fehler2005-04-18T09:00:59Z<p>Winny: /* Fall mit mehreren Peaks */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
==== Einfacher Fall ====<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<center><math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></center><br><br />
erfolgt in MATLAB in einfachster Form mit<br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
Interessante Fehlemöglichkeiten sind<br />
* die Verwendung von x als Index<br />
g(x) = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* die Verwendung eines falschen Operators (x ist ein Array)<br />
g = exp(-(x-x0)^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* das Vergessen von Klammern<br />
g = exp(-(x-x0).^2/2*s^2) / (sqrt(2*pi)*s);<br />
* die Erstreckung des Wurzelausdruckes auf andere Variablen<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi*s));<br />
<br />
==== Fall mit mehreren Peaks ====<br />
<br />
Will man nun die Funktion erweitern, so dass sie mehrere Peaks umfassen kann, dann kann man das in der Mathematik so schreiben:<br><br />
<center><math><br />
g(x) = \frac{1}{n} \sum_{k=1}^{n} <br />
\frac{1}{\sqrt{2\pi}\sigma_k} \exp(-\frac{(x-x_{0,k})^2}{2\sigma_k^2})<br />
</math>,</center><br><br />
wobei <tt>n</tt> die Anzahl der Peaks und <tt>k</tt> eine Art Zählvariable ist.<br />
<br />
Der erste Versuch <br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
schlägt fehl, da <tt>x0</tt> und <tt>s</tt> nun Vektoren sind und man, z.B., zwei ungleich lange Vektoren nicht von einander subtrahieren kann.<br />
<br />
Der zweite Versuch mit einer <tt>for</tt>-Schleife<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
end<br />
schlägt fehl, da die Verwendung der Schleife noch nichts an der Formel geändert hat.<br />
<br />
Die Einführung der Indizes <tt>x0(k)</tt> und <tt>s(k)</tt><br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
lässt das Programm laufen, liefert aber nur den letzten Peak als Ergebnis.<br />
<br />
Die Idee, das man alle Peaks addieren muss<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
führt aber wieder zu einem Fehler, da beim ersten Durchlauf durch die Schleife <tt>g</tt> auf der rechten Seite nicht bekannt ist.<br />
<br />
Die Initialisierung von <tt>g</tt> und die Division durch <tt>n</tt> am Ende<br />
function g = gauss(x,x0,s)<br />
g = zeros(size(x));<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / ...<br />
(sqrt(2*pi)*s(k));<br />
end<br />
g = g / numel(x0);<br />
führt schließlich zum gewünschten Ergebnis.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=870Matlab - Fehler2005-04-18T08:54:28Z<p>Winny: /* Fall mit mehreren Peaks */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
==== Einfacher Fall ====<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<center><math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></center><br><br />
erfolgt in MATLAB in einfachster Form mit<br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
Interessante Fehlemöglichkeiten sind<br />
* die Verwendung von x als Index<br />
g(x) = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* die Verwendung eines falschen Operators (x ist ein Array)<br />
g = exp(-(x-x0)^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* das Vergessen von Klammern<br />
g = exp(-(x-x0).^2/2*s^2) / (sqrt(2*pi)*s);<br />
* die Erstreckung des Wurzelausdruckes auf andere Variablen<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi*s));<br />
<br />
==== Fall mit mehreren Peaks ====<br />
<br />
Will man nun die Funktion erweitern, so dass sie mehrere Peaks umfassen kann, dann kann man das in der Mathematik so schreiben:<br><br />
<center><math><br />
g(x) = \frac{1}{n} \sum_{k=1}^{n} <br />
\frac{1}{\sqrt{2\pi}\sigma_k} \exp(-\frac{(x-x_{0,k})^2}{2\sigma_k^2})<br />
</math>,</center><br><br />
wobei <tt>n</tt> die Anzahl der Peaks und <tt>k</tt> eine Art Zählvariable ist.<br />
<br />
Der erste Versuch <br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
schlägt fehl, da <tt>x0</tt> und <tt>s</tt> nun Vektoren sind und man, z.B., zwei ungleich lange Vektoren nicht von einander subtrahieren kann.<br />
<br />
Der zweite Versuch mit einer <tt>for</tt>-Schleife<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
end<br />
schlägt fehl, da die Verwendung der Schleife noch nichts an der Formel geändert hat.<br />
<br />
Die Einführung der Indizes bei <tt>x0(k)</tt> und <tt>s(k)</tt><br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0(k)).^2/(2*s(k)^2)) / (sqrt(2*pi)*s(k));<br />
end<br />
lässt das Programm laufen, liefert aber nur den letzten Peak.<br />
<br />
Die Idee, das man alle Peaks addieren muss<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / (sqrt(2*pi)*s(k));<br />
end<br />
führt aber wieder zu einem Fehler, da beim ersten Durchlauf durch die Schleife <tt>g</tt> auf der rechten Seite nicht bekannt ist.<br />
<br />
Die Initialisierung von <tt>g</tt> und die Division durch <tt>n</tt> am Ende<br />
function g = gauss(x,x0,s)<br />
g = zeros(size(x));<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / (sqrt(2*pi)*s(k));<br />
end<br />
g = g / numel(x0);<br />
führt schließlichzum gewünschten Ergebnis.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=869Matlab - Fehler2005-04-18T08:52:06Z<p>Winny: /* Umsetzung von Funktionen */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
==== Einfacher Fall ====<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<center><math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></center><br><br />
erfolgt in MATLAB in einfachster Form mit<br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
Interessante Fehlemöglichkeiten sind<br />
* die Verwendung von x als Index<br />
g(x) = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* die Verwendung eines falschen Operators (x ist ein Array)<br />
g = exp(-(x-x0)^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
* das Vergessen von Klammern<br />
g = exp(-(x-x0).^2/2*s^2) / (sqrt(2*pi)*s);<br />
* die Erstreckung des Wurzelausdruckes auf andere Variablen<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi*s));<br />
<br />
==== Fall mit mehreren Peaks ====<br />
<br />
Will man nun die Funktion erweitern, so dass sie mehrere Peaks umfassen kann, so kann man das in der Mathematik so schreiben:<br><br />
<center><math><br />
g(x) = \frac{1}{n} \sum_{k=1}^{n} <br />
\frac{1}{\sqrt{2\pi}\sigma_k} \exp(-\frac{(x-x_{0,k})^2}{2\sigma_k^2})<br />
</math>,</center><br><br />
wobei <tt>n</tt> die Anzahl der Peaks ist.<br />
<br />
Der erste Versuch <br />
function g = gauss(x,x0,s)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
schlägt fehl, da <tt>x0</tt> und <tt>s</tt> nun Vektoren sind und man, z.B., zwei ungleich lange Vektoren nicht von einander subtrahieren kann.<br />
<br />
Der zweite Versuch mit einer <tt>for</tt>-Schleife<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0).^2/(2*s^2)) / (sqrt(2*pi)*s);<br />
end<br />
schlägt fehl, da die Verwendung der Schleife noch nichts an der Formel geändert hat.<br />
<br />
Die Einführung der Indizes bei <tt>x0(k)</tt> und <tt>s(k)</tt><br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = exp(-(x-x0(k)).^2/(2*s(k)^2)) / (sqrt(2*pi)*s(k));<br />
end<br />
lässt das Programm laufen, liefert aber nur den letzten Peak.<br />
<br />
Die Idee, das man alle Peaks addieren muss<br />
function g = gauss(x,x0,s)<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / (sqrt(2*pi)*s(k));<br />
end<br />
führt aber wieder zu einem Fehler, da beim ersten Durchlauf durch die Schleife <tt>g</tt> auf der rechten Seite nicht bekannt ist.<br />
<br />
Die Initialisierung von <tt>g</tt> und die Division durch <tt>n</tt> am Ende<br />
function g = gauss(x,x0,s)<br />
g = zeros(size(x));<br />
for k = 1:numel(x0)<br />
g = g + exp(-(x-x0(k)).^2/(2*s(k)^2)) / (sqrt(2*pi)*s(k));<br />
end<br />
g = g / numel(x0);<br />
führt schließlichzum gewünschten Ergebnis.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=868Matlab - Fehler2005-04-18T08:21:52Z<p>Winny: /* Umsetzung von Funktionen */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
Die Umsetzung einer simplen Funktion<br><br />
<math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp(\frac{(x-x_{0})^2}{2\sigma^2})<br />
</math></div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=867Matlab - Fehler2005-04-18T08:19:06Z<p>Winny: </p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.<br />
<br />
=== Umsetzung von Funktionen ===<br />
<br />
Die Umsetzung einer simplen Funktion<br />
<math><br />
g(x) = \frac{1}{\sqrt{2\pi}\sigma}<br />
</math></div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=866Matlab - Fehler2005-04-18T08:08:33Z<p>Winny: /* Mögliche Lösungen */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung von <tt>isempty</tt><br />
if nargin < 2 || isempty, b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=865Matlab - Fehler2005-04-18T08:06:09Z<p>Winny: /* Aufruf */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x); % b Default<br />
r = test(x,[]); % b Default<br />
r = test(x,3); % b = 3<br />
r = test(x,y); % b = 2<br />
<br />
Nicht möglich ist folgender Aufruf<br />
r = test(x,b); % FALSCH!<br />
da das aufrufende Programm die Variable <tt>b</tt> nicht kennt (verschiedene Workspaces)<br />
<br />
==== Lieblingsfehler ====<br />
<br />
Unter sanfter Vernachlässigung aller Informationen wurde das Problem so gelöst:<br />
function r = test(a,b)<br />
if nargin < 3, b = 5; end<br />
b = input('Bitte geben sie b ein: ');<br />
r = a + b;<br />
Das Programm produziert keine Fehlermitteilung, überschreibt aber in der zweiten Zeile eine eventuelle Übergabe für <tt>b</tt> mit dem Wert <tt>5</tt> um diesen dann in der dritten Zeile mit einer Eingabe des Benutzers zu überschreiben.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=864Matlab - Fehler2005-04-18T07:18:07Z<p>Winny: /* Mögliche Lösungen */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; end<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
: Fehler: Vertauschung der beiden bedingten Anweisungen<br />
if isempty(b)<br />
b = bd;<br />
elseif nargin < 2<br />
b = bd;<br />
end<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
: Fehler: Verwendung des normalen <tt>or</tt> Befehls <tt>|</tt><br />
if nargin < 2 | isempty(b), b = bd; end<br />
: Fehler: Falsche Verwendung des <tt>if</tt>-Befehls<br />
if nargin < 2 || if isempty(b), b = bd; end<br />
if nargin < 2, b = bd; || if isempty(b), b = bd; end<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;<br />
<br />
==== Aufruf ====<br />
<br />
Nach Fertigstellung der Funktion kann man sie in folgender Weise aufrufen:<br />
x = 1; y = 2;<br />
r = test(x)</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=863Matlab - Fehler2005-04-18T07:02:52Z<p>Winny: </p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]<br />
<br />
=== Überprüfung von Übergabeparametern ===<br />
<br />
==== Aufgabenstellung ====<br />
<br />
Es soll eine MATLAB-Funktion <tt>test</tt> geschrieben werden, die für den zweiten Inputparameter einen Defaultwert von <tt>5</tt> setzt und zwar für den Fall wenn dieser nicht übergeben wird oder wenn er leer <tt>[]</tt> ist.<br />
<br />
==== Mögliche Lösungen ====<br />
<br />
* Zwei getrennte bedingte Anweisungen, wobei die Variable <tt>nargin</tt> dabei als Zähler für die Anzahl der übergebenen Inputparameter fungiert.<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2, b = bd; end<br />
if isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Zwei gekoppelte bedingte Anweisungen<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2<br />
b = bd;<br />
elseif isempty(b)<br />
b = bd;<br />
end<br />
r = a + b;<br />
<br />
* Lösung mit einer bedingten Anweisung unter Verwendung des Befehls <tt>or</tt> in seiner "short circuit" Version <tt>||</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Alternative für <tt>nargin</tt> mit Hilfe des Befehls <tt>exist</tt><br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if ~exist('b','var') || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Ergänzung um eine Fehlermitteilung<br />
function r = test(a,b)<br />
bd = 5; % Defaultwert für b<br />
if nargin < 1 || isempty(a), error('a muss übergeben werden!'); end<br />
if nargin < 2 || isempty(b), b = bd; end<br />
r = a + b;<br />
<br />
* Lösung mit variabler Inputliste, wobei <tt>varargin</tt> eine Zelle mit allen Inputparametern ist.<br />
function r = test(varargin)<br />
bd = 5;<br />
a = varargin{1};<br />
if nargin < 2 || isempty(varargin{2})<br />
b = bd;<br />
else<br />
b = varargin{2};<br />
end<br />
r = a + b;</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Main_Page&diff=895Main Page2005-04-18T06:08:54Z<p>Winny: /* Lehrveranstaltungen */</p>
<hr />
<div>Die Seiten sollen neben Diskussionsmöglichkeiten über Physik auch eine Hilfestellung zur [[Computer Benutzung]] am [http://itp.tugraz.at/ Institut für Theoretische Physik] und dem [[Computerraum Physik]] bieten. Es ist ausdrücklich erlaubt und erwünscht, dass diese Wikipedia Site von den Studenten und Professoren ergänzt oder richtiggestellt wird. Jeder darf etwas schreiben und seine Erfahrungen teilen - wir hatten in der letzten Woche leider einige Probleme mit ''link spam'', daher ist Schreiben derzeit nur für angemeldete Benutzer möglich.<br />
<br />
==Computerraum Physik==<br />
Anleitungen und Hilfestellungen zum Computerraum findet ihr unter folgenden Punkten:<br />
<br />
* Bitte durchlesen: [[Wichtiges zur Computerbenutzung]] <br />
* '''Weiterführende Hilfe: [[Computer Benutzung]]'''<br />
* Allgemeines zum [[Computerraum Physik]]<br />
* Probleme und Lösungen: [[Liste bekannter Probleme]]<br />
* Informationen über diese Wiki: <br />
** [[Konventionen im Bereich Computerraum]]<br />
** [[Fragen, Probleme, Anregungen ...]]<br />
<br />
<br />
Während des Semester halten 2 Studienassistenten im Computerraum '''Sprechstunden'''. Die '''Zeiten''' und '''Mailadressen''' findet ihr unter [[Computerraum Physik]]<br />
<br />
==Lehrveranstaltungen==<br />
*[[Applikationssoftware und Programmierung]] - [[Applikationssoftware - Beiträge|Beiträge]] - [[Applikationssoftware - Projekte|Projekte]]<br />
**[[Matlab]] - [[Matlab - Beiträge|Beiträge]] - [[Matlab - Fehler|Fehler]]<br />
*[[Fusionsphysik]]<br />
*[[Numerische Methoden]]<br />
*[[Buchempfehlungen#Elektromagnetische_Felder.2C_Elektrodynamik_.28Elektrodynamik.29|Elektrodynamik Buchempfehlungen]]<br />
<br />
==Physik==<br />
Es steht jedem frei in diesem Bereich Seiten zu physikalischen Themen anzulegen. <br />
* [[Physik]]<br />
** [[Tschernobyl]]<br />
<br />
==Informationen von Studenten für Studenten==<br />
In diesem Bereich kann jeder sein Wissen weitergeben. Vielleicht profitieren einige Studenten oder auch sonstige Personen von diesen Informationen.<br />
* [[Cpp Programmierung]]<br />
* [[Buchempfehlungen]]<br />
<br />
<br />
----<br />
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]<br />
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_und_Programmierung&diff=907Applikationssoftware und Programmierung2005-04-11T05:33:36Z<p>Winny: /* Übungen mit Abgabeverpflichtung */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Diese Seite ist schreibgeschützt, da sie wichtige Informationen für die Lehrveranstaltung beinhaltet. Beiträge von Studierenden und Besuchern sind auf [[Applikationssoftware - Beiträge]] und [[Matlab - Beiträge]] erwünscht. <br />
<br />
== Wichtige Nachrichten ==<br />
<br />
* Die erste Übung mit Abgabepflicht findet in der Woche vom 7. März 2005 statt.<br />
* Die Anwesenheit bei der ersten Lehrveranstaltung am Montag, den 28.2.2005 ist unbedingt erforderlich. Dabei werden die Accounts für den Computerraum vergeben.<br />
* Füllen sie vorher unser [http://www.itp.tu-graz.ac.at/cgi-bin/new_account.pl Anmeldeformular] aus, dann erhalten sie von mir in der ersten Lehrveranstaltung das Password.<br />
* Bei den Übungen herrscht Anwesenheitspflicht. Bitte informieren sie sich über die [[Applikationssoftware und Programmierung#Regeln| Regeln]] die für diese Lehrveranstaltung gelten.<br />
* Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Die Anzahl von vier Gruppen wird mit Sicherheit nicht erhöht es soll aber auch niemand von der Lehrveranstaltung ausgeschlossen sein. [[Applikationssoftware und Programmierung#Anzahl der Teilnehmer| Mögliche Ausnahmen]] und die Abwicklungsmöglichkeit über [[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] sind weiter unten angeführt.<br />
<br />
== Inhalt der Lehrveranstaltung== <br />
<br />
Grundzüge des Programmierens unter Verwendung der Programmiersprache MATLAB.<br />
<br />
Die Verwendung von Computern wurde, wie in vielen Bereichen des Lebens, auch<br />
in der Physik zu einem zentralen Bestandteil sowohl der Ausbildung als auch<br />
der Forschung. Die meisten Forschungsbereiche wären heute ohne die Verwendung<br />
von Computern und entsprechender Software gar nicht mehr denkbar. Das gilt<br />
sowohl für Experimente, deren Steuerung und Auswertung, als auch für die<br />
theoretische Behandlung von Problemen bzw. die numerische Simulation von<br />
Experimenten.<br />
<br />
Die Lehrveranstaltung Applikationssoftware und Programmierung wurde im<br />
Studienplan der Studienrichtung Technische Physik daher bewußt an den Anfang<br />
des Studiums gestellt. Die Studierenden sollen dabei mit folgenden Bereichen<br />
konfrontiert werden:<br><br />
* Verwendung von Computern, wie sie im Bereich der Physik üblich ist.<br />
* Kennenlernen der Computerinfrastruktur für Studierende im Bereich der TU-Graz und speziell im Bereich der Physik.<br />
* Kennenlernen und Verwenden von Programmpaketen (Applikationen), die für das weitere Studium nützlich sind <br />
** Auswertung und Darstellung von Messungen<br />
** numerische Berechnungen<br />
** Visualisierung <br />
** Arbeiten mit [[Matlab | Matlab]]<br />
* Informationsbeschaffung aus dem World Wide Web, aus lokalen Dokumentationen oder von ihren Kollegen.<br />
* Grundzüge des Programmierens.<br />
<br />
Die Studierenden sollen daher von Anfang an die Möglichkeit erhalten, das<br />
für sie bereitgestellte System in vielen Bereichen ihres Studiums zu<br />
verwenden. Außerdem sollen sie auf eine Fülle aufbauender Lehrveranstaltungen<br />
bestmöglich vorbereitet sein.<br />
<br />
== Ziele ==<br />
<br />
Die Ziele der Lehrveranstaltung liegen also <br><br />
* in der Vermittlung der GRUNDLAGEN des PROGRAMMIERENS <br />
* mit Hilfe der Programmiersprache MATLAB;<br />
* in der Entwicklung EIGENSTÄNDIGER LÖSUNGSKOMPETENZ <br />
* auch für KOMPLEXERE AUFGABEN (im weiteren Studienverlauf);<br />
* in der Vermittlung der Idee, dass es sich hier um eine CHANCE handelt Fähigkeiten zu lernen, die man in vielen beruflichen Bereichen verwenden kann, und nicht um eine QUAL, die man über sich ergehen lassen muss;<br />
* in der Vermittlung von Fähigkeiten, HILFE beim PROGRAMMIEREN aus unterschiedlichsten QUELLEN zu finden<br />
* und dabei ENGLISCH als wichtigste SPRACHE zu akzeptieren;<br />
* im Wunsch sowohl ANFÄNGER an das Programmieren heranzuführen, als auch FORTGESCHRITTENEN etwas zu bieten, was sie interessiert. <br />
<br />
Das Ziel ist auch, dass zumindest 80 PROZENT den ABSCHLUSS am ENDE DES SOMMERSEMESTERS mit eher GUTEN NOTEN schaffen sollen und die restlichen Studierenden (zumindest die, die weiter hier studieren) die Prüfung im Oktober absolvieren. <br />
<br />
Eigentlich möchte ich keinen Teilnehmer von heuer bei den Übungen im nächsten Jahr mit den gleichen Inhalten "quälen" müssen. Meine Bereitschaft dazu ist gegeben, es funktioniniert natürlich aber nur mit eurem nötigen Engagement. Daher reden sie auch (und vor allem) bei Problemen rechtzeitig mit mir.<br />
<br />
== Termine == <br />
<br />
Die Übungen finden im Computerraum Physik zu folgenden Zeiten statt<BR><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Übungszeiten'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
! style="background:#efefef;" | Leiter<br />
|-<br />
| A <br />
| Montag <br />
| 16:15 <br />
| 17:45 <br />
| Kernbichler<br />
|-<br />
| B <br />
| Montag <br />
| 18:00 <br />
| 19:30 <br />
| Kernbichler<br />
|-<br />
| C <br />
| Mittwoch <br />
| 08:30 <br />
| 10:00 <br />
| Kernbichler<br />
|-<br />
| D <br />
| Mittwoch <br />
| 14:15 <br />
| 15:45 <br />
| Kernbichler<br />
|-<br />
|}<br />
Ein Wechsel zu anderen Gruppen ist nur nach Absprache mit mir möglich.<br />
<br />
== Übungen ==<br />
<br />
Die erste Übungseinheit findet in der Woche ab dem 28. Februar statt. Sie dient nur dem Kennenlernen des Computersystems und dem Sammeln von ersten Erfahrungen mit Matlab. Für diese Übungseinheit ist keine Abgabe von Beispielen notwendig, es herrscht aber Anwesenheitspflicht. Probieren sie Matlab aus, starten sie die Hilfe und den Editor und machen sie sich mit dem System vertraut.<br />
<br />
[[Erste Schritte]] für die Computerbenutzung sollten den Einstieg erleichtern.<br />
<br />
=== Übungen mit Abgabeverpflichtung ===<br />
<br />
Die zu erstellenden Files müssen mit dem exakt richtigen Namen abgegeben werden. Zur Abgabe bzw. zur Information über den Status ihrer Übungen gibt es die Skripts,<br><br />
uebungsabgabe file1 file2 ...<br />
uebungsstatus <br />
welche im Terminal aufgerufen werden. Benötigt man in gewissen Übungen Daten, erhält man diese mit folgendem Skript:<br><br />
uebungsdaten<br />
Passen sie auf, dass sie sich im richtigen Verzeichnis befinden, wenn sie das Skript aufrufen, sonst können die Files nicht gefunden werden. In Matlab kann man die Skripts mit vorangestelltem Rufzeichen auch aufrufen:<br><br />
!uebungsabgabe file1 file2 ...<br />
!uebungsstatus <br />
!uebungsdaten<br />
<br />
<br />
;Mathematische Funktionen<br />
:Übung vom 7. März / 9. März 2005 - Abgabe bis spätestens 21. März / 23. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node61.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Reguläre Polyeder, Kegelschnitte<br />
:Übung vom 14. März / 16. März 2005 - Abgabe bis spätestens 28. März / 30. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node62.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Spiralen, Schwebung, Gaußverteilung<br />
:Übung vom 11. April / 13. April 2005 - Abgabe bis spätestens 25. April / 27. April 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node63.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Felder<br />
:Übung vom 18. April / 20. April 2005 - Abgabe bis spätestens 2. Mai / 4. Mai 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node64.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
;Logische Indizierung<br />
:Übung vom 25. April / 27. April 2005 - Abgabe bis spätestens 9. Mai / 11. April 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node65.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
== Regeln ==<br />
<br />
Die Anwesenheit bei den Übungen ist verpflichtend. Bei Verhinderung ist unbedingt eine begründete Entschuldigung per e-mail notwendig. Auch bei einem Fernbleiben von der Übung (aus welchem Grund auch immer) müssen die entsprechenden Beispiele termingerecht abgegeben werden. Falls es in<br />
Ausnahmefällen damit Probleme gibt, wenden Sie sich an mich um eine spezielle Vereinbarung zu treffen. Im Regelfall gibt es eine zweiwöchige Frist für die Abgabe der Beispiele.<br />
<br />
Außer in Ausnahmefällen (siehe dazu auch [[Applikationssoftware und Programmierung#Projektarbeiten | Projektarbeiten]]) ist die Abgabe aller Übungsbeispiele notwendig um zur <br />
[[Applikationssoftware und Programmierung#Prüfung | Abschlussprüfung]] antreten und damit die Lehrveranstaltung ordnungsgemäß beenden zu können.<br />
<br />
Die Anwesenheit bei der Vorlesung ist natürlich nicht verplichtend. Ich möchte aber darauf hinweisen, dass die Übungsbeispiele in der Vorlesung sowohl vor- als auch nachbereitet werden. Damit ist ihre Durchführung um<br />
vieles leichter. Es gibt also eine starke Vernetzung von Vorlesung und Übung. Daher gibt es bei den Übungsterminen bis auf kleinere Anmerkungen keinen Vortrag von mir mehr. <br />
<br />
Bei der jeweiligen Übung soll die Aufgabe dieser Übungseinheit (und nicht einer vorherigen) bearbeitet werden. In vielen Fällen wird die Zeit während der Übungseinheit nicht zur Fertigstellung reichen. Die Aufgabe muss dann im Normalfall innerhalb von zwei Wochen außerhalb der Übungseineiten fertiggestellt werden. Aus meiner Sicht ist dieser zusätzliche Aufwand gerechtfertigt, da die selbständige Erledigung aller Übungsbeispiele die perfekte Vorberereitung auf die Prüfung ist und daher vor der Prüfung keine lange Vorbereitungsphase mehr notwendig ist.<br />
<br />
Nützen sie die Zeit während der Übung für Fragen. Erfahrungsgemäß haben diejenigen Studierenden die meisten Probleme die Lehrveranstaltung sinnvoll zu beenden, die aus welchen Gründen auch immer keine oder kaum Fragen stellen. Es ist kein Problem (und wid natürlich auch nicht negativ bewertet), wenn man etwas nicht verstanden hat und es sich nochmals (und nochmals) erklären lässt. Das wirkliche Problem tritt erst bei der Prüfung auf, wenn man vorher die ganze Zeit versucht die Mängel zu verstecken. Daher fragen sie mich, ihre Kollegen oder formulieren sie Fragen im Bereich [[Matlab - Beiträge|Matlab - Beiträge]]. Dort können sie auch Fragen beantworten oder Kommentare zu Antworten abgeben. Auch dieser Bereich lebt und wächst mit ihrer Beteiligung.<br />
<br />
Die Lösungen müssen selbständig erarbeitet werden. Natürlich kann es ihnen gelingen, Lösungen von Kollegen oder Kolleginen abzugeben und dann darauf zu hoffen, dass es von uns nicht bemerkt wird. Ob diese Vorgangsweise im Sinne der Prüfungsvorbereitung sinnvoll ist, bleibt ihnen zur Beurteilung überlassen. Es spricht aber natürlich nichts gegen Teamarbeit von der mehrere profitieren oder wo man clevere Lösungen von einem/einer anderen erfährt und dann selbst umsetzt. Der Schlüssel zum Erfolgt liegt hier darin, dann zu verstehen, was man wie und warum gemacht hat. Sinnvoll ist es auch die eigenen Überlegungen innerhalb des Programmes zu dokumentieren, da man die eigenen Beispiele alle während der Prüfung zur Verfügung hat. Tut man das nicht in sinnvoller Weise, kommt man rasch dahinter, wie schnell man den Sinn von Programmzeilen vergisst, die man selbst einmal geschrieben hat.<br />
Fügt man jedoch sinnvolle Komentare ein, kann man auch später noch viel aus alten Überlegungen lernen und man merkt auch, dass es relativ wenig Zeit kostet diese Kommentare zu schreiben.<br />
<br />
== Dokumentation ==<br />
<br />
Das Skriptum zur Lehrveranstaltung und sonstige Unterlagen findet man unter:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum]<br />
| pdf <br />
| Druckfähige Version mit Hyperlinks<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/ Skriptum]<br />
| html<br />
| LaTex2html Version, leichte Darstellungsprobleme<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/Praesentationen/Matlab_Einfuehrung.pdf Folien]<br />
| pdf <br />
| Matlab Einführung <br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1_talk.pdf Folien]<br />
| pdf <br />
| Landscape für Präsentation<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/ Kapitel]<br />
| pdf <br />
| Webseite mit weiteren Links zu den einzelnen Kapiteln<br />
|-<br />
|}<br />
Die Übungsbeispiele und auch das Skriptum werden laufend den Bedürfnissen<br />
angepasst. Überzeugen sie sich daher vor dem jeweiligen Übungsbeginn, ob sich<br />
etwas geändert hat.<br />
<br />
== Anzahl der Teilnehmer ==<br />
<br />
Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Der Grund dafür ist die Anzahl der vorhandenen Computer. Falls es trotz der geplanten 4 Gruppen Probleme gibt, ersuche ich Studierende mit eigenen Laptops diese zu verwenden. Es stehen zwei Netzwerkzugänge (cat-5) bzw. das [http://www.zid.tugraz.at/ki/netz/extern/wlan/ WLAN] der TU Graz, das im Bereich unseres Computerraumes zur Verfügung steht.<br />
<br />
== Prüfung ==<br />
<br />
Die Prüfung setzt sich aus einer Abschlussklausur, die aus einigen Programmieraufgaben besteht, und einem abschliesenden Prüfungsgespräch zusammen. Wegen der engen Verkopplung von Vorlesung und Übung findet auch de Prüfung über beide Teile so verkoppelt statt. <br />
<br />
Die Programmieraufgaben bei der Prüfung schliesen thematisch an die Übungsaufgaben an. Dabei dürfen alle Unterlagen, Übungsbeispiele, Skripten und Webseiten verwendet werden. Währen der Prüfung verboten ist nur die Kommunikation untereinander und mit der Außenwelt.<br />
<br />
Der sonst bei manchen Prüfungen bestehende Zeitdruck soll möglichst vermeiden werden. Daher stehen pro Termin vier Stunden zur Verfügung. Parallel dazu werden die mündlichen Gespräche mit denjenigen, die schon früher fertig sind, abgewickelt. Die Erfahrung zeigt, dass das was man bis dahin nicht geschafft hat wegen mangelnder Kenntnisse auch in viel längerer Zeit nicht schaffen kann. <br />
<br />
Das Prüfungsgespräch nach den Programmieraufgaben schliest an die Aufgaben an und überprüft wichtige Grundlagen des Programmierens und deren Umsetzung in Matlab. Nach Absolvierung beider Teile bekommt man ein Zeugnis über die Übung und über die Vorlesung. Es soll hier nochmals darauf hingewiesen werden, dass Übungen "immanenten Prüfungscharacter" haben und daher sowohl die Anwesenheit als auch die Abgabe aller Beispiele notwendig ist.<br />
<br />
Eine alternative Form der Abwicklung der Prüfung ist mit der Durchführung von <br />
[[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] möglich.<br />
<br />
=== Prüfungsbeispiele ===<br />
<br />
Prüfungsbeispiele aus den Jahren 2003 und 2004 stehen in folgender Form zur Verfügung:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_211003.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 21.10.2003<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0603dat.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2004<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
|}<br />
<br />
=== Prüfungstermine ===<br />
<br />
Die Prüfungen im Jahr 2005 werden zu folgenden Terminen stattfinden:<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Prüfungstermine'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Datum<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
|-<br />
| A <br />
| Montag<br />
| 20. Juni 2005 <br />
| 08:00 <br />
| 12:00 <br />
|-<br />
| B <br />
| Montag<br />
| 20. Juni 2005<br />
| 14:00 <br />
| 18:00 <br />
|-<br />
| C <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 08:00 <br />
| 12:00<br />
|-<br />
| D <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 14:00 <br />
| 18:00 <br />
|-<br />
|}<br />
Der Grund für die Vorverlegung um eine Woche liegt daran, dass ich in der letzten Woche vor Ferienbeginn an einer wissenschaftlichen Konferenz im Ausland teilnehmen muss. Die Gruppenteilnehmer werden automatisch bei ihrem jeweiligen Termin angemeldet. Änderungen sind nur möglich, falls Plätze zu anderen Terminen frei sind.<br />
<br />
Voraussichtlich Mitte Oktober findet dann eine Nachklausur für jene Teilnehmer statt, die den ersten Termin nicht geschafft haben oder die daran nicht teilnehmen konnten. DIese Ersatzlösung sollte aber hoffentlich nur für wenige Teilnehmer notwendig sein.<br />
<br />
Der Konflikt mit dem Prüfungstermin für Experimentalphysik am 22. Juni wurde gelöst. Prof. Ernst hat sich bereit erklärt den Termin auf 29. Juni zu verschieben.<br />
<br />
== Projektarbeiten ==<br />
<br />
Projektarbeiten sind eine alternative Form die Lehrveranstaltung zu absolvieren. Grundsätzlich gibt es zwei Formen<BR><br />
* Großes Projekt: Ersetzt den Besuch der Übung und die Prüfung<br />
* Kleines Projekt: Übung wird normal absolviert, Prüfung wird durch Projekt ersetzt<br />
<br />
Grundsätzlich eignen sich Projekte nicht dazu, sich die Absolvierung der Lehrveranstaltung möglichst einfach zu gestalten. Das Angebot richtet sich an Studierende, die entweder schon reifliche Programmiererfahrung oder zumindest ein tiefes Interesse am Inhalt der Lehrveranstaltung haben. Die Möglichkeit wurde im Wesentlichen deshalb von mir geschaffen um (in diesem Fach) begabten Studierenden eventuell für siehe fade Programmierbeispiele zu ersparen. Wenn man keine große Erfahrung mit Programmiersprachen hat, ist es sicher keine sinnvolle Idee ein großes Projekt zu starten. Wenn man im Laufe der Lehrveranstaltung die Erfahrung macht, dass einem die Übungsbeispiele sehr leicht fallen, kann man sich ja noch immer für ein Projekt entscheiden. <br />
<br />
Ein Projekt startet mit einem Plan vom Studierenden, was er gerne machen würde. Der Inhalt kann aus vielen Interessensgebieten stammen, muss also nicht unbedingt Physik zum Gegenstand haben. Das Projekt soll aber zeigen, dass man mit den Möglichkeiten von Matlab umgehen kann. Zu diesem Zweck erstellt man eine neue Wiki-Seite unter [[Applikationssoftware - Projekte|Applikationssoftware - Projekte]] und definiert sein Projekt. Nach Absprache mit mir folgt dann die Umsetzung in Matlab und die Dokumentation. Diese Beiträge werden dann ebenfalls auf der Wiki-Seite präsentiert. Zum Abschluss gibt es ein Gespräch über die Umsetzung des Projektes welches als eine Art der Prüfung angesehen werden kann.<br />
<br />
Es gibt keine genauen Vorgaben über den Umfang, die Betroffenen sollten einfach einen vernünftigen Vorschlag mit mir besprechen. Gespräche über den Verlauf sollen bevorzugt in den jeweiligen Übungseinheiten durchgeführt werden.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=862Matlab - Fehler2005-03-14T10:35:07Z<p>Winny: </p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig, andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=662Matlab - Fehler2005-03-14T10:29:39Z<p>Winny: /* Verwechslung von : und ; */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher so lauten:<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hat:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=661Matlab - Fehler2005-03-14T10:27:24Z<p>Winny: /* Verwechslung von : und ; */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(pi*x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]<br />
<br />
Dabei wurden die Zeichen ; und : verwechselt. Der richtige Code müsste daher<br />
x = [-1:0.05:1]; y = sin(pi*x); plot(x,y)<br />
lauten.<br />
<br />
[[Image:Sincor1.png|400px|Richtige Darstellung]]<br />
<br />
Der Grund, das Matlab hier keine Fehlermitteilung liefert, liegt darin, dass zwar für das gewünschte Ziel ein falscher Befehl verwendet wurde, dieser Befehl aber eine korrekte Syntax hatte:<br />
<br />
x = [-1;0.05;1] Spaltenvektor [-1<br />
0.05<br />
1]<br />
x = [-1,0.05,1] Zeilenvektor [-1 0.05 1]<br />
x = [-1:0.05:1] Bereich von bis [-1 -0.95 -0.9 ... 0.9 0.95 1]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Datei:Sincor1.png&diff=2864Datei:Sincor1.png2005-03-14T09:33:50Z<p>Winny: Korrekte Lösung</p>
<hr />
<div>Korrekte Lösung</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_-_Beitr%C3%A4ge&diff=2833Applikationssoftware - Beiträge2005-03-14T08:37:26Z<p>Winny: /* Muss ich mich bei Fernbleiben entschuldigen? */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Betätigen sie den Edit-Knopf im oberen Bereich der Seite und stellen sie auf die Lehrveranstaltung bezogene Fragen. Ich werde mich auch bemühen Fragen von allgemeinem Interesse, die mir über e-mail gestellt werden, im Rahmen dieser Seite zu beantworten. Es ist aber natürlich jeder herzlich eingeladen Fragen zu beantworten oder <br />
[[Applikationssoftware - Beiträge#Diskussion|Diskussionsbeiträge]] zu liefern.<br />
Bei Beantwortung sollten die Einträge in den Bereich <br />
[[Applikationssoftware - Beiträge#Fragen und Antworten|Fragen und Anworten]]<br />
verlagert werden. [[Matlab]]-spezifische Fragen und Diskussionsbeiträge sollten im Bereich<br />
[[Matlab - Beiträge|Matlab - Beiträge]] bearbeitet werden.<br />
<br />
== Offene Fragen ==<br />
<br />
=== Gibt es Süßigkeiten während der Übung? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Muss ich an allen Übungen teilnehmen? ====<br />
<br />
Grundsätzlich ja, außer es gibt einen vernünftigen Grund für die Abwesenheit oder es wurde eine andere Form der Abwicklung mit mir vereinbart.<br />
<br />
==== Muss ich mich bei Fernbleiben entschuldigen? ==== <br />
<br />
Ja und zwar durch eine [mailto://winfried.kernbichler@tugraz.at E-mail] an den Vortragenden vor der jeweiligen Einheit. Diese sollte einen Grund für das Fernbleiben beinhalten. "Ich kann heute nicht kommen", reicht nicht als Entschuldigung. "Ich habe gleichzeitig ein Fahrstunde", ist keine gute Entschuldigung, da diese Form irgendwie eine falsche Prioritätensetzung nahe legt. Auch Arzttermine sind natürlich in den meisten Fällen "zeitlich" gestaltbar und müssen oft nicht unbedingt zum Übungstermin stattfinden.<br />
<br />
==== Muss ich alle Übungsbeispiele abgeben? ====<br />
<br />
Ja, alle und nicht 60 oder 80 Prozent der Übungen. Wenn man fehlt, muss man die Übungen trotzdem machen. Damit soll auch der Anreiz zu fehlen so gering wie möglich sein. Dies soll auch der Tendenz vorbeugen, dass jemand die letzten Übungen nicht mehr macht und genau die dann bei der Prüfung notwendig sind.<br />
<br />
==== Sind die Abgabetermine wichtig? ====<br />
<br />
Ja, aber sie werden nicht absolut stur gehandhabt, d.h., man wird nicht von der Übung ausgeschlossen wenn der Termin vorbei ist. Man kann die Übung auch weiter abgeben, aber die Verzögerung wird natürlich registriert und fließt in die Beurteilung ein.<br />
<br />
Vor der Abschlussklausur müssen aber alle Beispiele abgeben sein. Auf Grund der Vorverlegung der Prüfung auf die Woche vom 20. Juni ist die Zeit sehr knapp und für die letzte Übung steht nur eine Woche zur Verfügung. Bringen sie sich daher nicht vorher durch starke Verzögerungen bei der Abgabe in Zeitdruck. <br />
<br />
Nach der Prüfung gibt es noch eine Woche, eventuelle Korrekturen an ihren letzten Übungsbeispielen vorzunehmen. Es sei hier noch einmal darauf hingewiesen, dass es ohne die korrekte Abgabe aller Beispiele keinen positiven Abschluss der<br />
Lehrveranstaltung gibt.<br />
<br />
==== Kann man Übungsbeispiele korrigiert wieder abgeben? ====<br />
<br />
Ja, so oft man will. Darin liegt ja der Sinn, dass man etwas verbessert, das nicht in Ordnung ist, oder dass man eine bessere Idee hat etwas zu lösen.<br />
<br />
==== Abgabetermine liegen in den Osterferien? ====<br />
<br />
Ja, ich weiss. Das soll verhindern, dass mit der letzten Übung vor den Osterferien erst nachher begonnen wird. Grund - siehe oben. <br />
<br />
Die Übung vor den Ferien ist so gestaltet, dass man sie auch vorher fertigstellen kann. Außerdem ist unser Computerraum auch in den Ferien offen und die Computer sind von Aussen immer erreichbar.<br />
<br />
=== Technische Fragen ===<br />
<br />
==== Warum wird das Betriebssystem Linux verwendet? ====<br />
<br />
Linux ist eine freies Betriebssystem, das keine Lizenzkosten verursacht und in dessen Bereich eine Vielzahl von hochwertiger Software frei zur Verfügung steht. Linux ist daher im universitären und wissenschaftlichen Bereich weitverbreitet. Für angehende Wissenschafter und Programmentwickler ist es daher von großer Bedeutung ein derartiges Betriebssystem kennen und verwenden zu lernen.<br />
<br />
Darüber hinaus ist die Verwaltung und Installation einer großen Anzahl von Computern leichter zu realisieren. Die Computer im Lehrsaal Physik werden gemeinsam mit den gesamten Computern des "Instituts für Theoretische Physik - Computational Physics" verwaltet. Damit stehen sie auch einem verteiltem Rechensystem zur Verfügung, welches bei Nichtbenutzung der Computer (Nacht, Wochenende, ...) darauf Computerprogramme im Rahmen der Forschungsaktivitäten des Instituts ablaufen lässt.<br />
<br />
Unsere Computer stehen permanent (7 Tage die Woche 24 Stunden) für externe Benutzung zur Verfügung. Informieren sie sich unter dem Kapitel [[Externer Zugriff]] über die vorhandenen Möglichkeiten.<br />
<br />
==== Wann kann man den Computerraum benutzen? ====<br />
<br />
Grundsätzlich zu den Zeiten in denen man in das Haus kommt. Dies ist ungefähr zwischen 6 Uhr morgens und 20 Uhr abends. Sollte der Raum einmal verschlossen sein, bittet jemanden vom Putzpersonal oder im Sekretariat des Instituts für Theoretische Physik den Raum aufzusperren.<br />
<br />
Da man das Haus aus feuerpolizeilichen Gründen immer verlassen kann, ist es natürlich auch möglich länger im Computerraum zu bleiben. <br />
<br />
Ausnahmen sind natürlich die Zeiten in denen Lehrveranstaltungen stattfinden. Die Termine findet man beim entsprechenden Raum im TUGonline.<br />
<br />
Eine Benutzung von Außen über eine Netzwerkverbindung ist natürlich immer möglich.<br />
<br />
== Diskussion ==<br />
<br />
=== Preise ===<br />
<br />
Vielen Studierenden fällt es schwer in Lehrveranstaltungen Fragen zu stellen. Das Stellen von Fragen in der Allgemeinheit (bzw. deren Beantwortung) hilft aber oft nicht nur dem/der Fragesteller/in sondern auch vielen anderen, die sich insgeheim auch schon die gleiche Frage gestellt haben. Um einen Anreiz dafür zu geben Fragen zu stellen, könnte ich mir vorstellen für diejenige/denjenigen mit den meisten Fragen einen Preis zu stiften. <br />
<br />
Die Diskussion während der Lehrveranstaltung hat ergeben, dass das durchaus sinnvoll sein kann. Also nehmen sie die Chance war. Eine Preisoption, die von Studierenden vorgeschalgen wurde, wären ein oder zwei "Six Packs". Natürlich bin ich auch gerne bereit nichtalkoholische Preise zu stiften.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=660Matlab - Fehler2005-03-14T08:35:11Z<p>Winny: /* Verwechslung von : und ; */</p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|400px|Falsche Darstellung]]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=658Matlab - Fehler2005-03-08T16:19:33Z<p>Winny: </p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.<br />
<br />
=== Verwechslung von : und ; ===<br />
<br />
Ein Plot der Funktion f(x) = sin(&pi; x) im Intervall [-1,1] wurde mit folgendem Code versucht:<br />
x = [-1;0.05;1]; y = sin(x); plot(x,y)<br />
<br />
[[Image:Sinerr1.png|thumb|Description]]</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Datei:Sinerr1.png&diff=2850Datei:Sinerr1.png2005-03-08T16:17:36Z<p>Winny: Sinus falsch dargestellt</p>
<hr />
<div>Sinus falsch dargestellt</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Fehler&diff=559Matlab - Fehler2005-03-08T14:00:48Z<p>Winny: </p>
<hr />
<div>In jeder Programmiersprache, so auch in Matlab, gibt es eine Reihe von Fehlermöglichkeiten, die dazu führen, dass das Programm scheinbar ordnungsgemäß beendet wird. Trotzdem ist das Ergebnis falsch oder zumindest entspricht es nicht den Erwartungen. Einige dieser Fehler sind lustig andere für Anfänger oft verblüffend.<br />
<br />
Sie können hier zu einer Sammlung und Beschreibung dieser Fehler beitragen, da ich glaube, dass man daraus sehr viel lernen kann.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Main_Page&diff=566Main Page2005-03-08T13:54:54Z<p>Winny: </p>
<hr />
<div>Die Seiten sollen neben Diskussionsmöglichkeiten über Physik auch eine Hilfestellung zur [[Computer Benutzung]] am [http://itp.tugraz.at/ Institut für Theoretische Physik] und dem [[Computerraum Physik]] bieten. Es ist ausdrücklich erlaubt und erwünscht, dass diese Wikipedia Site von den Studenten und Professoren ergänzt oder richtiggestellt wird. Jeder darf etwas schreiben und seine Erfahrungen teilen. <br />
==Lehrveranstaltungen==<br />
*[[Applikationssoftware und Programmierung]] - [[Applikationssoftware - Beiträge|Beiträge]]<br />
**[[Matlab]] - [[Matlab - Beiträge|Beiträge]] - [[Matlab - Fehler|Fehler]]<br />
*[[Fusionsphysik]]<br />
<br />
==Physik==<br />
Es steht jedem frei in diesem Bereich Seiten zu physikalischen Themen anzulegen. <br />
* [[Physik]]<br />
<br />
==Computerraum Physik==<br />
Anleitungen und Hilfestellungen zum Computerraum findet ihr unter folgenden Punkten:<br />
<br />
* Bitte durchlesen: [[Wichtiges zur Computerbenutzung]] <br />
* Weiterführende Hilfe: [[Computer Benutzung]]<br />
* Allgemeines zum [[Computerraum Physik]]<br />
* Probleme und Lösungen: [[Bekannte_Probleme]]<br />
* Informationen über diese Wiki: [[Konventionen im Bereich Computerraum]]<br />
<br />
Während des Semester halten 2 Studienassistenten im Computerraum '''Sprechstunden'''. Die '''Zeiten''' und '''Mailadressen''' findet ihr unter [[Computerraum Physik]]<br />
<br />
----<br />
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]<br />
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Main_Page&diff=557Main Page2005-03-07T12:42:55Z<p>Winny: </p>
<hr />
<div>Die Seiten sollen neben Diskussionsmöglichkeiten über Physik auch eine Hilfestellung zur [[Computer Benutzung]] am [http://itp.tugraz.at/ Institut für Theoretische Physik] und dem [[Computerraum Physik]] bieten. Es ist ausdrücklich erlaubt und erwünscht, dass diese Wikipedia Site von den Studenten und Professoren ergänzt oder richtiggestellt wird. Jeder darf etwas schreiben und seine Erfahrungen teilen. <br />
==Lehrveranstaltungen==<br />
*[[Applikationssoftware und Programmierung]] - [[Applikationssoftware - Beiträge|Beiträge]]<br />
**[[Matlab]] - [[Matlab - Beiträge|Beiträge]]<br />
*[[Fusionsphysik]]<br />
<br />
==Physik==<br />
Es steht jedem frei in diesem Bereich Seiten zu physikalischen Themen anzulegen. <br />
* [[Physik]]<br />
<br />
==Computerraum Physik==<br />
Anleitungen und Hilfestellungen zum Computerraum findet ihr unter folgenden Punkten:<br />
<br />
* Bitte durchlesen: [[Wichtiges zur Computerbenutzung]] <br />
* Weiterführende Hilfe: [[Computer Benutzung]]<br />
* Allgemeines zum [[Computerraum Physik]]<br />
* Probleme und Lösungen: [[Bekannte_Probleme]]<br />
* Informationen über diese Wiki: [[Konventionen im Bereich Computerraum]]<br />
<br />
Während des Semester halten 2 Studienassistenten im Computerraum '''Sprechstunden'''. Die '''Zeiten''' und '''Mailadressen''' findet ihr unter [[Computerraum Physik]]<br />
<br />
----<br />
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]<br />
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=2834Matlab - Beiträge2005-03-07T11:01:45Z<p>Winny: /* Allgemeine Fragestellungen */</p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [http://www.mathworks.com/ Mathworks] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[http://www.mathworks.com/support/tech-notes/1300/1315.html Studentenversion].<br />
<br />
==== Gibt es ein Tutorial für Matlab am Web? ====<br />
<br />
Ja, die Firma [http://www.mathworks.com/ Mathworks] bietet ein <br />
[http://www.mathworks.com/academia/student_center/tutorials/launchpad.html Tutorial] auf ihrem Webserver an.<br />
<br />
==== Gibt es sonst interessante Hilfestellungen von Mathworks? ====<br />
<br />
;Alle Beispiele aus der Matlab Dokumentation<br />
:[http://www.mathworks.com/access/helpdesk/help/techdoc/demo_example.html Beispiele] geordent nach Einsatzgebieten (z.B. [http://www.mathworks.com/access/helpdesk/help/techdoc/math/math_example_index.html Mathematik] oder [http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/creating_plots_example_index.html Grafik]).<br />
;Technische Dokumente mit interessanten Beispielen<br />
:[http://www.mathworks.com/support/tech-notes/list_all.html Mathwork Technotes]<br />
;Gesamte Online-Dokumentation von Matlab<br />
:[http://www.mathworks.com/access/helpdesk/help/helpdesk.html helpdesk]<br />
;Beiträge von Benutzern<br />
:[http://www.mathworks.com/matlabcentral/ Matlab Central]<br />
;Newsgroup<br />
:[http://newsreader.mathworks.com/WebX?14@@/comp.soft-sys.matlab comp.soft-sys.matlab]<br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=552Matlab - Beiträge2005-03-07T10:52:39Z<p>Winny: /* Gibt es sonst interessante Hilfestellungen von Mathworks? */</p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [http://www.mathworks.com/ Mathworks] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[http://www.mathworks.com/support/tech-notes/1300/1315.html Studentenversion].<br />
<br />
==== Gibt es ein Tutorial für Matlab am Web? ====<br />
<br />
Ja, die Firma [http://www.mathworks.com/ Mathworks] bietet ein <br />
[http://www.mathworks.com/academia/student_center/tutorials/launchpad.html Tutorial] auf ihrem Webserver an.<br />
<br />
==== Gibt es sonst interessante Hilfestellungen von Mathworks? ====<br />
<br />
;Alle Beispiele aus der Matlab Dokumentation<br />
:[http://www.mathworks.com/access/helpdesk/help/techdoc/demo_example.html Beispiele] geordent nach Einsatzgebieten (z.B. [http://www.mathworks.com/access/helpdesk/help/techdoc/math/math_example_index.html Mathematik] oder [http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/creating_plots_example_index.html Grafik]).<br />
;Technische Dokumente mit interessanten Beispielen<br />
:[http://www.mathworks.com/support/tech-notes/list_all.html Mathwork Technotes]<br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=550Matlab - Beiträge2005-03-07T09:31:26Z<p>Winny: /* Fragen und Antworten */</p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [http://www.mathworks.com/ Mathworks] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[http://www.mathworks.com/support/tech-notes/1300/1315.html Studentenversion].<br />
<br />
==== Gibt es ein Tutorial für Matlab am Web? ====<br />
<br />
Ja, die Firma [http://www.mathworks.com/ Mathworks] bietet ein <br />
[http://www.mathworks.com/academia/student_center/tutorials/launchpad.html Tutorial] auf ihrem Webserver an.<br />
<br />
==== Gibt es sonst interessante Hilfestellungen von Mathworks? ====<br />
<br />
;Alle Beispiele aus der Matlab Dokumentation<br />
:[http://www.mathworks.com/access/helpdesk/help/techdoc/demo_example.html Beispiele] geordent nach Einsatzgebieten (z.B. [http://www.mathworks.com/access/helpdesk/help/techdoc/math/math_example_index.html Mathematik] oder [http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/creating_plots_example_index.html Grafik]).<br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=549Matlab - Beiträge2005-03-07T09:30:24Z<p>Winny: /* Fragen und Antworten */</p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [http://www.mathworks.com/ Mathworks] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[http://www.mathworks.com/support/tech-notes/1300/1315.html Studentenversion].<br />
<br />
==== Gibt es ein Tutorial für Matlab am Web? ====<br />
<br />
Ja, die Firma [http://www.mathworks.com/ Mathworks] bietet ein <br />
[http://www.mathworks.com/academia/student_center/tutorials/launchpad.html Tutorial] auf ihrem Webserver an.<br />
<br />
==== Gibt es sonst interessante Hilfestellungen von Mathworks? ====<br />
<br />
;Alle Beispiele aus der Matlab Dokumentation<br />
:[http://www.mathworks.com/access/helpdesk/help/techdoc/demo_example.html Beispiele] geordent nach Einsatzgebieten (z.B. [http://www.mathworks.com/access/helpdesk/help/techdoc/math/math_example_index.html Mathematik] oder <br />
[http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/creating_plots_example_index.html Grafik]).<br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=548Matlab - Beiträge2005-03-07T09:21:16Z<p>Winny: /* Fragen und Antworten */</p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [http://www.mathworks.com/ Mathworks] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[http://www.mathworks.com/support/tech-notes/1300/1315.html Studentenversion].<br />
<br />
==== Gibt es ein Tutorial für Matlab am Web? ====<br />
<br />
Ja, die Firma [http://www.mathworks.com/ Mathworks] bietet ein <br />
[http://www.mathworks.com/academia/student_center/tutorials/launchpad.html Tutorial] auf ihrem Webserver an.<br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=547Matlab - Beiträge2005-03-07T09:14:10Z<p>Winny: </p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [http://www.mathworks.com/ Mathworks] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[http://www.mathworks.com/support/tech-notes/1300/1315.html Studentenversion]. <br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Matlab_-_Beitr%C3%A4ge&diff=546Matlab - Beiträge2005-03-07T09:11:13Z<p>Winny: </p>
<hr />
<div>== Offene Fragen ==<br />
<br />
=== Warum unbedingt Matlab? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Ist Matlab eine frei verfügbare Software? ====<br />
<br />
Nein. Matlab ist ein Produkt der Firma [[http://www.mathworks.com|Mathworks]] und unterliegt den Lizensierungsbestimmungen dieser Firma. Die TU Graz hat Netzwerk- und Klassenraumlizenzen für Matlab und viele zugehörige Toolboxen. Alle diese Produkte können von Studierenden auf Computern der TU Graz verwendet werden. Für den Einsatz auf Heimcomputern gibt es keine Möglichkeit der TU Graz Studierenden zu helfen. <br />
<br />
Für eine legale Benutzung auf Computern außerhalb der TU Graz benötigt man zumindest eine <br />
[[http://www.mathworks.com/support/tech-notes/1300/1315.html|Studentenversion]]. <br />
<br />
== Diskussion ==</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_und_Programmierung&diff=831Applikationssoftware und Programmierung2005-03-07T09:09:58Z<p>Winny: </p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Diese Seite ist schreibgeschützt, da sie wichtige Informationen für die Lehrveranstaltung beinhaltet. Beiträge von Studierenden und Besuchern sind auf [[Applikationssoftware - Beiträge]] und [[Matlab - Beiträge]] erwünscht. <br />
<br />
== Wichtige Nachrichten ==<br />
<br />
* Die erste Übung mit Abgabepflicht findet in der Woche vom 7. März 2005 statt.<br />
* Die Anwesenheit bei der ersten Lehrveranstaltung am Montag, den 28.2.2005 ist unbedingt erforderlich. Dabei werden die Accounts für den Computerraum vergeben.<br />
* Füllen sie vorher unser [http://www.itp.tu-graz.ac.at/cgi-bin/new_account.pl Anmeldeformular] aus, dann erhalten sie von mir in der ersten Lehrveranstaltung das Password.<br />
* Bei den Übungen herrscht Anwesenheitspflicht. Bitte informieren sie sich über die [[Applikationssoftware und Programmierung#Regeln| Regeln]] die für diese Lehrveranstaltung gelten.<br />
* Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Die Anzahl von vier Gruppen wird mit Sicherheit nicht erhöht es soll aber auch niemand von der Lehrveranstaltung ausgeschlossen sein. [[Applikationssoftware und Programmierung#Anzahl der Teilnehmer| Mögliche Ausnahmen]] und die Abwicklungsmöglichkeit über [[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] sind weiter unten angeführt.<br />
<br />
== Inhalt der Lehrveranstaltung== <br />
<br />
Grundzüge des Programmierens unter Verwendung der Programmiersprache MATLAB.<br />
<br />
Die Verwendung von Computern wurde, wie in vielen Bereichen des Lebens, auch<br />
in der Physik zu einem zentralen Bestandteil sowohl der Ausbildung als auch<br />
der Forschung. Die meisten Forschungsbereiche wären heute ohne die Verwendung<br />
von Computern und entsprechender Software gar nicht mehr denkbar. Das gilt<br />
sowohl für Experimente, deren Steuerung und Auswertung, als auch für die<br />
theoretische Behandlung von Problemen bzw. die numerische Simulation von<br />
Experimenten.<br />
<br />
Die Lehrveranstaltung Applikationssoftware und Programmierung wurde im<br />
Studienplan der Studienrichtung Technische Physik daher bewußt an den Anfang<br />
des Studiums gestellt. Die Studierenden sollen dabei mit folgenden Bereichen<br />
konfrontiert werden:<br><br />
* Verwendung von Computern, wie sie im Bereich der Physik üblich ist.<br />
* Kennenlernen der Computerinfrastruktur für Studierende im Bereich der TU-Graz und speziell im Bereich der Physik.<br />
* Kennenlernen und Verwenden von Programmpaketen (Applikationen), die für das weitere Studium nützlich sind <br />
** Auswertung und Darstellung von Messungen<br />
** numerische Berechnungen<br />
** Visualisierung <br />
** Arbeiten mit [[Matlab | Matlab]]<br />
* Informationsbeschaffung aus dem World Wide Web, aus lokalen Dokumentationen oder von ihren Kollegen.<br />
* Grundzüge des Programmierens.<br />
<br />
Die Studierenden sollen daher von Anfang an die Möglichkeit erhalten, das<br />
für sie bereitgestellte System in vielen Bereichen ihres Studiums zu<br />
verwenden. Außerdem sollen sie auf eine Fülle aufbauender Lehrveranstaltungen<br />
bestmöglich vorbereitet sein.<br />
<br />
== Ziele ==<br />
<br />
Die Ziele der Lehrveranstaltung liegen also <br><br />
* in der Vermittlung der GRUNDLAGEN des PROGRAMMIERENS <br />
* mit Hilfe der Programmiersprache MATLAB;<br />
* in der Entwicklung EIGENSTÄNDIGER LÖSUNGSKOMPETENZ <br />
* auch für KOMPLEXERE AUFGABEN (im weiteren Studienverlauf);<br />
* in der Vermittlung der Idee, dass es sich hier um eine CHANCE handelt Fähigkeiten zu lernen, die man in vielen beruflichen Bereichen verwenden kann, und nicht um eine QUAL, die man über sich ergehen lassen muss;<br />
* in der Vermittlung von Fähigkeiten, HILFE beim PROGRAMMIEREN aus unterschiedlichsten QUELLEN zu finden<br />
* und dabei ENGLISCH als wichtigste SPRACHE zu akzeptieren;<br />
* im Wunsch sowohl ANFÄNGER an das Programmieren heranzuführen, als auch FORTGESCHRITTENEN etwas zu bieten, was sie interessiert. <br />
<br />
Das Ziel ist auch, dass zumindest 80 PROZENT den ABSCHLUSS am ENDE DES SOMMERSEMESTERS mit eher GUTEN NOTEN schaffen sollen und die restlichen Studierenden (zumindest die, die weiter hier studieren) die Prüfung im Oktober absolvieren. <br />
<br />
Eigentlich möchte ich keinen Teilnehmer von heuer bei den Übungen im nächsten Jahr mit den gleichen Inhalten "quälen" müssen. Meine Bereitschaft dazu ist gegeben, es funktioniniert natürlich aber nur mit eurem nötigen Engagement. Daher reden sie auch (und vor allem) bei Problemen rechtzeitig mit mir.<br />
<br />
== Termine == <br />
<br />
Die Übungen finden im Computerraum Physik zu folgenden Zeiten statt<BR><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Übungszeiten'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
! style="background:#efefef;" | Leiter<br />
|-<br />
| A <br />
| Montag <br />
| 16:15 <br />
| 17:45 <br />
| Kernbichler<br />
|-<br />
| B <br />
| Montag <br />
| 18:00 <br />
| 19:30 <br />
| Kernbichler<br />
|-<br />
| C <br />
| Mittwoch <br />
| 08:30 <br />
| 10:00 <br />
| Kernbichler<br />
|-<br />
| D <br />
| Mittwoch <br />
| 14:15 <br />
| 15:45 <br />
| Kernbichler<br />
|-<br />
|}<br />
Ein Wechsel zu anderen Gruppen ist nur nach Absprache mit mir möglich.<br />
<br />
== Übungen ==<br />
<br />
Die erste Übungseinheit findet in der Woche ab dem 28. Februar statt. Sie dient nur dem Kennenlernen des Computersystems und dem Sammeln von ersten Erfahrungen mit Matlab. Für diese Übungseinheit ist keine Abgabe von Beispielen notwendig, es herrscht aber Anwesenheitspflicht. Probieren sie Matlab aus, starten sie die Hilfe und den Editor und machen sie sich mit dem System vertraut.<br />
<br />
[[Erste Schritte]] für die Computerbenutzung sollten den Einstieg erleichtern.<br />
<br />
=== Übungen mit Abgabeverpflichtung ===<br />
<br />
Die zu erstellenden Files müssen mit dem exakt richtigen Namen abgegeben werden. Zur Abgabe bzw. zur Information über den Status ihrer Übungen gibt es die Skripts,<br><br />
uebungsabgabe file1 file2 ...<br />
uebungsstatus <br />
welche im Terminal aufgerufen werden. Benötigt man in gewissen Übungen Daten, erhält man diese mit folgendem Skript:<br><br />
uebungsdaten<br />
Passen sie auf, dass sie sich im richtigen Verzeichnis befinden, wenn sie das Skript aufrufen, sonst können die Files nicht gefunden werden. In Matlab kann man die Skripts mit vorangestelltem Rufzeichen auch aufrufen:<br><br />
!uebungsabgabe file1 file2 ...<br />
!uebungsstatus <br />
!uebungsdaten<br />
<br />
<br />
;Mathematische Funktionen<br />
:Übung vom 7. März / 9. März 2005 - Abgabe bis spätestens 21. März / 23. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node61.html Skriptum (html)] (bei schlechter Verbindung)<br />
;Reguläre Polyeder, Kegelschnitte<br />
:Übung vom 14. März / 16. März 2005 - Abgabe bis spätestens 28. März / 30. März 2005<br><br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum (pdf)] -> Übungsbeispiele (bevorzugt)<br />
:[http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/node62.html Skriptum (html)] (bei schlechter Verbindung)<br />
<br />
== Regeln ==<br />
<br />
Die Anwesenheit bei den Übungen ist verpflichtend. Bei Verhinderung ist unbedingt eine begründete Entschuldigung per e-mail notwendig. Auch bei einem Fernbleiben von der Übung (aus welchem Grund auch immer) müssen die entsprechenden Beispiele termingerecht abgegeben werden. Falls es in<br />
Ausnahmefällen damit Probleme gibt, wenden Sie sich an mich um eine spezielle Vereinbarung zu treffen. Im Regelfall gibt es eine zweiwöchige Frist für die Abgabe der Beispiele.<br />
<br />
Außer in Ausnahmefällen (siehe dazu auch [[Applikationssoftware und Programmierung#Projektarbeiten | Projektarbeiten]]) ist die Abgabe aller Übungsbeispiele notwendig um zur <br />
[[Applikationssoftware und Programmierung#Prüfung | Abschlussprüfung]] antreten und damit die Lehrveranstaltung ordnungsgemäß beenden zu können.<br />
<br />
Die Anwesenheit bei der Vorlesung ist natürlich nicht verplichtend. Ich möchte aber darauf hinweisen, dass die Übungsbeispiele in der Vorlesung sowohl vor- als auch nachbereitet werden. Damit ist ihre Durchführung um<br />
vieles leichter. Es gibt also eine starke Vernetzung von Vorlesung und Übung. Daher gibt es bei den Übungsterminen bis auf kleinere Anmerkungen keinen Vortrag von mir mehr. <br />
<br />
Bei der jeweiligen Übung soll die Aufgabe dieser Übungseinheit (und nicht einer vorherigen) bearbeitet werden. In vielen Fällen wird die Zeit während der Übungseinheit nicht zur Fertigstellung reichen. Die Aufgabe muss dann im Normalfall innerhalb von zwei Wochen außerhalb der Übungseineiten fertiggestellt werden. Aus meiner Sicht ist dieser zusätzliche Aufwand gerechtfertigt, da die selbständige Erledigung aller Übungsbeispiele die perfekte Vorberereitung auf die Prüfung ist und daher vor der Prüfung keine lange Vorbereitungsphase mehr notwendig ist.<br />
<br />
Nützen sie die Zeit während der Übung für Fragen. Erfahrungsgemäß haben diejenigen Studierenden die meisten Probleme die Lehrveranstaltung sinnvoll zu beenden, die aus welchen Gründen auch immer keine oder kaum Fragen stellen. Es ist kein Problem (und wid natürlich auch nicht negativ bewertet), wenn man etwas nicht verstanden hat und es sich nochmals (und nochmals) erklären lässt. Das wirkliche Problem tritt erst bei der Prüfung auf, wenn man vorher die ganze Zeit versucht die Mängel zu verstecken. Daher fragen sie mich, ihre Kollegen oder formulieren sie Fragen im Bereich [[Matlab - Beiträge|Matlab - Beiträge]]. Dort können sie auch Fragen beantworten oder Kommentare zu Antworten abgeben. Auch dieser Bereich lebt und wächst mit ihrer Beteiligung.<br />
<br />
Die Lösungen müssen selbständig erarbeitet werden. Natürlich kann es ihnen gelingen, Lösungen von Kollegen oder Kolleginen abzugeben und dann darauf zu hoffen, dass es von uns nicht bemerkt wird. Ob diese Vorgangsweise im Sinne der Prüfungsvorbereitung sinnvoll ist, bleibt ihnen zur Beurteilung überlassen. Es spricht aber natürlich nichts gegen Teamarbeit von der mehrere profitieren oder wo man clevere Lösungen von einem/einer anderen erfährt und dann selbst umsetzt. Der Schlüssel zum Erfolgt liegt hier darin, dann zu verstehen, was man wie und warum gemacht hat. Sinnvoll ist es auch die eigenen Überlegungen innerhalb des Programmes zu dokumentieren, da man die eigenen Beispiele alle während der Prüfung zur Verfügung hat. Tut man das nicht in sinnvoller Weise, kommt man rasch dahinter, wie schnell man den Sinn von Programmzeilen vergisst, die man selbst einmal geschrieben hat.<br />
Fügt man jedoch sinnvolle Komentare ein, kann man auch später noch viel aus alten Überlegungen lernen und man merkt auch, dass es relativ wenig Zeit kostet diese Kommentare zu schreiben.<br />
<br />
== Dokumentation ==<br />
<br />
Das Skriptum zur Lehrveranstaltung und sonstige Unterlagen findet man unter:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1.pdf Skriptum]<br />
| pdf <br />
| Druckfähige Version mit Hyperlinks<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1/ Skriptum]<br />
| html<br />
| LaTex2html Version, leichte Darstellungsprobleme<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/Praesentationen/Matlab_Einfuehrung.pdf Folien]<br />
| pdf <br />
| Matlab Einführung <br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appsoft1_talk.pdf Folien]<br />
| pdf <br />
| Landscape für Präsentation<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/ Kapitel]<br />
| pdf <br />
| Webseite mit weiteren Links zu den einzelnen Kapiteln<br />
|-<br />
|}<br />
Die Übungsbeispiele und auch das Skriptum werden laufend den Bedürfnissen<br />
angepasst. Überzeugen sie sich daher vor dem jeweiligen Übungsbeginn, ob sich<br />
etwas geändert hat.<br />
<br />
== Anzahl der Teilnehmer ==<br />
<br />
Die Anzahl der Teilnehmer pro Gruppe ist mit 15 beschränkt. Der Grund dafür ist die Anzahl der vorhandenen Computer. Falls es trotz der geplanten 4 Gruppen Probleme gibt, ersuche ich Studierende mit eigenen Laptops diese zu verwenden. Es stehen zwei Netzwerkzugänge (cat-5) bzw. das [http://www.zid.tugraz.at/ki/netz/extern/wlan/ WLAN] der TU Graz, das im Bereich unseres Computerraumes zur Verfügung steht.<br />
<br />
== Prüfung ==<br />
<br />
Die Prüfung setzt sich aus einer Abschlussklausur, die aus einigen Programmieraufgaben besteht, und einem abschliesenden Prüfungsgespräch zusammen. Wegen der engen Verkopplung von Vorlesung und Übung findet auch de Prüfung über beide Teile so verkoppelt statt. <br />
<br />
Die Programmieraufgaben bei der Prüfung schliesen thematisch an die Übungsaufgaben an. Dabei dürfen alle Unterlagen, Übungsbeispiele, Skripten und Webseiten verwendet werden. Währen der Prüfung verboten ist nur die Kommunikation untereinander und mit der Außenwelt.<br />
<br />
Der sonst bei manchen Prüfungen bestehende Zeitdruck soll möglichst vermeiden werden. Daher stehen pro Termin vier Stunden zur Verfügung. Parallel dazu werden die mündlichen Gespräche mit denjenigen, die schon früher fertig sind, abgewickelt. Die Erfahrung zeigt, dass das was man bis dahin nicht geschafft hat wegen mangelnder Kenntnisse auch in viel längerer Zeit nicht schaffen kann. <br />
<br />
Das Prüfungsgespräch nach den Programmieraufgaben schliest an die Aufgaben an und überprüft wichtige Grundlagen des Programmierens und deren Umsetzung in Matlab. Nach Absolvierung beider Teile bekommt man ein Zeugnis über die Übung und über die Vorlesung. Es soll hier nochmals darauf hingewiesen werden, dass Übungen "immanenten Prüfungscharacter" haben und daher sowohl die Anwesenheit als auch die Abgabe aller Beispiele notwendig ist.<br />
<br />
Eine alternative Form der Abwicklung der Prüfung ist mit der Durchführung von <br />
[[Applikationssoftware und Programmierung#Projektarbeiten|Projektarbeiten]] möglich.<br />
<br />
=== Prüfungsbeispiele ===<br />
<br />
Prüfungsbeispiele aus den Jahren 2003 und 2004 stehen in folgender Form zur Verfügung:<br><br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Unterlagen'''<br />
|-<br />
! style="background:#efefef;" | Link<br />
! style="background:#efefef;" | Typ<br />
! style="background:#efefef;" | Anmerkung<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_230603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 23.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603a.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Vormittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_250603b.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 25.06.2003 Nachmittag<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_211003.pdf Angabe]<br />
| pdf <br />
| Prüfung vom 21.10.2003<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0603dat.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.pdf Angabe]<br />
| pdf <br />
| Prüfungen vom Juni 2004<br />
|-<br />
| [http://itp.tugraz.at/LV/kernbich/AppSoft-1/appdata/pruef_0604.zip Daten]<br />
| zip<br />
| Notwendige Daten für obige Prüfungen<br />
|-<br />
|}<br />
<br />
=== Prüfungstermine ===<br />
<br />
Die Prüfungen im Jahr 2005 werden zu folgenden Terminen stattfinden:<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+'''Prüfungstermine'''<br />
|-<br />
! style="background:#efefef;" | Gruppe<br />
! style="background:#efefef;" | Tag<br />
! style="background:#efefef;" | Datum<br />
! style="background:#efefef;" | Beginn<br />
! style="background:#efefef;" | Ende<br />
|-<br />
| A <br />
| Montag<br />
| 20. Juni 2005 <br />
| 08:00 <br />
| 12:00 <br />
|-<br />
| B <br />
| Montag<br />
| 20. Juni 2005<br />
| 14:00 <br />
| 18:00 <br />
|-<br />
| C <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 08:00 <br />
| 12:00<br />
|-<br />
| D <br />
| Mittwoch<br />
| 22. Juni 2005 <br />
| 14:00 <br />
| 18:00 <br />
|-<br />
|}<br />
Der Grund für die Vorverlegung um eine Woche liegt daran, dass ich in der letzten Woche vor Ferienbeginn an einer wissenschaftlichen Konferenz im Ausland teilnehmen muss. Die Gruppenteilnehmer werden automatisch bei ihrem jeweiligen Termin angemeldet. Änderungen sind nur möglich, falls Plätze zu anderen Terminen frei sind.<br />
<br />
Voraussichtlich Mitte Oktober findet dann eine Nachklausur für jene Teilnehmer statt, die den ersten Termin nicht geschafft haben oder die daran nicht teilnehmen konnten. DIese Ersatzlösung sollte aber hoffentlich nur für wenige Teilnehmer notwendig sein.<br />
<br />
Der Konflikt mit dem Prüfungstermin für Experimentalphysik am 22. Juni wurde gelöst. Prof. Ernst hat sich bereit erklärt den Termin auf 29. Juni zu verschieben.<br />
<br />
== Projektarbeiten ==<br />
<br />
Projektarbeiten sind eine alternative Form die Lehrveranstaltung zu absolvieren. Grundsätzlich gibt es zwei Formen<BR><br />
* Großes Projekt: Ersetzt den Besuch der Übung und die Prüfung<br />
* Kleines Projekt: Übung wird normal absolviert, Prüfung wird durch Projekt ersetzt<br />
<br />
Grundsätzlich eignen sich Projekte nicht dazu, sich die Absolvierung der Lehrveranstaltung möglichst einfach zu gestalten. Das Angebot richtet sich an Studierende, die entweder schon reifliche Programmiererfahrung oder zumindest ein tiefes Interesse am Inhalt der Lehrveranstaltung haben. Die Möglichkeit wurde im Wesentlichen deshalb von mir geschaffen um (in diesem Fach) begabten Studierenden eventuell für siehe fade Programmierbeispiele zu ersparen. Wenn man keine große Erfahrung mit Programmiersprachen hat, ist es sicher keine sinnvolle Idee ein großes Projekt zu starten. Wenn man im Laufe der Lehrveranstaltung die Erfahrung macht, dass einem die Übungsbeispiele sehr leicht fallen, kann man sich ja noch immer für ein Projekt entscheiden. <br />
<br />
Ein Projekt startet mit einem Plan vom Studierenden, was er gerne machen würde. Der Inhalt kann aus vielen Interessensgebieten stammen, muss also nicht unbedingt Physik zum Gegenstand haben. Das Projekt soll aber zeigen, dass man mit den Möglichkeiten von Matlab umgehen kann. Zu diesem Zweck erstellt man eine neue Wiki-Seite unter [[Applikationssoftware - Projekte|Applikationssoftware - Projekte]] und definiert sein Projekt. Nach Absprache mit mir folgt dann die Umsetzung in Matlab und die Dokumentation. Diese Beiträge werden dann ebenfalls auf der Wiki-Seite präsentiert. Zum Abschluss gibt es ein Gespräch über die Umsetzung des Projektes welches als eine Art der Prüfung angesehen werden kann.<br />
<br />
Es gibt keine genauen Vorgaben über den Umfang, die Betroffenen sollten einfach einen vernünftigen Vorschlag mit mir besprechen. Gespräche über den Verlauf sollen bevorzugt in den jeweiligen Übungseinheiten durchgeführt werden.</div>Winnyhttps://itp.tugraz.at/wiki/index.php?title=Applikationssoftware_-_Beitr%C3%A4ge&diff=659Applikationssoftware - Beiträge2005-03-07T09:07:43Z<p>Winny: /* Muss ich alle Übungsbeispiele abgeben? */</p>
<hr />
<div>Vortragender: [mailto://winfried.kernbichler@tugraz.at Winfried Kernbichler]<br />
<br />
Betätigen sie den Edit-Knopf im oberen Bereich der Seite und stellen sie auf die Lehrveranstaltung bezogene Fragen. Ich werde mich auch bemühen Fragen von allgemeinem Interesse, die mir über e-mail gestellt werden, im Rahmen dieser Seite zu beantworten. Es ist aber natürlich jeder herzlich eingeladen Fragen zu beantworten oder <br />
[[Applikationssoftware - Beiträge#Diskussion|Diskussionsbeiträge]] zu liefern.<br />
Bei Beantwortung sollten die Einträge in den Bereich <br />
[[Applikationssoftware - Beiträge#Fragen und Antworten|Fragen und Anworten]]<br />
verlagert werden. [[Matlab]]-spezifische Fragen und Diskussionsbeiträge sollten im Bereich<br />
[[Matlab - Beiträge|Matlab - Beiträge]] bearbeitet werden.<br />
<br />
== Offene Fragen ==<br />
<br />
=== Gibt es Süßigkeiten während der Übung? ===<br />
<br />
== Fragen und Antworten ==<br />
<br />
=== Allgemeine Fragestellungen ===<br />
<br />
==== Muss ich an allen Übungen teilnehmen? ====<br />
<br />
Grundsätzlich ja, außer es gibt einen vernünftigen Grund für die Abwesenheit oder es wurde eine andere Form der Abwicklung mit mir vereinbart.<br />
<br />
==== Muss ich mich bei Fernbleiben entschuldigen? ==== <br />
<br />
Ja und zwar durch eine [mailto://winfried.kernbichler@tugraz.at E-mail] an den Vortragenden vor der jeweiligen Einheit. Diese sollte einen Grund für das Fernbleiben beinhalten. "Ich kann heute nicht kommen", reicht nicht als Entschuldigung. "Ich habe gleichzeitig ein Fahrstunde", ist keine gute Entschuldigung, da diese Form irgendwie eine falsche Prioritätensetzung nahe legt.<br />
<br />
==== Muss ich alle Übungsbeispiele abgeben? ====<br />
<br />
Ja, alle und nicht 60 oder 80 Prozent der Übungen. Wenn man fehlt, muss man die Übungen trotzdem machen. Damit soll auch der Anreiz zu fehlen so gering wie möglich sein. Dies soll auch der Tendenz vorbeugen, dass jemand die letzten Übungen nicht mehr macht und genau die dann bei der Prüfung notwendig sind.<br />
<br />
==== Sind die Abgabetermine wichtig? ====<br />
<br />
Ja, aber sie werden nicht absolut stur gehandhabt, d.h., man wird nicht von der Übung ausgeschlossen wenn der Termin vorbei ist. Man kann die Übung auch weiter abgeben, aber die Verzögerung wird natürlich registriert und fließt in die Beurteilung ein.<br />
<br />
Vor der Abschlussklausur müssen aber alle Beispiele abgeben sein. Auf Grund der Vorverlegung der Prüfung auf die Woche vom 20. Juni ist die Zeit sehr knapp und für die letzte Übung steht nur eine Woche zur Verfügung. Bringen sie sich daher nicht vorher durch starke Verzögerungen bei der Abgabe in Zeitdruck. <br />
<br />
Nach der Prüfung gibt es noch eine Woche, eventuelle Korrekturen an ihren letzten Übungsbeispielen vorzunehmen. Es sei hier noch einmal darauf hingewiesen, dass es ohne die korrekte Abgabe aller Beispiele keinen positiven Abschluss der<br />
Lehrveranstaltung gibt.<br />
<br />
==== Kann man Übungsbeispiele korrigiert wieder abgeben? ====<br />
<br />
Ja, so oft man will. Darin liegt ja der Sinn, dass man etwas verbessert, das nicht in Ordnung ist, oder dass man eine bessere Idee hat etwas zu lösen.<br />
<br />
==== Abgabetermine liegen in den Osterferien? ====<br />
<br />
Ja, ich weiss. Das soll verhindern, dass mit der letzten Übung vor den Osterferien erst nachher begonnen wird. Grund - siehe oben. <br />
<br />
Die Übung vor den Ferien ist so gestaltet, dass man sie auch vorher fertigstellen kann. Außerdem ist unser Computerraum auch in den Ferien offen und die Computer sind von Aussen immer erreichbar.<br />
<br />
=== Technische Fragen ===<br />
<br />
==== Warum wird das Betriebssystem Linux verwendet? ====<br />
<br />
Linux ist eine freies Betriebssystem, das keine Lizenzkosten verursacht und in dessen Bereich eine Vielzahl von hochwertiger Software frei zur Verfügung steht. Linux ist daher im universitären und wissenschaftlichen Bereich weitverbreitet. Für angehende Wissenschafter und Programmentwickler ist es daher von großer Bedeutung ein derartiges Betriebssystem kennen und verwenden zu lernen.<br />
<br />
Darüber hinaus ist die Verwaltung und Installation einer großen Anzahl von Computern leichter zu realisieren. Die Computer im Lehrsaal Physik werden gemeinsam mit den gesamten Computern des "Instituts für Theoretische Physik - Computational Physics" verwaltet. Damit stehen sie auch einem verteiltem Rechensystem zur Verfügung, welches bei Nichtbenutzung der Computer (Nacht, Wochenende, ...) darauf Computerprogramme im Rahmen der Forschungsaktivitäten des Instituts ablaufen lässt.<br />
<br />
Unsere Computer stehen permanent (7 Tage die Woche 24 Stunden) für externe Benutzung zur Verfügung. Informieren sie sich unter dem Kapitel [[Externer Zugriff]] über die vorhandenen Möglichkeiten.<br />
<br />
==== Wann kann man den Computerraum benutzen? ====<br />
<br />
Grundsätzlich zu den Zeiten in denen man in das Haus kommt. Dies ist ungefähr zwischen 6 Uhr morgens und 20 Uhr abends. Sollte der Raum einmal verschlossen sein, bittet jemanden vom Putzpersonal oder im Sekretariat des Instituts für Theoretische Physik den Raum aufzusperren.<br />
<br />
Da man das Haus aus feuerpolizeilichen Gründen immer verlassen kann, ist es natürlich auch möglich länger im Computerraum zu bleiben. <br />
<br />
Ausnahmen sind natürlich die Zeiten in denen Lehrveranstaltungen stattfinden. Die Termine findet man beim entsprechenden Raum im TUGonline.<br />
<br />
Eine Benutzung von Außen über eine Netzwerkverbindung ist natürlich immer möglich.<br />
<br />
== Diskussion ==<br />
<br />
=== Preise ===<br />
<br />
Vielen Studierenden fällt es schwer in Lehrveranstaltungen Fragen zu stellen. Das Stellen von Fragen in der Allgemeinheit (bzw. deren Beantwortung) hilft aber oft nicht nur dem/der Fragesteller/in sondern auch vielen anderen, die sich insgeheim auch schon die gleiche Frage gestellt haben. Um einen Anreiz dafür zu geben Fragen zu stellen, könnte ich mir vorstellen für diejenige/denjenigen mit den meisten Fragen einen Preis zu stiften. <br />
<br />
Die Diskussion während der Lehrveranstaltung hat ergeben, dass das durchaus sinnvoll sein kann. Also nehmen sie die Chance war. Eine Preisoption, die von Studierenden vorgeschalgen wurde, wären ein oder zwei "Six Packs". Natürlich bin ich auch gerne bereit nichtalkoholische Preise zu stiften.</div>Winny