Some Things You Might Need To Know Tools and Skills Overview

advertisement
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
2010/9/28
2
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.


2010/9/28
Notepad vs. Eclipse
Folders vs. JabRef
3
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
2010/9/28
4
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.
2010/9/28
5
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.
2010/9/28
6
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.
2010/9/28
7
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
2010/9/28
8
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.},
}
2010/9/28
9
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
2010/9/28
10
2010/9/28
11
Get BibTex Information from ACM
Digital Library
2009/10/6
12
2010/9/28
13
See references [1], [3] and [4] for the
introduction to JabRef
2010/9/28
14
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.
2010/9/28
15
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]
2010/9/28
16
Paper Format is an Issue…
http://www.phdcomics.com/comics/archive.php?comicid=178
2010/9/28
17
There are Realms other than MS

and
 Keep the authors focus on the content instead of





2010/9/28
layout or design.
Free
ASCII format
No compatibility issues
Ideal for typesetting
WYSIWYG (What You See Is What You Get) is possible
18
Source
code
2010/9/28
Documents
19
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.
2010/9/28
20
See references [3] , [4], and [8] for the
introduction to LaTeX .
2010/9/28
21
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.
2010/9/28
22
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.
2010/9/28
23
Summary – Part 1
Reference
management
software
JabRef
Read related
papers to the
topics
Find
interesting
topics
Choose your
research
topic(s)
Present your
paper
Prepare your
paper
LaTeX
Presentation
skill
2010/9/28
Write your
paper
24
References
1) JabRef Website, http://jabref.sourceforge.net/.
2) Zotero Website, http://www.zotero.org/.
3) Chun-Hung Chen, “Introduction to LaTeX,” available
at
http://netlab.csie.ntut.edu.tw/seminar/year2007/Pre
sentation_IntroductionToLaTeX.zip
4) Chen-Nien Tsai, “Introduction to LaTeX and JabRef,”
available at
http://netlab.csie.ntut.edu.tw/seminar/year2009/CN
T20091006.zip
2010/9/28
25
References
5) Chia-Wei Tuan, “Tips on Developing a Network
Simulator and Writing a Paper,” available at
http://netlab.csie.ntut.edu.tw/seminar/year2009/C
WT20091020.ppt
6) Chun-Hung Chen, “General Research Method,”
available at
http://netlab.csie.ntut.edu.tw/seminar/year2008/C
HC20081008.pptx
7) 侯捷,WORD排版藝術,碁峰,2004。
2010/9/28
26
References
8) Helmut Kopka and Patrick W. Daly, “Guide to LaTeX
4th Edition,” Addison-Wesley Professional, 2003.
9) Jerry Weissman, Presenting to Win: The Art of Telling
Your Story, FT Press, 2003.
10) 傑瑞.魏斯曼,簡報聖經:簡報大師的致勝演說絕
招,培生,2010。
2010/9/28
27
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
2010/9/28
28
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.
2010/9/28
29
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
2010/9/28
30
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)
2010/9/28
might be too
academic, but can
help you
understand design
patterns
31
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
http://oxforddictionaries.com/view/entry/m_en_gb0610840
 We all see patterns in our everyday life.
 Architecture
 Movies
 Commercial
2010/9/28
32
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
2010/9/28
33
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.
2010/9/28
34
What is a Design Pattern?
 A design pattern is a general reusable solution to a
commonly occurring problem in software design.
Pattern
Name
Solution
Problem
Consequences
Design Pattern
2010/9/28
35
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.
2010/9/28
36
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.
2010/9/28
37
Events and EventCollection
0..*
Event
EventCollection
Event1
2010/9/28
Event2
Event3
Adopted from Chia-Wei Tuan’s presentation.
38
EventCollection

EventCollection is a singleton pattern.
Adopted from Chia-Wei Tuan’s presentation.
2010/9/28
39
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。
2010/9/28
40
Knowledge You Need to Sharpen
Your Programming Skill
Supplementary Materials:
 Software Development Process
 Agile Software Development
 Test-Driven Development (TDD)
 Unit Testing
 JUnit and CppUnit
 Writing test cases for your program is highly
recommended.
2010/9/28
41
Test-Driven Development
You should pay
more attention
on these two
steps
2010/9/28
42
Knowledge You Need to Sharpen
Your Programming Skill
Supplementary Materials:
 Unit Testing
 JUnit and CppUnit
 Writing test cases for your program is highly
