Advanced Programming - Winter 12: Difference between revisions

From Sccswiki
Jump to navigation Jump to search
No edit summary
 
(63 intermediate revisions by 3 users not shown)
Line 2: Line 2:
| term = Winter 12
| term = Winter 12
| lecturer = [[Dr. rer. nat. Tobias Weinzierl]]
| lecturer = [[Dr. rer. nat. Tobias Weinzierl]]
| timeplace = Lecture: T.B.A.
| timeplace = Lecture: see TUMOnline
| tutorials = [[Kaveh Rahnema, M.Sc.]] , [[Dipl.-Inf. Martin Schreiber]]
| tutorials = [[Kaveh Rahnema, M.Sc.]] , [[Dipl.-Inf. Martin Schreiber]]
| credits = 4 SWS (2V+2Ü) / 5 Credits
| credits = 4 SWS (2V+2Ü) / 5 Credits
| audience = Computational Science and Engineering, first semester (module [http://drehscheibe.in.tum.de/myintum/kurs_verwaltung/cm.html?id=IN1503 IN1503])
| audience = Computational Science and Engineering, first semester (module [http://drehscheibe.in.tum.de/myintum/kurs_verwaltung/cm.html?id=IN1503 IN1503])
| exam = T.B.A.
| exam = see below and TUMOnline for announcement and registration
| tumonline = [https://campus.tum.de/tumonline/LV.detail?clvnr=950071871  Lecture]
: [https://campus.tum.de/tumonline/lv.detail?clvnr=950070043 Tutorials]
}}
}}


Line 12: Line 14:
= News =
= News =


= Contents =
* Date and deep link to TUMOnline for the repetition exam are online.
The lecture introduces the student to basic object oriented programming. "Thinking in classes" when designing an application has a strong focus. Advanced concepts such as encapsulation, inheritance or polymorphism are also covered.
* Starting from November 13, 2012, the lecture takes place in the Interimshörsaal 2 (black building next to the Computer Science building).
* Inspect exam: Exams can be inspected on Monday, March 11, 2013, at room MI 02.05.041 from 14:00-16:00.
* Inspect repeat exam: Exams can be inspected on Monday, August 09, 2013, at room MI 02.05.041 from 10:00-12:00.


The programming language is C++. Topics specific to the language, such as basic syntax, collections or unit testing, are also addressed.
= Lecture Slides & Tutorial =
The tutorial offers weekly programming exercises in C++. They are inspired by common problems from scientific computing. Besides the tutorials, programming consulting is offered.  


= Lecture Slides =
= Tutorial =
The tutorial offers weekly programming exercises in C++, inspired by common problems from scientific computing.
<!--
{| class="wikitable"
{| class="wikitable"
|-
|-
!'''Nr.'''
! '''Nr.'''
! '''Week'''
! '''Lecture'''
! '''Hands-on report'''
! '''Exercise'''
! '''Exercise'''
! '''Time'''
! '''Exercise Material'''
! '''Note'''
|-
|
| October 15-19, 2012
|
|
|
|
| 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
|-
|
| November 5-9, 2012
| Control structures, branches & scopes
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/tutorial_presentation_2.pdf IDEs & Debugging]
| [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
|-
|
| November 19-23, 2012
| Applicative programming & source code organisation
| [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.
| 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)
|-
|-
| 1
|
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/TicketMachine.pdf Ticket Machine]
| December 3-7, 2012
| November 8/9, 2011
| 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]
| ---
|
|-
|-
| rowspan="2" | 2
|
| rowspan="2" | [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/2_complex.zip Complex Numbers]
| December 10-14, 2012
| Session 1: November 15/16, 2011
| 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]
| ---
|
|-
|-
| Session 2: November 22/23, 2011
|
| December 17-21, 2012
| Object-based programming
| [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.
|
|-
|-
| rowspan="2" | 3
|
| rowspan="2" | [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/matrix.pdf Matrix Operations]
| January 7-11, 2013
| Session 1: November 29/30, 2011
| Object-oriented programming
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/TBB.pdf TBB]
| Recap
| t.b.a.
|
|-
|-
| Session 2: December 6/7, 2011
|
| January 14-18, 2013
| 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.
|
|-
|-
| rowspan="2" | 4
|
| rowspan="2" | [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/3_functions.zip Object Oriented Modelling of Functions]
| January 21-25, 2013
| Session 1: December 13/14, 2011
| 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.
|
|-
|-
| Session 2: December 20/21, 2011
|
| January 28-February 1, 2013
|  C++11
| [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws12/tutorials/cpp11.pdf Applied C++11]
| t.b.a.
| t.b.a.
|
|-
|-
| rowspan="2" | 4
|
| rowspan="2" | [http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/sorting.pdf Sorting]
| February 4-8, 2013
[http://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/uml.pdf UML Diagram slides]
| Recap
| Session 1: January 10/11, 2012
| Recap
| Recap
| REcap
|  
|-
|-
| Session 2: January 17/18, 2012
|}
|}
-->


'''Time and place'''


Room: T.B.A.
Slides, information on lecture rooms, schedules, exam registrations, and so forth are available at TUMOnline.


= Tutorials =


{| class="wikitable"
|-
! '''Nr.'''
! '''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>
|}


= Prerequisites =
= Prerequisites =
Basic programming skills are recommended.
Basic programming skills are recommended.


= Exam =
Exam duration: 90 min.
Helping material: Any hand written or printed material (no electronic devices) may be used during the exam.
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.
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 repeat exam: Exams can be inspected on Monday, August 09, 2013, at room MI 02.05.041 from 10:00-12:00.
Exam: [[File:Exam.pdf]]
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 =
<!--
 
* Paul and Harvey Deitel: Java - How to Program. Pearson, 8th edition (2010)
These links provide further information on particular topics. For literature, please consult the modul description [http://drehscheibe.in.tum.de/myintum/kurs_verwaltung/cm.html?id=IN1503 IN1503] of the course.
* David J. Barnes and Michael Kölling: [http://www.bluej.org/objects-first/ Objects First with Java - A Practical Introduction using BlueJ], Prentice Hall/Pearson Education
 
* Tony Gaddis: Starting out with Java. Addison Wesley, 3rd edition (2008)
* [http://homepages.gac.edu/~mc38/2001J/documentation/g++.html Using g++]
-->
* [http://www.cprogramming.com/tutorial/c-vs-c++.html Difference between C and C++ (at least some of them)]
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen]
* [http://www.doxys.dk Doxys]
* [http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming The Art of Computer Programming]
* [http://docs.sun.com/source/806-3568/ncg_goldberg.html What Every Computer Scientist Should Know About Floating-Point Arithmetic]
* [http://www.netzmafia.de/skripten/ad/ad13.html Remarks on C (German)]
* [http://www.eclipse.org/cdt Eclipse with C/C++ Development Tooling]

Latest revision as of 15:28, 2 August 2013

Term
Winter 12
Lecturer
Dr. rer. nat. Tobias Weinzierl
Time and Place
Lecture: see TUMOnline
Audience
Computational Science and Engineering, first semester (module IN1503)
Tutorials
Kaveh Rahnema, M.Sc. , Dipl.-Inf. Martin Schreiber
Exam
see below and TUMOnline for announcement and registration
Semesterwochenstunden / ECTS Credits
4 SWS (2V+2Ü) / 5 Credits
TUMonline
Lecture
Tutorials



News

  • Date and deep link to TUMOnline for the repetition exam are online.
  • Starting from November 13, 2012, the lecture takes place in the Interimshörsaal 2 (black building next to the Computer Science building).
  • Inspect exam: Exams can be inspected on Monday, March 11, 2013, at room MI 02.05.041 from 14:00-16:00.
  • Inspect repeat exam: Exams can be inspected on Monday, August 09, 2013, at room MI 02.05.041 from 10:00-12:00.

Lecture Slides & Tutorial

The tutorial offers weekly programming exercises in C++. They are inspired by common problems from scientific computing. Besides the tutorials, programming consulting is offered.

Nr. Week Lecture Hands-on report Exercise Exercise Material Note
October 15-19, 2012 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 History of computer architectures & the C programming language Worksheet 1 Source 1 No lecture due to Allerheiligen/Allerseelen
November 5-9, 2012 Control structures, branches & scopes IDEs & Debugging Worksheet 2 Source 2
November 12-16, 2012 Functions & functional programming Unit tests & test paradigms Worksheet 3 Source 3 Changed lecture room for the subsequent weeks
November 19-23, 2012 Applicative programming & source code organisation The build process: makefiles and beyond Worksheet 4 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 Worksheet 5 Source 5 Changed lecture room for the subsequent weeks (back to Medienraum)
December 3-7, 2012 Pointers, structs & arrays 2 BLAS, SSE, and low-level math routines Worksheet 6 ---
December 10-14, 2012 Recap session Performance analysis Worksheet 7 ---
December 17-21, 2012 Object-based programming OpenMP Worksheet 8 t.b.a.
January 7-11, 2013 Object-oriented programming TBB Recap t.b.a.
January 14-18, 2013 t.b.a. MPI Worksheet 9 t.b.a.
January 21-25, 2013 t.b.a. Design patterns Worksheet 10 t.b.a.
January 28-February 1, 2013 C++11 Applied C++11 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.

Tutorials

Nr. 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>

Prerequisites

Basic programming skills are recommended.

Exam

Exam duration: 90 min.

Helping material: Any hand written or printed material (no electronic devices) may be used during the exam.

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.

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 repeat exam: Exams can be inspected on Monday, August 09, 2013, at room MI 02.05.041 from 10:00-12:00.

Exam: File:Exam.pdf

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 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

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