The lecture presents important basic principles of computer science, including concepts of programming languages, elementary algorithms, types of abstract data, simple data structures (stacks, lists, trees), recursion, and algorithm efficiency analysis. Students will be encouraged to think in formal systems and to accept the necessity of abstraction and the importance of appropriate model formations in computer science. As teaching language we will use Scheme in the first part of the term while Java will be used in the second part of the term.
Datum:
Dozenten: Dr. Guido Rößling Prof. Dr. Max Mühlhäuser
Semester: WiSe 2011/12
Themenbereiche: Ingenieurswissenschaften
Bereiche: Informatik
Sprache: deutsch english
Links:
Vorlesungen:
- T10.1-6 Functions with memory 17.10.2011
- T10.7-14 Assignments 17.10.2011
- T10.15-21 Standard I/O functions; begin 17.10.2011
- T10.22-32 Designing functions with memory 17.10.2011
- T11.1-8 General Differences between Racket and Java 17.10.2011
- T11.9-20 Compilation, Interpretation and ACM JTF 17.10.2011
- T11.21-28 Variables in Java 17.10.2011
- T11.29-32 Primitive data types 17.10.2011
- T11.33-46 Arithmetic, logical and bit operations 17.10.2011
- T11.47-50 Functions in Java 17.10.2011
- T11.51-57 Strings in Java 17.10.2011
- T11.58-79 Flow of Control: conditionals, loops, recursion 17.10.2011
- T11.80-91 Lists (Racket) vs. Arrays (Java) 17.10.2011
- T11.92-96 Commenting Java elements 17.10.2011
- T11.97-113 Introduction to the Eclipe IDE 17.10.2011
- T11.114-115 Summary 17.10.2011
- T12.1-15 OOP in a Nutshell: Classes and Objects in Java 17.10.2011
- T12.15-24 Encapsulation; Classes as two-fold abstractions; Performing computations 17.10.2011
- T12.25-40 Interpreter, Compiler, Virtual Machines; Java Compile and Runtime Environment 17.10.2011
- T12.41-43 Visibility of variables in Java 17.10.2011
- T12.44-56 Packages 17.10.2011
- T12.57-87 Introduction to testing Java classes with Eclipse and JUnit 17.10.2011
- T13.1-9 Inheritance: Motivation 17.10.2011
- T13.10-14 Incremental Programming 17.10.2011
- T13.15-24 Definition of new object types in Java 17.10.2011
- T13.25-39 Basics of the package acm.graphics 17.10.2011
- T13.40-47 Modeling a graphical system 17.10.2011
- T13.48-61 Abstract classes 17.10.2011
- T13.62-73 Interfaces 17.10.2011
- T13.74-77 Overriding existing definitions 17.10.2011
- T13.78-88 Late binding of method implementations at method invocation 17.10.2011
- T14.1-9 Stepwise Refinemen 17.10.2011
- T14.10-18 Advantages of abstract operations 17.10.2011
- T14.19-27 OO Design: Clients and Servers 17.10.2011
- T15.1-11 Class properties 17.10.2011
- T15.12-20 Access modifiers 17.10.2011
- T15.21-31 Wrapper and list-based collections 17.10.2011
- T15.32-36 Sets and Maps 17.10.2011
- T15.37-40 Iterators 17.10.2011
- T16.1-12 Errors and their classification 17.10.2011
- T16.13-19 Error handling with language support and its problems 17.10.2011
- T16.20-34 Basics of error handling with language support in Java 17.10.2011
- T16.35-57 Advantages of error handling with language support in Java 17.10.2011
- T16.58 Checking for expected exceptions using JUnit 17.10.2011
- T16.59-63 Summary 17.10.2011
- T17.1-13 Values, types and type systems 17.10.2011
- T17.14-20 Static and dynamic type checking 17.10.2011
- T17.21-26 Static vs. dynamic type 17.10.2011
- T17.27-42 Subtype polymorphism 17.10.2011
- T17.43-54 The power of polymorphism 17.10.2011
- T18.1-7 Type conversions 17.10.2011
- T18.8-14 Generics I: X<Y> 17.10.2011
- T18.15-18 Generics and Subtypes 17.10.2011
- T18.19-34 Generics and Wildcards 17.10.2011
- T19.1-16 Introduction to Quality Control 17.10.2011
- T19.17-29 Design by Contract; Assertions 17.10.2011
- T19.30-36 Test methods 17.10.2011
- T19.37-48 Control Flow Graphs and Coverage tests 17.10.2011
- T19.49-56 Functional testing 17.10.2011
- T19.57-59 Testing classes 17.10.2011
- T20.1-19 Introduction to Input/Output Streams and Java Input/Output (I/O) 17.10.2011
- T20.20-32 Overview of Processing Streams 17.10.2011
- T20.33-35 Wrapping Streams and the Decorator Pattern 17.10.2011
- T20.36-45 User-Defined Streams and Random Access 17.10.2011
- T20.46-52 StreamTokenizer 17.10.2011
- T21.1-9 Basics of Graphical User Interfaces 17.10.2011
- T21.10-18 Buttons, Frames, and Labels 17.10.2011
- T21.19-27 Events 17.10.2011
- T21.41-46 MVC: Model, View, Controller 17.10.2011
- T21.47-63 Internationalization (I18N) 17.10.2011
- Organization of the course 17.10.2011
- T0.1-T0.22 Introduction 17.10.2011
- T1.1-T1.23 Basic Elements of Programming 17.10.2011
- T1.24-T1.34 Designing Programs 17.10.2011
- T2.1-T2.8 Structures in Racket 17.10.2011
- T2.9-T2.12 Motivation for data abstraction 17.10.2011
- T2.13-T2.20 Operations on rational numbers 17.10.2011
- T2.21-T2.29 Levels of Abstraction 17.10.2011
- T2.30-T2.39 Dealing with heterogeneous data 17.10.2011
- T3.1-T3.15 Recursive Data Structures 17.10.2011
- T3.16-T3.27 Handling recursive data types 17.10.2011
- T3.28-T3.37 Auxiliary Procedures 17.10.2011
- T3.38-T3.54 Trees and Family Trees 17.10.2011
- T3.55-T3.61 Iterative improvement of programs 17.10.2011
- T3.62-T3.66 Procedures with complex arguments 17.10.2011
- T3.67-T3.71 Procedures with complex arguments 17.10.2011
- T3.72-T3.83 Evaluation of arithmetic expressions 17.10.2011
- T4.1-T4.15 Evaluation Order; Syntax&Semantics 17.10.2011
- T4.16-T4.29 Block Structure; local and scoping 17.10.2011
- T5.1-13 Abstracting Design: Similarities in definitions 17.10.2011
- T5.14-20 Similarities in Data Definitions 17.10.2011
- T5.21-34 Functions are values 17.10.2011
- T5.35-47 Designing abstractions from examples 17.10.2011
- T5.48-60 map as an abstraction barrier 17.10.2011
- T5.61-69 Single point of control 17.10.2011
- T5.70-79 Designing abstractions with functions as values 17.10.2011
- T5.80-95 Designing functions "on the fly" 17.10.2011
- T5.96-103 Lambda the Ultimate 17.10.2011
- T5.104-119 "pipes-and-filters" organization of computations 17.10.2011
- T6.1-11 Generative Recursion 17.10.2011
- T6.12-29 Sorting using generative recursion 17.10.2011
- T6.30-42 Design Recipes for generative recursion 17.10.2011
- T6.43-53 Structural vs. generative recursion 17.10.2011
- T6.54-67 Backtracking: traversing graphs 17.10.2011
- T7.1-3 Basic Concepts of Complexity 17.10.2011
- T7.4-19 Abstract Measurement, Complexity classes 17.10.2011
- T7.43-57 Master Theorem, Recursion tree, and substitutionmethod 17.10.2011
- T7.58-77 Vectors in Racket 17.10.2011
- T8.1-12 Motivation for Accumulators 17.10.2011
- T18.26-31 Accumulator invariants, resume 17.10.2011
- T9.1-9 Interpreters and program semantics 17.10.2011
- T9.10-17 Interpreter based on the substitution model 17.10.2011
- T9.18-23 The data type map 17.10.2011
- T9.24-34 Evaluation procedure and substitution 17.10.2011
- T9.43-49 Normal and applicative evaluation order 17.10.2011