recommended.
2010/9/28
43
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?
2010/9/28
44
Then Why Clean Up Code?
 To improve code quality.
2010/9/28
45
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.
2010/9/28
46
慢慢來,比較快。
2010/9/28
47
Recommended Reading
 Steve Freeman and Nat Pryce, Growing Object-Oriented
Software, Guided by Tests, Addison-Wesley Professional,
2009.
 Vincent Massol and Ted Husted, JUnit in Action, Manning
Publications, 2003.
 Robert C. Martin, Clean Code: A Handbook of Agile
Software Craftsmanship, Prentice Hall, 2008.
2010/9/28
48
Tools
 Development Environment
 Eclipse
 Visual Studio
 (Re)Version Control System
 Concurrent Versions System (CVS)
 Subversion
 Software Configuration Management
 Perforce
2010/9/28
49
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.
2010/9/28
50
Folder History
2010/9/28
51
File History
2010/9/28
52
Why Bother?
 Backup your code.
 Roll back to previous versions if necessary.
 To record what you have done.
 Synchronization.
 Teamwork
 Could make your code clearer.
 No journal comments or commented-out code.
2010/9/28
53
Journal Comments
 Source control system will do this for us.
2010/9/28
54
Commented-out Code
 This code is from apache
 With the source control system, we can just delete the
code.
2010/9/28
55
Recommended Reading
 Laura Wingerd, Practical Perforce, O'Reilly Media,
2005.
 C. Michael Pilato, Ben Collins-Sussman, and Brian W.
Fitzpatrick, Version Control with Subversion 2nd edition,
O'Reilly Media, 2008.
2010/9/28
56
References
 Chen-Nien Tsai, “Version Control with Subversion,”
available at
http://netlab.csie.ntut.edu.tw/seminar/year2005/CNT
_20060118.ppt
 Dedi Rahmawan Putra, “Shared Document
Management using TortoiseSVN,” available at
http://netlab.csie.ntut.edu.tw/seminar/year2008/Dedi
20081120.pptx
 Perforce Website, http://www.perforce.com/
2010/9/28
57
References
 Eclipse Website, http://www.eclipse.org/
 Visual Studio Express,
http://www.microsoft.com/express/
2010/9/28
58
Summary – Part 2
 You might not remember all of this presentation.
 Here are the highlights
 We need programming skill to graduate (or to survive).
 Try to be familiar with modern programming languages.
 Learn more about design patterns if you can.
 Write test cases for your program.
 Make your code clean.
 Use the tools that can improve your productivity.
