740 likes | 864 Views
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.
E N D
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
Who I AM http://www.phdcomics.com/comics/archive.php?comicid=189
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
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
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.
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.
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.
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
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.}, }
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
See references [1], [3] and [4] for the introduction to JabRef
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.
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]
Paper Format is an Issue… http://www.phdcomics.com/comics/archive.php?comicid=178
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
Source code Documents
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.
See references [3] , [4], and [8] for the introduction to LaTeX.
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.
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.
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
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
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。
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。
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
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.
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
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
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
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
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.
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
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.
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.
Events and EventCollection Adopted from Chia-Wei Tuan’s presentation.
EventCollection • EventCollection is a singleton pattern. Adopted from Chia-Wei Tuan’s presentation.
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。
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.
Test-Driven Development You should pay more attention on these two steps
Knowledge You Need to Sharpen Your Programming Skill Supplementary Materials: • Unit Testing • JUnitand CppUnit • Writing test cases for your program is highly recommended.
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?
Then Why Clean Up Code? • To improve code quality.
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.
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.
Tools • Development Environment • Eclipse • Visual Studio • (Re)Version Control System • Concurrent Versions System (CVS) • Subversion • Software Configuration Management • Perforce
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.