-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
1,040 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,296 @@ | ||
<!DOCTYPE html> | ||
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<meta name="generator" content="pandoc" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> | ||
<meta name="author" content="Martin Sulzmann" /> | ||
<title>Vorlesungsunterlagen Softwareprojekt</title> | ||
<style> | ||
html { | ||
line-height: 1.5; | ||
font-family: Georgia, serif; | ||
font-size: 20px; | ||
color: #1a1a1a; | ||
background-color: #fdfdfd; | ||
} | ||
body { | ||
margin: 0 auto; | ||
max-width: 36em; | ||
padding-left: 50px; | ||
padding-right: 50px; | ||
padding-top: 50px; | ||
padding-bottom: 50px; | ||
hyphens: auto; | ||
overflow-wrap: break-word; | ||
text-rendering: optimizeLegibility; | ||
font-kerning: normal; | ||
} | ||
@media (max-width: 600px) { | ||
body { | ||
font-size: 0.9em; | ||
padding: 1em; | ||
} | ||
h1 { | ||
font-size: 1.8em; | ||
} | ||
} | ||
@media print { | ||
body { | ||
background-color: transparent; | ||
color: black; | ||
font-size: 12pt; | ||
} | ||
p, h2, h3 { | ||
orphans: 3; | ||
widows: 3; | ||
} | ||
h2, h3, h4 { | ||
page-break-after: avoid; | ||
} | ||
} | ||
p { | ||
margin: 1em 0; | ||
} | ||
a { | ||
color: #1a1a1a; | ||
} | ||
a:visited { | ||
color: #1a1a1a; | ||
} | ||
img { | ||
max-width: 100%; | ||
} | ||
h1, h2, h3, h4, h5, h6 { | ||
margin-top: 1.4em; | ||
} | ||
h5, h6 { | ||
font-size: 1em; | ||
font-style: italic; | ||
} | ||
h6 { | ||
font-weight: normal; | ||
} | ||
ol, ul { | ||
padding-left: 1.7em; | ||
margin-top: 1em; | ||
} | ||
li > ol, li > ul { | ||
margin-top: 0; | ||
} | ||
blockquote { | ||
margin: 1em 0 1em 1.7em; | ||
padding-left: 1em; | ||
border-left: 2px solid #e6e6e6; | ||
color: #606060; | ||
} | ||
code { | ||
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace; | ||
font-size: 85%; | ||
margin: 0; | ||
} | ||
pre { | ||
margin: 1em 0; | ||
overflow: auto; | ||
} | ||
pre code { | ||
padding: 0; | ||
overflow: visible; | ||
overflow-wrap: normal; | ||
} | ||
.sourceCode { | ||
background-color: transparent; | ||
overflow: visible; | ||
} | ||
hr { | ||
background-color: #1a1a1a; | ||
border: none; | ||
height: 1px; | ||
margin: 1em 0; | ||
} | ||
table { | ||
margin: 1em 0; | ||
border-collapse: collapse; | ||
width: 100%; | ||
overflow-x: auto; | ||
display: block; | ||
font-variant-numeric: lining-nums tabular-nums; | ||
} | ||
table caption { | ||
margin-bottom: 0.75em; | ||
} | ||
tbody { | ||
margin-top: 0.5em; | ||
border-top: 1px solid #1a1a1a; | ||
border-bottom: 1px solid #1a1a1a; | ||
} | ||
th { | ||
border-top: 1px solid #1a1a1a; | ||
padding: 0.25em 0.5em 0.25em 0.5em; | ||
} | ||
td { | ||
padding: 0.125em 0.5em 0.25em 0.5em; | ||
} | ||
header { | ||
margin-bottom: 4em; | ||
text-align: center; | ||
} | ||
#TOC li { | ||
list-style: none; | ||
} | ||
#TOC ul { | ||
padding-left: 1.3em; | ||
} | ||
#TOC > ul { | ||
padding-left: 0; | ||
} | ||
#TOC a:not(:hover) { | ||
text-decoration: none; | ||
} | ||
code{white-space: pre-wrap;} | ||
span.smallcaps{font-variant: small-caps;} | ||
div.columns{display: flex; gap: min(4vw, 1.5em);} | ||
div.column{flex: auto; overflow-x: auto;} | ||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} | ||
ul.task-list{list-style: none;} | ||
ul.task-list li input[type="checkbox"] { | ||
width: 0.8em; | ||
margin: 0 0.8em 0.2em -1.6em; | ||
vertical-align: middle; | ||
} | ||
</style> | ||
<!--[if lt IE 9]> | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> | ||
<![endif]--> | ||
</head> | ||
<body> | ||
<header id="title-block-header"> | ||
<h1 class="title">Vorlesungsunterlagen Softwareprojekt</h1> | ||
<p class="author">Martin Sulzmann</p> | ||
</header> | ||
<h1 id="inhalt">Inhalt</h1> | ||
<h2 id="übersicht">Übersicht</h2> | ||
<ul> | ||
<li><p>Die Programmiersprache C (Zeiger und Speicher).</p></li> | ||
<li><p>Die Programmiersprache C++ (Klassen, Objekte, Methodenauswahl, | ||
Überladung, Templates)</p></li> | ||
<li><p>Modernes C++ (copy/move Semantik, Typinferenz, Funktionen höherer | ||
Ordnung)</p></li> | ||
<li><p>Konzepte:</p> | ||
<ul> | ||
<li><p>Zustandsmaschinen</p></li> | ||
<li><p>Syntaxanalyse</p></li> | ||
<li><p>Lambdas (higher-order functions)</p></li> | ||
<li><p>Dynamische Analyse/Testen</p></li> | ||
</ul></li> | ||
</ul> | ||
<p>Unterlagen auf Deutsch und Englisch als html mit komplettem | ||
Programmcode.</p> | ||
<h2 id="kurz-und-knapp">Kurz und knapp</h2> | ||
<ul> | ||
<li><p><a href="./lec-c-compact.html">Die Programmiersprache | ||
C</a></p></li> | ||
<li><p><a href="./lec-cpp-compact.html">Die Programmiersprache | ||
C++</a></p></li> | ||
<li><p><a href="./lec-cpp-advanced-mem.html">C++11 | ||
Speicherverwaltung</a></p></li> | ||
<li><p><a href="./lec-cpp-advanced-poly.html">Polymorphie in C++ mit | ||
Vergleich zu Java</a></p></li> | ||
<li><p><a href="./lec-cpp-advanced-syntax.html">Syntax Analyse in | ||
C++</a></p></li> | ||
</ul> | ||
<h2 id="einführung-in-c">Einführung in C</h2> | ||
<p><a href="./lec-c1.html">Teil 1</a></p> | ||
<ul> | ||
<li>IO printf/scanf</li> | ||
<li>Einfache Datentypen</li> | ||
<li>Kontrollstrukturen</li> | ||
<li>Komplexe Datenstrukturen</li> | ||
</ul> | ||
<p><a href="./lec-c2.html">Teil 2</a></p> | ||
<ul> | ||
<li>Funktionen</li> | ||
<li>Header und Source Files</li> | ||
<li>Präprozessor und Makros</li> | ||
</ul> | ||
<p><a href="./lec-c3.html">Teil 3</a></p> | ||
<ul> | ||
<li>Zeiger und Speicher</li> | ||
</ul> | ||
<h2 id="einführung-in-c-1">Einführung in C++</h2> | ||
<p><a href="./lec-cpp1.html">Teil 1</a></p> | ||
<p>C++ kompakt</p> | ||
<ul> | ||
<li>IO Streams</li> | ||
<li>Namensräume</li> | ||
<li>Klassen</li> | ||
<li>Referenzparameter</li> | ||
<li>Überladung von Operatoren</li> | ||
<li>Typkonvertierungen</li> | ||
<li>Schachtelung von Blöcken und Deklarationen</li> | ||
<li>Templates</li> | ||
<li>Ausnahmen</li> | ||
<li>STL</li> | ||
</ul> | ||
<p><a href="./lec-cpp2.html">Teil 2</a></p> | ||
<p>Nochmal Zeiger und Resourcen Kontrolle.</p> | ||
<ul> | ||
<li><p>Allokation im Konstruktor, Freigabe im Destruktor</p></li> | ||
<li><p>“copy” und “move” Semantik (Rule of Three/Five)</p></li> | ||
</ul> | ||
<p><a href="./lec-cpp3.html">Teil 3</a></p> | ||
<p>Polymorphie</p> | ||
<p><a href="./lec-cpp4.html">Teil 4</a></p> | ||
<p>Funktionaler Programmierstil</p> | ||
<p><a href="./lec-cpp5.html">Teil 5</a></p> | ||
<p>QuickCheck: Automatisiertes Testen</p> | ||
<h1 id="laboraufgaben-und-beispiele">Laboraufgaben und Beispiele</h1> | ||
<p><a href="./labor.html">Aufgabensammlung</a></p> | ||
<p><a href="./weitereBeispiele.html">Weitere Beispiele</a></p> | ||
<h1 id="scheinaufgaben">Scheinaufgaben</h1> | ||
<p><a href="./schein-neu.html">Übung (Schein)</a></p> | ||
<h1 id="weitere-themen">Weitere Themen</h1> | ||
<ul> | ||
<li><a href="./syntax.html">Syntax Analyse</a></li> | ||
<li><a href="./lambda.html">Lambda calculus</a></li> | ||
<li>Meta-programmierung</li> | ||
<li>EDSL</li> | ||
<li>Concurrency</li> | ||
<li><a href="./lec-go.html">Go</a></li> | ||
<li><a href="./lec-rust.html">Rust</a></li> | ||
</ul> | ||
<h1 id="software-entwicklung">Software Entwicklung</h1> | ||
<ul> | ||
<li>Build system (Make)</li> | ||
<li>Dokumentation (Doxygen)</li> | ||
<li>Profiling und Debuggen</li> | ||
<li>Versionskontrolle, Bug-Tracking</li> | ||
<li>Analyse (Testen, Codeanalyse, …) <a href="./lec-dynamische-analyse.html">Dynamische Analyse/Testen</a></li> | ||
</ul> | ||
<h1 id="referenzenliteratur">Referenzen/Literatur</h1> | ||
<ul> | ||
<li>Kernighan, B.W. and Ritchie, D.M. (1988). The C programming | ||
language. Prentice Hall (2nd ed.).</li> | ||
<li>Ulrich Breymann, “C++ - Einführung und professionelle | ||
Programmierung”, Hanser-Verlag, 2007</li> | ||
<li>U. Kaiser und C. Kecher: C++ - Von den Grundlagen zur | ||
professionellen Programmierung, 4. Auflage, Galileo Press 2008.</li> | ||
<li>U. Kirch-Prinz, Peter Prinz: C++ lernen und professionell anwenden, | ||
4. Auflage, Vmi Buch 2007.</li> | ||
<li>Eckel, B. (2000). Thinking in C++, Vol. 1: Introduction to Standard | ||
C++. Prentice Hall (2nd ed.). Also available at | ||
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html</li> | ||
<li>Stroustrup, B. (2008). Programming – principles and practice using | ||
C++. Addison-Wesley.</li> | ||
</ul> | ||
<p>C++ online tutorials</p> | ||
<ul> | ||
<li>https://www.tutorialspoint.com/cplusplus/index.htm</li> | ||
<li>http://www.cplusplus.com/doc/tutorial/</li> | ||
</ul> | ||
<p>C++ reference</p> | ||
<ul> | ||
<li>https://en.cppreference.com/w/</li> | ||
</ul> | ||
</body> | ||
</html> |
Oops, something went wrong.