Changes for page Writing and Grading Theses
Last modified by Niklas Rentz on 2023/10/10 10:45
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -72,17 +72,17 @@ 72 72 73 73 = Implementations = 74 74 75 - ErsteRegel:EgalwasIhrSystemutundwelcheNutzereingaben geschehen,dieImplementierungsolltenicht abstürzenodereinfrieren. Wo Annahmengemacht werden,solltendiese explizitüberprüftwerden. ImFallederNichteinhaltungsollteeinebrauchbareFehlermeldunggeneriertwerden,undderAnwender sollteweitermitder Implementierungarbeitenkönnen.75 +The first rule of your implementation is: **"No Crashes!"** The second rule of your implementation is: **"No crashes!"** Regardless of what your code does and regardless of what the user does, your implementation should neither crash nor freeze. Whenever you make assumptions, be sure to explicitly check them. If they are not met, your code should generate (useful!) error messages instead of crashing and the user should be able to continue working with it. 76 76 77 - Generell:IhreArbeitwird sehr wahrscheinlichauch einenpraktischenTeil enthalten,in welcherSie Software oderHardware entwickelnodererweitern sollen. DasakademischeUmfeld IhrerArbeitbedeutetinder Regel, dass fürdiese Entwicklung wenigerRessourcen -insbesonderezeitliche Ressourcen -als ineinemkommerziellenUmfeld zur Verfügung stehen, unddass sich IhreArbeitnicht amMarktbehauptenmuss. DieKonsequenz darausist,dassIhreArbeitr Regel wenigerumfangreichseinollteund wenigerFeaturesbietensolltealsein kommerziellesProdukt.DieKonsequenz istnicht,dassSieihreImplementierungwenigersorgfältigvornehmensollen,oderschlechterdokumentieren sollen, alsdiesineinemprofessionellem Umfeld der Fallwäre.Im Gegenteil- währendbeikommerziellenProduktenderTermindruck,dieNotwendigkeitzuständigenNeuentwicklungen,undzumTeileinegewisse IgnoranzaufKunden-und/oderEntwicklerseitedenQualitätsstandard senkenkönnen,solltedievon IhnenhiererstellteImplementierungIhr„Meisterstück“sein,welcheszeigt,wozuSie(impositivenSinne)fähigsind.Esgilthierzwar,dassProduktfehlerkeinenerheblichenwirtschaftlichenSchadenverursachenkönnenodergar Menschenlebengefährdenkönnen;jedochist auchhierIhreArbeitinderRegelnichtisoliertund„nur“TeilIhrer Ausarbeitung,sondernetwas,was andereanwendenund weiterentwickelnsollen.DieQualität (undBenotung)IhrerArbeitwird(unteranderem)anerQualitätIhrerEntwicklunggemessen.77 +Since you're working in an academic context, you will have less resources (less time, in particular) available than in a commercial setting. Also, your work probably won't have to compete with commercial applications. It follows that everything you develop will be less comprehensive and will have less features than a commercial product. What doesn't follow is that your implementation should be less meticulous or less documented than in a professional setting. Quite the contrary, in fact: commercially developed code often suffers from tight deadlines, the need to add new features, and at times a certain ignorance. You implementation, on the other hand, is supposed to be your masterpiece. It should reflect what you're currently capable of. Even though your software won't cause considerable economical damage or kill people, it probably won't exist in isolation. It will much rather be part of the KIELER project, which other people are supposed to use or develop further. The quality (and grade) of your thesis will be judged in part based on your implementation. Since this is the case, make use of the fact that your adviser probably has much more experience writing code than you do. Ask him or her to review your code and to give you feedback on how to improve. 78 78 79 - Zur Verdeutlichung:wennIhreArbeiteineMachbarkeitsstudie(//proof of concept//)seinoll,bedeutet dies,dassSieIhreArbeit**inAbsprachemit dem Betreuer**aufeinewohldefinierteTeilmengedesGesamtproblemseinschränkensollen.Es sollte fürdenAnwender klarerkennbar und vorhersagbarsein,wasIhreImplementierungleistetund wasnicht.SinnvolleEinschränkungenkönnen zumBeispielsein:„dieTransformationbetrachtetnurkeine//valued signals//..Es können keinehierarchieübergreifendenTransitionengezeichnetwerden“.KeinesinnvolleEinschränkung ist: „Mal funktioniert dasEinfügeneinesZustands- malstürztdasSystemab“. WennimLaufeIhrerImplementierungsarbeitersichtlichwird,dassbestimmte Implementierungszielenicht erreichtwerdenkönnen(aufgrundfalscherEinschätzungdesProblems,oder aufgrund schlechterRessourcenplanung),solltesofortmitdemBetreuer abgesprochenwerden,wieasProblemsinnvollerweiseeingeschränktwerdenkönnte;essolltenichtzueinerschlampigenEntwicklungführen.Schließlichgilt:esist für etwaige Teamkollegen/NachfolgervonIhneneinewesentlichdankbarereAufgabe,aufIhrer kleinen,sauberentwickeltenArbeitaufzusetzenund dieseum neue Featureszuerweitern,alszuversuchen,Ihregroße,defekteArbeit aufeinen brauchbarenQualitätsstandardanzuheben -oderdiese ganz wegzuschmeißenundvonvorneanzufangen.79 +Let's look at an example. Suppose your thesis is a proof of concept. This means that you should constrain the goals of your thesis (**in accordance with your adviser**) to a well-defined subset of the problem you're tackling. The end user should be well aware of what your implementation can do and what it cannot do. A reasonable constraint could for instance be: "The transformation only works for //pure signals//, not for //valued signals//. Hierarchy-crossing transitions cannot be drawn." An unreasonable constraint could be: "Sometimes, adding a state works; other times, the software crashes." If you notice while working on your implementation that you won't be able to make certain goals, talk to your adviser. Together, you will constrain the problem further. This will allow you to solve the more constrained problem properly instead of not solving the more general problem at all. You colleagues or successors will be glad to be able to start from a smaller, but well-developed code base and add features to it instead of having to try to get your code to a reasonable quality standard — or throwing it away and starting over. 80 80 81 - Grundsätzlichgilt:DieSoftwareist„sauber“zu schreibenundzudokumentieren,unterBeachtung einesevtl. vorhandenenProjekthandbuchs.DieQualitätundLeserlichkeitIhrer Softwaresowie derDokumentationgehtindie BewertungIhrerArbeit mit ein.81 +The bottom line: write clean and proper code that adheres to our coding guidelines and document it. The quality and the readability of your code and of your documentation will influence your grade. 82 82 83 83 == Reviews and Ratings[[url:http://trac.rtsys.informatik.uni-kiel.de/trac/rtsys/wiki/Hinweise_Arbeiten#ReviewsundRatings||style="text-decoration: none;" title="Link to this section" shape="rect" class="anchor"]] == 84 84 85 - More often than not, you will write code as part of your thesis.To make sure that code is of a certain quality, it must be run through design and code reviews. The way this works is explained [[on this page>>doc:KIELER.Review Process]]. The reviews are not only intended to improve the quality of your code, but also to give feedback to you as a programmer to help you improve.85 +To make sure that code is of a certain quality, it must be run through design and code reviews. The way this works is explained [[on this page>>doc:KIELER.Review Process]]. The reviews are not only intended to improve the quality of your code, but also to give feedback to you as a programmer to help you improve. 86 86 87 87 = What Grade Do I Get For All This? = 88 88
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -94718 041 +9471865 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/RTSYS/pages/94718 04/Writing and Grading Theses1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/RTSYS/pages/9471865/Writing and Grading Theses