<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
[img[images/spark10ny.png]]
[img[http://services.nexodyne.com/email/icon/OChkA6Q7dAfNYcAS/B4KOFIg%3D/R01haWw%3D/0/image.png]]

Sangmin is a 6th year Ph.D. student in Computer Science at [[Georgia Tech|http://en.wikipedia.org/wiki/Georgia_Institute_of_Technology]]. He is part of the [[Aristotle Research Group|http://www.cc.gatech.edu/aristotle/]] and [[HPC Garage Research Group|http://hpcgarage.org/]] . His advisors are [[Prof. Mary Jean Harrold|http://www.cc.gatech.edu/~harrold/]] and [[Prof. Rich Vuduc|http://vuduc.org/]]. Before coming to Georgia tech, he obtained a bachelor's degree in Computer Science at [[KAIST|http://en.wikipedia.org/wiki/Kaist]].

His research interests are program analysis and software engineering for concurrent programs. His current work is fault localization for concurrent programs.

Here are [[Sangmin's academic genealogy]] and [[resume (outdated)|resume.pdf]].
[[About Me]]
!!Upcoming Conferences
* [[ASE 2012|http://ase2012.paluno.uni-due.de/program/]]
* [[OOPSLA 2012|http://splashcon.org/2012/program/oopsla-research-papers]]
* [[FSE 2012|http://www.sigsoft.org/fse20/program.html]]
* [[ICSE 2013|http://2013.icse-conferences.org/content/key-dates]]
* [[ICST 2013|http://www.icst.lu/site/icst2013/important-dates]]
* [[PLDI 2013 (Nov 11th)|http://pldi2013.ucombinator.org/]]
* [[ISSTA 2013 (Jan 25th)|http://issta2013.inf.usi.ch/]]
* [[FSE 2013 (Mar 1st)|http://sel.ifmo.ru/esec-fse2013/]]
* [[ASE 2013 (May 17th)|http://ase2013.org/calls.html]]

!!People
!!!!Georgia Tech
* [[Mary Jean Harrold|http://www.cc.gatech.edu/~harrold/]]
* [[Rich Vuduc|http://vuduc.org/]]
* [[Saswat Anand|http://cs.stanford.edu/people/saswat/]]
!!!!Accenture Technology Labs (Summer 2010)
* [[Mark Grechanik|http://www.cs.uic.edu/~drmark/]]
* [[Chen Fu|http://www.accenture.com/us-en/company/people/Pages/chen-fu.aspx]]
* [[Qing Xie|http://www.accenture.com/us-en/company/people/Pages/qing-xie.aspx]]
* [[Christoph Csallner|http://ranger.uta.edu/~csallner/]]
* [[Kunal Taneja|http://www4.ncsu.edu/~ktaneja/]]
* [[Ishtiaque Hussain|http://cseweb.uta.edu/~ishtiaqu/]]
* [[Mainul Raju|https://sites.google.com/site/bmmainulhossain/]]
!!!!KAIST (Fall 2011)
* [[Doo-Hwan Bae|http://spic.kaist.ac.kr/~selab/html/bae.htm]]
* [[Moonzoo Kim|http://pswlab.kaist.ac.kr/members/moonzoo_kim/moonzoo-kims-home-page]]
* [[Yunho Kim|http://pswlab.kaist.ac.kr/members]]
* [[Shin Hong|http://pswlab.kaist.ac.kr/members]]
* [[Jaemin Ahn|http://pswlab.kaist.ac.kr/members]]

!!Research Group
* [[Aristotle Research Group|http://www.cc.gatech.edu/aristotle/]]
* [[HPC Garage|http://hpcgarage.org/]]
* [[Provable SW Lab|http://pswlab.kaist.ac.kr/]]

!!Programming
!!!!General
* [[Stack Overflow|http://stackoverflow.com/]]
* [[Google Code Jam|http://code.google.com/codejam]]
* [[Rosetta Code|http://rosettacode.org/wiki/Main_Page]]
!!!!Programming Quiz
* [[The Python Challenge|http://www.pythonchallenge.com/]], [[Forum|http://www.pythonchallenge.com/forums/]], [[My answers to the Python Challenge]]
* [[Net-Force, Challenges|http://net-force.nl/challenges/]], [[My answers to Net-Force]]
!!!!Hacking Quiz
* [[Hacker School|http://www.hackerschool.org/Sub_Html/HS_FTZ/html/ftz_main.html]]
* [[CodeEngn (Reverse Engineering, Malware Analysis, Cryptology)|http://codeengn.com/challenges]]
* [[Smash The Stack -- war games|http://smashthestack.org/wargames.php]], [[My answers to STS-io]]
* [[Vortex|http://www.overthewire.org/wargames/vortex/]], [[My answers to Vortex]]
!!!!Quiz
* [[Notpron|http://www.deathball.net/notpron/]], [[My answers to Notpron]]
* [[Net-Force, Challenges|http://net-force.nl/challenges/]], 
[[About Me]]
[[Research]]
[[Publication]]
[[Link]]
http://net-force.nl/challenges/
http://wiki.timgurney.net/index.php/Net-Force_Crib_Sheet
!!Programming
* ''Level 1: [[Keep walking...|http://net-force.nl/challenge/level601/]]''
** Simple loop and add/mul
** Write in python
** 48373851, pr0ggen
* ''Level 2: [[Are you fast enough?|http://net-force.nl/challenge/level602/]]''
** Similar to python challenge level 4
** The answer is damnfast
* ''Level 3: [[Infinite division|http://net-force.nl/challenge/level607/]]''
** 5000 precision with python
** [[Decimal (builtin)|http://docs.python.org/library/decimal.html]] or [[BigFloat (new)|http://packages.python.org/bigfloat/]] packages
** [[Stackoverflow|http://stackoverflow.com/questions/3559548/calculating-e-with-high-precision-with-python]] shows how to use Decimal
** 855705
* ''Level 4: [[Aaarrrgghhh!!|http://net-force.nl/challenge/level604/]]'', [[Forum|http://www.net-force.nl/forum/list_messages/74/Challenge_604_(Aaarrrgghhh!!)/]]
** Count line by line
** 2864, 123hup
* ''Level 5: [[Your highness the queen|http://net-force.nl/challenge/level606/]]''
** 8 queens problem ([[English|http://en.wikipedia.org/wiki/Eight_queens_puzzle]], [[Korean|http://ko.wikipedia.org/wiki/8_퀸_문제]])
*** Non-trivial search problem. 
*** Algorithm: brute-force: 64^8, 8^8
*** Algorithm: recursive algorithms ([[in c|http://ko.wikipedia.org/wiki/8_퀸_문제#.ED.92.80.EC.9D.B4_.ED.94.84.EB.A1.9C.EA.B7.B8.EB.9E.A8]]): 1-dim array, check occupancy per cell, check diagonal per pair
*** Algorithm: generate all permutations, and check diagonal per pair ([[in python|http://code.activestate.com/recipes/475145/]])
*** Algorithm: SAT solver ([[in Korean|http://kldp.org/node/106607]]): write any possible conditions in a SAT form
*** Unique solutions vs All solutions?
** Number of solutions ([[in Korean|http://ko.wikipedia.org/wiki/8_퀸_문제#N_.ED.80.B8_.EB.AC.B8.EC.A0.9C]])
* ''Level 6: [[Wanna play?!?!|http://net-force.nl/challenge/level603/]]''
* ''Level 7: [[Multiple Languages|http://net-force.nl/challenge/level608/]]''
** Pascal -> C -> Assembly
** Can extract assembly from the text
** Last one is a simple manual assembly computation: 84, 112, 67, 65, 115
* ''Level 8: [[How do you like the EURO?|http://net-force.nl/challenge/level605/]]''
* ''Level 9: [[DebugMe|http://net-force.nl/challenge/level609/]]''
** Don't fix everything
** BOMMELS
* ''Level 10: [[Life is just a game|http://net-force.nl/challenge/level611/]]'', [[Forum|http://net-force.nl/forum/list_messages/8/Life_is_just_a_game/]]
** [[John Conway's Game of Life|http://www.bitstorm.org/gameoflife/]], [[Wiki|http://en.wikipedia.org/wiki/Conway's_Game_of_Life]], [[Wiki-Kor|http://ko.wikipedia.org/wiki/라이프_게임]]
* ''Level 11: [[Messing with your mind|http://net-force.nl/challenge/level612/]]''
* ''Level 12: [[COBOL|http://net-force.nl/challenge/level610/]]''
* ''Level 13: [[Space Code|http://net-force.nl/challenge/level613/]]''
!!Steganography
* ''Level 1: [[Can you see me?|http://net-force.nl/challenge/level801/]]''
** Download password.gif
* ''Level 2: [[Go Holland Go!|http://net-force.nl/challenge/level802/]]''
** Simple. Read the word on display.
* ''Official hints'': http://deathball.net/notpron/hints.htm
* ''Level 1: [[Welcome|http://notpron.org/notpron/levelone.htm]]''
** Just enter the door! :)
* ''Level 2: [[something was in his way|http://notpron.org/notpron/not/level2.htm]]''
** Not click the door. Use a different way.
** Follow the finger and change it manually!
* ''Level 3: [[Turn me ON!|http://www.deathball.net/notpron/false/gototheothersite.htm]]''
** Turn me on?
** How to turn on the URL?
* ''Level 4: [[Look in the dark...|http://www.deathball.net/notpron/true/gototheothersite.htm]]''
** Look in the dark!
** What do you see in the dark beneath the lamp? (morse code)
** (voodoo, power)
* ''Level 5: [[Light your torch...|http://www.deathball.net/notpron/google/shestheoneforme.htm]]''
** eyes like an angel smells like a devil
** Is this a song?
** (simple, songs)
* ''Level 6: [[...the source code might help...|http://www.deathball.net/notpron/nothing/hesgotitall.htm]]''
** Find an alternative URL.
** Do you know what is [[ASCII code|http://www.asciitable.com/]]?
** (kill, hour)
* ''Level 7: [[he went to the old school|http://www.deathball.net/notpron/sdrawkcab/tieman.htm]]''
** Knowing the candy name is crucial. It is TWIX.
** Is there an old name for that?
** Focus on the weird URL as well.
* ''Level 8: [[say it loudly and proudly|http://www.deathball.net/notpron/sdrawkcab/rediar.htm]]''
** Say Loud: JAY PACK
** Focus on the graphic file name. Isn't it weird?
** Focus on the music file. Use a hex editor.
** (inverted, levelten)
* ''Level 9: [[revolution|http://www.deathball.net/notpron/luv2music/paulisdead.htm]]''
** Source code has the answer!
** Just rearrange html tags.
** (turnmeon, deadman)
* ''Level 10: [[he was impatient|http://www.deathball.net/notpron/wrong/roawr.htm]]''
** mp3 file has something
** [[windows sound recorder|http://en.wikipedia.org/wiki/Sound_Recorder_(Windows)]] can do something with the mp3
** quick quick, don't let me wait???
http://io.smashthestack.org:84/
* ''Level 0'': ssh level1@io.smashthestack.org -p2224, level1
** Debug level01
** GDB tutorial in [[Korean|http://kldp.org/node/71806]]
** strings ./level01
* ''Level 1'': ssh level2@io.smashthestack.org -p2224, WE5aVWRwYPhX
** [[Fibonacci number|http://en.wikipedia.org/wiki/Fibonacci_number]]?
** Append numbers
* ''Level 2'': ssh level3@io.smashthestack.org -p2224, f9esfdy8T6Hd
** good(): prints the address of the argument
** hmm(): the method to get the privilege
** buffers: filling buffers before function call
** buffer overflow?
http://www.overthewire.org/wargames/vortex/
* ''Level 0'': Just follow the instructions
** Read 4 unsigned integers
** Add them
** Send the summed unsigned integer
** Read password
** vortex1, Gq#qu3bF3
** Then, what?
* ''Level 0: [[warming up|http://www.pythonchallenge.com/pc/def/0.html]]''
** int(math.pow(2, 38))
** [[math module|http://docs.python.org/library/math.html]]
* ''Level 1: [[What about making trans?|http://www.pythonchallenge.com/pc/def/274877906944.html]]''
** [[string translation|http://docs.python.org/library/string.html]]
** string.maketrans()?
* ''Level 2: [[ocr|http://www.pythonchallenge.com/pc/def/ocr.html]]''
** Look at the source code
** Count frequency per characters
** rare characters?
* ''Level 3: [[re|http://www.pythonchallenge.com/pc/def/equality.html]]''
** Small characters with big characters
** re ?= [[regular expression|http://docs.python.org/library/re.html]]
* ''Level 4: [[follow the chain|http://www.pythonchallenge.com/pc/def/linkedlist.php]]''
** [[urllib|http://docs.python.org/library/urllib.html]] may help
** find nothing''s''
* ''Level 5: [[peak hell|http://www.pythonchallenge.com/pc/def/peak.html]]''
** Say loud <peak hell>
** Then, find out a python module that has similar name
* ''Level 6: [[now there are pairs|http://www.pythonchallenge.com/pc/def/channel.html]]''
** Zip?
** comments in a zip
* ''Level 7: [[smarty|http://www.pythonchallenge.com/pc/def/oxygen.html]]''
** Image looks weird
** The black boxes has the answer
** Use [[image library|http://www.pythonware.com/library/pil/handbook/introduction.htm]]
** What does it say?
* ''Level 8: [[working hard?|http://www.pythonchallenge.com/pc/def/integrity.html]]''
** Bee looks busy
** Busy? Busy? Busy module? ([[A mondegreen module!!!|http://mirror.enha.kr/wiki/몬데그린]])
** Once you find the module, it is really easy to solve
** un: huge, pw: file
* ''Level 9: [[connect the dots|http://www.pythonchallenge.com/pc/return/good.html]]''
** Connect the dots in the source code
** Use image library. Pretty simple.
* ''Level 10: [[what are you looking at?|http://www.pythonchallenge.com/pc/return/bull.html]]''
** [[Name of the sequence (spolier)?|http://en.wikipedia.org/wiki/Look-and-say_sequence]]
** Stackoverflow has [[a very good implementation|http://stackoverflow.com/questions/553871/can-anyone-provide-a-more-pythonic-way-of-generating-the-morris-sequence]]
* ''Level 11: [[odd even|http://www.pythonchallenge.com/pc/return/5808.html]]''
** Separate odd/even in the picture
* ''Level 12: [[dealing evil|http://www.pythonchallenge.com/pc/return/evil.html]]''
** Image file name is weird
** gfx? graphics?
** Use a hex editor to investigate the gfx format
** Images have the answer
* ''Level 13: [[call him|http://www.pythonchallenge.com/pc/return/disproportional.html]]''
** Phone the evil
** [[XML communication|http://docs.python.org/library/xmlrpclib.html]] is easy to find
** Who is the evil? Go back 1 level!!!
* ''Level 14: [[walk around|http://www.pythonchallenge.com/pc/return/italy.html]]''
** Very tricky image operation
** 100 x 100 image?
** bit is a wrong hint
** Walk around from outside to inside
* ''Level 15: [[whom?|http://www.pythonchallenge.com/pc/return/uzi.html]]''
** Which year?
** January 26th. for tomorrow?
* ''Level 16: [[let me get this straight|http://www.pythonchallenge.com/pc/return/mozart.html]]''
** Get it straight
** Get the weird noise straight
* ''Level 17: [[eat?|http://www.pythonchallenge.com/pc/return/romance.html]]'', [[forum|http://www.pythonchallenge.com/forums/viewtopic.php?f=1&t=30]]
** Cookies are not for eating...  browser cookies?
** Go back to very very old levels to investigate cookies
** Find the <busy> nothings
** Solve a hint using the busy method
** Who's birthday is 26th? Who is his father?
** Send him the message
* ''Level 18: [[can you tell the difference?|http://www.pythonchallenge.com/pc/return/balloons.html]]'', [[forum|http://www.pythonchallenge.com/forums/viewtopic.php?f=1&t=32]]
** NAME the difference!
** it is more obvious that what you might think
** maybe consider *****.**
!!Travel
[img[images/worldmap.gif]]
[[Visited 22 countries|http://www.world66.com/myworld66/visitedCountries]]

[img[images/statemap.gif]]
[[Visited 13 states|http://www.world66.com/myworld66/visitedStates]]

!!Reading
!!!Book (English)
!!!Book (Korean)
* 나쁜 사마리아인들, Bad Samaritans ([[yes24|http://www.yes24.com/24/goods/2711149]], [[amazon|http://www.amazon.com/Bad-Samaritans-Secret-History-Capitalism/dp/B002VPE6ZC]])
* 쾌도난마 한국경제 ([[yes24|http://www.yes24.com/24/goods/1517711]])
* 트렌드 코리아 2011 ([[yes24|http://www.yes24.com/24/goods/4381070]])
!!!Comics
* 20세기 소년 ([[엔하위키|http://mirror.enha.kr/wiki20세기%20소년]])
* Happy! ([[엔하위키|http://mirror.enha.kr/wiki/Happy!]])
* 몬스터 ([[엔하위키|http://mirror.enha.kr/wiki/몬스터(만화)]])
* PLUTO ([[엔하위키|http://mirror.enha.kr/wiki/PLUTO]])
* 슬램덩크 ([[엔하위키|http://mirror.enha.kr/wiki/슬램덩크]])
* 드래곤볼 ([[엔하위키|http://mirror.enha.kr/wiki/드래곤볼]])
* 시마과장 ([[엔하위키|http://mirror.enha.kr/wiki/시마%20과장]])
* 정치9단 ([[기사|http://bit.ly/e4Pvpq]])
* 헌터X헌터 ([[엔하위키|http://mirror.enha.kr/wiki/헌터X헌터]])
* 원피스 ([[엔하위키|http://mirror.enha.kr/wiki/원피스(만화)]])
* 블리치 ([[엔하위키|http://mirror.enha.kr/wiki/블리치]])
* 나루토 ([[엔하위키|http://mirror.enha.kr/wiki/나루토]])
* 열혈강호 ([[엔하위키|http://mirror.enha.kr/wiki/열혈강호]])
* 소년탐정 김전일 ([[엔하위키|http://mirror.enha.kr/wiki/소년탐정 김전일]])
* 명탐정 코난 ([[엔하위키|http://mirror.enha.kr/wiki/명탐정 코난]])
* 멋지다! 마사루 ([[엔하위키|http://mirror.enha.kr/wiki/멋지다!%20마사루]])
* 돌격 크로마티 고교 ([[엔하위키|http://mirror.enha.kr/wiki/돌격 크로마티 고교]])
* 상남2인조 ([[엔하위키|http://mirror.enha.kr/wiki/상남2인조]])
* GTO ([[엔하위키|http://mirror.enha.kr/wiki/GTO]])
* H2 ([[엔하위키|http://mirror.enha.kr/wiki/H2]])
* 터치 ([[엔하위키|http://mirror.enha.kr/wiki/터치]])
* 바람의 검심 ([[엔하위키|http://mirror.enha.kr/wiki/바람의%20검심]])
* 오! 나의 여신님 ([[엔하위키|http://mirror.enha.kr/wiki/오! 나의 여신님]])
* 아즈망가 대왕 ([[엔하위키|http://mirror.enha.kr/wiki/아즈망가 대왕]])
* 카트캡터 사쿠라([[엔하위키|http://mirror.enha.kr/wiki/카드캡터 사쿠라]])
* 짱구는 못말려 ([[엔하위키|http://mirror.enha.kr/wiki/짱구는 못말려]])
!!!Webtoon
* 마음의 소리 ([[네이버|http://comic.naver.com/webtoon/list.nhn?titleId=20853]])
* 낢이사는 이야기 ([[네이버|http://comic.naver.com/webtoon/list.nhn?titleId=22045]])
!!Watching
!!!Drama (Korean)
* 싸인 ([[엔하위키|http://mirror.enha.kr/wiki/싸인]])
* 시크릿 가든 ([[엔하위키|http://mirror.enha.kr/wiki/시크릿 가든]])
* 제빵왕 김탁구 ([[엔하위키|http://mirror.enha.kr/wiki/제빵왕 김탁구]])
* 개인의 취향 ([[엔하위키|http://mirror.enha.kr/wiki/개인의 취향]])
* 환상의 커플 ([[엔하위키|http://mirror.enha.kr/wiki/환상의 커플]])
* 연애시대 ([[엔하위키|http://mirror.enha.kr/wiki/연애시대]])
* 여명의 눈동자 ([[엔하위키|http://mirror.enha.kr/wiki/여명의 눈동자]])
!!!Drama (American)
* How I Met Your Mother ([[Wikipedia|http://en.wikipedia.org/wiki/How_I_Met_Your_Mother]])
* The Big Bang Theory ([[엔하위키|http://mirror.enha.kr/wiki/빅뱅%20이론]])
* The Office ([[엔하위키|http://mirror.enha.kr/wiki/오피스]])
* The Friends ([[엔하위키|http://mirror.enha.kr/wiki/프렌즈]])
* Prison Break ([[엔하위키|http://mirror.enha.kr/wiki/프리즌 브레이크]])
* NCIS ([[엔하위키|http://mirror.enha.kr/wiki/NCIS]])
!!!Drama (Japanese)
* 롱 베이케이션 ([[엔하위키|http://mirror.enha.kr/wiki/롱 베이케이션]])
* 히어로 ([[엔하위키|http://mirror.enha.kr/wiki/히어로]])
* 러브제너레이션 ([[엔하위키|http://mirror.enha.kr/wiki/러브제너레이션]])
* 프라이드 ([[위키백과|http://ko.wikipedia.org/wiki/프라이드_(드라마)]])
* 화려한 일족 ([[위키백과|http://ko.wikipedia.org/wiki/화려한_일족]])
* 도쿄 러브스토리 ([[엔하위키|http://mirror.enha.kr/wiki/도쿄 러브스토리]])
* 101번째 프로포즈 ([[엔하위키|http://mirror.enha.kr/wiki/101번째 프로포즈]])
* 고쿠센 ([[엔하위키|http://mirror.enha.kr/wiki/고쿠센]])
* 트릭 ([[엔하위키|http://mirror.enha.kr/wiki/트릭]])
* 대단한 곳으로 시집와 버렸네
* 사랑따윈 필요없어, 여름 ([[엔하위키|http://mirror.enha.kr/wiki/사랑따윈 필요없어, 여름]])
* 속도위반 결혼 ([[위키백과|http://ko.wikipedia.org/wiki/속도위반_결혼_(드라마)]])
* 썸머 스노우 ([[씨네21|http://www.cine21.com/Movies/Mov_Movie/movie_detail.php?id=13502]])
* 모토카레 ([[씨네21|http://www.cine21.com/Movies/Mov_Movie/movie_detail.php?id=21066]])
* 런치의 여왕 ([[엔하위키|http://mirror.enha.kr/wiki/런치의 여왕]])
* 야마토 나데시코 ([[엔하위키|http://mirror.enha.kr/wiki/야마토 나데시코]])
* 프러포즈 대작전 ([[위키백과|http://ko.wikipedia.org/wiki/프러포즈 대작전]])
* 푸드파이터 ([[엔하위키|http://mirror.enha.kr/wiki/푸드파이터]])
!!!Documentary
* 일본인과 마구로 ([[블로그|http://parkpd.co.kr/10082816011]])
* SBS스페셜 -- 옥수수의 습격 ([[SBS홈페이지|http://bit.ly/gI5qNM]])
!!!Movie
* The Hangover ([[IMDB|http://www.imdb.com/title/tt1119646/]])
* 2012 ([[IMDB|http://www.imdb.com/title/tt1190080/]])
* The Town ([[IMDB|http://www.imdb.com/title/tt0840361/]])
* Avatar: Special Edition ([[IMDB|http://www.imdb.com/title/tt0499549/]])
* Killers ([[IMDB|http://www.imdb.com/title/tt1103153/]])
* The Bounty Hunter ([[IMDB|http://www.imdb.com/title/tt1038919/]])
* Tron: Legacy ([[IMDB|http://www.imdb.com/title/tt1104001/]])
* Toy Story 3 ([[IMDB|http://www.imdb.com/title/tt0435761/]])
* Inception ([[IMDB|http://www.imdb.com/title/tt1375666/]])
* Captain America: The First Avenger ([[IMDB|http://www.imdb.com/title/tt0458339/]])
* Source code ([[IMDB|http://www.imdb.com/title/tt0945513/]])
* 부당거래 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=52747]])
* 장군의 아들 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=10420]])
* 전우치 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=48227]])
* 해운대 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=45321]])
* 아저씨 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=71509]])
* 쩨쩨한 로맨스 ([[yes24|http://movie.yes24.com/Movie/Movie_View_Default.aspx?m_id=M000035515]])
* 시라노; 연애조작단 ([[씨네21|http://www.cine21.com/Movies/Mov_Movie/movie_detail.php?id=27424]])
* 체포왕 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=79105]])
* 위험한 상견례 ([[네이버|http://movie.naver.com/movie/bi/mi/basic.nhn?code=77125]])
!!!Musical
* 오 당신이 잠든 사이 ([[interpark|http://ticket.interpark.com/Ticket/Goods/GoodsInfo.asp?GoodsCode=10002535]])
!!Conference - Research Track
#[[Sangmin Park|#]], [[Mary Jean Harrold|http://www.cc.gatech.edu/~harrold/]], and [[Richard Vuduc|http://vuduc.org/]]<br>''Griffin: Grouping Suspicious Memory-access Patterns to Improve Understanding of Concurrency Bugs''<br>International Symposium on Software Testing and Analysis (ISSTA), July 2013. [[[PDF|#]]] [[[slides|#]]] [[[Web|https://sites.google.com/site/griffinconcurrencybugs/]]].<br><br>
#[[Sangmin Park|#]], [[Ishtiaque Hussain|http://cseweb.uta.edu/~ishtiaqu/]], [[Christoph Csallner|http://ranger.uta.edu/~csallner/]], [[B.M. Mainul Hossain|https://sites.google.com/site/bmmainulhossain/]], [[Kunal Taneja|http://www4.ncsu.edu/~ktaneja/]], [[Mark Grechanik|http://www.cs.uic.edu/~drmark/]], [[Chen Fu|http://www.accenture.com/us-en/company/people/Pages/chen-fu.aspx]], and [[Qing Xie|http://www.accenture.com/us-en/company/people/Pages/qing-xie.aspx]]<br>''CARFAST: Achieving Higher Statement Coverage Faster''<br>International Symposium on the Foundations of Software Engineering (FSE), November 2012, [[[PDF|pubs/park2012-fse-carfast.pdf]]] [[[slides|http://www.slideshare.net/tomowind/carfast-achieving-higher-statement-coverage-faster]]] [[[Web|http://www.carfast.org]]].<br><br>
#[[Shin Hong|http://pswlab.kaist.ac.kr/members]], [[Jaemin Ahn|http://pswlab.kaist.ac.kr/members]], [[Sangmin Park|#]], [[Moonzoo Kim|http://pswlab.kaist.ac.kr/members/moonzoo_kim/moonzoo-kims-home-page]], and [[Mary Jean Harrold|http://www.cc.gatech.edu/~harrold/]]<br>''Testing Concurrent Programs to Achieve High Synchronization Coverage''<br>International Symposium on Software Testing and Analysis (ISSTA), July 2012,  [[[PDF|http://pswlab.kaist.ac.kr/publications/issta12-conc.pdf]]] [[[slides|http://www.slideshare.net/tomowind/testing-concurrent-programs-to-achieve-high-synchronization-coverage]]] [[[Tool Download|http://bit.ly/xlhUkV]]].<br><br>
#[[Sangmin Park|#]], [[Richard Vuduc|http://vuduc.org/]], and [[Mary Jean Harrold|http://www.cc.gatech.edu/~harrold/]]<br>''A Unified Approach for Localizing Non-deadlock Concurrency Bugs''<br>International Conference on Software Testing, Verification and Validation (ICST), April 2012. [[[PDF|pubs/park2012-icst-unicorn.pdf]]] [[[slides|http://www.slideshare.net/tomowind/unicorn-a-unified-approach-for-localizing-nondeadlock-concurrency-bugs]]]. <br><br>
#[[Sangmin Park|#]], [[Richard Vuduc|http://vuduc.org/]], and [[Mary Jean Harrold|http://www.cc.gatech.edu/~harrold/]]<br>''Falcon: Fault Localization in Concurrent Programs''<br>International Conference on Software Engeering (ICSE), May 2010. [[[PDF|pubs/park2010-icse-falcon.pdf]]] [[[slides|http://www.slideshare.net/tomowind/falcon-fault-localization-in-concurrent-programs]]].
!!Workshop and Conference Other Tracks
#[[Sangmin Park|#]]<br>''Fault Comprehension for Concurrent Programs''<br>International Conference on Software Engeering (ICSE), Student Research Competition (SRC) Track, May 2013. [[[PDF|#]]] [[[slides|#]]] [[[poster|#]]].<br><br>
#[[Ishtiaque Hussain|http://cseweb.uta.edu/~ishtiaqu/]], [[Christoph Csallner|http://ranger.uta.edu/~csallner/]], [[Mark Grechanik|http://www.cs.uic.edu/~drmark/]],  [[Chen Fu|http://www.accenture.com/us-en/company/people/Pages/chen-fu.aspx]], [[Qing Xie|http://www.accenture.com/us-en/company/people/Pages/qing-xie.aspx]], [[Sangmin Park|#]], [[Kunal Taneja|http://www4.ncsu.edu/~ktaneja/]], and [[B.M. Mainul Hossain|https://sites.google.com/site/bmmainulhossain/]]<br>''Evaluating Program Analysis and Testing Tools with the RUGRAT Random Benchmark Application Generator''<br> International Workshop on Dynamic Analysis (WODA), July 2012, [[[PDF|http://cseweb.uta.edu/~ishtiaqu/papers/hussain12evaluating.pdf]]] [[[slides-pptx|http://cseweb.uta.edu/~ishtiaqu/rugrat/hussain12evaluating.pptx]]] [[[Web|http://www.rugrat.ws/]]].<br><br>
See [[Google Scholar Citation Page|http://scholar.google.com/citations?user=RXUCkX4AAAAJ]].

<html><!-- 
, [[Microsoft Academic Search|http://academic.research.microsoft.com/Author/56882784/sangmin-park]], [[ACM Digital Library|http://dl.acm.org/author_page.cfm?id=81464667492]], or [[DBLP|http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/p/Park:Sangmin.html]].--> </html>
!!!FALCON, UNICORN: Fault Localization for Concurrent Programs [ICSE 2010, ICST 2012]
The goal of the project is to localize the root cause of concurrency faults in concurrent, multi-threaded programs. We studied two representative concurrency violations—order violation and atomicity violation—and found that both violations consist of faulty memory access patterns. To extract real faulty memory access patterns from benign ones, our approach leverages multiple passing and failing program execution information. During the multiple program execution phase, our technique monitors shared memory accesses among threads to identify memory access patterns, and records the program’s passing and failing information. After executing the program, our technique applies fault localization equations, such as the Tarantula formula, on identified memory access patterns to extract patterns that are likely to indicate concurrency violations. We implemented this technique as a prototype in Java, evaluated on several Java programs, and showed that the technique works effectively and efficiently.

!!!Testing Concurrent Programs to Achieve High Synchronization Coverage [ISSTA 2012]
Software testing is used to improve software quality. The effectiveness of the testing is often assessed by measuring coverage of some aspect of the software, such as its code. There is much research aimed at increasing code coverage of sequential software. However, there has been little research on increasing coverage for concurrent software. We present a new technique that aims to achieve high coverage of concurrent programs by generating thread schedules to cover uncovered coverage requirements. Our technique first estimates synchronization-pair coverage requirements, and then generates thread schedules that are likely to cover uncovered coverage requirements. We also present a description of a prototype tool that we implemented in Java, and the results of a set of studies we performed using the tool on a set of open-source programs. The results show that, for our subject programs, our technique achieves higher coverage faster than random testing techniques, to which the estimation-based heuristic contributes substantially.

See [[bit.ly/xlhUkV|http://bit.ly/xlhUkV]].

!!!CARFAST: Achieving Higher Statement Coverage Faster [FSE 2012]
Test coverage is an important metric of software quality, since it indicates thoroughness of testing. A fundamental problem of software testing is how to achieve higher statement coverage faster, and it is a difficult problem since it requires testers to cleverly pinpoint test input data to steer execution sooner toward sections of application code that contains more statements.

We created a novel fully automatic approach for ensuring that test statement coverage is achieved higher and faster (CARFAST), which we implemented and evaluated on twelve Java applications whose sizes range from 300 LOC to one million LOC. We compared CARFAST, pure random, adaptive testing and Directed Automated Random Testing (DART) against one another. The results show with strong statistical significance that when execution time is measured in terms of the number of runs of the application on different input test data, CARFAST outperforms evaluated competitive approaches with most subject applications.

See [[www.carfast.org|http://www.carfast.org]].  

!!!RUGRAT: Generating Random Benchmark Applications [WODA 2012]
Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open-source and commercial programs are routinely used as benchmarks to evaluate different aspects of the algorithms and tools. Unfortunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibility of results.

We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated programs. We implemented our tool for Java and applied it to generate benchmarks with which we evaluated different program analysis and testing tools. 

See [[www.rugrat.ws|http://www.rugrat.ws]].

!!!Test Suite Augmentation using Symbolic Execution [with Dr. Harrold and Dr. Anand]
The goal of the project is to automatically augment test inputs that are not covered by existing test suites. The technique consists of two phases. In the first phase, the technique symbolically executes the existing test suites to collect feasible path conditions. The information is input to the second phase. In the second phase, the technique tries to automatically generate new feasible paths that do not intersect with paths. The approach to the generation includes splicing feasible sub-paths to generate new feasible complete program paths and symbolically flipping branches based on control- and data-flow based heuristics.
Sangmin Park
Georgia Tech 201x

Advisor
[[Mary Jean Harrold|http://www.cc.gatech.edu/~harrold]] - [[Software Engineering Academic Genealogy|http://people.engr.ncsu.edu/txie/sefamily.htm]]
U.Pittsburgh 1988

Grand Advisor
[[Mary Lou Soffa|http://www.cs.virginia.edu/~soffa/]]
U.Pittsburgh 1977

Great Grand Advisor
[[Gary Lindstrom|http://www.cs.utah.edu/~gary/]]
CMU 1971

Great Great Grand Advisor
[[Alan Perlis|http://en.wikipedia.org/wiki/Alan_Perlis]] 1922-1990
MIT 1950

Great Great Great Grand Advisor
[[Philip Franklin|http://en.wikipedia.org/wiki/Philip_Franklin]] 1898 - 1965
Princeton 1921

Great^4 Grand Advisor
[[Oswald Veblen|http://en.wikipedia.org/wiki/Oswald_Veblen]] 1880 - 1960
U. Chicago 1903

Great^5 Grand Advisor
[[E.H. Moore|http://en.wikipedia.org/wiki/E._H._Moore]] 1862 - 1932
Yale 1885

Great^6 Grand Advisor
[[Hubert Anson Newton|http://en.wikipedia.org/wiki/Hubert_Anson_Newton]] 1830 - 1885  - [[An academic lineage containing Newton|http://www.cs.usask.ca/~mould/lineage/lineage.html]]

Great^7 Grand Advisor
[[Michel Chasles|http://en.wikipedia.org/wiki/Michel_Chasles]] 1793 - 1880 

Great^8 Grand Advisor
[[Siméon Denis Poisson|http://en.wikipedia.org/wiki/Sim%C3%A9on_Denis_Poisson]] 1781 - 1840

Great^9 Grand Advisor
[[Joseph Louis Lagrange|http://en.wikipedia.org/wiki/Joseph_Louis_Lagrange]] 1736 - 1813 

Great^10 Grand Advisor
[[Leonhard Euler|http://en.wikipedia.org/wiki/Leonhard_Euler]] 1707 - 1783 
U. Basel 1726

Great^11 Grand Advisor
[[Johann Bernoulli|http://en.wikipedia.org/wiki/Johann_Bernoulli]] 1667 - 1748 

Great^12 Grand Advisor
[[Jacob Bernoulli|http://en.wikipedia.org/wiki/Jacob_Bernoulli]] 1654 - 1705 

Great^13 Grand Advisor
[[Gottfried Leibniz|http://en.wikipedia.org/wiki/Gottfried_Leibniz]] 1646 - 1716 
U. Leipzig 1653

Great^14 Grand Advisor
[[Erhard Weigel|http://en.wikipedia.org/wiki/Erhard_Weigel]] 1625- 1699 
U. Leipzig 1650
PhD student at [[CoC|http://www.cc.gatech.edu/]] [[GeorgiaTech|http://www.gatech.edu/]]
Sangmin Park