User Tools

Site Tools


start

Differences

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

Link to this comparison view

Next revision
Previous revision
start [2007/08/14 15:36] – external edit 127.0.0.1start [2010/01/20 23:45] (current) jonathan
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
-====== Your Course  ======+====== CSE6411-W10  ======
  
 ===== Description  ===== ===== Description  =====
  
-The course lays the conceptual foundation of object-oriented programming. It covers delegation and contracts, encapsulation and API programming, aggregation and the collections framework, inheritance and polymorphism, all from the client's perspective.  +CSE6411 Programming Logic for Complex Systems
  
-===== Lecture Times =====+Monday and Wednesday 5.30pm in the SEL (CSEB2056)
  
-  Section AMondays and Fridays11:00am 12:00pmCSE 111+[[https://wiki.cse.yorku.ca/course_archive/2009-10/W/3341/textbook|Textbook details]] (and slides) 
 + 
 +**From Monday Jan 25th classes will be at 5pm (Mon/Wed).** 
 + 
 +===== Contents ===== 
 + 
 + 
 +Safety critical systems are complex systems that interact with a dangerous environment (e.g. nuclear reactors or radiation therapy machines such as the [[http://en.wikipedia.org/wiki/Therac-25|Therac-25]] for treating cancer patients). The specification and design of software and hardware for such systems is challenging because these systems may result in death or serious injury to peopleloss or severe damage to equipment or environmental harm. So ordinary testing methods are insufficient to ensure that they work reliably and safely. 
 + 
 +In this course, we use the industrial strength method [[http://www.event-b.org/|Event-B]]  and its accompanying Rodin tool for the design of safety critical systems. The B and Event-B method and tools are in use in actual practice in industry. For example, B was used to design the new Paris metro trains with zero defect. 
 + 
 +As explained by J.R. Abrial in his new book on Event-B, these methods and tools provide insights into specifying, modelling, and reasoning about the safety and correctness of such systems. These activities take place before undertaking effective coding of a computer system, so that the system in question will be correct by construction. The methods  we will look at include the ability to develop sequential programs, concurrent programs, distributed programs, electronic circuits, reactive systems, etc.  
 + 
 +We construct a mathematical model of a program that is quite different from the program itself. It is far easier to reason about the model than about the program. We will study important notions such as abstraction and refinementthe idea being that an executable program is only obtained at the final stage of a sequence consisting of gradually building more and more accurate models of the future program (think of the various blue-prints made by an architects and engineers).  
 + 
 +"Professional engineers can often be distinguished from other designers by the engineers’ ability to use mathematical models to describe and analyze their products." (David L. Parnas“Predicate Logic for Software Engineering”).
  
start.1187105762.txt.gz · Last modified: 2009/12/14 20:13 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki