Difference between revisions of "Advanced Programming - Winter 13"

From Sccswiki
Jump to navigation Jump to search
 
(32 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Lecture
 
{{Lecture
 
| term = Winter 13
 
| term = Winter 13
| lecturer = [[Dr. rer. nat. Tobias Weinzierl]], [[Alexander Breuer]]
+
| lecturer = Lecture: [[Dr. rer. nat. Tobias Weinzierl]], [[Alexander Breuer]], Tutorials: [[Gerrit Buse]], [[Roland Wittmann, M.Sc.]]
 
| timeplace = Lecture: see TUMOnline
 
| timeplace = Lecture: see TUMOnline
 
| tutorials = BGCE Supervised Teaching
 
| tutorials = BGCE Supervised Teaching
Line 8: Line 8:
 
| audience = Computational Science and Engineering, first semester (module [https://campus.tum.de/tumonline/wbStpModHB.detailPage?pKnotenNr=454189 IN1503])
 
| audience = Computational Science and Engineering, first semester (module [https://campus.tum.de/tumonline/wbStpModHB.detailPage?pKnotenNr=454189 IN1503])
 
| exam = see below and TUMOnline for announcement and registration
 
| exam = see below and TUMOnline for announcement and registration
| tumonline = [https://campus.tum.de/tumonline/lv.detail?clvnr=950112210&sprache=1 TUM Online]  
+
| tumonline = [https://campus.tum.de/tumonline/lv.detail?clvnr=950112210&sprache=2 TUM Online Lecture] [https://campus.tum.de/tumonline/lv.detail?clvnr=950111289&cperson_nr=&sprache=2  TUM Online Tutorial] [https://www.moodle.tum.de/course/view.php?id=12035 Moodle]
 
}}
 
}}
 +
  
 
= News =
 
= News =
  
- 8 August 2013: Some notes on lecture concept online.
+
* 13 March 2014: See below at [[Advanced_Programming_-_Winter_13#Exam | Exam]] for the date of the repeat exam.
 +
* 15 November 2013: The exam date is published in TUM Online (21st of February, 8:30-10:00). Please register for the exam there.
 +
* 24 October 2013: Please cf. Moodle for lecture material. The first slides are online, more to come.
 +
* 8 August 2013: Some notes on lecture concept online.
  
 
= Concept =
 
= Concept =
Line 57: Line 61:
 
|
 
|
 
| No tutorials, no lecture due to CSE introductory week
 
| No tutorials, no lecture due to CSE introductory week
<!--
 
|-
 
|
 
| October 22-26, 2012
 
| Introduction, variables, identifiers & expressions
 
|
 
|
 
|
 
| No tutorials, only lecture
 
|-
 
|
 
| October 29-November 2, 2012
 
|
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_1.pdf History of computer architectures & the C programming language]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_1.pdf Worksheet 1]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/1_src.tar.gz Source 1]
 
| No lecture due to Allerheiligen/Allerseelen
 
 
|-
 
|-
|
+
| October 21-25, 2013
| November 5-9, 2012
+
| -
| Control structures, branches & scopes
+
| Introduction and motivation, the von Neumann architecture, Flynn's taxonomy
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_2.pdf IDEs & Debugging]
+
| no tutorials but support to install compilers, software, and so forth
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_2.pdf Worksheet 2]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/2_src.tar.gz Source 2]
 
|
 
|-
 
|
 
| November 12-16, 2012
 
| Functions & functional programming
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_3.pdf Unit tests & test paradigms]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_3.pdf Worksheet 3]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/3_src.tar.gz Source 3]
 
| Changed lecture room for the subsequent weeks
 
 
|-
 
|-
|
+
| October 28-November 1, 2013
| November 19-23, 2012
+
| Variable declaration, identifier naming rules, built-in data types, simple expressions
| Applicative programming & source code organisation
+
| C/C++ memory layout, SSE/AVX data types, integer and float representations, automatic type conversion, auto keyword
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_4.pdf The build process: makefiles and beyond]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_4.pdf Worksheet 4]
 
 
| t.b.a.
 
| t.b.a.
| Lecture moved to 02.09.014 on short note
 
|-
 
|
 
| November 26-30, 2012
 
| Pointers, structs & arrays 1
 
| Memory architectures & function pointers in C
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_5.pdf Worksheet 5]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/5_src.tar.gz Source 5]
 
| Changed lecture room for the subsequent weeks (back to Medienraum)
 
|-
 
|
 
| December 3-7, 2012
 
| Pointers, structs & arrays 2
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_6.pdf BLAS, SSE, and low-level math routines]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_6.pdf Worksheet 6]
 
| ---
 
|
 
|-
 
|
 
| December 10-14, 2012
 
| Recap session
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_7.pdf Performance analysis]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_7.pdf Worksheet 7]
 
| ---
 
|
 
 
|-
 
|-
|
+
| November 4-8, 2013
| December 17-21, 2012
+
| Functions
| Object-based programming
+
| Functional programming: Call semantics, scoping, recursion, call-stack and register save mechanisms, lambda expressions
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_8.pdf OpenMP]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_8.pdf Worksheet 8]
 
 
| t.b.a.
 
| t.b.a.
|
 
 
|-
 
|-
|
+
| November 11-15, 2013
| January 7-11, 2013
+
| Loops
| Object-oriented programming
+
| Applicative programming: Branches and scopes, header and implementation files, global variables, instruction reordering (outlook)
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/TBB.pdf TBB]
 
| Recap
 
 
| t.b.a.
 
| t.b.a.
|
 
 
|-
 
|-
|
+
| November 18-22, 2013
| January 14-18, 2013
+
| Linear algebra
 +
| Heap management: Cache architectures, new and delete, garbage collection, the restrict keyword, classic container realisations (single-linked list, trees, ...)
 
| t.b.a.
 
| t.b.a.
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/MPI.pdf MPI]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_9.pdf Worksheet 9]
 
| t.b.a.
 
|
 
 
|-
 
|-
|
+
| November 25-29, 2013
| January 21-25, 2013
+
| none
 +
| Execution Environment, Assembly
 
| t.b.a.
 
| t.b.a.
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/SE_Patterns.pdf Design patterns]
 
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/worksheet_10.pdf Worksheet 10]
 
| t.b.a.
 
|
 
 
|-
 
|-
|
+
| December 2-6, 2013
| January 28-February 1, 2013
+
| Execution Environment, Assembly..
| C++11
+
| Autovectorization, Memory Management
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/cpp11.pdf Applied C++11]
 
| t.b.a.
 
 
| t.b.a.
 
| t.b.a.
|
 
|-
 
|
 
| February 4-8, 2013
 
| Recap
 
| Recap
 
| Recap
 
| REcap
 
|
 
 
|-
 
|-
-->
 
 
|}
 
|}
  
  
Slides, information on lecture rooms, schedules, exam registrations, and so forth are available at TUMOnline.
+
Slides, information on lecture rooms, schedules, exam registrations, and so forth are available at Moodle. You can register via TUMOnline.
  
 
= Tutorials =
 
= Tutorials =
  
t.b.a.
+
All organisational details on the tutorials as well as the rooms
<!--
+
and dates can be found in TUMOnline. See the corresponding link on
{| class="wikitable"
+
the top of this page.  
|-
+
All lecture material for the tutorials is published in Moodle.
! '''Nr.'''
+
See the link above as well.
! '''Weekday'''
+
 
! '''Time'''
 
! '''Room'''
 
! '''Tutors'''
 
|-
 
| 1
 
| Tuesday
 
| 4:30 pm
 
| 02.07.023
 
| Arash Bakhtiari <bakhtiar AT in DOT tum DOT de>, Dmitry Pinaev <pinaev AT in DOT tum DOT de>
 
|-
 
| 2
 
| Friday
 
| 8:30 am
 
| 02.07.023
 
| Carlos Pachajoa <cpachaj AT gmail DOT com>, Marco Seravalli <marco DOT seravalli AT tum DOT de>
 
|}
 
-->
 
  
 
= Exam =
 
= Exam =
 +
Date: 21 February 2014
 +
 +
Time: 08:30 - 10:00
 +
 +
Location: 5602.EG.001 (00.02.001, MI Hörsaal 1)
 +
 
Exam duration: 90 min.
 
Exam duration: 90 min.
  
Helping material: Any hand written or printed material (no electronic devices) may be used during the exam.  
+
Helping material: None.  
  
 
Content: All topics of lecture and tutorials.
 
Content: All topics of lecture and tutorials.
  
Repetition: There will be a repetition of the exam. This will take place at the end of the summer term. Registration is due to TUMOnline and mandatory. Please doublecheck a priori with your course regulations whether you are allowed to take part in any case or whether your are allowed only if you have failed the first try.
+
Exam Review: 03/19/14, 10 AM - 11:30 AM, 02.07.023
 +
 
 +
Repetition: 07.04.14, 17:30 - 19:00, 5620.01.102 (102, Interims Hörsaal 2); Please remember to register in advance of the exam.
  
 
Participation/registration: Only persons who have registered at TUMOnline are allowed to take part.
 
Participation/registration: Only persons who have registered at TUMOnline are allowed to take part.
 +
 +
 
<!--
 
<!--
 
Inspect exam: Exams can be inspected on Monday, March 11, 2013, at room MI 02.05.041 from 14:00-16:00.
 
Inspect exam: Exams can be inspected on Monday, March 11, 2013, at room MI 02.05.041 from 14:00-16:00.
Line 220: Line 138:
 
Repetition: The repetition exam takes place on Wednesday, July 24, from 14:30 through 16:00 in MI 00.04.011 (MI Hörsaal 2). Please note that you have to register at [https://campus.tum.de/tumonline/wbregisterexam.lv_termine?cstp_sp_nr=950105914&cheader=J  TUMOnline] prior to the exam. This also holds for students who have been registered for the original exam and did not pass. Re-registration in that case also is mandatory.
 
Repetition: The repetition exam takes place on Wednesday, July 24, from 14:30 through 16:00 in MI 00.04.011 (MI Hörsaal 2). Please note that you have to register at [https://campus.tum.de/tumonline/wbregisterexam.lv_termine?cstp_sp_nr=950105914&cheader=J  TUMOnline] prior to the exam. This also holds for students who have been registered for the original exam and did not pass. Re-registration in that case also is mandatory.
 
-->
 
-->
 +
 
= Recommended Reading =
 
= Recommended Reading =
  

Latest revision as of 16:02, 18 March 2014

Term
Winter 13
Lecturer
Lecture: Dr. rer. nat. Tobias Weinzierl, Alexander Breuer, Tutorials: Gerrit Buse, Roland Wittmann, M.Sc.
Time and Place
Lecture: see TUMOnline
Audience
Computational Science and Engineering, first semester (module IN1503)
Tutorials
BGCE Supervised Teaching
Exam
see below and TUMOnline for announcement and registration
Semesterwochenstunden / ECTS Credits
4 SWS (2V+2Ü) / 5 Credits
TUMonline
TUM Online Lecture TUM Online Tutorial Moodle



News

  • 13 March 2014: See below at Exam for the date of the repeat exam.
  • 15 November 2013: The exam date is published in TUM Online (21st of February, 8:30-10:00). Please register for the exam there.
  • 24 October 2013: Please cf. Moodle for lecture material. The first slides are online, more to come.
  • 8 August 2013: Some notes on lecture concept online.

Concept

Concept.png

The weekly lecture discusses selected programming topics, C++ concepts, and programming language techniques. As this is not a preparatory course and as programming skills are among the prerequesites, we rely on many fundamental C++ aspects. If the participants are not familiar with those concepts, they have to aquire them themselves prior to the lecture (self-study). The lecturers publish checklists/slides prior to the session on knowledge required for the lecturers.

In the weekly tutorials, tutors participating in the Supervised Teaching programme first give a brief presentation on selected topics. These talks comprise outlooks and studies on topics not covered by the lecture and the exam that are however mandatory to program successfully today. Examples for topics are systematic testing and debugging, runtime measurements, build environments and so forth. Afterwards, the tutors present and discuss solutions on selected worksheet problems. The worksheets are published online roughly a week before the corresponding tutorials. This way, all participants have the opportunity to study the problems at home before they are presented solutions and additional information on the challenges. There is no mandatory homework however.

Our tutors are mentored by two senior Ph.D. students due to the Supervised Teaching programme and get didactic feedback and evaluation permanently.

For motivated students, we provide a course project accompanying the lectures and tutorials. This project is part of a Ernst Otto Fischer teaching award and is voluntary. Interested students are given access to the FRAVE installation at LRZ. They get access to complex software environments and state-of-the-art visualisation and computing environments. Strating from this environments, the worksheets hold additional programming tasks that are to be realised within this software environment. Step by step, they realise a complex simulation framework. The tasks are to be tackled either individually or in small groups (preferred), and shall give extraordinary motivated students the opportunity to train and improve their programming skills at hands of real-world simulation challenges. Extraordinary successful groups will be given the opportunity to present their results at an national or international conference.

Lecture Slides & Tutorial

Week Requirements Lecture Exercise Remarks
October 14-18, 2013 No tutorials, no lecture due to CSE introductory week
October 21-25, 2013 - Introduction and motivation, the von Neumann architecture, Flynn's taxonomy no tutorials but support to install compilers, software, and so forth
October 28-November 1, 2013 Variable declaration, identifier naming rules, built-in data types, simple expressions C/C++ memory layout, SSE/AVX data types, integer and float representations, automatic type conversion, auto keyword t.b.a.
November 4-8, 2013 Functions Functional programming: Call semantics, scoping, recursion, call-stack and register save mechanisms, lambda expressions t.b.a.
November 11-15, 2013 Loops Applicative programming: Branches and scopes, header and implementation files, global variables, instruction reordering (outlook) t.b.a.
November 18-22, 2013 Linear algebra Heap management: Cache architectures, new and delete, garbage collection, the restrict keyword, classic container realisations (single-linked list, trees, ...) t.b.a.
November 25-29, 2013 none Execution Environment, Assembly t.b.a.
December 2-6, 2013 Execution Environment, Assembly.. Autovectorization, Memory Management t.b.a.


Slides, information on lecture rooms, schedules, exam registrations, and so forth are available at Moodle. You can register via TUMOnline.

Tutorials

All organisational details on the tutorials as well as the rooms and dates can be found in TUMOnline. See the corresponding link on the top of this page. All lecture material for the tutorials is published in Moodle. See the link above as well.


Exam

Date: 21 February 2014

Time: 08:30 - 10:00

Location: 5602.EG.001 (00.02.001, MI Hörsaal 1)

Exam duration: 90 min.

Helping material: None.

Content: All topics of lecture and tutorials.

Exam Review: 03/19/14, 10 AM - 11:30 AM, 02.07.023

Repetition: 07.04.14, 17:30 - 19:00, 5620.01.102 (102, Interims Hörsaal 2); Please remember to register in advance of the exam.

Participation/registration: Only persons who have registered at TUMOnline are allowed to take part.


Recommended Reading

These links provide further information on particular topics. For literature, please consult the modul description IN1503 of the course.