Table of Contents
Resources
For more help on the course, see
- Fall 2018 version of the course with slides and recordings
- eiffel.eecs.yorku.ca (Eiffel the language, the method and the IDE)
Github and Installation of EiffelStudio on your Laptop
EiffelStudio and Mathmodels are installed on our EECS workstations and servers and also on the SEL Virtual Machine. See Eiffel101.
If you wish to install EiffelStudio and Mathmodels natively on your Windows or Mac Laptop, use the following guide.
Starter Guide for GitHub, EiffelStudio and Mathmodels
Note: We do not have the resources to help you do installation on your Laptops, due to the many variations of hardware, operating systems and configuration. Try the SEL-VM, or use the EECS workstations and servers.
Lab0
Lab0 is not graded. A TA will be be in the Lab to provide you with help.
- Creating a void-safe Calendar project using eiffel-new and EiffelStudio IDE:
- Series of Videos illustrating Design by Contract, Testing and the use of the debugger in the EiffelStudio IDE. View these for more detailed instructions. There are many videos at this link. However, for Lab0, we are interested in the following 8 videos titled Software Design (Use of Eiffel Studio for DbC and TDD):
- Create a New Project and Set Clusters
- Add the ACCOUNT Class
- Add a Class for Testing ACCOUNT
- How a Test Case Fails
- Use Breakpoints and Debugger
- Specify Contracts for Withdraw
- Add Transaction and Date into Context
- Uniform Access of Account Balance
Study and master Eiffel101 <hi> in the first 3 weeks of the course</hi>.
Working on your Laptop
If you are working on your Laptop, you will need to install the IDE and Mathmodels library (see above Starter Guide). You may use the SEL-VM or install natively.
(1) Login to prism lab using ssh
ssh eecs_account@red.eecs.yorku.ca
(2) Create a new Void Safe starter project
red > eiffel-new New Eiffel void-safe project name: calendar
(3) Copy the new project from your account on Prism to your Laptop. On your Laptop, do:
scp -r eecs_account@red.eecs.yorku.ca:~/calendar .
where ~
denotes your Prism home directory.
Example: To copy the library directory with the path
/eecs/fac/share/sel/mathmodels/library
to the current directory(represented by the dot)
scp -r eecs_account@red.eecs.yorku.ca:/eecs/fac/share/sel/mathmodels/library .
Once you finish Lab0, immediately proceed to lab1
SEL Virtual Machine
The SEL Virtual Machine is available here. For further help, see here (login for the password to access the VM).
Text Books
Textbooks: the following texts are recommended and are available on reserve in the Library:
- Bertrand Meyer, Touch of Class: Learning how to Program Well, with Objects and Contracts, Springer Verlag, revised printing, 2013, book page here (this is a complete course with slides, videos and exercises). The text Touch of Class is available with online access via Steacie Library. The book describes computational thinking with the Eiffel language. Use this text to learn about design by contract, polymorphism, static typing, dynamic binding, genericity, multiple inheritance, and lambda expressions (agents). These are all topics needed for this course.
- [OOSC2] Bertrand Meyer. Object-Oriented Software Construction. Second edition. Prentice Hall, 1997. This is a classic text on software design principles.
- Design Patterns: Elements of Reusable Object-Oriented Software, 1994, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- BON (Business Object Notation). The BON method for analysis and design of object-oriented software is a means of extending the higher-level concepts of the Eiffel programming language into the realm of analysis and design aided by a graphical notation akin to but different from UML. BON is described in depth in the book Seamless Object-Oriented Software Architecture, Prentice Hall 1994, by Kim Waldén and Jean-Marc Nerson. The book is out of print but is available as a pdf. There is a template in Visio to do nice BON diagrams.
Other
Use this page to list additional Resources that may be helpful to your students.