Chair of Software Engineering. The 26 concepts. Bertrand Meyer
|
|
- Jodie Booth
- 6 years ago
- Views:
Transcription
1 Chair of Software Engineering The 26 concepts of computer science Bertrand Meyer Informatics Education Europe Venice, December
2 Five principles 1. We are not in Kansas any more 2. Most students come to us with considerable baggage 3. To teach software, show software 4. The only meaningful test is learning outcomes, objectively assessed 5. To teach CS is to teach 26 concepts 2 2
3 Introductory programming teaching Teaching first-year programming is a politically sensitive area, as you must contend not only with your students but also with an intimidating second audience colleagues who teach in subsequent semesters. Academics who teach introductory programming are placed under enormous pressure by colleagues. As surely as farmers complain about the weather, computing academics will complain about students programming abilities. Raymond Lister: After the Gold Rush: Toward Sustainable Scholarship in Computing, 10th Conf. on Australasian Computing Education,
4 Teaching programming today Ups and downs of high-tech economy, image of CS Offshoring and globalization raise the stakes Short-term pressures (e.g. families), IT industry fads Bologna process Widely diverse student motivations, skills, experience 4 4
5 Student backgrounds, skills The Youtube generation (or Flickr, Second Life, MySpace, Facebook, Grand Theft Auto etc.) Grew up with the Web, video games, multimedia Some have extensive programming experience Others have no clue! 5 5
6 Background of 1 st -year ETH CS students Previous years Computer 1 year: 0% (0%, 0%, 1%) experience 2 to 4 years: 1% (3%, 4%, 1%, 6%) 5 to 9 years: 38% (35%, 48%, 35%, 55%) 10 years: 61% (62%, 48%, 63%) Programming experience None: 12% (19%, 18%, 14%, 22%) No O-O: 20% (26%, 33%, 38%) 100 classes: 8% (11%, 15%, 10%, 5%) Pedroni, Meyer, Oriol, They know more than we think!,
7 Ways to teach introductory programming 1. Programming in the small 2. Learn APIs 3. Teach a programming language: Java, C++ 4. Functional programming 5. Completely formal, don t touch a computer 7 7
8 1. Programming in the small Necessary, but not sufficient This is not the 70 s any more 8 8
9 2. Teach APIs Example: graphical programming using Swing Pros: Focus on abstraction Yields directly employable students But: no understanding of underlying concepts 9 9
10 3. Teaching a specific language First Java program: class First { public static void main(string args[]) { System.out.println("Hello ll World!"); } } You ll understand d when you grow up! Do as I say, not as I do 10 10
11 Clarity Explain all that you show 11 11
12 3. Teaching a specific language First Java program: class First { public static void main(string args[]) { System.out.println("Hello ll World!"); } } 12 12
13 From Graham Farr s slides, intro course, Monash University (Melbourne, Australia) Common Mistakes in while while (num < minimum) scanf( %d, &num); printf( Number must be greater than %d.\n, minimum); printf( Please try again.\n ); while (num < minimum) { scanf( %d, %d,&num); printf( Number must be greater than %d.\n, minimum); printf( Please try again.\n ); } 13 13
14 From Farr s slides (continued) Common Mistakes in while -- extra semi-colon; Marks the end of the while-block -- usual cause of infinite loops while (num < minimum); { scanf( %d, &num); printf( Number must be greater than %d.\n, minimum); printf( Please try again.\n ); } 14 14
15 4. Functional languages Emphasize mathematical nature of programming Abelson-Sussman, MIT course: Structure & Interpretation of Computer Programs Elegant, concentrates on essential concepts But Little connection with industry practice Risk of disconnecting from students Why is state bad? 15 15
16 5. Formal methods from the start [In American universities] there is a complete separation between mathematics and engineering. I know of one highly regarded American university in which students in their first programming course must prove the correctness of every tiny program they write. In their second programming course, mathematics is completely forgotten and they just learn how to write C programs. There is no attempt to apply what they learned in the first course to the writing of real programs. Leslie Lamport (2003) 16 16
17 Concepts or skills? Skills supported by concepts 17 17
18 The twenty-six concepts of computer science Structure Static vs dynamic Notation Reuse Change Abstraction, Recursive reasoning Classification Syntax vs semantics Contract Information hiding Specification vs implementation Algorithmic reasoning Typing Complexity Scaling up Invariant 18 18
19 Computing the maximum of an array from until loop end i := 0 ; Result := a [1] i > a.upper i := i + 1 Result := max (Result, a [i ]) 19 19
20 Levenshtein distance Beethoven to Beatles B E E T H O V E N A L S Operation R D R D R Distance
21 B E A T L E S B E E T H
22 Levenshtein distance algorithm distance (source, target: STRING): INTEGER -- Minimum number of operations to turn source into target locall dist : ARRAY_2 [INTEGER] i, j, del, ins, subst : INTEGER do create dist.make (source.count, target.count) from i := 0 until i > source.count loop dist [i, 0] := i ; i := i + 1 end from j := 0 until j > target.count loop dist [0, j ] := j ; j := j + 1 end -- (Continued) 22 22
23 Levenshtein distance algorithm from i := 1 until i > source.count loop from j := 1 until j > target.count invariant loop??? if source [i ] = target [ j ] then dist [i, j ] := dist [ i -1, j -1] else deletion := dist [i -1, j ] insertion := dist [i, j -1] substitution := dist [i -1, j -1] dist [i, j ] := minimum (deletion, insertion, substitution) + 1 end j := j + 1 end i := i + 1 end Result := dist (source.count, target.count) end 23 23
24 Reversing a list right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 24 24
25 Reversing a list right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 25 25
26 Reversing a list right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 26 26
27 Reversing a list right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 27 27
28 Reversing a list right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 28 28
29 Loop as approximation strategy a 1 a 2 a i a n Result = a 1 Result = Max (a 1.. a 2 ) Loop body: = Max (a 1.. a 1 ) i := i + 1 Result = Max (a 1.. a i ) Result := max (Result, a [i ]) The loop invariant Result = Max (a 1.. a n ) 29 29
30 Loops as problem-solving strategy A loop invariant is a property that: Is easy to establish initially (even to cover a trivial part of the data) Is easy to extend to cover a bigger part If covering all data, gives the desired result! 30 30
31 B E A T L E S B Invariant: each a [i, j ] is distance from source [1..i ] to target [1..j ] E E T 4 4 K R D I 2 H 5 K Keep I Insert D Delete R Replace 31 31
32 Levenshtein loop from i := 1 until i > source.count loop from j := 1 until j > target.count invariant -- For all p : 1.. i, i q : 1.. j 1, we can turn source [1.. p ] -- into target [1.. q ] in dist [p, q ] operations loop if source [i ] = target [ j ] then new := dist [ i -1, j -1] else deletion := dist [i -1, j ] insertion := dist [i, j -1] substitution := dist [i -1, j -1] new := deletion.min (insertion.min (substitution)) + 1 end dist [i, j ] := new j := j + 1 end i := i + 1 end Result := dist (source.count, target.count) 32 32
33 Reversing a list right i first_element pivot Invariant: from first_element following right, initial i i items in inverse order; from pivot, rest of items in original order from pivot := first_element first_element := Void until pivot = Void loop i := first_element first_element := pivot pivot := pivot.right first_element.put_right (i ) end 33 33
34 Source: Graham Farr, intro course, Monash Common Mistakes in while while (num < minimum) scanf( %d, &num); printf( Number must be greater than %d.\n, minimum); printf( Please try again.\n ); while (num < minimum) { scanf( %d, &num); printf( Number must be greater than %d.\n, minimum); printf( Please try again.\n ); } 34 34
35 The twenty-six concepts of computer science Structure Static vs dynamic Notation Reuse Change Abstraction, Recursive reasoning Classification Syntax vs semantics Contract Information hiding Specification vs implementation Algorithmic reasoning Typing Complexity Scaling up Invariant 35 35
36 Concepts or skills? Skills supported by concepts 36 36
37 Some topics Control structures Undecidability Syntax, BNF Recursion Algorithm complexity Genericity, inheritance (single & multiple), Visitor Polymorphism, dynamic binding Agents (behavior as objects) Event-driven programming, Observer In-depth example: topological sort, problem solving strategies, engineering the solution Introduction to software engineering 37 37
38 Principles of our course Fully object-oriented from the start, using Eiffel Outside-in ( Inverted Curriculum ) Gentle introduction to formal techniques: Design by Contract Textbook: Touch of Class 38 38
39 Outside-in The course gives students a large amount of software, right from the beginning Michela Pedroni & numerous students TRAFFIC library 150,000 lines of Eiffel They start out as consumers They end up as producers! Progressive opening of the black boxes TRAFFIC is graphical, multimedia, extendible, and fun! 39 39
40 The first program class PREVIEW inherit TOURISM feature explore -- Prepare & animate route do Paris.display Louvre.spotlight Metro.highlight end end Route1.animate Text to input 40 40
41 3. Teaching a specific language First Java program: class First { public static void main(string args[]) { System.out.println("Hello ll World!"); } } You ll understand d when you grow up! Do as I say, not as I do 41 41
42 The first program class PREVIEW inherit TOURISM feature explore -- Prepare & animate route do Paris.display Louvre.spotlight Metro.highlight end end Route1.animate Text to input 42 42
43 43 43
44 Principles of the ETH course Reuse software : inspiration, imitation, abstraction See lots of software Learn to reuse through interfaces and contracts Gentle introduction to formal methods Interesting examples from day one Combination of principles and practices All relevant traditional techniques included as well: algorithms, control structures, basic data structures, recursion 44 44
45 To know more touch.ethz.ch (Still for a couple of weeks) including PDF of textbook Springer-Verlag, February
46 The next step Evaluation Second year (using Software Architecture course) Programming Ability Test, based on neutral criteria 46 46
47 Other relevant work Concurrency (SCOOP model) EVE (Eiffel Verification Environment) Automatic testing: AutoTest, CDD Proofs Teaching: DOSE course (Distributed and Outsourced Software Engineering), joint student project with Politecnico di Milano, Univ. of Nijny Novgorod, Odessa Polytechnic, University of Debrecen 47 47
48 Five principles 1. We are not in Kansas any more 2. Most students come to us with considerable baggage 3. To teach software, show software 4. The only meaningful test is learning outcomes, objectively assessed 5. To teach CS is to teach 26 concepts 48 48
Einführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 8: Control Structures I In this (double) lecture The notion of algorithm Basic
More informationHow you will be programming ten years from now
How you will be programming ten years from now Bertrand Meyer Professor of Software Engineering, ETH Zurich Chief Architect, Eiffel Software, Santa Barbara ACM Symposium on Applied Computing Sierre, Switzerland,
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 3: Dealing with Objects II Programming languages The programming language is
More informationWhat Is Computer Science? The Scientific Study of Computation. Expressing or Describing
What Is Computer Science? The Scientific Study of Computation CMPSCI 630: Programming Languages Introduction Spring 2009 (with thanks to Robert Harper) Expressing or Describing Automating Understanding
More informationMSc(IT) Program. MSc(IT) Program Educational Objectives (PEO):
MSc(IT) Program Master of Science (Information Technology) is an intensive program designed for students who wish to pursue a professional career in Information Technology. The courses have been carefully
More informationChapter 3 (part 3) Describing Syntax and Semantics
Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings
More informationCSSE 220. Interfaces and Polymorphism. Check out Interfaces from SVN
CSSE 220 Interfaces and Polymorphism Check out Interfaces from SVN Interfaces What, When, Why, How? What: Code Structure used to express operations that multiple class have in common No method implementations
More informationParadigms of computer programming
Paradigms of computer programming Louv1.1x and Louv1.2x form a two-course sequence Together they teach programming as a unified discipline that covers all programming languages Second-year university level:
More informationProgramming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.
Programming 2 (112) Lecture 0 College of Computer Science and Engineering Taibah University S2, 1439 Outline Important Information Lecture Protocol Subject Overview General Overview Course Objectives Studying
More informationCompulsory course in Computer Science
Compulsory course in Computer Science University of Macau Faculty of Science and Technology Department of Computer and Information Science SFTW241 Programming Languages Architecture I Syllabus 2 nd Semester
More informationCurriculum Map Grade(s): Subject: AP Computer Science
Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 12: More on references and the dynamic model Purpose of this lecture Few really
More informationComputer Science II Lecture 1 Introduction and Background
Computer Science II Lecture 1 Introduction and Background Discussion of Syllabus Instructor, TAs, office hours Course web site, http://www.cs.rpi.edu/courses/fall04/cs2, will be up soon Course emphasis,
More informationBeginning Programming (Two Semesters) Semester One. Module One: Intro to Beginning Programming. Module Two: Computer Careers
Beginning Programming (Two Semesters) Description: The major goal of this course is for students to develop the computer science skills of algorithm development problem solving and programming. While the
More informationConcurrency Patterns in SCOOP
Concurrency Patterns in SCOOP Master Thesis Project Plan Project period: 10. March to 8. September 2014 Student name: Roman Schmocker, 09-911-215 Status: 4. semester, Msc in Computer Science Email address:
More information1001ICT Introduction To Programming Lecture Notes
1001ICT Introduction To Programming Lecture Notes School of Information and Communication Technology Griffith University Semester 2, 2015 1 2 Elements of Java Java is a popular, modern, third generation
More informationCIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)
By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable
More informationPreface A Brief History Pilot Test Results
Preface A Brief History In Fall, 2005, Wanda Dann and Steve Cooper, originators of the Alice approach for introductory programming (in collaboration with Randy Pausch), met with Barb Ericson and Mark Guzdial,
More informationTOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1
TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1 ABSTRACT Test-Driven Development is a design strategy where a set of tests over a class is defined prior to the implementation of that class. The goal
More informationComputer Science Technology Houston Community College
Computer Science Technology Houston Community College UNIX Operating Systems I Course Syllabus Instructor Course Reference Number (CRN) WECM Course Description: Course Prerequisite(s) Course Semester Credit
More informationTraffic 3.1 Examples for Eiffel Beginners
Traffic 3.1 Examples for Eiffel Beginners Semester Thesis By: Supervised by: Roger Imbach Michela Pedroni Prof. Bertrand Meyer Student Number: 03-914-819 Table of Contents 1 Introduction 3-5 1.1 Personal
More informationComputer Science Technology Houston Community College
Computer Science Technology Houston Community College UNIX Operating Systems I Course Syllabus Instructor Course Reference Number (CRN) WECM Course Description: Course Prerequisite(s) Course Semester Credit
More informationLecture 2: SML Basics
15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia
More informationLecture 19: Topological sort Part 1: Problem and math basis. Topological sort. The problem. Why we are doing this!
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. r. Bertrand Meyer October 006 February 007 Lecture 9: Topological sort Part : Problem and math basis Intro.
More informationLecture 4: Observer Pattern, Event Library and Componentization
Software Architecture Bertrand Meyer & Till Bay ETH Zurich, February-May 2008 Lecture 4: Observer Pattern, Event Library and Componentization Program overview Date Topic Who? last week Introduction; A
More informationProgramming Language Concepts, cs2104 Lecture 01 ( )
Programming Language Concepts, cs2104 Lecture 01 (2003-08-15) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2002-08-15 S. Haridi, CS2104, L01 (slides: C. Schulte, S. Haridi) 1
More informationCS 137 Part 8. Merge Sort, Quick Sort, Binary Search. November 20th, 2017
CS 137 Part 8 Merge Sort, Quick Sort, Binary Search November 20th, 2017 This Week We re going to see two more complicated sorting algorithms that will be our first introduction to O(n log n) sorting algorithms.
More informationCS 241 Data Organization. August 21, 2018
CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/
More informationCS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e
More informationCIS 120. Introduction to Programming
CIS 120 Introduction to Programming Approved: May 6, 2011 EFFECTIVE DATE: Fall 2011 COURSE PACKAGE FORM Contact Person (s) Matt Butcher, Andra Goldberg, Dave White, Steve Sorden Date of proposal to Curriculum
More informationAn Introduction to Functions
Chapter 4 An Introduction to Functions Through the agency of with, we have added identifiers and the ability to name expressions to the language. Much of the time, though, simply being able to name an
More informationProgramming for Engineers in Python
Programming for Engineers in Python Lecture 13: Shit Happens Autumn 2011-12 1 Lecture 12: Highlights Dynamic programming Overlapping subproblems Optimal structure Memoization Fibonacci Evaluating trader
More informationPROGRAM OUTLINE. Information Technology with Co-op, System Programming. PROGRAM DESCRIPTION Concentration 1: DELIVERY METHODS PROGRAM DURATION
PROGRAM DESCRIPTION This co-op diploma program focuses on preparing you to work as a programmer requiring the application of current programming policies, practices, procedures and tools. This co-op diploma
More informationAl al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department
Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department 0901212 Python Programming 1 st Semester 2014/2015 Course Catalog This course introduces
More informationAbout this exam review
Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review
More informationNature abhors a void. Bertrand Meyer. Software Engineering
Nature abhors a void Bertrand Meyer The basic O-O operation x.f (args) Semantics: apply the feature f, with given args if any, to the object to which x is attached and the basic issue studied here: How
More informationLecture 3: Recursion; Structural Induction
15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion
More informationChapter 2 The Language PCF
Chapter 2 The Language PCF We will illustrate the various styles of semantics of programming languages with an example: the language PCF Programming language for computable functions, also called Mini-ML.
More informationProgramming Languages 2nd edition Tucker and Noonan"
Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "
More informationSchool of Computing and Information Sciences. Course Title: Mobile Application Development Date: 8/23/10
Course Title: Date: 8/3/10 Course Number: Number of Credits: 3 Subject Area: Mobile Computing Subject Area Coordinator: Kip Irvine email: irvinek@cs.fiu.edu Catalog Description: Design and development
More informationComputer Science Seminar. Whats the next big thing? Ruby? Python? Neither?
Computer Science Seminar Whats the next big thing? Ruby? Python? Neither? Introduction Seminar Style course unlike many computer science courses discussion important, encouraged and part of your grade
More informationExam 2. cs3102: Theory of Computation. Class 20: Busy Beavers
cs3102: Theory of Computation Office hours: I am not able to hold my Thursday morning office hours this week. I will have office hours Thursday 11am-1pm instead. Class 20: usy eavers Spring 2010 University
More informationDEPARTMENT OF COMPUTER SCIENCE
Department of Computer Science 1 DEPARTMENT OF COMPUTER SCIENCE Office in Computer Science Building, Room 279 (970) 491-5792 cs.colostate.edu (http://www.cs.colostate.edu) Professor L. Darrell Whitley,
More informationCOMPUTER SCIENCE/INFORMATION SYSTEMS DEGREE PLAN
COMPUTER SCIENCE/INFORMATION SYSTEMS DEGREE PLAN YEAR 1, SEMESTER 1 YEAR 1, SEMESTER 2 Composition I 3 Composition II 3 Calculus I 5 Calculus II 5 Humanistic (Religion) 3 Physics I 5 Total Wellness 2 Statistics
More information08 A: Sorting III. CS1102S: Data Structures and Algorithms. Martin Henz. March 10, Generated on Tuesday 9 th March, 2010, 09:58
08 A: Sorting III CS1102S: Data Structures and Algorithms Martin Henz March 10, 2010 Generated on Tuesday 9 th March, 2010, 09:58 CS1102S: Data Structures and Algorithms 08 A: Sorting III 1 1 Recap: Sorting
More informationSpecification and Analysis of Contracts Tutorial
Specification and Analysis of Contracts Tutorial Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo Gerardo Schneider (UiO) Specification and
More informationCSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium
CSC 172 Data Structures and Algorithms Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium Agenda Administrative aspects Brief overview of the course Hello world in Java CSC 172, Fall 2017, UR
More informationThe Environment Model
The Environment Model Prof. Clarkson Fall 2017 Today s music: Selections from Doctor Who soundtracks by Murray Gold Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax: BNF
More informationCITS5501 Software Testing and Quality Assurance Formal methods
CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005
More informationReview sheet for Final Exam (List of objectives for this course)
Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter
More informationprintf( Please enter another number: ); scanf( %d, &num2);
CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful
More informationObject Oriented Modelling And Design With Uml Solution
We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with object oriented modelling
More informationCMPE/SE 135 Object-Oriented Analysis and Design
Course and Contact Information San José State University Department of Computer Engineering CMPE/SE 135 Object-Oriented Analysis and Design Instructor: Ron Mak Office Location: ENG 250 Email: ron.mak@sjsu.edu
More informationJava Learning Object Ontology
Java Learning Object Ontology Ming-Che Lee, Ding Yen Ye & Tzone I Wang Laboratory of Intelligent Network Applications Department of Engineering Science National Chung Kung University Taiwan limingche@hotmail.com,
More informationThe Environment Model. Nate Foster Spring 2018
The Environment Model Nate Foster Spring 2018 Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax: BNF Formal semantics: dynamic: small-step substitution model static semantics
More informationCOURSE OUTLINE. School of Engineering Technology and Applied Science
COURSE OUTLINE SCHOOL: School of Engineering Technology and Applied Science DEPARTMENT: PROGRAM: COURSE TITLE: Information and Communication Engineering Technology (ICET) Computer and Communication Networking
More informationUniverse Type System for Eiffel. Annetta Schaad
Universe Type System for Eiffel Annetta Schaad Semester Project Report Software Component Technology Group Department of Computer Science ETH Zurich http://sct.inf.ethz.ch/ SS 2006 Supervised by: Dipl.-Ing.
More informationCSC 210 COMPUTER SCIENCE II
CSC 210 COMPUTER SCIENCE II PRESENTED AND APPROVED: NOVEMBER 2, 2012 EFFECTIVE: FALL 2013-14 Prefix & Number CSC 210 Course : Computer Science II Purpose of this submission: New Course New Change/Updated
More informationSemantic Analysis. Lecture 9. February 7, 2018
Semantic Analysis Lecture 9 February 7, 2018 Midterm 1 Compiler Stages 12 / 14 COOL Programming 10 / 12 Regular Languages 26 / 30 Context-free Languages 17 / 21 Parsing 20 / 23 Extra Credit 4 / 6 Average
More informationFunctional abstraction. What is abstraction? Eating apples. Readings: HtDP, sections Language level: Intermediate Student With Lambda
Functional abstraction Readings: HtDP, sections 19-24. Language level: Intermediate Student With Lambda different order used in lecture section 24 material introduced much earlier sections 22, 23 not covered
More informationFunctional abstraction
Functional abstraction Readings: HtDP, sections 19-24. Language level: Intermediate Student With Lambda different order used in lecture section 24 material introduced much earlier sections 22, 23 not covered
More informationAdding content to your Blackboard 9.1 class
Adding content to your Blackboard 9.1 class There are quite a few options listed when you click the Build Content button in your class, but you ll probably only use a couple of them most of the time. Note
More informationProject Report for Touch of class - Examples Chapter 7 to 9
for Touch of class - Examples Chapter 7 to 9 Damien Müllhaupt Corinne Müller ETH Zürich January 18, 2008 1 Contents 1 Overview 3 2 Scope of work 3 3 Touch of class Chapter 7 3 3.1 Touch Paris objects...........................
More informationAssessment of Programming Skills of First Year CS Students: Problem Set
Assessment of Programming Skills of First Year CS Students: Problem Set Notes to the working group participants. Enclosed in this file are the three problems. They are in ascending order of difficulty.
More informationSlide Set 1. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 1 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2016 ENCM 339 Fall 2016 Slide Set 1 slide 2/43
More informationCOMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)
Computer Science, Bachelor of Science (B.S.) 1 COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.) The Bachelor of Science in Computer Science is built on a rigorous, highly concentrated, accredited curriculum
More informationIntensive Introduction to Computer Science. Course Overview Programming in Scratch
Unit 1, Part 1 Intensive Introduction to Computer Science Course Overview Programming in Scratch Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Welcome to CS S-111! Computer science
More informationThe Mashup Atelier. Cesare Pautasso, Monica Frisoni. Faculty of Informatics University of Lugano (USI), Switzerland
The Mashup Atelier Cesare Pautasso, Monica Frisoni Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info 1 University of Lugano, Switzerland Faculty of Informatics (Opened
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationCentury 21 Jr. Lesson Plans for Chapter 16 1
Lesson Plans for Chapter 16 1 Chapter 16 Database Chapter Objectives Discuss the Chapter 16 objectives with students: Learn the purpose of a database and database objects. Create a database file. Create
More informationCurriculum for the Bachelor's Degree Programme in Software Development National section
Curriculum for the Bachelor's Degree Programme in Software Development National section Contents 1. Programme structure... 3 2. Core areas of study... 3 2.1 Large-scale system development... 3 2.2 Databases
More informationCS113: Lecture 4. Topics: Functions. Function Activation Records
CS113: Lecture 4 Topics: Functions Function Activation Records 1 Why functions? Functions add no expressive power to the C language in a formal sense. Why have them? Breaking tasks into smaller ones make
More informationLecture 1: Introduction to Java
Accelerating Information Technology Innovation http://aiti.mit.edu Lecture 1: Introduction to Java AITI Nigeria Summer 2012 University of Lagos. Agenda First Lab.. Class is Hands on remember? Recap Previously
More informationCS 4349 Lecture October 18th, 2017
CS 4349 Lecture October 18th, 2017 Main topics for #lecture include #minimum_spanning_trees. Prelude Homework 6 due today. Homework 7 due Wednesday, October 25th. Homework 7 has one normal homework problem.
More informationProject 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.
Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use
More informationPlan of the lecture. Quick-Sort. Partition of lists (or using extra workspace) Quick-Sort ( 10.2) Quick-Sort Tree. Partitioning arrays
Plan of the lecture Quick-sort Lower bounds on comparison sorting Correctness of programs (loop invariants) Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Lecture 16 1 Lecture 16 2 Quick-Sort (
More informationA Gentle Introduction to Program Analysis
A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally
More informationProgramming Languages CSCE
Programming Languages CSCE 314 500 Class schedule: MW, 04:10pm 05:25pm Room: HECC 100 Homepage: http://courses.cs.tamu.edu/gdr/2013/314/ Prerequisite: CSCE 221 Instructor: Dr. Gabriel Dos Reis (gdr@cse.tamu.edu)
More informationIntroduction to Programming
Introduction to Programming Lecture 1 Object-Oriented Programming Agenda What is Program? Ideal Computing Way Where We Are in Computers? Interaction with the Computer Where are we going? Programming and
More informationCS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106
CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main
More informationLecture 1: Overview
15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant
More informationAdvances in Programming Languages
O T Y H Advances in Programming Languages APL8: ESC/Java2 David Aspinall (including slides by Ian Stark and material adapted from ESC/Java2 tutorial by David Cok, Joe Kiniry and Erik Poll) School of Informatics
More informationKOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)
Programming Concepts & Algorithms Course Syllabus Course Title Course Code Computer Department Pre-requisites Course Code Course Instructor Programming Concepts & Algorithms + lab CPE 405C Computer Department
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 14: Container Data Structures Topics for this lecture Containers and genericity
More informationPhiladelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus
Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008 Course Syllabus Course Title: Compiler Construction Course Level: 4 Lecture Time: Course
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today: Java basics: Compilation vs Interpretation Program structure Statements Values Variables Types Operators and Expressions
More informationJava for Non Majors. Final Study Guide. April 26, You will have an opportunity to earn 20 extra credit points.
Java for Non Majors Final Study Guide April 26, 2017 The test consists of 1. Multiple choice questions 2. Given code, find the output 3. Code writing questions 4. Code debugging question 5. Short answer
More informationRecursive Definitions
Recursion Objectives Explain the underlying concepts of recursion Examine recursive methods and unravel their processing steps Explain when recursion should and should not be used Demonstrate the use of
More informationPart A: Course Outline
University of Macau Faculty of Science and Technology Course Title: Department of Electrical and Computer Engineering Part A: Course Outline Communication System and Data Network Course Code: ELEC460 Year
More information8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES
CS-3304 Introduction In Text: Chapter 1 & 2 COURSE DESCRIPTION 2 What will you learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview
More informationObject Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz
Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz tabbasum.naz@ciitlahore.edu.pk Course Outline Course Title Object Oriented Concepts and Course Code Credit Hours 4(3,1) Programming
More informationCurriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy.
Curriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy. Contents Executive Summary... 3 IT Curriculum Overview... 3 Aims... 3 Oracle Academy Introduction to Computer Science...
More informationOutline. CIS 110: Introduction to Computer Programming. What is Computer Science? What is computer programming? What is computer science?
Outline CIS 110: Introduction to Computer Programming Lecture 1 An introduction of an introduction ( 1.1 1.3)* 1. What is computer science and computer programming? 2. Introductions and logistics 3. The
More informationCS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013
CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective
More informationLesson 1A - First Java Program HELLO WORLD With DEBUGGING examples. By John B. Owen All rights reserved 2011, revised 2015
Lesson 1A - First Java Program HELLO WORLD With DEBUGGING examples By John B. Owen All rights reserved 2011, revised 2015 Table of Contents Objectives Hello World Lesson Sequence Compile Errors Lexical
More informationChair of Software Engineering. Languages in Depth Series: Java Programming. Prof. Dr. Bertrand Meyer. Exercise Session 3
Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Exercise Session 3 Today s Exercise Session Assignment 2 Walkthrough the master solution (your solutions)
More information2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:
College of San Mateo Official Course Outline 1. COURSE ID: CIS 278 TITLE: (CS1) Programming Methods: C++ C-ID: COMP 122 Units: 4.0 units Hours/Semester: 48.0-54.0 Lecture hours; 48.0-54.0 Lab hours; and
More informationSpring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques
1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures:
More informationMidterms Save the Dates!
University of British Columbia CPSC 111, Intro to Computation Alan J. Hu (Using the Scanner and String Classes) Anatomy of a Java Program Readings This Week s Reading: Ch 3.1-3.8 (Major conceptual jump
More informationCMSC 330: Organization of Programming Languages. Operational Semantics
CMSC 330: Organization of Programming Languages Operational Semantics Notes about Project 4, Parts 1 & 2 Still due today (7/2) Will not be graded until 7/11 (along with Part 3) You are strongly encouraged
More information