Reflection Library for Eiffel PROJECT PLAN

Size: px
Start display at page:

Download "Reflection Library for Eiffel PROJECT PLAN"

Transcription

1 Reflection Library for Eiffel PROJECT PLAN Master thesis Project period: Monday, Wednesday, Student: Beat Fluri Status: 9th semester Supervising Assistant: Bernd Schoeller Supervising Professor: Bertrand Meyer

2 1 Project Description 1.1 Overview State of the art programming languages like Java or C# provide a reflection API. Reflection means to discover properties of programs at runtime. This includes [5]: Determine the class of an object Get information about a class s modifiers, fields, methods, constructors, and superclasses Find out what constants and method declarations belong to an interface Create an instance of a class whose name is not known until runtime Get and set the value of an object s field, even if the field name is unknown to your program until runtime Invoke a method on an object, even if the method is not known until runtime Create a new array, whose size and component type are not known until runtime, and then modify the array s components The first obvious application area of reflection is certainly a debugger. But monitoring and modifying programms during runtime is as meaningfull, unless even more. In fact Eiffel does not feature a full reflection library. There exists an Eiffel class INTERNAL, which supports getting information about the fields of an object and modifying them, but as mentioned above this is only a part of a full reflection API. 1.2 Eiffel object model The special interest of this master thesis is to map a very sophisticated object model into a reflection library. Eiffel, compared to state of the art object-oriented programming languages, supports programmers with lots of specialities to increase software quality in large software systems. To show what specialities are meant, here is a small choice: Differentiation of class and type (genericity) Renaming or redefinition of features to reduce the complexity of multiple inheritence Feature export to only a set of classes 1.3 Scope of the work The master project is composed of tree parts: 1. Evaluation of the existing reflection APIs of Java, C#, Smalltalk and maybe one of the two script oriented languages Python or Ruby. Finally a comparison with the Eiffel class INTERNAL will be made: Showing usage of each API with short but clear examples Determining the design issues of each API Showing assets and drawbacks of the design of each API including a comparison of the APIs among each other 1

3 2. Design of a full Eiffel reflection library (ERL): Decision of a design on the basis of the results obtained by Partial implementation of ERL 4. Design and implementation of an object editor: Showing usage of ERL Providing possibilities to travers a given object structure to see and modify the fields 1.4 Intended results Reflection Library for Eiffel The aim of this thesis is to develop a reflection library for Eiffel. The library should be carefully designed according to the evaluation of the existing reflection APIs of Java, C# and Smalltalk and maybe Python or Ruby. To obtain a well designed Eiffel library the guidelines of OOSC2 ([2]) must be fulfilled (see 3.2). Because the compiler and runtime environment of Eiffel does not support full reflection, the implementation of the library is not feasible to full extend. But all contracted interfaces have to be available and all features available in INTERNAL must be implemented Object editor The object editor will show the usage of the reflection library. The required set of its features is to travers given object structures and modify their fields. To give the opportunity to use the object editor in Introduction to Programming course, it must be easy to use and have a user guide Thesis report The part of the evaluation of existing reflection APIs in the final report should give the readers an introduction to each API. This also includes reasonable examples to show how to use the APIs. Finally a comparison between their designs will point out how a good reflection library shoud be designed. All made design decisions of the ERL and the object editor must be well explained in the thesis report. Further the ERL design should be comprehensible with the result of the evaluation of the existing reflection APIs. 2 Background material 2.1 Reading list Eiffel object model: [1] Object technology, library design: [2], [3] Reflection in general: [4] Reflection in Java: [3], [5], [6], [7], [8], [9], [10] Reflection in.net: [3], [11], [12] Reflection in Smalltalk: [13], [14], [15] Reflection in Ruby: [16], [17] Reflection in Python: [18], [19] Object editors: [20] 2

