Introduction to Programming Summer Term 2016 Dr. Adrian Kacso, Univ. Siegen adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966, Office: H-B 8406 / H-A 5109 State: April 11, 2016 Betriebssysteme / verteilte Systeme Introduction to Programming (1) i Introduction to Programming Summer Term 2016 0 Organisation Betriebssysteme / verteilte Systeme Introduction to Programming (1) 1
About Myself Studies of Computer Science, Technical University Klausenburg Ph.D. in 2009 at Univ. of Siegen Since 01.07.2005 teaching/research assistant, department of Operating Systems and Distributed Systems at Univ. Siegen Research: Protocols for wireless sensor networks (WSNs) esp. energy-aware MAC and routing protocols for WSNs, simulation frameworks for WSNs (OMNeT++ & MiXiM extensions) Home Automation applications using TI CC2530 & CC2650: Z-Stack and BLE E-mail: adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966 Office: H-A 5109 (consultation hour: Monday 14:30-15:30) Betriebssysteme / verteilte Systeme Introduction to Programming (1) 2 The course in a Nutshell In this course, you should learn how to write simple computer programs We use the C++ programming language The course consists of: Lecture ( 2 h / week): Room H-F 114 Lab: programming assignments (2h / week + home work) consisting of some task to code (C++) write yourself the C++ code (in the lab or at home) send your solution in time to the tutor get feedback from tutor / supervisor Betriebssysteme / verteilte Systeme Introduction to Programming (1) 3
Course Material Lecture slides available on the WWW page http://www.bs.informatik.uni-siegen.de/ lehre/ss16/ip slides from last year are already available updated slides will be made available during the term Book: J. Liberty. Teach Yourself C++ in 10 Minutes. Sams Publishing, 1999 or 2nd edition, 2002. 1st edition available in the university library Further reading: B. Eckel: Thinking in C++ http://www.mindview.net/books/ticpp/thinkingincpp2e.html J. Stevens: Teach Yourself C++. Wiley & Sons, 7th edition, 2003. Betriebssysteme / verteilte Systeme Introduction to Programming (1) 4 Examination / Grading 5-6 programming assignments (during the term) you have about two weeks to process them you must provide a serious attempt for at least 50% of all assignments five assignments will be graded maximum score: 40 points in total (8P per assignment) presentation - you will have to present your solutions orally twice during the term in the lab: H-A 4111 (time to be announced) maximum score: 10 points in total for presentation don t copy! (both will get 0 points!) Betriebssysteme / verteilte Systeme Introduction to Programming (1) 5
Examination / Grading Project work in a group (not graded!) Written exam at the end of the summer term date: will be specified duration: 1 hour maximum score: 50 points With a total of 50 (out of 100 possible) points you have passed the course Note: If you do not solve the assignments on your own, you will fail the exam! (experience from last years...) Betriebssysteme / verteilte Systeme Introduction to Programming (1) 6 Programming Assignments Computer room: H-A 4111 (pool of 20 Linux PCs) fixed lab hours with supervisers available schedule: Thu. 10:15-11:45 (Group 1) Fri. 10:15-12:45 (Group 2) Fri. 8:30-10:00 (Group 3) otherwise free schedule computers will be available most of the time Start: next week (introductory hour in H-A 4111) Supervision during the lab hours: the tutor is present each Thu. 10:15-12:00, Fri. 8:30-12:00 the tutor will be available for questions Betriebssysteme / verteilte Systeme Introduction to Programming (1) 7
Accounts and Keys Already registered for the lecture via WWW (LSF)? If you are registered for the course you will get your login and password in the next lab introductory hour (H-A 4111) Access to the lab room H-A 4111: fill in the form Kartenschlüsselantrag to get a key card to the lab. Sign the form and give it to the tutor you will get your key card in room H-B 5404 (Mr. Kiel) Notes: you don t have to do the programming on the lab computers, but the programs must compile and run there! the lab computers are not accessible via the Internet use USB sticks to transfer the relevant files Betriebssysteme / verteilte Systeme Introduction to Programming (1) 8 How to fill in the Kartenschlüsselantrag Mr Mrs 403126 Name First Name Address Street Fak.4 Student Number ZIP City E Mail Betriebssysteme / verteilte Systeme Introduction to Programming (1) 9
How to fill in the Kartenschlüsselantrag... H A 4111 18.04.2016 31.07.2016 Laboratory course "Introduction to Programming" Date, Signature Betriebssysteme / verteilte Systeme Introduction to Programming (1) 10 Lecture Schedule for summer term (tentative) 14.04. Introduction 21.04. Variables, expressions, statements 28.04. Functions 12.05. Loops, arrays 19.05. Types, structures, classes, file I/O 2.06 Pointers, dynamic memory allocation 9.-16.06 Objects, pointers, references 23.06 Copy constructor, operators 30.06 Inheritance, polymorphism 7.07. Abstract classes, containers 14.07. Repetition, preparation for exam 21.07. EXAM (1h) Betriebssysteme / verteilte Systeme Introduction to Programming (1) 11
A note on Assignments Assignments have to be completed ( and sent by email to the tutor) until the deadline Wednesday (12.00 a.m.) due date will be indicated on the exercise sheet Support hours during the labs Tutors: Dimitrios SPANELLIS and Mohamed ELWAN E-mails for sending the lab assignments: itpds2016@gmaila.dcom, (for Spanellis) itpme2016@gmaila.dcom, You can (voluntarily) present your solutions after the due date otherwise, you may be invited for the next lab hour remember that you have to orally present your solutions twice Betriebssysteme / verteilte Systeme Introduction to Programming (1) 12 Examination Organization Date: Thursday, July 21th (tentative!) Time / Room : will be announced! watch the WWW page for the actual DATE and TIME! Open books exam, all written materials allowed but no electronic devices (Cell phone, Computer, Calc.,...) Have a photo ID and your student ID with you Results will be published at the bulletin board Next written examination next year in summer Betriebssysteme / verteilte Systeme Introduction to Programming (1) 13
Examination... Structure About 3-5 sections (with several questions) Number of points for each section is indicated Mix of Simple programming tasks (see e.g. next week examples) with varying degrees of freedom Understanding programs i.e., for a given code, write the output or point out errors Understanding concepts How does it work? What happens? When to use? Why? Betriebssysteme / verteilte Systeme Introduction to Programming (1) 14 Examination... Main Topics General programming skills variables, types, arrays,... statements (if, switch, loops, functions,...) Pointers and references Object oriented concepts classes, objects inheritance, polymorphism, abstract classes Betriebssysteme / verteilte Systeme Introduction to Programming (1) 15