CSC/ECE 517 Fall 2007: Difference between revisions
Jump to navigation
Jump to search
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=== Summary of pages done in Fall 2007 and Summer 2008 === | |||
* Lecture 4 | |||
** [[CSC/ECE 517 Fall 2007/wiki1 2 316|Callbacks using Ruby closure vs. Smalltalk callbacks]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 2 pk|Callbacks using Ruby closure vs. Smalltalk callbacks]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 3 b6|Currying in Ruby]] | |||
[ | ** [[CSC/ECE 517 Fall 2007/wiki1 3 c1|What is currying?]] | ||
** [[CSC/ECE 517 Fall 2007/wiki1b 3 an|Closures]] | |||
* Lecture 5 | |||
** [[CSC/ECE 517 Fall 2007/wiki1 1 aman|Hash maps in Java vs hashes in Ruby]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 1 ss|Compare hashes in Ruby with HashMaps in Java]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 6 arraysandhashes|Arrays and hashtables]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 6 c9)|Arrays and hashtables]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 6 jm|Arrays and hashtables]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 2 22|Method missing]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 2 Method Missing|Method missing]] | |||
** [[CSC/ECE 517 Fall 2007wiki2 c9|Method missing]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 2 c9|Example of Method missing]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 2 p2|Example of Method missing]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 2 p2|Explain method_missing]] | |||
* Lecture 6 | |||
** [[CSC/ECE 517 Fall 2007/wiki1 4 01|Private methods in Ruby compared with Java]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 4 ar|Private method invocation in Ruby]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 5 ap|Duck typing vs. interfaces]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 5 sl|Duck typing vs. interfaces and inheritance]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 1 mb|Regular expressions in Ruby vs. Java]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 1 mf|Regular expressions in Ruby vs. Java]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 1 rapodraz|Regular expressions in Ruby vs. Java]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 1 rp|Regular expressions in Ruby vs. Java]] | |||
* Lecture 7 | |||
** [[CSC/ECE 517 Fall 2007/wiki1 6 b2|Mixins]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 6 c9|Inheritance and mixins]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 7 a23|Multiple inheritance and mixins]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 7 c9|Mixins vs. multiple inheritance]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1 8 s1|extend method]] | |||
* Lecture 8 | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 4 19|Metaprogramming in Ruby]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 4 am|Metaprogramming in Ruby]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 4 pm|Metaprogramming in Ruby]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 5 b4|Aspect-oriented programming and AspectR]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 3 aobk|Reflection]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 3 jb|Reflection]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 3 ref|Reflection]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 7 ev|eval()]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 7 n1|eval()]] | |||
* Lecture 9 | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 6 aa|Singleton in Ruby and Java]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 6 c1|Singleton in Ruby and Java]] | |||
* Lecture 10 | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 7 as|Command patterns]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 7 c9|Command pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 7 vs|Command pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 8 ktrk|Strategy in Ruby and Java]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 8 sa|Strategy in Ruby and Java]] | |||
* Lecture 12 | |||
** [[CSC/ECE 517 Fall 2007/wiki2/3 rl|Model/View/Controller in Ruby and Java]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 3 bp|Resources on MVC]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 1 p23|Ruby on Rails vs. Apache Struts]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 1 pp|Ruby on Rails vs. Apache Struts]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 1 rl|Ruby on Rails vs. Apache Struts]] | |||
* Lecture 13 | |||
** [[CSC/ECE 517 Fall 2007/wiki2 2 22|Object-relational mapping]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 2 aa|Object-relational mapping]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 2 d4|Object-relational mapping]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 1 ar|RDB/OO patterns]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 1 th|RDB/OO patterns]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 7 SHOP PAT|Shopper pattern]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 7 shopper|Shopper pattern]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 7 ws|Shopper pattern]] | |||
* Lecture 14 | |||
** [[CSC/ECE 517 Fall 2007/wiki2 5 as|CRC cards]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 5 kq|CRC cards]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 5 pr|CRC cards]] | |||
* Lecture 15 | |||
** [[CSC/ECE 517 Fall 2007/wiki2 4 2q|Use cases]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 4 dj|Use cases]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 4 np|Use cases]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 3 uml|Resources for use cases]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 4 acmoore2|Resources for use cases]] | |||
* Lecture 16 | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 1 as|Using namespaces and aliases to avoid method-name conflicts]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 6 ap|Type vs. class]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 6 mxz|Type vs. class]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 6 ubs|Type vs. class]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 8 42|Overloading vs. overriding]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 8 c9|Overloading vs. overriding]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 2 ao|Variable-naming conventions]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 2 ar|Variable-naming conventions]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 2 rapodraz|Variable-naming conventions]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 3 kb|Resources for learning about UML]] | |||
* Lecture 17 | |||
** [[CSC/ECE 517 Summer 2008/wiki1 8 dm|Prototype-based programming examples]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 8 smr|Prototype-based programming examples]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 Assignment|Prototype-based programming examples]] | |||
* Lecture 18 | |||
** [[CSC/ECE 517 Fall 2007/wiki2 10 ab|Inheritance vs. delegation]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 10 c4|Inheritance vs. delegation]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 10 cv|Inheritance vs. delegation]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 8 Inh-Del|Inheritance vs. delegation]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 8 jb|Inheritance vs. delegation]] | |||
* Lecture 19 | |||
** [[CSC/ECE 517 Fall 2007/wiki3 1 sa|Support for assertions]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 1 vb|Support for assertions]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 2 at|Examples of programming by contract]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 2 bp|Examples of programming by contract]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 2 c4|Examples of programming by contract]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 2 dp|Examples of programming by contract]] | |||
* Lecture 20 | |||
** [[CSC/ECE 517 Fall 2007/wiki2 7 an|Cohesion and coupling]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 7 as|Cohesion and coupling]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 7 b2|Cohesion and coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 5 mo|Cohesion and coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 6 cc|Cohesion and coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 c6 CohCoupling|Cohesion and coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 3 cd|Low coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 3 dm|Low coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 3 lc|Low coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 3 n1|Low coupling]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 4 bk|Cohesion]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 4 mb|Cohesion]] | |||
* Lecture 21 | |||
** [[CSC/ECE 517 Fall 2007/wiki3 10 10|The agile debate]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 10 ljh|The agile debate]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 10 sb|The agile debate]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 10 tm|The agile debate]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 9 mdkt|Collective ownership, continuous integration]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 9 p1|Collective ownership, continuous integration]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 9 pp|Collective ownership, continuous integration]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 9 sm|Collective ownership, continuous integration]] | |||
* Lecture 22 | |||
** [[CSC/ECE 517 Summer 2008/wiki1 2 acmoore2|Iterators and generators]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 2 i2|Iterators and generators]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 2 itr|Iterators and generators]] | |||
** [[CSC/ ECE 517 Fall 2007/wiki3 5 pr|Creator and Factory patterns]] | |||
* Lecture 23 | |||
** [[CSC/ECE 517 Fall 2007/wiki2 c9|Observer pattern]] | |||
* Lecture 25 | |||
** [[CSC/ECE 517 Summer 2008/wiki1 5 a5|Hooks in Ruby and Java]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 5 bk|Hooks in Ruby and Java]] | |||
* Lecture 26 | |||
** [[CSC/ECE 517 Summer 2008/wiki2 4 uc|DRY principle]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 5 31|DRY principle]] | |||
* No current lecture | |||
** [[CSC/ECE 517 Fall 2007/wiki1 1 as|Disambiguating method calls]] | |||
** [[CSC/ECE 517 Fall 2007/wiki1b 1 c4|Disambiguating multiple instances of a method]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 3 aa|Interface segregation principle]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 9 A3|Principle of least astonishment]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 9 NT|Principle of least astonishment]] | |||
** [[CSC/ECE 517 Fall 2007/wiki2 9 kk|Principle of least astonishment]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 3 33|Separation of responsibility]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 3 ab|Separation of responsibility]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 3 as|Separation of responsibility]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 3 qq|Separation of responsibility]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 4 aa|Interface segregation principle]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 4 rl|Interface segregation principle]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 4 s2|Interface segregation principle]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 4 sa|Interface segregation principle]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 5 ab|Creator pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 5 ld|Creator pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 5 ns|Creator pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 6 aa|Controller pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 6 pm|Controller pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 6 rs|Controller pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 6 ub|Controller pattern]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 7 cl|Bertrand Meyer's patterns]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 8 jb|Bertrand Meyer's principles]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 8 smr|Bertrand Meyer's principles]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 8 42|Bob Martin's principles]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 8 as|Bob Martin's principles]] | |||
** [[CSC/ECE 517 Fall 2007/wiki3 8 ss|Bob Martin's principles]] | |||
** [[CSC/ECE 517 Summer 2008/wiki1 4 wm|Java vs. Ruby threads]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 1 mf|Rails vs. PHP]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 1 n1|Rails vs. PHP]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 1 tm|Rails vs. PHP]] | |||
** [[CSC/ECE 517 Summer 2008/wiki2 Assignment|Links to best versions of(?) PR 2 pages]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 1 PF|Pure fabrication pattern]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 5 rp|Pure fabrication pattern]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 2 acmoore2|Patterns almanac: State, Basic Relationship, Manager]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 2 mb|Patterns almanac: Object pool, Producer-consumer, Immutable, Web site review]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 6 esb|Protected variation]] | |||
** [[CSC/ECE 517 Summer 2008/wiki3 Assignment|Links to best versions of(?) PR 3 pages]] |
Latest revision as of 22:29, 22 July 2009
Summary of pages done in Fall 2007 and Summer 2008
- Lecture 4
- Lecture 5
- Lecture 6
- Lecture 7
- Lecture 8
- Lecture 9
- Lecture 10
- Lecture 12
- Lecture 13
- Lecture 14
- Lecture 15
- Lecture 16
- Lecture 17
- Lecture 18
- Lecture 19
- Lecture 20
- Lecture 21
- Lecture 22
- Lecture 23
- Lecture 25
- Lecture 26
- No current lecture
- Disambiguating method calls
- Disambiguating multiple instances of a method
- Interface segregation principle
- Principle of least astonishment
- Principle of least astonishment
- Principle of least astonishment
- Separation of responsibility
- Separation of responsibility
- Separation of responsibility
- Separation of responsibility
- Interface segregation principle
- Interface segregation principle
- Interface segregation principle
- Interface segregation principle
- Creator pattern
- Creator pattern
- Creator pattern
- Controller pattern
- Controller pattern
- Controller pattern
- Controller pattern
- Bertrand Meyer's patterns
- Bertrand Meyer's principles
- Bertrand Meyer's principles
- Bob Martin's principles
- Bob Martin's principles
- Bob Martin's principles
- Java vs. Ruby threads
- Rails vs. PHP
- Rails vs. PHP
- Rails vs. PHP
- Links to best versions of(?) PR 2 pages
- Pure fabrication pattern
- Pure fabrication pattern
- Patterns almanac: State, Basic Relationship, Manager
- Patterns almanac: Object pool, Producer-consumer, Immutable, Web site review
- Protected variation
- Links to best versions of(?) PR 3 pages