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

Slides:



Advertisements
Similar presentations
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 Getting Started with Java.
Advertisements

Analysis of Computer Algorithms
© 2005 by Prentice Hall Chapter 13 Finalizing Design Specifications Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 11 Introduction to Programming in C
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
0 - 0.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Foundations of Programming and Problem Solving Introduction.
1 Processes and Threads Creation and Termination States Usage Implementations.
Lecture 10 Flow of Control: Loops (Part 2) COMP1681 / SE15 Introduction to Programming.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 14: Stepwise.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Lecture 11: Algorithms and Time Complexity I Discrete Mathematical Structures: Theory and Applications.
Computer Science Recursion Yuting Zhang Allegheny College, 04/24/06.
Chapter 11: Models of Computation
Parallel List Ranking Advanced Algorithms & Data Structures Lecture Theme 17 Prof. Dr. Th. Ottmann Summer Semester 2006.
1 University of Utah – School of Computing Computer Science 1021 "Thinking Like a Computer"
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 4: Evaluation.
1 Evaluations in information retrieval. 2 Evaluations in information retrieval: summary The following gives an overview of approaches that are applied.
1 4 Square Questions B A D C Look carefully to the diagram Now I will ask you 4 questions about this square. Are you ready?
Software Requirements
Problem Solving and Algorithm Design
1 CS Tutorial 2 Architecture Document Tutorial.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
Requirements Analysis Moving to Design b521.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis.
Lecture 6: Software Design (Part I)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Addition 1’s to 20.
25 seconds left…...
CSTA K-12 Computer Science Standards (rev 2011)
ECS Fall Semester Understanding Constructivism: Using it as a Model of Learning to Assist in Teaching Warren Wessel Faculty of Education University.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Week 1.
Chapter 9 Interactive Multimedia Authoring with Flash Introduction to Programming 1.
How Cells Obtain Energy from Food
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 16: Exception.
JAVA BASICS SYNTAX, ERRORS, AND DEBUGGING. GCOC – A.P. Computer Science A College Board Computer Science A Topics Covered Program Design - Read and understand.
Lecturer: Fintan Costello Welcome to Hdip 001 Introduction to Programming.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Introduction to Programming Programming. COMP102 Prog. Fundamentals I: Introduction / Slide 2 Objectives l To learn fundamental problem solving techniques.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Concept of Computer Programming November 2, 2011.
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Peter Andreae Computer Science Victoria University of Wellington Copyright: Peter Andreae, Victoria University of Wellington Java Programs COMP 102 #3.
1 Chapter-01 Introduction to Computers and C++ Programming.
PROGRAMMING LANGUAGES The Study of Programming Languages.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
Telecooperation Technische Universität Darmstadt Copyrighted material; for TUD student use only 1 Exercise TK3 Assigment 3: Application Scenario FG Telekooperation.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
CS101 Introduction to Computing Lecture Programming Languages.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 8: Accumulating.
Compiler Construction (CS-636)
Computer Science Reaching Wider Summer School 2012.
CSC 222: Computer Programming II
CSCI-235 Micro-Computer Applications
CS101 Introduction to Computing Lecture 19 Programming Languages
Introduction to Computers and Python
String Output ICS 111: Introduction to Computer Science I
An Introduction to Programming with C++ Fifth Edition
Presentation transcript:

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

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

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

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

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# v Why dont you teach it to your students? Parents: CNN talks a lot about Java. Why do you teach my son Scheme?

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

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

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

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?

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?

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

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

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

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

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

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 …

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

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

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.

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

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!

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: