User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
start [2016/12/21 20:05] jonathanstart [2017/05/08 19:29] (current) jonathan
Line 2: Line 2:
 ====== EECS3311 - Software design - Winter 2017 ====== ====== EECS3311 - Software design - Winter 2017 ======
  
-<hi>UNDER CONSTRUCTION</hi>+
  
 **EECS3311 - Software design - Winter 2017** **EECS3311 - Software design - Winter 2017**
  
-Laptops, tablets, smartphones, etc. ("devices") usage in class is a two-edged sword.  They can provide opportunities for learning but are also hugely distracting.  For now, we encourage you to be disciplined in your usage of these devices.  Put them away when they aren't needed.  Stay focused on the class and you'll find that you learn more and better.  Join the forum and express your opinion on how to deal with the issue, as we are considering having an electronic-free learning environment. +Laptops, tablets, smartphones, etc. ("devices") usage in class is a two-edged sword.  They can provide opportunities for learning but are also hugely distracting.  For now, we encourage you to be disciplined in your usage of these devices.  Put them away when they aren't needed.  Stay focused on the class and you'll find that you learn more and better.  
  
 ===== Info ===== ===== Info =====
  
-  * **Lectures**: EECS3311 | Mon./Wed. 4-5.30pm |LSB 105+  * **Lectures**: EECS3311 | Mon./Wed. 4-5.30pm | SLH-C 
 +  * **Scheduled Labs**: Monday 5.30pm to 7pm in LAS1006. Start with [[:grades#due_dates_and_readings|Lab0]] and Lab1 on the first day of classes.  
 +  * Quizzes every week during labs. 
   * **Textbooks**: the following texts are highly recommended and are available on reserve in the Library:   * **Textbooks**: the following texts are highly 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 [[http://touch.ethz.ch/|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.     * Bertrand Meyer, //Touch of Class: Learning how to Program Well, with Objects and Contracts//, Springer Verlag, revised printing, 2013, book page [[http://touch.ethz.ch/|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.
Line 16: Line 18:
     * //Design Patterns: Elements of Reusable Object-Oriented Software//, 1994, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides     * //Design Patterns: Elements of Reusable Object-Oriented Software//, 1994, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
     * [[https://wiki.eecs.yorku.ca/project/eiffel/bon:|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 [[http://www.bon-method.com/book_print_a4.pdf|pdf]]. There is a template in Visio to do nice BON diagrams.     * [[https://wiki.eecs.yorku.ca/project/eiffel/bon:|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 [[http://www.bon-method.com/book_print_a4.pdf|pdf]]. There is a template in Visio to do nice BON diagrams.
-  * **Informal Labs**: In addition to the assignments, Labtest, and project, you will also be provided with 5 Labs (provided one week in advance of the due date). We have scheduled an informal 60 minute session in LAS1006 every Monday 5.30 - 6.30pm, so that you can work in the Prism facility with a TA present to provide help. Doing these exercises is an important step in developing your design skills. You can, of course, also do the Labs on your own time provided you submit them by the deadline. You can also ask questions in the forum or attend regular office hours. 
  
 ===== Getting Started ===== ===== Getting Started =====
Line 23: Line 24:
   *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).   *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).
  
-  * Office hours: A TA will be available during the Lab hour (5.30pm to 6.30pm) on Mondays in LAS1006. Office hours Thursdays 5.30-6.30pm in the SEL (CSE2056). Ask all course information on the forum.+  * Office hours: A TA will be available during the Lab hour (5.30pm to 7pm) on Mondays in LAS1006. 
  
   * Get started using the Eiffelstudio IDE on the first day of class ([[https://wiki.eecs.yorku.ca/project/eiffel/getting_started:start|here]]). Compile and execute a hello world program. Then use the ESpec library to write and execute your first test. You might want to run through this [[http://tecomp.sourceforge.net/index.php?file=doc/lang/tutorial.txt|introductory tutorial]].   * Get started using the Eiffelstudio IDE on the first day of class ([[https://wiki.eecs.yorku.ca/project/eiffel/getting_started:start|here]]). Compile and execute a hello world program. Then use the ESpec library to write and execute your first test. You might want to run through this [[http://tecomp.sourceforge.net/index.php?file=doc/lang/tutorial.txt|introductory tutorial]].
Line 82: Line 83:
 12. Composite and Visitor Design Patterns. UML inheritance (generalization) and client-supplier (associations, aggregation and composition). 12. Composite and Visitor Design Patterns. UML inheritance (generalization) and client-supplier (associations, aggregation and composition).
  
-13. Design by Contract, choosing the right abstractions and Information Hiding. +13. Using executable mathemtical models (sets, functions, and relations) to develop a model of a complex system, and an abstraction function for checking that an implementation satisfies the high-level model.  
 + 
 +14. Design by Contract, choosing the right abstractions and Information Hiding. 
  
start.1482350743.txt.gz · Last modified: 2016/12/21 20:05 by jonathan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki