1 / 74

Some Things You Might Need To Know Tools and Skills Overview

Some Things You Might Need To Know Tools and Skills Overview. Chen- Nien Tsai Wireless and Broadband Networks Laboratory Department of CSIE National Taipei University of Technology. Who I AM. http://www.phdcomics.com/comics/archive.php?comicid=189. Motivation. We are graduate students.

gale
Download Presentation

Some Things You Might Need To Know Tools and Skills Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Some Things You Might Need To KnowTools and Skills Overview Chen-Nien Tsai Wireless and Broadband Networks Laboratory Department of CSIE National Taipei University of Technology

  2. Who I AM http://www.phdcomics.com/comics/archive.php?comicid=189

  3. Motivation • We are graduate students. • Our primary goal is to graduate. • Knowledge is needed. • Human knowledge, domain knowledge, etc. • Skills are also needed. • To do research. • Programming. • Tools are not necessary needed, but they might make your research live easier. • Notepad vs. Eclipse • Folders vs. JabRef

  4. Outline • Research Method • Procedures of Research • Literature Management – JabRef • Write your Thesis (or papers) – • Presentation • Programming skill • Why do we need programming? • Design Patterns • Software Process • Tools

  5. Procedures of Research • Find interesting topics • Read related papers to the topics • Choose your research topic(s) • Prepare your paper • Present your paper Adopted from Chun-Hung Chen’s presentation.

  6. Read Related Papers to the Topics – How to Organize • Print out and archive • All in one • Folders • Gmail • Why do we need to organize read papers? • Our memory is limited • Reference is important to the readers Adopted from Chun-Hung Chen’s presentation.

  7. How to Organize… • We need a tool to help us manage papers • Reference management software • Many exist – free and costly • http://en.wikipedia.org/wiki/Comparison_of_reference_management_software • JabRef (http://jabref.sourceforge.net/) • Zotero (http://www.zotero.org/) • See [5] for an introduction.

  8. What is JabRef • A bibliography reference manager. • Cross-platform • The native file format is BibTeX, the standard LaTeX bibliography format. • BibTeX is a standard and long-lived format • BibTeX is portable because of text format

  9. BibTeX Example @ARTICLE{Ke2010, author = {Ke, Kai-Wei and Tsai, Chen-Nien and Wu, Ho-Ting}, title = {Performance analysis for hierarchical resource allocation in multiplexed mobile packet data networks}, journal = {Computer Networks}, year = {2010}, volume = {54}, pages = {1707--1725}, number = {10}, abstract = {……}, address = {New York, NY, USA}, doi= {http://dx.doi.org/10.1016/j.comnet.2010.01.011}, file = {Ke2010.pdf:Ke2010.pdf:PDF}, issn= {1389-1286}, publisher = {Elsevier North-Holland, Inc.}, }

  10. How to use JabRef? • Create a database • Add new BibTeX entry manually • Select type • Article, Conference, Proceedings, Book, …etc • Input • Author, Title, Journal (Proceeding), Year, Pages • Add from preformatted text • ACM • IEEE • Add from search results • IEEEXplore, ACM Portal, CiteSeer

  11. Get BibTex Information from ACM Digital Library

  12. See references [1], [3] and [4] for the introduction to JabRef

  13. Prepare Your Paper • Motivation (Why choose the topics??) • We want a better solution • We want to apply on more strict or general scenarios • Related Works • We DO read a lot • We DO not copy others • We DO not find a better idea • Methods • Simulation (Analytic) Results • Conclusions and Future Works Adopted from Chun-Hung Chen’s presentation.

  14. Write Your Thesis (or papers) • Microsoft Word is good, but not that good. • Cost • Proprietary format • Poor backward compatibility • “Hey, could you please convert .docx to .doc?” • Lack of typesetting abilities. • Word could produces high-quality paper. • Chia-Wei Tuan’s presentation [5] • WORD排版藝術 [7]

  15. Paper Format is an Issue… http://www.phdcomics.com/comics/archive.php?comicid=178

  16. There are Realms other than MS • and • Keep the authors focus on the content instead of layout or design. • Free • ASCII format • No compatibility issues • Ideal for typesetting • WYSIWYG (What You See Is What You Get) is possible

  17. Source code Documents

  18. Benefits of LaTeX • No special programs required to edit. • Format checking is almost unnecessary. • Better Display. • Changing format is just a few words replacement. • Easy to manage bibliography.

  19. See references [3] , [4], and [8] for the introduction to LaTeX.

  20. Present Your Paper • Presentation Format • Microsoft PowerPoint • OpenOffice Impress • PDF • Figures • Right Resolution • Louder than words • Titles • Sentences • Page Numbers • Reference • {NAME}, “TITLE”, {BOOK TITLE}, {DATE} Adopted from Chun-Hung Chen’s presentation.

  21. Some Tips for Presentation • What’s in it for you, the audiences? • Ask to yourself this question constantly. • Face your audience. • You are talking to the audiences, not to the screen. • Practice, practice, and practice. • You need experience to level up. • Spell it right, and pronounce it correct. • If you put some words in the slides, you should know how to pronounce it. • Check the dictionary if in doubt for every word.

  22. Summary – Part 1 JabRef Reference management software Read related papers to the topics Find interesting topics Choose your research topic(s) Present your paper Prepare your paper LaTeX Presentation skill Write your paper

  23. References • JabRef Website, http://jabref.sourceforge.net/. • Zotero Website, http://www.zotero.org/. • Chun-Hung Chen, “Introduction to LaTeX,” available at http://netlab.csie.ntut.edu.tw/seminar/year2007/Presentation_IntroductionToLaTeX.zip • Chen-Nien Tsai, “Introduction to LaTeX and JabRef,” available at http://netlab.csie.ntut.edu.tw/seminar/year2009/CNT20091006.zip

  24. References • Chia-Wei Tuan, “Tips on Developing a Network Simulator and Writing a Paper,” available at http://netlab.csie.ntut.edu.tw/seminar/year2009/CWT20091020.ppt • Chun-Hung Chen, “General Research Method,” available at http://netlab.csie.ntut.edu.tw/seminar/year2008/CHC20081008.pptx • 侯捷,WORD排版藝術,碁峰,2004。

  25. References • Helmut Kopka and Patrick W. Daly, “Guide to LaTeX4th Edition,” Addison-Wesley Professional, 2003. • Jerry Weissman, Presenting to Win: The Art of Telling Your Story, FT Press, 2003. • 傑瑞.魏斯曼,簡報聖經:簡報大師的致勝演說絕招,培生,2010。

  26. Outline • Research Method • Procedures of Research • Literature Management – JabRef • Write your Thesis (or papers) – • Presentation • Programming skill • Why do we need programming? • Design Patterns • Software Process • Tools

  27. Why Do We Need Programming? • What history tells us… • 37 master theses and 1 Ph.D. dissertation by our graduates. (see thesis list) • 35 of them involved programming • Computer simulations • System implementations. • Solve mathematical equations • It is rare that you can make your thesis without programming. • So live with it.

  28. Knowledge You Need to Sharpen Your Programming Skill Basic: • Programming Languages • Java, C/C++, C#, VB, Perl, Ruby, Ada, Smalltalk, Lisp, Fortran, Pascal, and more. • Semantic and Syntax • Object-Oriented Programming (vs. Procedural Programming) • Encapsulation • Inheritance • Polymorphism

  29. Knowledge You Need to Sharpen Your Programming Skill Advanced: • Design Patterns • general reusable solutions to a commonly occurring problem in software design • Object-Oriented Design Principles • Single Responsibility Principle (SRP) • Open Closed Principle (OCP) • Liskov Substitution Principle (LSP) • Dependency Inversion Principle (DIP) • Interface Segregation Principle (ISP) might be too academic, but can help you understand design patterns

  30. Something About Patterns • What is a pattern? • a regular and intelligible form or sequence discernible in the way in which something happens or is done • an excellent example for others to follow • We all see patterns in our everyday life. • Architecture • Movies • Commercial http://oxforddictionaries.com/view/entry/m_en_gb0610840

  31. Some Examples of Patterns • 第四台廣告中的 Pattern: • 原價 ...,現在購買只要 ...,還送你一組 ...,請馬上來電 ...,如忙線中請稍後再撥。 • 電影中的 Pattern: • 壞人追殺好人時,好人躲進車子,卻發現車子發不動,引擎嘎嘎作響,一面努力地繼續發動,一面念念有詞「Come on, Come one」。 • 壞人追殺好人時,好人衝進電梯,死命地押著 close 按鈕,脫口而出「Come on, Come one」。 http://www.oreilly.com.tw/column_sleepless.php?id=j008

  32. What is a Design Pattern? • Recall that when we were in the high school and solving mathematic problems. • After we’ve solved tons of problems, we found a pattern that can be applied to solve similar problems. • Programming experts designed tons of systems. • They also found a pattern that can be adopted to solve similar design problems.

  33. What is a Design Pattern? • A design pattern is a general reusable solution to a commonly occurring problem in software design. Pattern Name Problem Consequences Solution Design Pattern

  34. Applying Design Patterns • Singleton Pattern • Name: Singleton • Problem: Ensure a class only has one instance, and provide a global point of access to it. • Solution and Consequences: Page 127 – 134 in GoF. • A simple pattern that is easy to understand. • The following example is adopted from Chia-Wei Tuan’s presentation.

  35. Event • In simulation, the operation of a system can be represented as a chronological sequence of events. • An event is described by the time at which it occurs and a type, indicating the code that will be used to simulate that event. Adopted from Chia-Wei Tuan’s presentation.

  36. Events and EventCollection Adopted from Chia-Wei Tuan’s presentation.

  37. EventCollection • EventCollection is a singleton pattern. Adopted from Chia-Wei Tuan’s presentation.

  38. Recommended Reading • Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1995. (Gang of Four, GoF) • Elisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra, Head First Design Patterns, O'Reilly Media, 2004. • 程杰,大話設計模式,悅知文化,2009。

  39. Knowledge You Need to Sharpen Your Programming Skill Supplementary Materials: • Software Development Process • Agile Software Development • Test-Driven Development (TDD) • Unit Testing • JUnitand CppUnit • Writing test cases for your program is highly recommended.

  40. Test-Driven Development You should pay more attention on these two steps

  41. Knowledge You Need to Sharpen Your Programming Skill Supplementary Materials: • Unit Testing • JUnitand CppUnit • Writing test cases for your program is highly recommended.

  42. Why Unit Test? • Ensure our program is functional and is working as intended. • Increase productivity. • Easy to detect bugs. • Improve implementation • Unit tests are the first-rate client of the code they test. • Give us confidence to refactor and clean up code. • Where's your guts from to change the functional code?

  43. Then Why Clean Up Code? • To improve code quality.

  44. The Total Cost of Owning a Mess • If you ever write a program which contains thousands of lines of codes, you will know the feeling of owning a mess.

  45. 慢慢來,比較快。

  46. Recommended Reading • Steve Freeman and Nat Pryce, Growing Object-Oriented Software, Guided by Tests, Addison-Wesley Professional, 2009. • Vincent Massoland Ted Husted, JUnit in Action, Manning Publications, 2003. • Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008.

  47. Tools • Development Environment • Eclipse • Visual Studio • (Re)Version Control System • Concurrent Versions System (CVS) • Subversion • Software Configuration Management • Perforce

  48. Control Your Source Code • This is a good practice to make all your source code controlled. • Our program is continually growing… • The whole program might crash after added an new feature. • Refactoring and cleaning up code.

More Related