2004/02-2004/06 C++ ª«¥ó¾É¦Vµ{¦¡³]­p½Òµ{­n¨D

¤W½Ò®É¶¡: ¬P´Á¤@ 9:20-12:05

¤W½Ò¦aÂI: INS 101

Office Hour: ¬P´Á¤G 12:00-1:00, ¬P´Á¥| 12:00-1:00 ¥H¤Î¨ä¥¦¬P´Á¤@¨ì¬P´Á¤­§Ú¨S¤W½Òªº®É¶¡ (±aµÛ§Aªºµ{¦¡½X¨Ó¨tÀ] 512, ¤@©wµ¹§Aº¡·NªºµªÂÐ)

§U±Ð: ­Ù¦æ°·, ªô¤j¦ö, ¬x§B©¨, ³¯´º¼Ý

´H°²«Øij¾\Ū®ÑÄy

±Ð¬ì®Ñ¡G

°Ñ¦Ò®Ñ¥Ø¡G

  1. C++ µ{¦¡»y¨¥°ò¦»¡©ú»P½d¨Ò¡G

    1. C++ »y¨¥¦Û¾Ç¤â¥U, Herbert Schildt µÛ, °ª©ú,ªL´ð¯ú Ķ, McGraw Hill, 1999/2¡C

    2. Visual C++ ºë³qª«¥óÆ[©À»P§Þ³N, °ª·Ø°óµÛ, ª«¥ó¾É¦VÂø»xªÀ¡C

    3. C++ The Core Language, Satir & Brown, O'Reilly, ªQ±^

    4. Visual C++ ¤Jªù¶i¶¥: ±q C++¡Bª«¥ó¾É¦V¨ìµøµ¡µ{¦¡³]­p, ¦ì¤¸¤å¤Æ½sµÛ, ¤å»í

    5. C++ µ{¦¡³]­pÃÀ³N, ¼B°ê¼ÙĶ, Deitel ­ìµÛ, ¥þµØ

    6. C++ How to Program, 3rd Ed., Deitel & Deitel, Prentice Hall, 2001, ¥þµØ

    7. Thinking in C++, Vol. 2, Introduction to Standard C++, 2nd Ed., Bruce Eckel

  2. ª«¥ó·§©À¡B¼Ò«¬¡B»P OOP (Object Oriented Programming)¡G

    1. ¾Çª«¥ó¾É¦Vªº²Ä¤@¥»®Ñ, ªe¦X©Û¨kµÛ, ¬_¦ÜªNĶ, ³ÕºÓ, 91/11¡C

    2. ª«¥ó¾É¦Vµ{¦¡³]­p»P¤ÀªR, Andrew Haigh µÛ, ¾G¶²©gĶ, McGraw Hill 91/07¡C

    3. ¦h«¬»PµêÀÀ, «J«T³ÇµÛ, ªQ±^¡C

    4. ²`«×±´¯Á C++ ª«¥ó¼Ò«¬, «J«T³ÇĶ, ùÖ®p¡C

    5. C++ FAQs, Marshall P. Cline and Greg A. Lomow, Addison Wesley, µØ³q, (ºô¸ôª©¥»¬° C++ FAQ Lite (³¡¥÷¦³¤¤Ä¶ http://www.cis.nctu.edu.tw/chinese/doc/research/c++/) (³o¤@¥»¬O§Ú«Øij¥i¥H¶Rªº®ÑÄy)

  3. ª«¥ó·§©À°Ñ¦Ò®Ñ¡G

    1. ¥@¬ö¥½³nÅé­²©R (¶P¤¸/¼B¿O/¿à©ú©vµÛ), ¸ê°T¤H¥Xª©ªÀ

    2. ¥@¬ö¥½³nÅé­²©R 2 (¶P¤¸/¼B¿O/¿à©ú©vµÛ), ¸ê°T¤H¥Xª©ªÀ

  4. UML: Unified Modeling Language

    1. UML Distilled, Applying the Standard Object Modeling Language, Martin Fowler, (UML ºëµØ:À³¥Î¼Ð·Çª«¥ó¼Ò¦¡»y¨¥, ³\»È¶¯Ä¶, AW/ªQ±^)

    2. ª«¥ó¾É¦V¨t²Î¤ÀªR»P³]­p, ¨Ï¥Î UML »P C++, ©P´µ¬È½sµÛ, ¥þµØ, 92/05, ¤E¤Q¦~«×«D¦P¨B»·¶Z±Ð¾Ç1, 2

    3. UML ²z½×»P¹ê§@ --- ­Ó®×°Q½×»P¸gÅç¤À¨É, ±i¸Î¯qµÛ, ³ÕºÓ, 91/02

    4. UML ¨Ï¥Î¤â¥U, ±i¸Î¯qĶ, ³ÕºÓ, 90/10

    5. UML tutorials

    6. Qoses UML tutorials, Qoses UML Diagrams

    7. UML dictionary

  5. ¥Ñ³nÅé¤uµ{¬Ý C++

      ¥Ñ C ¨ì C++ ª«¥ó¾É¦V­²©R, ³¯«Øºû, ¹t¦t

  6. STL¡Bªx«¬µ{¦¡³]­p»P C++ ¼Ð·Ç¨ç¦¡®w

    1. STL ¤Jªù«ü«n, ³¢¬f§», ªQ±^

    2. ªx«¬µ{¦¡³]­p»PSTL, ¶À«T³ó/«J±¶, ùÖ®p

    3. C++³]­p·s«äºû-ªx«¬½sµ{»P³]­p½d¦¡¤§À³¥Î, «J±¶, ùÖ®p

    4. C++¼Ð·Çµ{¦¡®w, «J±¶/©s©¥, ùÖ®p

    5. STL·½½X­åªR--The Annotated STL Sources (Using SGI STL), «J±¶, ùÖ®p

  7. Refactoring

    1. ­«ºc--§ïµ½¬J¦³µ{¦¡ªº³]­p, «J±¶/ºµ¸`, ùÖ®p

    2. Refactoring, by Martin Fowler, AW

  8. Design Patterns

    1. Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm,Ralph Johnson, and John Vlissides, Addison Wesley, October 1994.

    2. Design Patterns ©ó Java »y¨¥¤Wªº¹ê²ßÀ³¥Î, µ²«°¯EµÛ, §õ¤_«CĶ, ³ÕºÓ, 91/02

    3. Analysis Patterns: Reusable Object Models, by Martin Fowler, Addison Wesley, 1997.

    4. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design, by Craig Larman, Prentice Hall, 1997.

    5. Online Design Pattern Resources

  9. ½u¤W¸ê®Æ:

    1. DevCentral's Learning Center

    2. Peter Mueller's Tutorial

    3. Stroustrup's collections

    4. Bruce Eckel's Mind View Inc.

    5. C++ Resource Network

    6. Programming in C++ by Mike Ware

  10. ¨ä¥L¸g¨å:

    1. C++ Primer, by Stanley B. Lippman, Josee Lajoie, Jose Lajoie, 1237 pages 3rd edition (April 1998) Addison-Wesley Pub Co; ISBN: 0-201-82470-1 (¤¤Ä¶ by «J±¶, ùÖ®p, 1999)

    2. The ARM: The Annotated C++ Reference Manual. , by Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley, Reading, MA. 1990. ISBN 0-201-51459-1. 478 pages. Hardcover. (Often called "The ARM")

    3. The C++ Programming Language (3rd Ed., Addison-Wesley, ISBN 0-201-88954-4. 920 pages. 1997, Stroustrup (¤¤Ä¶ by ¸­ªÃ­õ, ¾§ªL, 1999/5)

  11. ANSI/C++
    other ftp site: ftp.maths.warwick.ac.uk:/pub/c++/std/cd2
    local html copy

¥²¶·¥ý­×¤§½Òµ{

½Òµ{­n¨D»Pµû¤À¤è¦¡¡G

  1. class participation and office hour questions 10%

  2. in-class quiz's 20%

  3. 4 programming assignments 30%

  4. midterm 20%

  5. Final 20%

½Òµ{¤jºõ¡G

  1. introduction, why using C++, programming styles

  2. C++ as a better C

  3. better abstraction: class, objects, interface

  4. constructors, destructors

  5. advanced classes, reference, friend

  6. United Modelling Language (UML)

  7. basic object design / example

  8. overloading

  9. inheritance

  10. polymorphism(dynamic binding), virtual function, ABC, "old code call new code"

  11. virtual function table, proper inheritance

  12. dynamic typing, pseudo OO, generic container

  13. the Big Three

  14. resource management

  15. object states (part of the interface)

  16. exception, File I/O

  17. templates

  18. refactoring

¦^ C++ ª«¥ó¾É¦Vµ{¦¡³]­p½Òµ{ ­º­¶

»s§@¤é´Á: 02/03/2004 by ¤B°ö¼Ý (Pei-yih Ting)
E-mail: [email protected] TEL: 02 24622192x6615
®ü¬v¤j¾Ç ¤u¾Ç°| ¸ê°T¤uµ{¨t Lagoon