Presentation is loading. Please wait.

Presentation is loading. Please wait.

Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 0: Introduction.

Similar presentations


Presentation on theme: "Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 0: Introduction."— Presentation transcript:

1 Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 0: Introduction Prof. Dr. Max Mühlhäuser Dr. Guido Rößling

2 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 What Computer Science is Not About 2 The computer! Just as biology is not microscope science and writing is not pen science...

3 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 The subject of ICS 1 3 Problem Description executable program mental Model machine layer Challenge: Formulating a solution that is both easy to understand for a human and executable for a machine huge representational gap

4 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 The role of ICS-1 – Introduction to Programming - Content constraints Sociological constraints Time constraints 4

5 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 The role of ICS-1 5 ICS-1 Introduction to Programming Profs: Everybody in my world needs pointers. This is what you should teach in ICS-1! Student: I know everything and Perl is the best! Industry: Today we are using C# v4.538. Why dont you teach it to your students? Parents: CNN talks a lot about Java. Why do you teach my son Scheme?

6 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 The role of ICS-1 6 ICS-1 Students with mathematical background Students who program Students who can program on a similar level Students without previous knowledge

7 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 In many ICS-1 Courses… Classic ICS-1 course: –You learn the syntax of a fashionable programming language –You use a commercial development environment –You are shown code examples and asked to imitate them –You discuss a couple of algorithmic ideas The meaning of the language remains unclear –superficial explanations –or explanation in terms of implementation details/ hardware How you can to design new programs remains unclear 7

8 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Tinkering vs. Design Syntax: Tinkering until it works Design: Tinkering until it works You know some standard algorithms, but this is no replacement for a program design methodology Your knowledge about the meaning of the language is a mixture of gut feeling and some details about low-level implementation details of the language 8

9 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Work Environment for a Pilot 9 Appropriate for first flying lesson?

10 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Work Environment for Experienced Programmers 10 Appropriate for the first programs?

11 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Our approach: 4 pillars 1.Development environment for beginners 2.Simple programming language 3.Precise models to understand the meaning of the language 4.Recipes and methodology how to design programs 11

12 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Development environment for beginners 12

13 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Simple programming language You will not learn only one - but many different layered programming languages –Different levels, structured from the pedagogical point of view Subsets of the programming language Scheme –Features that you dont know yet are disabled –No bizarre error messages regarding features you dont know We can always concentrate on the design concepts and ideas that fit your current standard of knowledge! 13

14 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Precise Models to understand the meaning of the language For every language level, we will teach you a model which explains the meaning of the various programs –You can execute programs on a piece of paper –These models are not defined in terms of hardware, but their purpose is to specify the meaning in the simplest possible way –You will also hear about models illustrating how a programming language is implemented on typical hardware 14

15 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Recipes and methodology how to design programs We will not just present programs and ask you to imitate We teach recipes – that is, step-by-step instructions – how you can design programs –These recipes are more or less independent of the programming language 15

16 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Typical program design approach… 16 That is not how we will do it, though …

17 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 From Scheme to Java In the second half of the semester we will use Java The design recipes work step-by-step also for object- oriented Java programs Many differences are just notation More fundamental differences are very instructive 17

18 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Why not Java first? Complex notation, complex errors No IDE (integrated development environment) supports language levels Direct interaction with Scheme interpreter makes it easier to get started Design recipes drown in syntax –K.I.S.S. - Keep It Simple Syntactically Java/C++/Pascal: 90% syntax, 10% problem solving Scheme: 10% syntax, 90% problem solving Scheme (or Lisp) is the mother of most modern language features –These features can be studied in full purity in Scheme –Many new features of modern languages can easily be understood once you know Scheme Studies show that our approach produces better OO programmers! 18

19 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Advantages of an easy language We want to compute the sum of 2 and 3 19 DrScheme: We enter the program (+ 2 3), DrScheme responds 5 Java/Eclipse: We start a new project We create a new package We create a new class We write the following program: package test; public class Test { public static void main(String args[]) { System.out.println(2+3); } (You need weeks before you understand every part of this program) We compile the program We run the program The console shows 5 The steps required in Java/Eclipse are not nonsense, but all have their meaning. For a beginner, they can be confusing and unnecessary.

20 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Summary Training good programmers does not mean starting them on currently fashionable or professional tools & languages We provide a strong, rigorous foundation in basic concepts of programming Then, and only then, we will expose you to current fashion! 20

21 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 Books Scheme: –most important book: How to Design Programs (HTDP) –Structure and Interpretations of Computer Programs (SICP) Java –Thinking in Java 21 all books available for free online!

22 Dr. G. Rößling Prof. Dr. M. Mühlhäuser RBG / Telekooperation © Introduction to Computer Science I: T0 More information News, Links, Lecture Notes etc. are all available on our homepages: 22 www.tk.informatik.tu-darmstadt.de/index.php?id=inf1 www.tk.informatik.tu-darmstadt.de/index.php?id=ics1


Download ppt "Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 0: Introduction."

Similar presentations


Ads by Google