User Tools

Site Tools


start

EECS3311 - Software design - Summer 2015

Information

  • Lectures: EECS3311 | Wednesdays 7-10pm
  • Office Hours: Wednesdays 5-6pm
    • Venue: LAS 2013
  • Informal Labs: Thursdays 5:30-7pm
    • Venue: LAS 1002 1006
    • Weekly labs sessions are optional, to help you with technical problems
    • Doing lab exercises is an important step in developing your design skills. You can, of course, also do the labs on your own time. You can also ask questions in the forum or attend regular office hours.
  • Textbooks: the following texts are highly recommended and are available on reserve in the Library:
    1. Object-Oriented Software Construction by Bertrand Meyer. Second edition. Prentice Hall, 1997.
      • This is a classic text on software design principles.
    2. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Addison Wesley, 1994.
      • This is a classic text on a catalogue of common extensible and maintainable patterns of code structures.
      • 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 by Kim Waldén and Jean-Marc Nerson. Prentice Hall, 1994. The book is out of print but is available as a pdf.
    3. Touch of Class: Learning how to Program Well, with Objects and Contracts by Bertrand Meyer. Springer Verlag, revised printing, 2013.
      • 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.
      • The text Touch of Class is available with online access via Steacie Library (you need your library account for this).

Getting Started

* Important: Subscribe to the forum for the latest announcements. Please ask all questions relating to the course material on the forum (not via email). For all other questions, see the course instructor during office hours.

  • See bottom of this page for login with your Prism password. Slides are available from the SVN repository (see link in the sidebar, once you have logged on).
  • Get started with the EiffelStudio IDE on the first day of class. Compile and execute a hello world program. Then use the ESpec library to write and execute your first test.
    • Instead of installing Eiffel Studio directly on your own machine, you may download and run a pre-built virtual machine that has Eiffel Studio set up for you.
    • You might want to run through this introductory tutorial.
    • If you prefer to working on your own machine, install the tools for drawing BON diagrams.
    • You are required to use Visio to draw BON diagrams for your assignment, lab test, and project.
    • There is a template to do nice BON diagrams.
    • BON diagrams drawn using other tools (e.g., word, power point, open office, etc.) will cause an immediate reduction of 50% of your marks.

Workload

The work load in this course, as in most computer science and engineering courses, is high. The course has a large unscheduled laboratory component to it which involves writing and testing Eiffel programs. You should be prepared to devote 12 hours a week on average to the course; this includes class time. With proper planning and discipline, you can spread most of the work load fairly evenly throughout the course.

It is up to you to read and study relevant material without explicit instructions. You are expected to find the required readings in the references and any other sources you can find. Part of the university experience is to acquire a measure of self reliance. The instructor for the course can only guide you as to what is useful to learn; the effort must come from you. The course classes will not cover all the topics in detail. Instead, the classes will cover the most important points and give you pointers as to how the rest of the material can be studied.

start.txt · Last modified: 2015/05/26 13:24 by jackie