4 3 Project management 3.1 Objectives and priorities Eiffel reflection library Objective Priority API Design 1 API Documentation 1 Implementation of INTERNAL features Object editor Objective Priority Design and implementation 1 Ease of use Thesis report Objective Priority Evaluation of exiting reflection APIs 1 Explanation of ERL design decisions 1 Object editor user guide Criteria for success The main goal of this project is to develop a well designed reflection library for Eiffel. Therefor the criteria for success is the quality of software and the documentation. The subprojects object editor and evaluation of existing reflection APIs have to fulfill the same criteria. To achieve this, some points must be satisfied: Quality of software: Design by contract Core principles of OOSC2 [2] Good design of the interface Completeness with respect to the limitations of the compiler and runtime environment: Complete interface of all features of a full reflection library in contractual form Implementation of all features available in INTERNAL Implementation of the object editor to travers a given object structure and modify the fields Quality of documentation: Good structure Understandability Completeness 3

5 3.3 Method of work The technologies involved are:.net Framework and SDK 1.1 Java 2 SDK and 1.5beta Squeak (Smalltalk) Python / Ruby ISE EiffelStudio LATEX The Java reflection examples, the ERL and the object editor will be developed on Linux, the C# reflection examples on Windows. The documentation is written using LATEX. 3.4 Qualitiy management Documentation The thesis report will be written throughout the whole project. Each of the project steps will be adhered in a corresponding chapter. The user guide for the object editor is part of the thesis report Validation steps To close the project successfully the following meetings should be made: Weekly status report to the supervising assistant, reasonably every friday Special meetings with the supervising assistant after completing a subproject Obscurities will be discussed with the supervising assistant 4 Plan with milestones 4.1 Project steps and milestones Existing reflection APIs (M1): Develop Java, C#, Smalltalk and maybe Python or Ruby reflection examples Evaluate APIs and compare them with INTERNAL Design of the eiffel reflection library (M2): Specify full reflection according to the existing APIs and the Eiffel object model [1] Design of ERL Validation Partial implementation of ERL (M3): Implement features of INTERNAL Test cases 4

6 Object editor (M4): Design and specification Implement object editor Test cases Implement example object structur User guide Thesis report (M5) 4.2 Deadline Project start: Monday, Project end: Wednesday, Total work time: 26 weeks + 3 days = 133 days 4.3 Tentative schedule References [1] Meyer, Bertrand. Eiffel: The Language, 1st Edition, 2nd Printing, Prentice Hall PRT, [2] Meyer, Bertrand. Object-Oriented Software Construction, 2nd Edition, Prentice Hall, [3] Szyperski, Clemens. Component Software - Beyond Object-Oriented Programming, 2nd Edition, Addison-Wesley,

7 [4] Proceedings of the Reflection 96 Conference, San Francisco, April www2.parc.com/csl/groups/sda/projects/reflection96/index.html [5] Green, Dale. Trail: The Reflection API java.sun.com/docs/books/tutorial/reflect/ [6] Sosnoski, Dennis M. Java programming dynamics, Part 1: Classes and class loading www-106.ibm.com/developerworks/java/library/j-dyn0429/ [7] Sosnoski, Dennis M. Java programming dynamics, Part 2: Introducing reflection www-106.ibm.com/developerworks/java/library/j-dyn0603/ [8] Sosnoski, Dennis M. Java programming dynamics, Part 3: Applied reflection www-106.ibm.com/developerworks/java/library/j-dyn0715.html [9] Sosnoski, Dennis M. Java programming dynamics, Part 4: Class transformation with Javassist www-106.ibm.com/developerworks/java/library/j-dyn0916.html [10] Becker, Dan. Reflection: A new way to discover information about Java classes www-106.ibm.com/developerworks/java/library/j-reflection.html [11] Liberty, Jesse. Programming C#, 3rd Edition, O Reilly, [12] Microsoft MSDN Library msdn.microsoft.com/library/ [13] Goldber, Adele & Robson, David. Smalltalk-80: The Language, 1st Edition, [14] Rivard, Fred. Smalltalk: a Reflective Language, Proceedings of the Reflection 96 Conference, San Francisco, April [15] Squeak [16] Programming Ruby - The Pragmatic Programmer s Guide [17] Ruby: Programmers Best Friend [18] Andersen, Anders. A note on reflection in Python 1.5 [19] Python Programming Language [20] BlueJ - The Interactive Java Environment 6

EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan

EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan Reto Ghioldi Department of Computer Science ETH Zürich September 6, 2005 Project period 8.September 2005-9.March 2006 Student

More information

Contract Wizard II: Developing a GUI