2010/9/28
59
2010/9/28
60
2010/9/28
61
Thesis List (1/4)
Name
Thesis Topic
Programming
Involved
林志鴻
The Software Design of Mobile Positioning and Field Measuring Integrated
System
Yes
曾慶隆
The Design of QoS Provisioning Mechanisms in WDM Ring Networks
Yes
簡睿毅
Dynamic Bandwidth Allocation Mechanisms for Multimedia Services on
EPON
Yes
林澤賢
A WDM Passive Optical Network Architecture for Multicasting Services
Yes
李昆達
The Study and Implementation of Mobile Internet Phone
Yes
楊旻樺
The Study of the QoS Provisioning Mechanisms in IEEE 802.11e Wireless
LANs
Yes
劉欣憲
The Research of the QoS Provisioning System in IEEE 802.16
Yes
陳志昇
The Research of Routing Mechanisms in Vehicular Ad Hoc Network
Yes
莊富元
The Study of the Performance in IEEE 802.11e EDCA
Yes
陳思翰
A Study of the Bandwidth Management Architecture over IEEE 802.16
WiMAX
Yes
2010/9/28
62
Thesis List (2/4)
Name
Thesis Topic
Programming
Involved
楊啟鋒
The Design of Mobility WiMAX Simulation Platform and Its Performance
Evaluation
Yes
曾致皓
The Design and Implementation of Video Monitoring and Recording
System for H.323-based Internet Phone
Yes
郭澤洋
The Designs of AWG Based WDM/TDM PON Architecture
Yes
劉政德
The Study of Multicast Mechanisms in the PSC Based Optical Networks
Yes
嚴雷
The Design of the Power Saving Mechanisms in IEEE 802.16e Networks
Yes
孫易緯
The Designs of QoS Mechanisms in Mobile WiMAX Network Systems with
Handover Procedures
Yes
段家瑋
The Analysis and Design of the Optical Packet Switch and Its Application
Yes
尹培鑫
The Implementation of Network and Transport Layer Modules for a DVB-H
Reception System
Yes
陳俊宏
The Design and Evaluation of Mobility Models in Mobile Ad Hoc Networks
Yes
2010/9/28
63
Thesis List (3/4)
Name
Thesis Topic
Programming
Involved
陳養正
The Development of Embedded Linux System for Wireless Applications
No
江豐信
The Development of Mobile Data Processing System with GPS and GPRS
Yes
蔡鎮年
High Utilization Resource Allocation Strategy and Performance Evaluation
for GPRS
Yes
林文祺
The Origin and Performance Impact of Self-Semilar Traffic for Wireless
Local Area Networks
Yes
許家豪
Adaptive Resource Management with Dynamic Reallocation for Layered
Encoded Multimedia on Wireless Mobile Communication Network
Yes
蔡憲邦
Design of Efficient and Secure Multiple Wireless Mesh Network
No
謝銘嘉
A Dynamic Uplink/Downlink BWA and Packet Scheduling Mechanism in
WiMAX
Yes
馮文志
The Study and Implementation of Adaptive Bandwidth, Encoding
Adjustment, and Security Mechanisms for Wireless Internet Phone
Yes
吳宜軒
The Research of Two-Dimensional Positioning Algorithm for RFID Systems
No
馬兆緯
JPANDDR-Implementation of a JAVA based tool for Protocol Analysis,
Network Diagnose, and Data Reassembly
Yes
2010/9/28
64
Thesis List (4/4)
Name
Thesis Topic
Programming
Involved
黃威穎
The Design and Implementation of Audio Monitoring and Recording
System for H.323-based Internet Phone
Yes
葉昭松
The Research and Implementation of WiMAX Convergence Sublayer
System over an Embedded System
Yes
陳燕仁
The Research and Implementation of WiMAX Security Subsystem Over an
Embedded System
Yes
楊啟彣
Design and Study of an IPTV Multicating System over IEEE 802.16-based
Wireless MAN
Yes
Network Management and Traffic Analysis for WIMAX
Yes
蔡家瑞
Intelligent Monitoring and Recording System Implementation for
Customized H.323-based Internet Phone
Yes
龔哲幀
Design of Indoor Positioning and Tracking Algorithm and System Based on
Active RFID Technology
Yes
陳勇銘
An Intelligent Packet Classifier for Communication Networks with QoS
Support
Yes
王謙志
The Implementation of Real-Time Recording, Monitoring, and Analyzing
System for SIP-based Internet Phone
Yes
Dedi
2010/9/28
65
JabRef Screenshot
2010/9/28
66
Why Do We Need Programming?
Practical Perspective
 We have a system/software need to be implemented.
 Open-Source Projects.
 We want to evaluate the performance of a proposed
algorithm/mechanism by computer simulations.
 The most common case.
 OPNET, QualNet, ns-2, OMNeT++
 We want to solve a mathematical equations we derived
for a specific problem.
 Sometimes, the results of these equations are compared
with simulation results.
2010/9/28
67
Programming Languages
 多學一種語言就是為自己多開一扇窗。
 Not only for human languages, but also for other
languages.
 Imagine that you can…
 watch a movie without reading the subtitles.

Foreign languages
 render the content of a web page without browsers.
 get insight into computer networks by simulations.
2010/9/28
68
Render the content of a web page
 HTML, CSS, XML, Java Script, VB Script, etc.
2010/9/28
69
Get Insight Into Computer Networks
 C/C++, C#, Java, etc.
2010/9/28
70
Decipher the Matrix
 An unknown computer language.
 Maybe you have to grow up in Zion?
2010/9/28
71
 “Each pattern describes a problem which occurs over
and over again in our environment, and then describes
the core of the solution to that problem, in such a way
that you can use this solution a million times over,
without ever doing it the same way twice.”
– Christopher Alexander
2010/9/28
72
How Do I Write Clean Code?
 It’s no good trying to write clean code if you don’t
know what it means for code to be clean!
 Being able to recognize clean code from dirty code
does not mean that we know how to write clean code!
 Read the recommended books to find out more.
2010/9/28
73
Choose a IDE
 Integrated development environment.
 Eclipse is a powerful IDE that can be used by various
developers.
 Java, C/C++, PHP, JavaScript.
 Visual Studio is also a powerful IDE,
 Price might be the concern.
 Free but limited editions exist.
 Windows platforms only.
 Notepad++
 This is not actually an IDE but a text editor.
2010/9/28
74
Download