Contract Wizard II: Developing a GUI Contract Wizard II: Developing a GUI PROJECT PLAN Diploma project Project period 2004-04-26 2004-08-25 Student name Petra Marty Status 9 th semester Email address martypet@student.ethz.ch Supervisor name

More information

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005 Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand

More information

Master Thesis Project Plan. Reusable Mathematical Models

Master Thesis Project Plan. Reusable Mathematical Models Master Thesis Project Plan Reusable Mathematical Models Tobias K. Widmer widmer@id.ethz.ch Supervisors: Prof. Dr. B. Meyer B. Schoeller Chair of Software Engineering Department of Computer Science, ETH

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 15 October 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 1: Issues of software quality Agenda for today 3 Introduction Some statistics

More information

Nested Class Modularity in Squeak/Smalltalk

Nested Class Modularity in Squeak/Smalltalk Nested Class Modularity in Squeak/Smalltalk Software Architecture Group, Hasso Plattner Institute Master s Thesis Disputation August 21, 2015 What is Modularity? According to Bertrand Meyer (Object-oriented

More information

Concurrency Patterns in SCOOP

Concurrency 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 information

Object-Oriented Software Construction

Object-Oriented Software Construction 1 Object-Oriented Software Construction Bertrand Meyer 2 Lecture 2: EiffelStudio and project presentation Agenda for today 3 EiffelStudio: The ISE Eiffel environment Project presentation Agenda for today

More information

CSE 413 Spring Introduction to Ruby. Credit: Dan Grossman, CSE341

CSE 413 Spring Introduction to Ruby. Credit: Dan Grossman, CSE341 CSE 413 Spring 2011 Introduction to Ruby Credit: Dan Grossman, CSE341 Why? Because: Pure object-oriented language Interesting, not entirely obvious implications Interesting design decisions Type system,

More information

Concepts in Programming Languages

Concepts in Programming Languages Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture

More information

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018 San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018 Course and Contact Information Instructor: Thomas Austin Office

More information

CS240: Programming in C

CS240: Programming in C CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special

More information

Call by Declaration. Erik Ernst 1. Dept. of Computer Science, University of Aarhus, Denmark

Call by Declaration. Erik Ernst 1. Dept. of Computer Science, University of Aarhus, Denmark Call by Declaration Erik Ernst 1 Dept. of Computer Science, University of Aarhus, Denmark eernst@daimi.au.dk Abstract. With traditional inheritance mechanisms, a subclass is able to use inherited features

More information

Introduction To Programming Using Java: An Object- Oriented Approach (2nd Edition) By David Arnow, Scott Dexter

Introduction To Programming Using Java: An Object- Oriented Approach (2nd Edition) By David Arnow, Scott Dexter Introduction To Programming Using Java: An Object- Oriented Approach (2nd Edition) By David Arnow, Scott Dexter Second edition Practical Software Development using UML and Java. Second.. in the formal

More information

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 SYL-410-2014C CS 410 - Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 Course location: 107 ERB, Evansdale Campus Course times: Tuesdays and Thursdays, 2:00-3:15 Course

More information

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group Proseminar Model-Driven Software Engineering (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker Model-Driven Software Engineering Software Engineering Group 1 Outline Basic Requirements Preliminary Dates

More information

Advanced Topics in Object Technology

Advanced Topics in Object Technology 1 Advanced Topics in Object Technology Bertrand Meyer Contact 2 : http://se.inf.ethz.ch Course assistant: Karine Arnout http://se.inf.ethz.ch/people/arnout 3 Lecture 1: Introduction, Quality issues, Lifecycle

More information

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

Today. An Animated Introduction to Programming. Prerequisites. Computer programming Today 1 2 3 4 Computer programming What is this course about? We re making several assumptions about you as a student. In particular, we assume that you have: Never taken a programming course before. Have

More information

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015 ****************************************************************************** YEAR COURSE OFFERED: 2015 SEMESTER COURSE OFFERED: SPRING DEPARTMENT: COMPUTER SCIENCE COURSE NUMBER: 20019 Room and Time:

More information

Object-Oriented Software Construction

Object-Oriented Software Construction 1 Object-Oriented Software Construction Bertrand Meyer Contact 2 Chair of Software Engineering: http://se.inf.ethz.ch Course assistant: Joseph N. Ruskiewicz http://se.inf.ethz.ch/people/ruskiewicz 3 Lecture

More information

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing,

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns

More information

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus 1. Course Objectives Welcome to MET CS342 Data Structures with Java. The intent of this

More information

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject Cat-nbr Class Term Mode Units Campus CSC 2402 30366 1, 2004 ONC 1.00 TWMBA Academic group:

More information

Programming Languages & Paradigms PROP HT Abstraction & Modularity. Inheritance vs. delegation, method vs. message. Modularity, cont d.

Programming Languages & Paradigms PROP HT Abstraction & Modularity. Inheritance vs. delegation, method vs. message. Modularity, cont d. Programming Languages & Paradigms PROP HT 2011 Abstraction & Modularity Lecture 6 Inheritance vs. delegation, method vs. message Beatrice Åkerblom beatrice@dsv.su.se 2 Modularity Modularity, cont d. Modular

More information

C++ Programming for Programmers using Microsoft Visual C Professional

C++ Programming for Programmers using Microsoft Visual C Professional C++ Programming for Programmers using Microsoft Visual C++ 6.0 Professional Compiled and Presented by Thomas P. Sturm, Ph.D. Graduate Programs in Software Technical Seminar The University of St. Thomas

More information

Object Oriented Program Correctness with OOSimL

Object Oriented Program Correctness with OOSimL Kennesaw State University DigitalCommons@Kennesaw State University Faculty Publications 12-2009 Object Oriented Program Correctness with OOSimL José M. Garrido Kennesaw State University, jgarrido@kennesaw.edu

More information

CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL

CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL Courses must be submitted by October 15, 2013, and finalized by the end of the fall semester to make the next catalog (2014-15)

More information

Late-bound Pragmatical Class Methods

Late-bound Pragmatical Class Methods Late-bound Pragmatical Class Methods AXEL SCHMOLITZKY, MARK EVERED, J. LESLIE KEEDY, GISELA MENGER Department of Computer Structures University of Ulm 89069 Ulm, Germany {axel, markev, keedy, gisela@informatik.uni-ulm.de

More information

CS 0449 Intro to Systems Software Fall Term: 2181

CS 0449 Intro to Systems Software Fall Term: 2181 CS 0449 Intro to Systems Software Fall Term: 2181 Class Recitation Recitation Recitation Time: 11:00am 12:15pm 03:00pm 03:50pm 10:00am 10:50am 09:00am 09:50am Days: TH T W F Number 19730 20024 19731 27127

More information

Technology in Action. Chapter Topics (cont.) Chapter Topics. Reasons for Software Programming. Information Systems 10/29/2010

Technology in Action. Chapter Topics (cont.) Chapter Topics. Reasons for Software Programming. Information Systems 10/29/2010 Technology in Action Chapter 10 Behind the Scenes: Building Applications 1 2 Chapter Topics System development life cycle Life cycle of a program Problem statement Algorithms Moving from algorithm to code

More information

Design by Contract in Eiffel

Design by Contract in Eiffel Design by Contract in Eiffel 2002/04/15 ctchen@canthink.com.com.tw.tw Reference & Resource Bertrand Meyer, Object-Oriented Oriented Software Construction 2nd,, 1997, PH. Bertrand Meyer, Eiffel: The Language,,

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should

More information

Characteristics of Runtime Program Evolution

Characteristics of Runtime Program Evolution Characteristics of Runtime Program Evolution Mario Pukall and Martin Kuhlemann School of Computer Science, University of Magdeburg, Germany {pukall, kuhlemann}@iti.cs.uni-magdeburg.de Abstract. Applying

More information

Prefix COMP Course# 421 Title Unix for Programmers Units (3) 3 hours lecture per week 3 hours lecture per week

Prefix COMP Course# 421 Title Unix for Programmers Units (3) 3 hours lecture per week 3 hours lecture per week CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL Courses must be submitted by October 15, 2010, to make the next catalog (2011-12) production DATE (CHANGE DATE EACH TIME REVISED):

More information

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

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

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET CLOVIS WEST DIRECTIVE STUDIES P.E. 2018-19 INFORMATION SHEET INSTRUCTORS: Peggy Rigby peggyrigby@cusd.com 327-2104. Vance Walberg vancewalberg@cusd.com 327-2098 PURPOSE: Clovis West High School offers

More information

CSC 111 Introduction to Computer Science (Section C)

CSC 111 Introduction to Computer Science (Section C) CSC 111 Introduction to Computer Science (Section C) Course Description: (4h) Lecture and laboratory. Rigorous introduction to the process of algorithmic problem solving and programming in a modern programming

More information

Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava

Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava Nathan Burles 1, Edward Bowles 1, Alexander E. I. Brownlee 2, Zoltan A. Kocsis 2, Jerry Swan 1, Nadarajen Veerapen 2

More information

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 Course and Contact Information Instructor: Dr. Kim Office Location:

More information

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an

More information

AE Computer Programming for Aerospace Engineers

AE Computer Programming for Aerospace Engineers AE 030 - Computer Programming for Aerospace Engineers Instructor Information: Credit: Professor Long Lu Long.Lu@sjsu.edu 2 units Class Times & Locations: Section 01 (Lecture): M 16:30-17:20 in CL 226 Section

More information

ECE 3574: Applied Software Design

ECE 3574: Applied Software Design ECE 3574: Applied Software Design Chris Wyatt Spring 2018 Welcome to ECE 3574: Applied Software Design CRN 19016 Website: https://filebox.ece.vt.edu/~ece3574 Instructor: Chris Wyatt, clwyatt@vt.edu Today

More information

Objects First with Java

Objects First with Java ^ Objects First with Java A Practical Introduction using BlueJ David J. Barnes and Michael Kolling Second edition PEARSON Prentice Hall Harlow, England London New York Boston San Francisco Toronto Sydney

More information

An Object Model for Multiparadigm

An Object Model for Multiparadigm 1 of 7 03/02/2007 15:37 http://www.dmst.aueb.gr/dds/pubs/conf/1994-oopsla-multipar/html/mlom.html This is an HTML rendering of a working paper draft that led to a publication. The publication should always

More information

6.088/6.084 Robotics Project Subject Information and Syllabus

6.088/6.084 Robotics Project Subject Information and Syllabus 6.088/6.084 Robotics Project Subject Information and Syllabus Staff: Prof. Daniela Rus (Course Coordinator), Rm 32-374, rus@csail.mit.edu, x8-7567 Dr. Nikolaus Correll, Rm 32-375, nikolaus@csail.mit.edu,

More information

The Procedure Abstraction

The Procedure Abstraction The Procedure Abstraction Procedure Abstraction Begins Chapter 6 in EAC The compiler must deal with interface between compile time and run time Most of the tricky issues arise in implementing procedures

More information

ESET 369 Embedded Systems Software, Spring 2018

ESET 369 Embedded Systems Software, Spring 2018 ESET 369 Embedded Systems Software, Spring 2018 Syllabus Contact Information: Professor: Dr. Byul Hur Office: Fermier 008A Telephone: (979) 845-5195 FAX: E-mail: byulmail@tamu.edu Web: rftestgroup.tamu.edu

More information

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics Zarqa University Faculty: Information Technology Department: Computer Science Course title: Programming LAB 1 (1501111) Instructor: Lecture s time: Semester: Office Hours: Course description: This introductory

More information

ESET 369 Embedded Systems Software, Fall 2017

ESET 369 Embedded Systems Software, Fall 2017 ESET 369 Embedded Systems Software, Fall 2017 Syllabus Contact Information: Professor: Dr. Byul Hur Office: Fermier 008A Telephone: (979) 845-5195 FAX: E-mail: byulmail@tamu.edu Web: rftestgroup.tamu.edu

More information

Sprint 2017, Sul Ross State University

Sprint 2017, Sul Ross State University Instructor: Dr. Kennard Laviers CS 2360-001 LINUX Sprint 2017, Sul Ross State University Office Location: ACR 107 Office Phone: 432-837-8500 Email: kennard.laviers@sulross.edu Office Hours: MW 8:30am -

More information

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10 Mathematics/Science Department Kirkwood Community College Course Syllabus Computer Science CSC142 Bob Driggs Dean Cate Sheller Instructor 1/10 Computer Science (CSC142) Course Description Introduces computer

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Summer Term 2014 Dr. Adrian Kacso, Univ. Siegen adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966, Office: H-B 8406 State: April 9, 2014 Betriebssysteme / verteilte Systeme

More information

Annex A: Terms of Reference Arabic Translation of Website Teaching Coding

Annex A: Terms of Reference Arabic Translation of Website Teaching Coding Annex A: Arabic Translation of Website Teaching Coding 11 February 2015 Reference: RFP/2015/657 Table of Contents 1 Introduction...3 1.1 Background...3 1.2 Statement of Purpose & Objectives...3 2 Requirements...3

More information

Objects and Classes Lecture 1

Objects and Classes Lecture 1 Objects and Classes Lecture 1 Waterford Institute of Technology January 6, 2016 John Fitzgerald Waterford Institute of Technology, Objects and ClassesLecture 1 1/19 Fundamental Programming Course Content

More information

The Contract Pattern. Design by contract

The Contract Pattern. Design by contract The Contract Pattern Copyright 1997, Michel de Champlain Permission granted to copy for PLoP 97 Conference. All other rights reserved. Michel de Champlain Department of Computer Science University of Canterbury,

More information

Francesco Nidito. Programmazione Avanzata AA 2007/08

Francesco Nidito. Programmazione Avanzata AA 2007/08 Francesco Nidito Programmazione Avanzata AA 2007/08 Outline 1 2 3 4 Reference: Micheal L. Scott, Programming Languages Pragmatics, Chapter 10 , type systems and type checking A type type is an abstraction

More information

About Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals

More information

CS Systems Qualifying Exam 2014

CS Systems Qualifying Exam 2014 CS Systems Qualifying Exam 2014 Important Dates April 27: Registration ends. Registration instructions are below. When you register, you must declare the three exams you plan to take. May 19: Exams. Candidates

More information

Francesco Nidito. Programmazione Avanzata AA 2007/08

Francesco Nidito. Programmazione Avanzata AA 2007/08 Francesco Nidito Programmazione Avanzata AA 2007/08 Outline 1 2 3 4 Reference: Micheal L. Scott, Programming Languages Pragmatics, Chapter 10 , type systems and type checking A type type is an abstraction

More information

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg Slide 0 2 Course Outline (Subject to change) This course will define, analyze and evaluate important concepts found in current programming languages. Its goals are to build an ability to evaluate and compare

More information

Multi-Paradigm Approach for Teaching Programming

Multi-Paradigm Approach for Teaching Programming Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate

More information

COURSE OUTLINE. Faculty of Computing, Universiti Teknologi Malaysia

COURSE OUTLINE. Faculty of Computing, Universiti Teknologi Malaysia Page : 1 of 5 Lecturer : Dr. Norsham binti Idris Room No. : Software Engineering Department, Telephone No. : 07-5532348/013-7261920 E-mail : norsham@utm.my Course Synopsis : This course presents the concepts

More information

A Thought on Specification Reflection

A Thought on Specification Reflection A Thought on Specification Reflection Yoonsik Cheon, Yoshiki Hayashi Department of Computer Science, University of Texas at El Paso El Paso, Texas 79912 USA cheon@cs.utep.edu Gary T. Leavens Department

More information

CPS122 Lecture: Course Intro; Introduction to Object-Orientation

CPS122 Lecture: Course Intro; Introduction to Object-Orientation Objectives: CPS122 Lecture: Course Intro; Introduction to Object-Orientation 1. To introduce the course requirements and procedures. 2. To introduce fundamental concepts of OO: object, class Materials:

More information

EECS 1001 and EECS 1030M, lab 01 conflict

EECS 1001 and EECS 1030M, lab 01 conflict EECS 1001 and EECS 1030M, lab 01 conflict Those students who are taking EECS 1001 and who are enrolled in lab 01 of EECS 1030M should switch to lab 02. If you need my help with switching lab sections,

More information

Al 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 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 information

Dimensions for the Separation of Concerns in Describing Software Development Processes

Dimensions for the Separation of Concerns in Describing Software Development Processes Dimensions for the Separation of Concerns in Describing Software Development Processes Pavel Hruby Navision Software Frydenlunds Allé 6 DK-2950 Vedbæk, Denmark ph@navision.com http://www.navision.com,

More information

On Preserving Domain Consistency for an Evolving Application

On Preserving Domain Consistency for an Evolving Application On Preserving Domain Consistency for an Evolving Application João Roxo Neves and João Cachopo INESC-ID / Instituto Superior Técnico, Universidade Técnica de Lisboa, Portugal {JoaoRoxoNeves,joao.cachopo}@ist.utl.pt

More information

Welcome to Introduction to Computer Science I

Welcome to Introduction to Computer Science I Welcome to Introduction to Computer Science I CSE 1020 moodle.yorku.ca Instructor Name: Franck van Breugel Email: franck@cse.yorku.ca Please use your EECS or York account to send me email Office: Lassonde

More information

TTh 9.25 AM AM Strain 322

TTh 9.25 AM AM Strain 322 TTh 9.25 AM - 10.40 AM Strain 322 1 Questions v What is your definition of client/server programming? Be specific. v What would you like to learn in this course? 2 Aims and Objectives v Or, what will you

More information

Self-checking software insert specifications about the intent of a system

Self-checking software insert specifications about the intent of a system Assertions Reading assignment A. J. Offutt, A Practical System for Mutation Testing: Help for the Common Programmer, Proceedings of the 12th International Conference on Testing Computer Software, Washington,

More information

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus BCS Higher Education Qualifications Diploma in IT Object Oriented Programming Syllabus Version 3.0 December 2016 This is a United Kingdom government regulated qualification which is administered and approved

More information

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017 San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017 Course and Contact Information Instructor: Dr. Kim Office Location: MacQuarrie

More information

Advantages of dynamic method-oriented mechanism in a statically typed object-oriented programming language Z0

Advantages of dynamic method-oriented mechanism in a statically typed object-oriented programming language Z0 Advantages of dynamic method-oriented mechanism in a statically typed object-oriented programming language Z0 Sašo Greiner, Janez Brest, Viljem Žumer University of Maribor, Faculty of Electrical Engineering

More information

Static type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy

Static type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy Static type safety guarantees for the operators of a relational database querying system Cédric Lavanchy June 6, 2008 Contents 1 Previous work 2 2 Goal 3 3 Theory bases 4 3.1 Typing a relation...........................

More information

McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca

McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca Time and Place * Days and Times: Tuesdays from 2:35-4:25 PM May 02 to May 12 ENGMC 11 Thursdays from 2:35-4:55 PM May

More information

Runtime Access Control in C# 3.0 Using Extension Methods

Runtime Access Control in C# 3.0 Using Extension Methods Runtime Access Control in C# 3.0 Using Extension Methods Mihály Biczó, Krisztián Pócza, and Zoltán Porkoláb Eötvös Loránd University, Faculty of Informatics, Dept. of Programming Languages Pázmány Péter

More information

ICS111 Introduction to Computer Science

ICS111 Introduction to Computer Science ICS111 Introduction to Computer Science 3 Credits Distance Learning INSTRUCTOR: Laura Sue OFFICE: Hale Palanakila 119A OFFICE HOURS: Mondays 2:30-4:00 pm & Wednesdays 9:30-10:30 am in Hale Palanakila 122

More information

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects. About the Tutorial Gradle is an open source, advanced general purpose build management system. It is built on ANT, Maven, and lvy repositories. It supports Groovy based Domain Specific Language (DSL) over

More information

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend Email: jtownsend@pkwy.k12.mo.us Course Description: The material for this course is the equivalent of one to two semesters of an entry

More information

CSSE2002/7023 The University of Queensland

CSSE2002/7023 The University of Queensland CSSE2002 / CSSE7023 Semester 1, 2016 Assignment 1 Goal: The goal of this assignment is to gain practical experience with data abstraction, unit testing and using the Java class libraries (the Java 8 SE

More information

3D Graphics Programming Mira Costa High School - Class Syllabus,

3D Graphics Programming Mira Costa High School - Class Syllabus, 3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design 0. Object Orientation: An Subject/Topic/Focus: over this lecture Summary: Lecturer, lecture, rooms, assistants, lab classes, credit points... Need for systems analysis and software engineers Literature

More information

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 Course and Contact Information Instructor: Suneuy Kim Office

More information

Addition about Prototypes

Addition about Prototypes Vorlesung Mensch-Maschine-Interaktion Evaluation Ludwig-Maximilians-Universität München LFE Medieninformatik Heinrich Hußmann & Albrecht Schmidt WS2003/2004 http://www.medien.informatik.uni-muenchen.de/

More information

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department COURSE: CST1201 Programming Fundamentals (2 class hours, 2 lab hours, 3 credits) Course Description: This course is an intensive

More information

CUBE. Configuration Management Report. Hakan Nizamoğlu Yiğitalp Ertem Murat Toprak Saim Güveloğlu

CUBE. Configuration Management Report. Hakan Nizamoğlu Yiğitalp Ertem Murat Toprak Saim Güveloğlu CUBE Configuration Management Report Configuration Management Report Hakan Nizamoğlu Yiğitalp Ertem Murat Toprak Saim Güveloğlu 2010 C U B E C O N F I G U R A T I O N M A N A G E M E N T R E P O R T Table

More information

Community College of Vermont

Community College of Vermont Page 1 of 5 Community College of Vermont Request for Proposal: Web Design & Development..................................................................................................................

More information

Adding Contracts to C#

Adding Contracts to C# Adding Contracts to C# Peter Lagace ABSTRACT Design by contract is a software engineering technique used to promote software reliability. In order to use design by contract the selected programming language

More information

COURSE OUTLINE. Course lecturer(s) Name Office Tel (07-55) Dr Norsham Idris N /

COURSE OUTLINE. Course lecturer(s) Name Office Tel (07-55)  Dr Norsham Idris N / COURSE OUTLINE Software Engineering/Computing Page: 1 of 7 Course code: SCSJ2154 Academic Session/Semester: 2017//2 Course synopsis Course coordinator This course presents the concepts of object orientation

More information

ONLINE JOB SEARCH SWETHA DEVA A REPORT. submitted in partial fulfillment of the requirements for the degree MASTER OF SCIENCE

ONLINE JOB SEARCH SWETHA DEVA A REPORT. submitted in partial fulfillment of the requirements for the degree MASTER OF SCIENCE ONLINE JOB SEARCH By SWETHA DEVA A REPORT submitted in partial fulfillment of the requirements for the degree MASTER OF SCIENCE Department of Computing and Information Sciences College of Engineering KANSAS

More information

Design issues for objectoriented. languages. Objects-only "pure" language vs mixed. Are subclasses subtypes of the superclass?

Design issues for objectoriented. languages. Objects-only pure language vs mixed. Are subclasses subtypes of the superclass? Encapsulation Encapsulation grouping of subprograms and the data they manipulate Information hiding abstract data types type definition is hidden from the user variables of the type can be declared variables

More information

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10 Boca Raton Community High School AP Computer Science A - Syllabus 2009/10 Instructor: Ronald C. Persin Course Resources Java Software Solutions for AP Computer Science, A. J. Lewis, W. Loftus, and C. Cocking,

More information

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017 San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017 Course and Contact Information Instructor: Prakash Atawale Office Location: DH 282

More information

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen CSCI 136 Data Structures & Advanced Programming Fall 2018 Instructors Bill Lenhart & Bill Jannen Administrative Details Class roster: Who s here? And who s trying to get in? Handout: Class syllabus Lecture

More information

Course and Unix Intro

Course and Unix Intro Course and Unix Intro Comp-206 : Introduction to Software Systems Lecture 1 Alexandre Denault Computer Science McGill University Fall 2006 Instructor Alexandre Denault Graduate student, working in the

More information

CS112 Lecture: Defining Instantiable Classes

CS112 Lecture: Defining Instantiable Classes CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:

More information

Blaise Questionnaire Text Editor (Qtxt)

Blaise Questionnaire Text Editor (Qtxt) Blaise Questionnaire Text Editor (Qtxt) Grayson Mitchell, Statistics New Zealand 1. Abstract Qtxt is a program designed to reduce the amount of work involved with the production of large questionnaires.

More information