diff --git a/_data/alumni.yml b/_data/alumni.yml index 8fbd5ad..3cc9564 100644 --- a/_data/alumni.yml +++ b/_data/alumni.yml @@ -1,4 +1,15 @@ -# Postdoctoral and PhD Graduates: +# Postdoctoral Graduates: +- name: Dr. Ali Ghanbari + status: Postdoctoral Fellow + email: alig@iastate.edu + site: https://ali-ghanbari.github.io/ + img: ali.jpg + +- name: Dr. Breno Dantas Cruz + status: Postdoctoral Fellow + email: bdantasc@iastate.edu + site: https://www.cs.iastate.edu/people/breno-dantas-cruz + img: breno.jpg - name: Dr. Hoan A. Nguyen status: Postdoctoral Fellow @@ -6,18 +17,44 @@ site: https://sites.google.com/site/nguyenanhhoan/home img: hnguyen.jpg -- name: Hamid Bagheri - status: PhD - email: hbagheri@iastate.edu - site: http://www.cs.iastate.edu/people/hamid-bagheri - img: hbagheri.jpg - - name: Dr. Zhen Yu status: Postdoctoral Fellow email: yuzhen3301@gmail.com site: http://design.cs.iastate.edu img: zyu.jpeg +# PhD Graduates: + +- name: Dr. Mohammad Wardat + status: PhD Summer'23 + email: wardat@iastate.edu + site: https://www.cs.iastate.edu/people/mohammad-wardat + img: wardat.jpg + +- name: Dr. Sumon Biswas + status: PhD Spring'22, MS Spring'21 + email: sumon@iastate.edu + site: https://sumonbis.github.io/ + img: sbiswas.jpg + +- name: Dr. Rangeet Pan + status: PhD Spring'22 + email: rangeet@iastate.edu + site: https://rangeetpan.github.io + img: pan.jpg + +- name: Dr. Samantha Khairunnesa + status: PhD Summer'21, MS Fall'17 + email: sammy@iastate.edu + site: https://www.linkedin.com/in/samantha-syeda + img: skhairunnesa.jpg + +- name: Dr. Hamid Bagheri + status: PhD Spring'21 + email: hbagheri@iastate.edu + site: http://www.cs.iastate.edu/people/hamid-bagheri + img: hbagheri.jpg + - name: Dr. Md. Johirul Islam status: PhD Summer'20, MS Fall'19 netid: mislam @@ -116,6 +153,12 @@ # B.S. Graduates +- name: Huaiyao Ma + status: B.S. Fall'22 + email: huaiyao@iastate.edu + site: https://www.info.iastate.edu/individuals/info/294581/Ma-Huaiyao + img: huaiyao.jpg + - name: Nathaniel M Wernimont status: B.S. Spring'20 email: natew@iastate.edu diff --git a/_data/grants.yml b/_data/grants.yml index 1e0f50c..dc5f9b2 100644 --- a/_data/grants.yml +++ b/_data/grants.yml @@ -596,3 +596,81 @@ Data-driven discoveries are permeating critical fabrics of society. Unreliable discoveries lead to decisions that can have far-reaching and catastrophic consequences on society, defense, and the individual. Thus, the dependability of data-science lifecycles that produce discoveries and decisions is a critical issue that requires a new holistic view and formal foundations. This project will establish the Dependable Data Driven Discovery (D4) Institute at Iowa State University that will advance foundational research on ensuring that data-driven discoveries are of high quality. The activities of the D4 Institute will have a transformative impact on the dependability of data-science lifecycles. First, the problem definition itself will have a significant impact by helping future innovations beyond academia. While the notion of dependability is well-studied in the computer-systems literature, challenges in data science push the boundary of existing knowledge into the unknown. This institute's work will define D4, and increase data science's benefit to society by providing a transformative theory of D4. The second impact will come from the process of shared vocabulary development facilitated by this institute, and its result that would encourage experts across TRIPODS disciplines and domain experts to collaborate on common goals and challenges. Third, the institute will set research directions for D4 by providing funding for foundational research, which will have a separate set of impacts. Fourth, the institute will facilitate transdisciplinary training of a diverse cadre of data scientists through activities such as the Midwest Big Data Summer School and the D4 workshop. The project will advance the theoretical foundations of data science by fostering foundational research to enable understanding of the risks to the dependability of data-science lifecycles, to formalize the rigorous mathematical basis of the measures of dependability for data science lifecycles, and to identify mechanisms to create dependable data-science lifecycles. The project defines a risk to be a cause that can lead to failures in data-driven discovery, and the processes that plan for, acquire, manage, analyze, and infer from data collectively as the data-science lifecycle. For instance, an inference procedure that is significantly expensive can deliver late information to a human operator facing a deadline (complexity as a risk); if the data-science lifecycle provides a recommendation without an uncertainty measure for the recommendation, a human operator has no means to determine whether to trust the recommendation (uncertainty as a risk). Compared to recent works that have focused on fairness, accountability, and trustworthiness issues for machine learning algorithms, this project will take a holistic perspective and consider the entire data-science lifecycle. In phase I of the project the investigators will focus on four measures: complexity, resource constraints, uncertainty, and data freshness. In developing a framework to study these measures, this work will prepare the investigators to scale up their activities to other measures in phase II as well as to address larger portions of the data-science lifecycle. The study of each measure brings about foundational challenges that will require expertise from multiple TRIPODS disciplines to address. +- key: grant-nsf-2120448 + agency: NSF + primary: true + title: "Collaborative Research: CCRI: ENS: Boa 2.0: Enhancing Infrastructure for Studying Software and its Evolution at a Large Scale" + start_date: 2021-10-01 #Roughly + url: "https://www.nsf.gov/awardsearch/showAward?AWD_ID=2120448&HistoricalAwards=false" + amount: $824,474.00 + PI: Hridesh Rajan + coPIs: + end_date: 2024-09-30 #Roughly + abstract: > + In today’s software-centric world, ultra-large-scale software repositories, e.g. GitHub, with hundreds of thousands of projects each, are the new library of Alexandria. They contain an enormous corpus of software and information about software. Scientists and engineers alike are interested in analyzing this wealth of information both for curiosity as well as for testing important research hypotheses. However, the current barrier to entry is prohibitive and only a few with well-established infrastructure and deep expertise can attempt such ultra-large-scale analysis. Necessary expertise includes: programmatically accessing version control systems, data storage and retrieval, data mining, and parallelization. The need to have expertise in these four different areas significantly increases the cost of scientific research that attempts to answer research questions involving ultra-large-scale software repositories. As a result, experiments are often not replicable, and reusability of experimental infrastructure low. Furthermore, data associated and produced by such experiments is often lost and becomes inaccessible and obsolete, because there is no systematic curation. Last but not least, building analysis infrastructure to process ultra-large-scale data efficiently can be very hard. + + This project will continue to enhance the CISE research infrastructure called Boa to aid and assist with such research. This next version of Boa will be called Boa 2.0 and it will continue to be globally disseminated. The project will further develop the programming language also called Boa, that can hide the details of programmatically accessing version control systems, data storage and retrieval, data mining, and parallelization from the scientists and engineers and allow them to focus on the program logic. The project will also enhance the data mining infrastructure for Boa, and a BIGDATA repository containing millions of open source project for analyzing ultra-large-scale software repositories to help with such experiments. The project will integrate Boa 2.0 with the Center for Open Science Open Science Framework (OSF) to improve reproducibility and with the national computing resource XSEDE to improve scalability. The broader impacts of Boa 2.0 stem from its potential to enable developers, designers and researchers to build intuitive, multi-modal, user-centric, scientific applications that can aid and enable scientific research on individual, social, legal, policy, and technical aspects of open source software development. This advance will primarily be achieved by significantly lowering the barrier to entry and thus enabling a larger and more ambitious line of data-intensive scientific discovery in this area. +- key: grant-nsf-2223812 + agency: NSF + primary: true + title: "SHF:Small: More Modular Deep Learning" + start_date: 2022-10-01 #Roughly + url: "https://www.nsf.gov/awardsearch/showAward?AWD_ID=2223812&HistoricalAwards=false" + amount: $580,000.00 + PI: Hridesh Rajan + coPIs: + end_date: 2025-09-30 #Roughly + abstract: > + This project will study a class of machine learning algorithms known as deep learning + that has received much attention in academia and industry. Deep learning has a large + number of important societal applications, from self-driving cars to question-answering + systems such as Siri and Alexa. A deep learning algorithm uses multiple layers of + transformation functions to convert inputs to outputs, each layer learning higher-level + of abstractions in the data successively. The availability of large datasets has made it + feasible to train deep learning models. Since the layers are organized in the form of a + network, such models are also referred to as deep neural networks (DNN). While the jury + is still out on the impact of deep learning on the overall understanding of software's + behavior, a significant uptick in its usage and applications in wide-ranging areas and + safety-critical systems, e.g., autonomous driving, aviation system, medical analysis, + etc., combine to warrant research on software engineering practices in the presence of + deep learning. One challenge is to enable the reuse and replacement of the parts of a + DNN that has the potential to make DNN development more reliable. This project will + investigate a comprehensive approach to systematically investigate the decomposition of + deep neural networks into modules to enable reuse, replacement, and independent evolution + of those modules. A module is an independent part of a software system that can be tested, + validated, or utilized without a major change to the rest of the system. Allowing the + reuse of DNN modules is expected to reduce energy and data intensive training efforts + to construct DNN models. Allowing replacement is expected to help replace faulty + functionality in DNN models without needing costly retraining steps. + + The preliminary work of the investigator has shown that it is possible to decompose fully + connected neural networks and CNN models into modules and conceptualize the notion of + modules. The main goals and the intellectual merits of this project are to further expand + this decomposition approach along three dimensions: (1) Does the decomposition approach + generalize to large Natural Language Processing (NLP) models, where a huge reduction in CO2e + emission is expected? (2) What criteria should be used for decomposing a DNN into modules? + A better understanding of the decomposition criteria can help inform the design and + implementation of DNNs and reduce the impact of changes. (3) While coarse-grained + decomposition has worked well for FCNNs and CNNs, does a finer-grained decomposition of + DNNs into modules connected using AND-OR-NOT primitives a la structured decomposition has + the potential to both enable more reuse (especially for larger DNNs) and provide deeper + insights into the behavior of DNNs? The project also incorporates a rigorous evaluation plan + using widely studied datasets. The project is expected to broadly impact society by informing + the science and practice of deep learning. A serious problem facing the current software + development workforce is that deep learning is widely utilized in our software systems, but + scientists and practitioners do not yet have a clear handle on critical problems such as + explainability of DNN models, DNN reuse, replacement, independent testing, and independent + development. There was no apparent need to investigate the notions of modularity as neural + network models trained before the deep learning era were mostly small, trained on small + datasets, and were mostly used as experimental features. The notion of DNN modules developed + by this project, if successful, could help make significant advances on a number of open + challenges in this area. DNN modules could enable the reuse of already trained DNN modules in + another context. Viewing a DNN as a composition of DNN modules instead of a black box could + enhance the explainability of a DNN's behavior. This project, if successful, will thus have a + large positive impact on the productivity of these programmers, the understandability and + maintainability of the DNN models that they deploy, and the scalability and correctness of + software systems that they produce. Other impacts will include: research-based advanced + training as well as enhancement in experimental and system-building expertise of future + computer scientists, incorporation of research results into courses at Iowa State University + as well as facilitating the integration of modularity research-related topics, and increased + opportunities for the participation of underrepresented groups in research-based training. diff --git a/_data/members.yml b/_data/members.yml index eaa6f7c..1139e7c 100644 --- a/_data/members.yml +++ b/_data/members.yml @@ -19,60 +19,48 @@ site: https://www.cs.iastate.edu/people/shibbir-ahmed img: sahmed.jpg -- name: Sumon Biswas +- name: Fraol Batole status: PhD - email: sumon@iastate.edu - site: http://web.cs.iastate.edu/~sumon/ - img: sbiswas.jpg - -- name: Yijia Huang - status: PhD - email: hyj@iastate.edu - site: https://www.cs.iastate.edu/people/yijia-huang - img: yhuang.png - + email: fraol@iastate.edu + site: https://fraolbatole.github.io/ + img: fraol.jpg + - name: Sayem Imtiaz status: PhD - email: liyp0095@iastate.edu + email: sayem@iastate.edu site: https://www.cs.iastate.edu/people/sayem-mohammad-imtiaz img: simtiaz.jpg - -- name: Yupei Li + +- name: Ruchira Manke status: PhD - email: liyp0095@iastate.edu - site: https://www.cs.iastate.edu/people/yuepei-li - img: blank.png - -- name: Samantha Khairunnesa - status: PhD - email: sammy@iastate.edu - site: http://www.cs.iastate.edu/people/samantha-syed-khairunnesa - img: skhairunnesa.jpg + email: rmanke@iastate.edu + site: https://tads.research.iastate.edu/people/ruchira-manke + img: ruchira.jpg - name: Giang Nguyen status: PhD email: gnguyen@iastate.edu - site: http://design.cs.iastate.edu - img: gnguyen.png + site: https://www.cs.iastate.edu/gnguyen + img: giang.jpeg + +- name: David OBrien + status: PhD + email: dobrien@iastate.edu + site: https://davidmobrien.github.io/ + img: david.png -- name: Rangeet Pan +- name: Astha Singh status: PhD - email: rangeet@iastate.edu - site: http://www.cs.iastate.edu/people/rangeet-pan - img: pan.jpg + email: asthas@iastate.edu + site: https://www.astha-singh.com/ + img: astha.png -- name: Mohammad Wardat +- name: Deepak-George Thomas status: PhD - email: wardat@iastate.edu - site: https://www.cs.iastate.edu/people/mohammad-wardat - img: wardat.jpg + email: dgthomas@iastate.edu + site: https://deepakgthomas.github.io/ + img: deepak.jpg # Master's Students: # Bachelor's Students: - -- name: Xuan-Long Vu - status: BS - email: longvu@iastate.edu - site: http://design.cs.iastate.edu - img: vu.jpg diff --git a/_includes/home_page/carousel.html b/_includes/home_page/carousel.html index 97e005a..76a8ef7 100644 --- a/_includes/home_page/carousel.html +++ b/_includes/home_page/carousel.html @@ -74,6 +74,20 @@ alt="End of the year lunch, December 2018"> + + - + @@ -46,7 +46,7 @@
- Iowa State University
diff --git a/frances/code_input-new.html b/frances/code_input-new.html new file mode 100755 index 0000000..b2196c1 --- /dev/null +++ b/frances/code_input-new.html @@ -0,0 +1,62 @@ +
+ + + + + + + + + +
 
Code:
Language:
File:
>
>  
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Legend

Block TypesEdge Types
 
    Loop Body Conditional Jump
    Loop Condition Unconditional Jump
    Self Loop(do-while) No Jump
    If Body 
    If Condition 
    Else Body 
+
+
diff --git a/frances/code_input.html b/frances/code_input.html new file mode 100755 index 0000000..a88ea29 --- /dev/null +++ b/frances/code_input.html @@ -0,0 +1,62 @@ +
+ + + + + + + + + +
 
Code:
Language:
File:
>
>  
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Legend

Block TypesEdge Types
 
    Loop Body Conditional Jump
    Loop Condition Unconditional Jump
    Self Loop(do-while) No Jump
    If Body 
    If Condition 
    Else Body 
+
+
diff --git a/frances/code_input_captcha.html b/frances/code_input_captcha.html new file mode 100755 index 0000000..da4ca33 --- /dev/null +++ b/frances/code_input_captcha.html @@ -0,0 +1,63 @@ +
+ + + + + + + + + + +
 
Code:
Language:
File:
>
>  
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Legend

Block TypesEdge Types
 
    Loop Body Conditional Jump
    Loop Condition Unconditional Jump
    Self Loop(do-while) No Jump
    If Body 
    If Condition 
    Else Body 
+
+
diff --git a/frances/dash-wide.png b/frances/dash-wide.png new file mode 100755 index 0000000..41d4671 Binary files /dev/null and b/frances/dash-wide.png differ diff --git a/frances/feedback/frances-a-other.shtml b/frances/feedback/frances-a-other.shtml new file mode 100644 index 0000000..b82a6f7 --- /dev/null +++ b/frances/feedback/frances-a-other.shtml @@ -0,0 +1,36 @@ + + + +
+ + + + + +

Frances-A Feedback

+ +

+We would like to hear from users of the Frances-A tool. +Please fill out one of the following forms based on your use of Frances-A. +Alternatively, you can send us an email. +

+ +

+

+ +

+ +
+ + + + diff --git a/frances/feedback/frances-a-student.shtml b/frances/feedback/frances-a-student.shtml new file mode 100644 index 0000000..ca63d2d --- /dev/null +++ b/frances/feedback/frances-a-student.shtml @@ -0,0 +1,36 @@ + + + +
+ + + + + +

Frances-A Student Feedback

+ +

+We would like to hear from users of the Frances-A tool. +Please fill out one of the following forms based on your use of Frances-A. +Alternatively, you can send us an email. +

+ +

+

+ +

+ +
+ + + + diff --git a/frances/feedback/frances-a-teacher.shtml b/frances/feedback/frances-a-teacher.shtml new file mode 100644 index 0000000..d6b5a02 --- /dev/null +++ b/frances/feedback/frances-a-teacher.shtml @@ -0,0 +1,36 @@ + + + +
+ + + + + +

Frances-A Teacher Feedback

+ +

+We would like to hear from users of the Frances-A tool. +Please fill out one of the following forms based on your use of Frances-A. +Alternatively, you can send us an email. +

+ +

+

+ +

+ +
+ + + + diff --git a/frances/feedback/frances-other.shtml b/frances/feedback/frances-other.shtml new file mode 100644 index 0000000..9623440 --- /dev/null +++ b/frances/feedback/frances-other.shtml @@ -0,0 +1,36 @@ + + + +
+ + + + + +

Frances Feedback

+ +

+We would like to hear from users of the Frances tool. +Please fill out one of the following forms based on your use of Frances. +Alternatively, you can send us an email. +

+ +

+

+ +

+ +
+ + + + diff --git a/frances/feedback/frances-student.shtml b/frances/feedback/frances-student.shtml new file mode 100644 index 0000000..38e3a19 --- /dev/null +++ b/frances/feedback/frances-student.shtml @@ -0,0 +1,36 @@ + + + +
+ + + + + +

Frances Student Feedback

+ +

+We would like to hear from users of the Frances tool. +Please fill out one of the following forms based on your use of Frances. +Alternatively, you can send us an email. +

+ +

+

+ +

+ +
+ + + + diff --git a/frances/feedback/frances-teacher.shtml b/frances/feedback/frances-teacher.shtml new file mode 100644 index 0000000..32a7076 --- /dev/null +++ b/frances/feedback/frances-teacher.shtml @@ -0,0 +1,36 @@ + + + +
+ + + + + +

Frances Teacher Feedback

+ +

+We would like to hear from users of the Frances tool. +Please fill out one of the following forms based on your use of Frances. +Alternatively, you can send us an email. +

+ +

+

+ +

+ +
+ + + + diff --git a/frances/feedback/index.shtml b/frances/feedback/index.shtml new file mode 100644 index 0000000..3f00f76 --- /dev/null +++ b/frances/feedback/index.shtml @@ -0,0 +1,68 @@ + + + +
+ + + +

Feedback

+ +

+We would like to hear from users of the Frances tool. +Please fill out one of the following forms based on your use of Frances. +Alternatively, you can send us an email. +

+ + +

+

+

+

Frances Tool

+

+

+ + + + + + +
+ Student + + Teacher + + Other +
+

+ +

+

+

+

+

Frances (Code generator) Tool

+ +

+

+ + + + + + +
+ Student + + Teacher + + Other +
+

+ + + + +
+ + + + diff --git a/frances/frances-a/code_input-new.html b/frances/frances-a/code_input-new.html new file mode 100644 index 0000000..b2196c1 --- /dev/null +++ b/frances/frances-a/code_input-new.html @@ -0,0 +1,62 @@ +
+ + + + + + + + + +
 
Code:
Language:
File:
>
>  
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Legend

Block TypesEdge Types
 
    Loop Body Conditional Jump
    Loop Condition Unconditional Jump
    Self Loop(do-while) No Jump
    If Body 
    If Condition 
    Else Body 
+
+
diff --git a/frances/frances-a/code_input.html b/frances/frances-a/code_input.html new file mode 100644 index 0000000..a88ea29 --- /dev/null +++ b/frances/frances-a/code_input.html @@ -0,0 +1,62 @@ +
+ + + + + + + + + +
 
Code:
Language:
File:
>
>  
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Legend

Block TypesEdge Types
 
    Loop Body Conditional Jump
    Loop Condition Unconditional Jump
    Self Loop(do-while) No Jump
    If Body 
    If Condition 
    Else Body 
+
+
diff --git a/frances/frances-a/code_input_captcha.html b/frances/frances-a/code_input_captcha.html new file mode 100644 index 0000000..da4ca33 --- /dev/null +++ b/frances/frances-a/code_input_captcha.html @@ -0,0 +1,63 @@ +
+ + + + + + + + + + +
 
Code:
Language:
File:
>
>  
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Legend

Block TypesEdge Types
 
    Loop Body Conditional Jump
    Loop Condition Unconditional Jump
    Self Loop(do-while) No Jump
    If Body 
    If Condition 
    Else Body 
+
+
diff --git a/frances/frances-a/dash-wide.png b/frances/frances-a/dash-wide.png new file mode 100644 index 0000000..41d4671 Binary files /dev/null and b/frances/frances-a/dash-wide.png differ diff --git a/frances/frances-a/figures/example1.png b/frances/frances-a/figures/example1.png new file mode 100644 index 0000000..8ea5bfd Binary files /dev/null and b/frances/frances-a/figures/example1.png differ diff --git a/frances/frances-a/frances-a-redirect.html b/frances/frances-a/frances-a-redirect.html new file mode 100644 index 0000000..cf49e2f --- /dev/null +++ b/frances/frances-a/frances-a-redirect.html @@ -0,0 +1,8 @@ + + + Redirect + + + + + diff --git a/frances/frances-a/frances-a.php b/frances/frances-a/frances-a.php new file mode 100644 index 0000000..a124c9e --- /dev/null +++ b/frances/frances-a/frances-a.php @@ -0,0 +1,316 @@ + + + + + + +
+ +
+ + + + + + +
+
+
+ + + + + + + + + + + + +
 
Code:
Language:
+
+    + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 

Legend

Block Types
    Loop Body
    Loop Condition
    Self Loop(do-while)
    If Body
    If Condition
    Else Body
 
Edge Types
Conditional Jump
Unconditional Jump
No Jump
+
+
+
+
+
+
+
+
+ +
+ + + + + diff --git a/frances/frances-a/iframe-index.shtml b/frances/frances-a/iframe-index.shtml new file mode 100644 index 0000000..20a110b --- /dev/null +++ b/frances/frances-a/iframe-index.shtml @@ -0,0 +1,23 @@ + + + + + +
+ + + + + + +
+ + + + diff --git a/frances/frances-a/index-test.shtml b/frances/frances-a/index-test.shtml new file mode 100644 index 0000000..0e7c187 --- /dev/null +++ b/frances/frances-a/index-test.shtml @@ -0,0 +1,46 @@ + + + + + + +
+ + + + + +

-1

+ + + + +
+ + + + diff --git a/frances/frances-a/index.php b/frances/frances-a/index.php new file mode 100644 index 0000000..8738ddf --- /dev/null +++ b/frances/frances-a/index.php @@ -0,0 +1,323 @@ + + + + + + + +
+
+ + + + + + +
+
+
+ + + + + + + + + + +
 
Code:
Language:
+
+    + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 

Legend

Block Types
    Loop Body
    Loop Condition
    Self Loop(do-while)
    If Body
    If Condition
    Else Body
 
Edge Types
Conditional Jump
Unconditional Jump
No Jump
+
+
+
+
+
+
+
+
+ +
+ + + + + diff --git a/frances/frances-a/index2.php b/frances/frances-a/index2.php new file mode 100644 index 0000000..e892477 --- /dev/null +++ b/frances/frances-a/index2.php @@ -0,0 +1,317 @@ + + + + + + + +
+
+ + + + + + +
+
+
+ + + + + + + + + + +
 
Code:
Language:
+
+    + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 

Legend

Block Types
    Loop Body
    Loop Condition
    Self Loop(do-while)
    If Body
    If Condition
    Else Body
 
Edge Types
Conditional Jump
Unconditional Jump
No Jump
+
+
+
+
+
+
+
+
+ +
+ + + + + diff --git a/frances/frances-a/indexNocomp.php b/frances/frances-a/indexNocomp.php new file mode 100644 index 0000000..2deabb3 --- /dev/null +++ b/frances/frances-a/indexNocomp.php @@ -0,0 +1,317 @@ + + + + + + + +
+
+ + + + + + +
+
+
+ + + + + + + + + + +
 
Code:
Language:
+
+    + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 

Legend

Block Types
    Loop Body
    Loop Condition
    Self Loop(do-while)
    If Body
    If Condition
    Else Body
 
Edge Types
Conditional Jump
Unconditional Jump
No Jump
+
+
+
+
+
+
+
+
+ +
+ + + + + diff --git a/frances/frances-a/index_noie8.php b/frances/frances-a/index_noie8.php new file mode 100644 index 0000000..b62d96e --- /dev/null +++ b/frances/frances-a/index_noie8.php @@ -0,0 +1,316 @@ + + + + + + + +
+
+ + + + + + +
+
+
+ + + + + + + + + + + + +
 
Code:
Language:
+
+    + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 

Legend

Block Types
    Loop Body
    Loop Condition
    Self Loop(do-while)
    If Body
    If Condition
    Else Body
 
Edge Types
Conditional Jump
Unconditional Jump
No Jump
+
+
+
+
+
+
+
+
+ +
+ + + + + diff --git a/frances/frances-a/lessons/FrancesA_Lab_01_Intro.pdf b/frances/frances-a/lessons/FrancesA_Lab_01_Intro.pdf new file mode 100644 index 0000000..57e0926 Binary files /dev/null and b/frances/frances-a/lessons/FrancesA_Lab_01_Intro.pdf differ diff --git a/frances/frances-a/lessons/FrancesA_Lab_02_VarTypes.pdf b/frances/frances-a/lessons/FrancesA_Lab_02_VarTypes.pdf new file mode 100644 index 0000000..6d335f9 Binary files /dev/null and b/frances/frances-a/lessons/FrancesA_Lab_02_VarTypes.pdf differ diff --git a/frances/frances-a/lessons/FrancesA_Lab_03_Operands.pdf b/frances/frances-a/lessons/FrancesA_Lab_03_Operands.pdf new file mode 100644 index 0000000..b09766c Binary files /dev/null and b/frances/frances-a/lessons/FrancesA_Lab_03_Operands.pdf differ diff --git a/frances/frances-a/lessons/FrancesA_Lab_04_OpertationTypes.pdf b/frances/frances-a/lessons/FrancesA_Lab_04_OpertationTypes.pdf new file mode 100644 index 0000000..648f289 Binary files /dev/null and b/frances/frances-a/lessons/FrancesA_Lab_04_OpertationTypes.pdf differ diff --git a/frances/frances-a/lessons/FrancesA_Lab_05_AddressModes.pdf b/frances/frances-a/lessons/FrancesA_Lab_05_AddressModes.pdf new file mode 100644 index 0000000..7a1a16a Binary files /dev/null and b/frances/frances-a/lessons/FrancesA_Lab_05_AddressModes.pdf differ diff --git a/frances/frances-a/lessons/FrancesA_Lab_06_Flags.pdf b/frances/frances-a/lessons/FrancesA_Lab_06_Flags.pdf new file mode 100644 index 0000000..5a1eecf Binary files /dev/null and b/frances/frances-a/lessons/FrancesA_Lab_06_Flags.pdf differ diff --git a/frances/frances-a/lessons/index.shtml b/frances/frances-a/lessons/index.shtml new file mode 100644 index 0000000..2e3c4c8 --- /dev/null +++ b/frances/frances-a/lessons/index.shtml @@ -0,0 +1,32 @@ + + + + +
+ +

Lessons covering assembly and architecture using the Frances tool



+ +

+Lesson 1: Intro +

+

+Lesson 2: Variable Types +

+

+Lesson 3: Operands +

+

+Lesson 4: Operation Types +

+

+Lesson 5: Addressing Modes +

+

+Lesson 6: Flags +

+ +
+ + + + diff --git a/frances/frances-a/narrow.png b/frances/frances-a/narrow.png new file mode 100644 index 0000000..cdc911f Binary files /dev/null and b/frances/frances-a/narrow.png differ diff --git a/frances/frances-a/similar-tools.shtml b/frances/frances-a/similar-tools.shtml new file mode 100644 index 0000000..73d8418 --- /dev/null +++ b/frances/frances-a/similar-tools.shtml @@ -0,0 +1,35 @@ + + + +
+ + + +

Similar Control Flow Tools

+ +

+Here is a collection of control flow tools similar to Frances. +If you know of a tool not listed here, please let us know. +

+

+ + +
+ + + + diff --git a/frances/frances-a/solid-wide.png b/frances/frances-a/solid-wide.png new file mode 100644 index 0000000..2c004ef Binary files /dev/null and b/frances/frances-a/solid-wide.png differ diff --git a/frances/frances-a/two_pane.html b/frances/frances-a/two_pane.html new file mode 100644 index 0000000..d0d69b9 --- /dev/null +++ b/frances/frances-a/two_pane.html @@ -0,0 +1,22 @@ + + + Frances: Control flow graph generation + + + + + + + +
+ + + + diff --git a/frances/frances-a/web-int/index.shtml b/frances/frances-a/web-int/index.shtml new file mode 100644 index 0000000..de4ced2 --- /dev/null +++ b/frances/frances-a/web-int/index.shtml @@ -0,0 +1,60 @@ + + + +
+ + + +

: Easy Architecture Level Program Visualization

+ +

+

+(alternate link) +

+

+ + +

+

Take a quick survey
+

+ +
+ +

+If you find any problems, would like to see any features added, or just have general comments, please take our survey or email us at sondag@cs.iastate.edu. +We are very interested to hear who is using our tool and in what ways. +This will help us develop future versions of this tool. +

+ + + + + + + +

Features currently under construction

+

+ is an active project. +If there are any features you would like to see added, or if you find any bugs, please notify us. +In the future, we plan to release the source code as an open source project. +For now, please continue to use the web interface to the tool. +Our current work and future plans for this tool are the following: +

+ + +
+ + + + diff --git a/frances/frances/figures/clean.sh b/frances/frances/figures/clean.sh new file mode 100755 index 0000000..ffe8c26 --- /dev/null +++ b/frances/frances/figures/clean.sh @@ -0,0 +1,3 @@ +rm -f CFG* +rm -f codeFile* +rm -f errors* diff --git a/frances/frances/figures/default.png b/frances/frances/figures/default.png new file mode 100644 index 0000000..6a85408 Binary files /dev/null and b/frances/frances/figures/default.png differ diff --git a/frances/frances/figures/smaller-while.png b/frances/frances/figures/smaller-while.png new file mode 100644 index 0000000..e87a22d Binary files /dev/null and b/frances/frances/figures/smaller-while.png differ diff --git a/frances/frances/index.shtml b/frances/frances/index.shtml new file mode 100644 index 0000000..32fcc54 --- /dev/null +++ b/frances/frances/index.shtml @@ -0,0 +1,169 @@ + + + +
+ + + +

: A Tool For Understanding Code Generation

+ +

+Compiler and programming language implementation courses are integral parts of many computer science curricula. +However, the range of topics necessary to teach in such a course are difficult for students to understand and time consuming to cover. +In particular, code generation is a confusing topic for students unfamiliar with low level target languages. +We present Frances, a tool for helping students understand code generation and low level languages. +The key idea is to graphically illustrate the relationships between high level language constructs and low level (assembly) language code. +By illustrating these relationships, we take advantage of the students existing understanding of some high level language. +We have used Frances in a compiler design course and received highly positive feedback. +Students conveyed to us that Frances significantly helped them to understand the concepts necessary to implement code generation in a compiler project. +

+ + + + (x86) +(alt) +
+

+

+

(MIPS) +

+

+ + +

+

Take a quick survey
+

+--> + +
+ +
+ +

+ + + +
Example of Frances tool
Figure 1: Example usage of Frances tool. Left side shows user input code and legend. Right side shows example output.
+

+ +
+ +

+Lessons using the Frances tool are available: +Code generation lessons. +

+ + +

+If you have any comments, find any problems, +or would like to see any features +added, please give us feedback through one of the following +forms: + student, + teacher, + other. +Alternatively, feel free to +email us at sondag@iastate.edu. +Also, we are very interested to hear who is using our tool and in what ways. +This will help us develop future versions of this tool. +

+ +
+ +

Why did we develop ?

+

+ was developed originally for debugging as part of a larger framework. +After using this tool, it was clear that it was extremely helpful with understand assembly language +and control flow. +With this is mind, we aimed to develop this tool further with these ideas in mind. +Furthermore, a major goal was to make the user interface as simple as possible. +The main features of are: +

+To the best of our knowledge, similar-tools do not combine all of these. +

+ +
+
+ +

Uses

+

+ is currently being used for both research and in the classroom. +In the classroom, these uses include learning and understanding the following concepts: +

+

+ +
+ +
+

Tool Name

+

+We named the tool in honor of + +Frances E. Allen +. +She received the Turning award for pioneering contributions to the theory and +practice of optimizing compiler techniques that laid the foundation for modern +optimizing compilers and automatic parallel execution. + +


+
    +
  1. A large part of this text is taken from our latest technical report and our SIGCSE '10 paper. +
+ + +
+ + + + diff --git a/frances/frances/lessons/Lab_01_Intro.pdf b/frances/frances/lessons/Lab_01_Intro.pdf new file mode 100644 index 0000000..0795998 Binary files /dev/null and b/frances/frances/lessons/Lab_01_Intro.pdf differ diff --git a/frances/frances/lessons/Lab_02_Expressions.pdf b/frances/frances/lessons/Lab_02_Expressions.pdf new file mode 100644 index 0000000..3d3b316 Binary files /dev/null and b/frances/frances/lessons/Lab_02_Expressions.pdf differ diff --git a/frances/frances/lessons/Lab_03_Arrays.pdf b/frances/frances/lessons/Lab_03_Arrays.pdf new file mode 100644 index 0000000..17cc182 Binary files /dev/null and b/frances/frances/lessons/Lab_03_Arrays.pdf differ diff --git a/frances/frances/lessons/Lab_04_Decision.pdf b/frances/frances/lessons/Lab_04_Decision.pdf new file mode 100644 index 0000000..7d80ff4 Binary files /dev/null and b/frances/frances/lessons/Lab_04_Decision.pdf differ diff --git a/frances/frances/lessons/Lab_05_Loops.pdf b/frances/frances/lessons/Lab_05_Loops.pdf new file mode 100644 index 0000000..4a7bd50 Binary files /dev/null and b/frances/frances/lessons/Lab_05_Loops.pdf differ diff --git a/frances/frances/lessons/Lab_06_Nested.pdf b/frances/frances/lessons/Lab_06_Nested.pdf new file mode 100644 index 0000000..4a2f95e Binary files /dev/null and b/frances/frances/lessons/Lab_06_Nested.pdf differ diff --git a/frances/frances/lessons/Lab_07_Functions.pdf b/frances/frances/lessons/Lab_07_Functions.pdf new file mode 100644 index 0000000..eb9b193 Binary files /dev/null and b/frances/frances/lessons/Lab_07_Functions.pdf differ diff --git a/frances/frances/lessons/index.shtml b/frances/frances/lessons/index.shtml new file mode 100644 index 0000000..70be90d --- /dev/null +++ b/frances/frances/lessons/index.shtml @@ -0,0 +1,35 @@ + + + + +
+ +

Lessons (covering control flow, assembly, and code generation) using the Frances tool



+ +

+Lesson 1: Intro +

+

+Lesson 2: Expressions +

+

+Lesson 3: Arrays +

+

+Lesson 4: Decisions +

+

+Lesson 5: Loops +

+

+Lesson 6: Nested Structures +

+

+Lesson 7: Functions +

+ +
+ + + + diff --git a/frances/frances/web-int/index.shtml b/frances/frances/web-int/index.shtml new file mode 100644 index 0000000..f4fffc2 --- /dev/null +++ b/frances/frances/web-int/index.shtml @@ -0,0 +1,93 @@ + + + +
+ + + +

: A Tool For Understanding Code Generation

+ +

+

(x86 AT&T) +(alternate link) +

+

+

+

(MIPS)(experimental) +

+

+

+

(x86 Intel)(experimental) +

+

+ + +

+

Take a quick survey
+

+ +
+ +

+If you find any problems, would like to see any features added, or just have general comments, please take our survey or email us at sondag@cs.iastate.edu. +We are very interested to hear who is using our tool and in what ways. +This will help us develop future versions of this tool. +

+ + + + + + + +

Features currently under construction

+

+ is an active project. +If there are any features you would like to see added, or if you find any bugs, please notify us. +In the future, we plan to release the source code as an open source project. +For now, please continue to use the web interface to the tool. +Our current work and future plans for this tool are the following: +

+ + +
+ + + + diff --git a/nu/old-website/ISUbecoming.gif b/frances/includes/ISUbecoming.gif similarity index 100% rename from nu/old-website/ISUbecoming.gif rename to frances/includes/ISUbecoming.gif diff --git a/frances/includes/bottombar.html b/frances/includes/bottombar.html new file mode 100644 index 0000000..6dd34b5 --- /dev/null +++ b/frances/includes/bottombar.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + +
+ + + + diff --git a/nu/old-website/cc9.gif b/frances/includes/cc9.gif similarity index 100% rename from nu/old-website/cc9.gif rename to frances/includes/cc9.gif diff --git a/frances/includes/isu200.gif b/frances/includes/isu200.gif new file mode 100644 index 0000000..b31bc51 Binary files /dev/null and b/frances/includes/isu200.gif differ diff --git a/frances/includes/isuP.css b/frances/includes/isuP.css new file mode 100644 index 0000000..42ffa3b --- /dev/null +++ b/frances/includes/isuP.css @@ -0,0 +1,450 @@ +/* UNIVERSAL SETTINGS */ + +body { + margin: 0; + padding: 0; + color: #000; + background: #fff; + font-size: 76%; + font-family: arial, helvetica, sans-serif; } + +p, td, ul, ol, ul, li, dl, dt, dd { + font-size: 100%; + font-family: arial, helvetica, sans-serif; } + +a:link { color: #006; } +a:visited { color: #33C; } + +.hide { display: none; } +.news { padding: 8px; } + +.clear { + clear: both; + font-size: 0; +} + +form { margin: 0; } + +img { border: none; } + +#container { + margin: auto; /* centers whole on pg */ + border: 1px solid #666; + border-top: 0; /* removes opera top margin */ + width: 1202px; /* need to hold banner in */ + voice-family: "\"}\""; + voice-family: inherit; + width: 1200px; +} body>#container { /* opera width */ + width:1200px; +} + +td { + padding: 0; + margin: 0; + border-width: 0; + vertical-align: top; +} + +/* MAIN TABLE BASICS */ + +#main { + width: 1200px; + margin: 0; + padding: 0; + background: #fff; + font-size: 100%; + line-height: 1.3em; + } + +/* TITLEBAR */ +#titlebar { + background: #fff; + border-top: 1px solid #666; + border-bottom: 1px solid #666; + padding: .3em 0 .3em 15px; + } + +#titlebar h1, #titlebar h3 { + color: #996; + padding: 0; + margin: 0; +} + +#titlebar h1 { + font-size: 18pt; + line-height: 1.1em; /* closes subhead-head gap */ + } + +#titlebar a { + color: #996; + text-decoration: none; + } + +#titlebar h3 { /* top-level subhead */ + font-family: verdana, arial, sans-serif; /* verdana larger */ + font-size: 9pt; +} + + +/* TWO COL FORMAT */ +#a2 { width: 150px; border-right: 1px solid #666; } +#b2 { width: 1050px; } + +/* THREE COL FORMAT */ +#a3 { width: 150px; } +#b3 { width: 1049px; } +#c3 { width: 1px; } +#a3, #b3 { border-right: 1px solid #666; } + + +/* FOUR COL FORMAT */ +#a4, #b4, #c4 { + width: 187px; + border-right: 1px solid #666; +} +#d4 { width: 189px; } + +/* VERTICAL NAVIGATION LINKS */ + +#mainlinks { + margin-bottom: 1em; + line-height: 1.4; +} + +#mainlinks ul { + list-style: none; + margin: 0; /* keeps left link boxes snug */ + padding: 0; /* ditto */ +} + +#mainlinks li { + border-bottom: 1px solid #ccc; +} + +#mainlinks li.divider { + border-bottom: 5px solid #c00; +} + +#mainlinks li a { + display: block; /* lines go all the way */ + padding: 1px 0.5em 1px 15px; + text-decoration: none; +} + +#mainlinks li a:visited { + color: #33C; +} + +#mainlinks li a:hover { + background: #cc9; + color: #c00; +} + +#mainlinks .linkhead h3 { + border-bottom: 1px solid #ccc; + color: #666; + font-family: verdana, arial, sans-serif; + font-size: 100%; + font-weight: 700; + margin: 0; + padding: .5em 15px 0 15px; +} + +/* HEADLINE STYLES */ +h2 +{ + color: #c00; + border-bottom: solid 1px #c00; + padding-bottom: 5px; +} + + +h2.colorbar, h2.bar { + background: #c00; + color: #fff; + font-family: verdana, arial, sans-serif; + font-size: 100%; + margin: 0; /* closes top gap */ + padding: .25em 0 .25em 15px; + } + +/* MAIN TEXT */ + +.maintext { + padding: .5em 1em .5em 15px; +} + +.maintext h2 { + font-size: 120%; + font-family: verdana, arial, sans-serif; + margin: 0; + padding: 0 0 .25em 0; +} + +.maintext h3, .maintext h4 { + font-family: verdana, arial, sans-serif; + font-size: 100%; + margin: 0; /* closes top gap */ + padding: .5em 0 0 0; +} + +.maintext p { + margin: 0; + padding: 0 0 .5em 0; + } + +.maintext ul, .maintext ol {/* moves lists flush left */ + margin: 0; + padding: 0 0 .5em 15px; +} + +.maintext ol { + padding-left: 20px; /* alpha wider than bullets */ } + +/* HEADS W BACKGROUND BAR */ + +h2.bar { + background: #c00; + color: #fff; + font-size: 100%; + font-family: verdana, arial, sans-serif; + margin: 0; /* closes top gap */ + padding: .25em 0 .25em 15px; +} + +h2.bar a { + color: #fff !important; + text-decoration: none !important; +} + +h2.bar a:hover { + color: #cc9 !important; +} + + +/* CUTLINE */ + +.cutline { + font-size: x-small; + margin: 0; + padding: .5em 1em .5em 15px; +} + +/* HIGHLIGHTS */ + +#hilite { /* highlight for bottom right */ + vertical-align: bottom; +} + +#hilite2 { /* khaki bar along highlight */ + background: #fff url(http://www.cs.iastate.edu/~sapha/includes/cc9.gif) left +repeat-y; + border-top: 1px solid #666; + margin: 0; + padding: .5em .5em .5em 2em; +} + + +/* FOOTER */ + +#footer { + border-top: 2px solid #c00; + font-size: 85%; + line-height: 1.1em; + padding: 1em 15px; +} + +#copyright p { + margin: 0; + line-height: 1.3em; +} + +#pda { + padding: 1em 1em 0 15px; +} + +#pda a:hover { + color: #c00; +} + + +#pda { + padding: 1em 1em 0 15px; +} + +#pda a:hover { + color: #c00; +} + +/* NON-BULLETED LISTS */ +ul.sublist { + list-style-type: none; + padding: 0; + margin: 0 .5em .5em 0; +} + +.sublist li { + padding-left: 15px; text-indent: -15px; +} + +#main li a:hover { + color: #c00; +} + +/* FOUR COLUMN NO LEFT NAV */ + +#a4, #b4, #c4 { + width: 187px; + border-right: 1px solid #666; + padding-bottom: .5em; +} + +#d4 { + width: 189px; +} + +.mainphoto { + background: #666; /* fills in color between cutline and pic */ +} + +.mainphoto p { + background: #666; + color: #fff; + margin: 0; + padding: .3em 1em .4em 15px; +} + + +/* BANNER AND INDEX */ +#masthead, #mastheadni { + background: #c00; + display: block; + font-family: arial,verdana,sans-serif; + margin: 0; + padding: 0; + width: 1200px; +} + +#mastheadni { + padding: 5px 0 5px 0; +} + +#nameplate { + width: 221px; + background: #c00; + float: left; + padding: 6px 6px 0 15px; +} + +#index { + background: #996; + float: right; + margin: 0; + padding: 0 0 0 0; + white-space: nowrap; + width: 418px; +} + +#indexlabel, a.abc:link, a.abc:visited { + float: left; + margin: 0; + text-decoration: none; + color: #fff; + font-size: 90%; + } + +#indexlabel { + background: #000 url(http://www.cs.iastate.edu/~sapha/includes/llcurve.gif) bottom + left no-repeat; + width: 42px; + padding: 2px 2px 2px 5px; + letter-spacing: 1px; + } + +a#indexlabel:hover, a#indexlabel:focus { + text-decoration: underline; + } + +a.abc:link, a.abc:visited { + background: #996; + display: block; + width: 14px; + padding: 2px 0; + text-align: center; + } + +a.abc:hover, a.abc:focus { + background: #c00; + } + +#a { margin-left: 3px; } + +#search { + clear: right; /* prevents drift into index */ + color: #fff; + text-align: right; + margin: 0; + padding: 3px 5px 5px 5px; + white-space: nowrap; + background: #c00; +} + +#search a { + color: #fff; + text-decoration: none; +} + +#search a:hover { + text-decoration: underline; +} + +#search input { + font-size: xx-small; +} + +p.question{ + font-weight: bold; +} + +h1 { + font-size: 16pt; + line-height: 1.0em; /* closes subhead-head gap */ +} + +ul.features { + line-height: 1.2em; +} + +li.features { + margin-top: 1.0em; + max-width: 480px; + vertical-align: top; + margin: 10px 10px 10px 10px; + position: relative; + list-style-position: outside; + top: -.5em; +} + +table.figure { + text-align: center; + margin-left: auto; + margin-right: auto; +} + +td.fig_graphic { + text-align: center; +} + +td.fig_caption { + text-align: center; + width: 400px; +} + +.alignleft { +float: left; +} + +.alignright { +float: right; +} diff --git a/nu/old-website/llcurve.gif b/frances/includes/llcurve.gif similarity index 100% rename from nu/old-website/llcurve.gif rename to frances/includes/llcurve.gif diff --git a/frances/includes/topbar-compact.html b/frances/includes/topbar-compact.html new file mode 100644 index 0000000..b8a7c34 --- /dev/null +++ b/frances/includes/topbar-compact.html @@ -0,0 +1,70 @@ + + + + + + + +Frances: Tools for Understanding Programming Languages, Compiler Design, Assembly Language, and Computer Architecture + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + Iowa State University +
+ + + + +
+ + +
+

Frances: A tool for learning code generation and execution

+ +

+Home | +Frances | +Users Guide | +Lessons | +Publications +

+ +
+ + diff --git a/frances/includes/topbar.html b/frances/includes/topbar.html new file mode 100644 index 0000000..9d10cd3 --- /dev/null +++ b/frances/includes/topbar.html @@ -0,0 +1,159 @@ + + + + + + + +Frances: Tools for Understanding Programming Languages, Compiler Design, Assembly Language, and Computer Architecture + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + Iowa State University +
+ + + + +
+ + +
+

Frances: A tool for learning code generation and execution

+

+

+Home | +Frances | +Users Guide | +Lessons | +Publications +

+
+ +
+ + + diff --git a/frances/index.shtml b/frances/index.shtml new file mode 100644 index 0000000..17f4ce7 --- /dev/null +++ b/frances/index.shtml @@ -0,0 +1,107 @@ + + + + + diff --git a/frances/lessons.shtml b/frances/lessons.shtml new file mode 100644 index 0000000..65f5f61 --- /dev/null +++ b/frances/lessons.shtml @@ -0,0 +1,23 @@ + + + + + + diff --git a/frances/narrow.png b/frances/narrow.png new file mode 100755 index 0000000..cdc911f Binary files /dev/null and b/frances/narrow.png differ diff --git a/frances/papers/index.shtml b/frances/papers/index.shtml new file mode 100644 index 0000000..33df870 --- /dev/null +++ b/frances/papers/index.shtml @@ -0,0 +1,69 @@ + + + + + + diff --git a/frances/people/index.shtml b/frances/people/index.shtml new file mode 100644 index 0000000..987d8bb --- /dev/null +++ b/frances/people/index.shtml @@ -0,0 +1,28 @@ + + + + + + diff --git a/frances/pictures/clean.sh b/frances/pictures/clean.sh new file mode 100755 index 0000000..ffe8c26 --- /dev/null +++ b/frances/pictures/clean.sh @@ -0,0 +1,3 @@ +rm -f CFG* +rm -f codeFile* +rm -f errors* diff --git a/frances/similar-tools.shtml b/frances/similar-tools.shtml new file mode 100644 index 0000000..73d8418 --- /dev/null +++ b/frances/similar-tools.shtml @@ -0,0 +1,35 @@ + + + + + diff --git a/frances/solid-wide.png b/frances/solid-wide.png new file mode 100755 index 0000000..2c004ef Binary files /dev/null and b/frances/solid-wide.png differ diff --git a/frances/two_pane.html b/frances/two_pane.html new file mode 100755 index 0000000..d0d69b9 --- /dev/null +++ b/frances/two_pane.html @@ -0,0 +1,22 @@ + + + Frances: Control flow graph generation + + +
+ + + + + + + + + +
+

News

+

+December 2010: +Paper +on Frances-A tool accepted for +CCSC 2011. + +

+

+September 2010: +Initial release of +Frances-A +tool. +

+

+March 2010: +Support added for +MIPS assembly and +x86 intel syntax. +

+

+January 2010: +Tutorial +on Frances tool accepted for +CCSC 2010. +

+

+October 2009: +Paper +on Frances tool accepted for +SIGCSE 2010. +

+

+August 2009: +Technical Report: + +Frances: A Tool For Understanding Code Generation +, ISU, 2009. +

+
+ +
+
+ + +

About

+ +

+Frances1 is a web-based visualization tool for code +generation and execution. +It graphically illustrates key differences between familiar +high-level languages and unfamiliar low-level languages and also +illustrates how familiar high-level programs behave +on real architectures. +Key to this tool is the use of a simple web +interface that requires no setup, easing course adoption hurdles. +We also include several features that further enhance its +usefulness in a classroom setting. +These features include graphical relationships between high-level code and +machine code, clearly illustrated step by step machine state transitions, +color coding to make instruction behavior clear, and illustration of +pointers. +

+ +

+Frances has already been used in classroom settings where it showed benefits. +Most notably, in our experimental setting, students with no computer +architecture course experience were able to complete lessons using +Frances with no guidance. +

+ +

How to Use?

+ +

You can start using Frances by just clicking the link on the +left that will take you to our web-based tool. +No installation is necessary. When you follow these links you should +see an interface that looks similar to the figure below. +We have also made some lessons available that make use of Frances. +

+ +

+ + + +
+

+ +Example of Frances tool + +

+
+

Figure 1: Example usage of Frances. +Left side shows user input code and legend. +Middle part shows the corresponding assembly code. +Right side shows the machine state. +

+
+

+ +

Main Features

+

+We have designed Frances to help students understand low-level +languages, language translation (code generation), and computer architecture by +showing how familiar high-level code maps to low-level code and how that +low-level code behaves on a target architecture. +To enable these goals, Frances +

    +
  • presents a visualization of the low-level code that maintains actual + target code ordering,
  • +
  • differentiates between types of run-time paths in the low-level code,
  • +
  • color codes instruction blocks by their high-level control constructs,
  • +
  • shows how each individual machine instruction impacts the machine state,
  • +
  • displays the components of the system state in a logical organization, + illustrating several important concepts,
  • +
  • allows for both forward and backward stepping through program steps, + which allows students to revisit complicated steps and processes,
  • +
  • color codes individual parts of the machine state making the + impact of each instruction clear, and
  • +
  • clearly illustrates difficult concepts surrounding addresses (e.g. + pointers and stack) using color coded arrows. +
+

+ +

Contact and Feedback

+ +

+If you find any problems, would like to see any features added, +or just have general comments, please email us at +frances@iastate.edu. +Also, we are very interested to hear who is using our tool and +in what ways. This will help us develop future versions of this tool. +

+ +

+1 We named the tool Frances in honor of + +Frances E. Allen. +She received the Turning award for pioneering contributions to the theory and +practice of optimizing compiler techniques that laid the foundation for modern +optimizing compilers and automatic parallel execution. + +

+ +
+
+ +

Lessons using the Frances tools



+ + +

+Architecture lessons +

+ +

+Code generation lessons +

+ + +
+ +
+
+ +

Publications Related to the Frances Project


+ +

Refereed Conference Papers


+ +

+Tyler Sondag, +Kian L. Pokorny, +and +Hridesh Rajan +"Frances-A: A Tool for Architecture Level Program Visualization," +Journal of Computing Sciences at Small Colleges, Consortium for Computing Sciences in Colleges -- Central Plains, +April 2011 +

+ +

+Tyler Sondag, +Kian L. Pokorny, +and +Hridesh Rajan +"Frances: A Tool For Understanding Code Generation," +SIGCSE '10: The 41st ACM Technical Symposium on Computer Science Education, Milwaukee, WI, March 2010 +

+ + +

+

Refereed Tutorials


+ +

+Kian L. Pokorny, +Tyler Sondag, +and +Hridesh Rajan, +"Connecting High-Level Programming Constructs to Assembly Language Using Frances +," J. Comput. Small Coll., 25(5):282–283, 2010. +

+ +

+

Technical Reports


+ +

+Tyler Sondag, +Kian L. Pokorny +and +Hridesh Rajan, +"Frances-A: A Tool For Easy Realistic Architecture Level Program Visualization". +Technical Report 10-08, Computer Science, Iowa State University, September 2010 +[PDF].

+

+ +

+Tyler Sondag, +Kian L. Pokorny +and +Hridesh Rajan, +"Frances: A Tool For Understanding Code Generation". Technical Report 09-21, Computer Science, Iowa State University, August 2009 +[PDF].

+

+ +
+ +
+
+

Hridesh Rajan

+ + +
+

Kian Pokorny

+ + +
+

Tyler Sondag

+ + +
+ +
+ + +
+
+ + + +

Similar Control Flow Tools

+ +

+Here is a collection of control flow tools similar to Frances. +If you know of a tool not listed here, please let us know. +

    +
  • ICD-C: Gives colored basic blocks annotated with source code in a standard graph format
    + Our tool differs in the way blocks are layed out. + We display blocks in the same way they are layed out by a code generator. + Also, our blocks are annotated with assembly code. + We do this to help understand the code generation process. +
  • Avora: Gives shaped nodes to represent procedure entry points, etc. in a standard graph format
    + Our tool again differs in the way blocks are layed out. + We also perform a very different graph coloring based on what control structures blocks are a part of. + Finally, we annotate blocks with code rather than addresses. +
  • SUIF +
  • aiSee: Is a very powerful tool that created a wide range of graphs. + One such example is a control flow graph. + However, graphs are shown similar to a flow chart and nodes are annotated with source code. +
+

+ + +
+ +
+ + + + +
+ + + + diff --git a/frances/user-guide.shtml b/frances/user-guide.shtml new file mode 100644 index 0000000..38aefe8 --- /dev/null +++ b/frances/user-guide.shtml @@ -0,0 +1,21 @@ + + + + +
+ +

User guide



+ +

+For a temporary user guide, see +Frances lesson 1. +

+ + + + +
+ + + + diff --git a/golok/coq_golok.v b/golok/coq_golok.v new file mode 100644 index 0000000..dbadc55 --- /dev/null +++ b/golok/coq_golok.v @@ -0,0 +1,1770 @@ +Require Export List. +Require Export SfLib. +Require Export Smallstep. +Require Export Basics. +Extraction Language Scheme. + +(** To define state as a behavioral automata, it suffices to represent the identifier which is the name of the state. *) +Inductive state : Type := + | st : id -> state. + +(**States of Behavioral Automata which is the set of names of the states*) +Definition states := list state. + + +Hypothesis Aeq_dec_state : forall A A1 : state , { A= A1} + {A <> A1}. + +(**Initial states of Behavioral Automata which is the set of names of the initial states*) +Definition initial_states := list state. + + +(**It suffices to check that initial state or final state are the memebr of states*) +Fixpoint isMem_states (s:state) (P: states ) : bool := + match P with + | nil => false + | (s1 :: S_list) => match Aeq_dec_state s s1 with + | left _ => true + | right _ => isMem_states s (S_list) + end +end. + +Extraction isMem_states. + + +Fixpoint remove_one_state (s:state) (P:states) : states := + match P with + | nil => nil + | s1::S_list => if (Aeq_dec_state s1 s) then S_list else s1::(remove_one_state s1 S_list) + end. + +Extraction remove_one_state. + +(** It checks that initial states are the subset of states or final states are the subste of states*) +Fixpoint isSubset_of_states (s:states) (s': states) : bool := + match s with + | nil => true + | s1::S_list => if (isMem_states s1 s') then (isSubset_of_states S_list (remove_one_state s1 s')) else false + end. + +Extraction isSubset_of_states. + +(**Final states of Behavioral Automata which is the set of names of the final states*) +Definition final_states := list state. + +(*To define event in the automaton, it suffices to represent the identifier which is the name of the event or ε which represents no-event*) +Inductive event : Type := + | ε : event + | ev : id -> event. + +(** Events in Behavioral Automata is the set of names of the events*) +Definition events := list event . + +Hypothesis Aeq_dec_set_of_event : forall A A1 : events , { A= A1} + {A <> A1}. +Hypothesis Aeq_dec_event : forall A A1 : event , { A= A1} + {A <> A1}. + +Fixpoint isMem_events (a:event) (P: events) : bool := + match P with + | nil => false + | B :: Bl => match Aeq_dec_event a B with + | left _ => true + | right _ => isMem_events a Bl + end +end. + +Extraction isMem_events. + + +Fixpoint remove_one_event (v:event) (s:events) : events := + match s with + | [] => [] + | h::t => if (Aeq_dec_event h v) then t else h::(remove_one_event v t) + end. + +Extraction remove_one_event. + + +Fixpoint isSubset_of_events (s1:events) (s2: events) : bool := + match s1 with + | nil => true + | h::t => if (isMem_events h s2) then (isSubset_of_events t (remove_one_event h s2)) else false + end. + +Extraction isSubset_of_events. + +(** There is only one kind of initial transition which represents the pair (E, qi) ((prod events initial_states)) *) +Inductive initial_transition : Type := + | Δi : (prod events initial_states) -> initial_transition. + +Hypothesis Aeq_dec_initial_transition : forall A A1 : initial_transition, { A= A1} + {A <> A1}. + + +Inductive isSubset_initial_transition (a:initial_transition) (P: initial_transition ) : bool -> Prop := + | mem_of_Δi : forall Sin E e1 s1 , + P = Δi (E , Sin) -> + a = Δi ( [e1], [s1] ) -> + isSubset_of_events [e1] E = true -> + isSubset_of_states [s1] Sin = true -> + isSubset_initial_transition a P true. + + +(** There is only one kind of final transition which represents the pair (qf, E) (((prod final_states events))) *) +Inductive final_transition :Type := + | Δf : ((prod final_states events)) -> final_transition. + +Hypothesis Aeq_dec_final_transition : forall A A1 : final_transition, { A= A1} + {A <> A1}. + +Inductive isSubset_final_transition (a:final_transition) (P: final_transition) : bool -> Prop := + | mem_of_Δf : forall S1 E1 Sf E , + P = Δf ( Sf, E) -> + isSubset_of_events [E1] E = true -> + isSubset_of_states [S1] Sf = true -> + a = Δf ([S1], [E1]) -> + isSubset_final_transition a P true. + +(** There is only one kind of pair of states in behavioral automaton which represents the pair (qi, qf) ((prod initial_states final_states ))*) +Inductive pair_states : Type := + | Qi_Qf : (prod initial_states final_states ) -> pair_states. + +Hypothesis Aeq_dec_pair_states : forall A A1 : pair_states, { A= A1} + {A <> A1}. + +Inductive isSubset_pair_states (a:pair_states) (P: pair_states ) : bool -> Prop := + | mem_of_pair_states : forall Sin Sf si sf, + P = Qi_Qf ( Sin, Sf) -> + isSubset_of_states si Sin = true-> + isSubset_of_states sf Sf = true -> + a = Qi_Qf (si, sf) -> + isSubset_pair_states a P true. + +(** There is only one kind of transition relation that represents its initial transition relation (initial_transition) , +pair of states (pair_states) and final transition relation (final_transition) *) +Inductive delta : Type := + | Δ : initial_transition -> pair_states -> final_transition -> delta. + +Inductive delta_subset (d :delta) (D : delta) : bool -> Prop := + | Δ_subset : forall E Sin Sf si sf e1 e2, + D = Δ ( Δi (E , Sin)) (Qi_Qf (Sin, Sf)) (Δf ( Sf, E)) -> + isSubset_of_events e1 E = true -> + isSubset_of_events e2 E = true -> + isSubset_of_states si Sin = true-> + isSubset_of_states sf Sf = true -> + isSubset_initial_transition (Δi (e1, si) ) (Δi (E , Sin) ) true -> + isSubset_final_transition (Δf (sf, e2)) (Δf ( Sf, E)) true -> + isSubset_pair_states (Qi_Qf (si, sf)) (Qi_Qf (Sin, Sf)) true -> + d = Δ ( Δi (e1 , si)) (Qi_Qf (si, sf)) (Δf (sf, e2) ) -> + delta_subset d D true. + +(**Behavioral Automaton*) +(** There are only one kind of behavioral automaton that represent its states (states), +initial states (initial_states), final states (final_states), transition relation (delta) and events (events). *) +Inductive BA :Type := +| A : states -> initial_states -> final_states -> delta -> events -> BA. + + +(**DME *) +Definition x : id := Id 0. +Definition y : id := Id 1. +Definition z : id := Id 2. +Definition a : id := Id 3. +Definition b : id := Id 4. +Definition c : id := Id 5. +Definition d : id := Id 6. +Definition e' : id := Id 7. +(**Start state of DME protocol*) +Definition Start : state := st x. +(**Idle state of DME protocol*) +Definition Idle : state := st y. +(**Ncs state of DME protocol*) +Definition Ncs : state := st z. +(**Cs state of DME protocol*) +Definition Cs : state := st a. +(**token event of DME protocol*) +Definition token : event:= ev b. +(**choose event of DME protocol*) +Definition choose : event := ev c. +(**into state of DME protocol*) +Definition into : event := ev d. + +(**SND*) +(** Automaton SND represents its states [Start ; Idle] , initial state [Start], final state [Idle], transition relation +{ ([ ε ] , [Start] ) U ([Start] , [Idle]) U ([Idle] , [token] ) } and events [ε ; token].*) +Definition SND : BA := A + [Start ; Idle ] + [Start ] + [Idle ] + (Δ ( Δi ([ ε ] , [Start] )) (Qi_Qf ([Start] , [Idle])) (Δf ([Idle] , [token] ))) + [ε ; token]. + +Extraction SND. + +(**RCV*) +(** Automaton RCV represents its states [ [Idle ; Ncs ] , initial state [Idle], final state [Ncs], transition relation +{ ([ token ] , [Idle] ) U ([Idle] , [Ncs]) U ([Ncs] , [choose] ) } and events [token ; choose].*) +Definition RCV : BA := A + [Idle ; Ncs ] + [Idle] + [Ncs ] + (Δ ( Δi ([ token ] , [Idle] )) (Qi_Qf ([Idle] , [Ncs ])) (Δf ([Ncs] , [choose]))) + [token ; choose] . + +(**PASS*) +(** Automaton PASS represents its states [ [Ncs ; Idle ] , initial state [Ncs], final state [Idle], transition relation +{ ([ choose ] , [Ncs] ) U ([Ncs] , [Idle]) U ([Idle] , [token] ) } and events [choose ; token].*) +Definition PASS : BA := A + [Ncs ; Idle ] + [Ncs ] + [Idle ] + (Δ ( Δi ([choose ] , [Ncs ])) (Qi_Qf ([Ncs] , [Idle] )) (Δf ([Idle ] , [token] ))) + [choose ; token ]. + +(**ENTER*) +(** Automaton ENTER represents its states [ [Ncs ; Cs ] , initial state [Ncs], final state [Cs], transition relation +{ ([ choose ] , [Ncs] ) U ([Ncs] , [Cs]) U ([Cs] , [into] ) } and events [choose ; into].*) +Definition ENTER : BA := A + [Ncs ; Cs] + [Ncs ] + [Cs ] + (Δ ( Δi ([ choose ] , [Ncs] )) (Qi_Qf ([Ncs] , [Cs] )) (Δf ([Cs], [into] ))) + [choose ; into] . + +(**LEAVE*) +(** Automaton LEAVE represents its states [ [Cs ; Idle ] , initial state [Cs], final state [Idle], transition relation +{ ([ into ] , [Cs] ) U ([Cs] , [Idle]) U ([Idle] , [token] ) } and events [into ; token].*) +Definition LEAVE : BA := A + [Cs ; Idle ] + [Cs ] + [Idle ] + (Δ ( Δi ([ into ] , [Cs])) (Qi_Qf ([Cs] , [Idle])) (Δf ([Idle], [token] ))) + [into ; token ] . + +(**DINING PHILOSOPHERS*) +Definition a' : id := Id 0. +Definition b' : id := Id 1. +Definition c' : id := Id 2. +Definition d' : id := Id 3. +Definition e'' : id := Id 4. +Definition f' : id := Id 5. +Definition g' : id := Id 6. +Definition h' : id := Id 7. +Definition i' : id := Id 8. +Definition j' : id := Id 9. +Definition k' : id := Id 10. +(** NotEating state of Dinning Philospher*) +Definition NotEating : state := st a'. +(** WaitLeft state of Dinning Philospher*) +Definition WaitLeft : state := st b'. +(** WaitRight state of Dinning Philospher*) +Definition WaitRight : state := st c'. +(** Eat state of Dinning Philospher*) +Definition Eat : state := st d'. +(** ask_left event of Dinning Philospher*) +Definition ask_left : event := ev e''. +(** left_free event of Dinning Philospher*) +Definition left_free : event := ev f'. +(** left_taken event of Dinning Philospher*) +Definition left_taken : event := ev g'. +(** ask_right event of Dinning Philospher*) +Definition ask_right : event := ev h'. +(** right_free event of Dinning Philospher*) +Definition right_free : event := ev i'. +(** right_taken event of Dinning Philospher*) +Definition right_taken : event := ev j'. +(** rel_forks event of Dinning Philospher*) +Definition rel_forks : event := ev k'. + +(**LFT*) +Definition LFT : BA := A + [NotEating ; WaitLeft ] + [NotEating ] + [WaitLeft ] + (Δ ( Δi ([ ε ] , [NotEating ])) (Qi_Qf ([NotEating ] , [WaitLeft ])) (Δf ([WaitLeft ], [ask_left ]))) + [ε ; ask_left ]. + +(**LFT_FREE_NE*) +Definition LFT_FREE_NE : BA := A + [NotEating ] + [NotEating ] + [NotEating ] + (Δ ( Δi ([ ask_left ] , [NotEating ])) (Qi_Qf ([NotEating] , [NotEating ])) (Δf ([NotEating ], [left_free ]))) + [ask_left ; left_free ]. + +(**LFT_FREE_WL*) +Definition LFT_FREE_WL : BA := A + [WaitLeft ] + [ WaitLeft ] + [WaitLeft ] + (Δ ( Δi ([ ask_left ] , [WaitLeft ])) (Qi_Qf ([WaitLeft ] , [WaitLeft ])) (Δf ([WaitLeft ], [left_free ]))) + [ask_left ; left_free ]. + +(**LFT_BUSY_WR*) +Definition LFT_BUSY_WR : BA := A + [WaitRight ] + [WaitRight] + [WaitRight ] + (Δ ( Δi ([ ask_left ] , [WaitRight] )) (Qi_Qf ([WaitRight] , [WaitRight ] )) (Δf ([WaitRight ], [left_taken]))) + [ask_left; left_taken ]. + +(**LFT_BUSY_EAT*) +Definition LFT_BUSY_EAT : BA := A + [Eat ] + [ Eat ] + [Eat ] + (Δ ( Δi ([ask_left ] , [ Eat ])) (Qi_Qf ([Eat ] , [Eat] )) (Δf ([Eat], [left_taken ]))) + [ask_left ; left_taken ]. + +(**LFT_REASK*) +Definition LFT_REASK : BA := A + [WaitLeft] + [WaitLeft ] + [WaitLeft ] + (Δ ( Δi ([ left_taken ] , [WaitLeft ])) (Qi_Qf ([WaitLeft ] , [WaitLeft ])) (Δf ([WaitLeft ], [ask_left ]))) + [left_taken ;ask_left ]. + +(**RIGHT*) +Definition RIGHT : BA := A + [WaitLeft ; WaitRight ] + [WaitLeft ] + [WaitRight ] + (Δ ( Δi ([ left_free ] , [WaitLeft ])) (Qi_Qf ([WaitLeft ] , [WaitRight ])) (Δf ([WaitRight ], [ask_right ]))) + [left_free ; ask_right ]. + +(**RIGHT_FREE_NE*) +Definition RIGHT_FREE_NE : BA := A + [NotEating ] + [NotEating ] + [NotEating ] + (Δ ( Δi ([ ask_right ] , [NotEating ])) (Qi_Qf ([NotEating ] , [NotEating ])) (Δf ([NotEating ], [right_free ]))) + [ ask_right ; right_free ]. + +(**RIGHT_FREE_WL*) +Definition RIGHT_FREE_WL : BA := A + [WaitLeft ] + [WaitLeft ] + [WaitLeft ] + (Δ ( Δi ([ ask_right] , [WaitLeft])) (Qi_Qf ([WaitLeft] , [WaitLeft])) (Δf ([WaitLeft], [right_free]))) + [ask_right ; right_free ]. + +(**RIGHT_BUSY_WR*) +Definition RIGHT_BUSY_WR : BA := A + [WaitRight ] + [WaitRight ] + [WaitRight ] + (Δ ( Δi ([ ask_right ] , [WaitRight ])) (Qi_Qf ([WaitRight] , [WaitRight])) (Δf ([WaitRight], [right_taken] ))) + [ask_right ; right_taken ]. + +(**RIGHT_BUSY_EAT*) +Definition RIGHT_BUSY_EAT : BA := A + [Eat ] + [Eat ] + [Eat ] + (Δ ( Δi ([ ask_right ] , [ Eat ])) (Qi_Qf ([Eat ] , [Eat])) (Δf ([Eat], [right_taken]))) + [ask_right ; right_taken ]. + +(**RIGHT_REASK*) +Definition RIGHT_REASK : BA := A + [WaitRight ] + [WaitRight ] + [WaitRight ] + (Δ ( Δi ([ right_taken ], [WaitRight] )) (Qi_Qf ([WaitRight ] , [WaitRight ])) (Δf ([WaitRight ], [ask_right ]))) + [right_taken ; ask_right ]. + +(**EAT*) +Definition EAT : BA := A + [WaitRight ; Eat ] + [WaitRight ] + [Eat ] + (Δ ( Δi ([ right_free ] , [WaitRight ])) (Qi_Qf ([WaitRight] , [Eat ])) (Δf ([Eat], [rel_forks]))) + [right_free ; rel_forks ]. + +(**EAT_DONE*) +Definition EAT_DONE : BA := A + [Eat ; NotEating ] + [Eat ] + [ NotEating ] + (Δ ( Δi ([ rel_forks ] , [Eat ])) (Qi_Qf ([Eat ] , [NotEating ])) (Δf ([NotEating], [ε ]))) + [rel_forks ; ε ]. + +(** Spin Lock*) +Definition a'' : id := Id 0. +Definition b'' : id := Id 1. +Definition c'' : id := Id 2. +Definition d'' : id := Id 3. +Definition e''' : id := Id 4. +Definition f'' : id := Id 5. +Definition NB : state := st a''. +Definition B : state := st b''. +Definition req : event := ev c''. +Definition ack : event := ev d''. +Definition nack : event := ev e'''. +Definition rel : event := ev f''. +Definition a1 : id := Id 0. +Definition b2 : id := Id 1. +Definition c3 : id := Id 2. +Definition d4 : id := Id 3. +Definition e1 : id := Id 4. +Definition f2 : id := Id 5. +Definition g3 : id := Id 6. +Definition h4 : id := Id 7. +Definition i5 : id := Id 8. +Definition Start1 : state := st a1. +Definition Waiting : state := st b2. +Definition HasObject: state := st c3. +Definition into1 : event := ev f2. + +(**PROCESS*) + +(**REQUEST *) +Definition REQUEST : BA := A + [Start ; Waiting ] + [Start ] + [Waiting ] + (Δ ( Δi ([ ε ] , [Start ] )) (Qi_Qf ([Start ] , [Waiting])) (Δf ([Waiting], [req]))) + [ε ; req ]. + +(**REJECTED *) +Definition REJECTED : BA := A + [Waiting ] + [Waiting ] + [Waiting ] + (Δ ( Δi ([ nack ] , [Waiting ])) (Qi_Qf ([Waiting] , [Waiting])) (Δf ([Waiting], [ req ]))) + [nack ; req ]. + +(**ACCEPTED *) +Definition ACCEPTED : BA := A + [Waiting ; HasObject ] + [Waiting ] + [HasObject ] + (Δ ( Δi ([ ack ] , [Waiting])) (Qi_Qf ([Waiting] , [HasObject])) (Δf ([HasObject], [ into ]))) + [ack ; into ]. + +(**RELEASING *) +Definition RELEASING : BA := A + [HasObject ; Start ] + [HasObject ] + [Start ] + (Δ ( Δi ([ into ] , [HasObject ])) (Qi_Qf ([HasObject ] , [Start])) (Δf ([HasObject ], [rel ]))) + [into ; rel ]. + +(**Object*) +(**REQ_FREE *) +Definition REQ_FREE : BA := A + [NB ; B ] + [NB ] + [B ] + (Δ ( Δi ([ req ] , [NB ])) (Qi_Qf ([NB ] , [B ])) (Δf ([B ], [ ack ]))) + [req ; ack]. + +(**REQ_BUSY *) +Definition REQ_BUSY : BA := A + [B ] + [B ] + [B ] + (Δ ( Δi ([ req ] , [B ])) (Qi_Qf ([B ] , [B ])) (Δf ([B], [ nack ]))) + [req ; nack ]. + +(**RCV_REL *) +Definition RCV_REL : BA := A + [B ; NB ] + [B ] + [NB ] + (Δ ( Δi ([ req ] , [B ])) (Qi_Qf ([B ] , [NB])) (Δf ([NB], [ ε ]))) + [rel ; ε ]. + + +(** Protocol Signature *) +(** Variable Prot represnets the set of behavioral automaton (BA) which is basically protocol signature *) +Definition Prot := list BA . + +(**DME_Prot represents the set of behavioral automaton for the DME Protocol*) +Definition DME_Prot : Prot := [SND ; RCV ; PASS ; ENTER ; LEAVE ]. + +Extraction DME_Prot. + +(**DINING_Prot represents the set of behavioral automaton for the DINNING Protocol*) +Definition DINING_Prot : Prot := [ LFT ; + LFT_FREE_NE ; + LFT_FREE_WL ; + LFT_BUSY_WR ; + LFT_BUSY_EAT ; + LFT_REASK ; + RIGHT ; + RIGHT_FREE_NE ; + RIGHT_FREE_WL ; + RIGHT_BUSY_WR ; + RIGHT_BUSY_EAT ; + RIGHT_REASK ; + EAT ; + EAT_DONE ]. + +(**SPIN_LOCK_Prot represents the set of behavioral automaton for the SPIN LOCK Protocol*) +Definition SPIN_LOCK_Prot : Prot := [ REQUEST ; + REJECTED ; + ACCEPTED ; + RELEASING ; + REQ_FREE ; + REQ_BUSY ; + RCV_REL ]. + +Hypothesis Aeq_dec_BA : forall A A1 : BA , { A= A1} + {A <> A1}. + +(**Recursive fuction (isMem_Prot) checks whether a behavioral automaton (BA) is the member of protocol signature (Prot) or not*) + Fixpoint isMem_Prot (A:BA) (P: Prot ) : bool := + match P with + | nil => false + | B :: Bl => match Aeq_dec_BA A B with + | left _ => true + | right _ => isMem_Prot A Bl + end +end. + +Extraction isMem_Prot. + +Inductive initial_transition_in_delta (Ti : initial_transition) (D : delta ) : bool -> Prop := + | initial_transition_in_Δ : forall e s1 Tin P Tf E Sin, + D = Δ Tin P Tf -> + Tin = Δi (E , Sin) -> + isSubset_of_events [e] E = true -> + isSubset_of_states [s1] Sin = true -> + Ti = Δi ([e ] , [s1]) -> + isSubset_initial_transition Ti Tin true-> + initial_transition_in_delta Ti D true. + +(**There is only one kind of constructor which signifies the behavior of protocol signature (Prot) that there is atleast one behavioral +automaton A ∈ Prot which has an initial transition with the empty event ε.*) +Inductive protocol_signature (P: Prot) : Prop := + | pr : forall Ai S1 S2 D E s1 Ti S Tf P1, + isMem_Prot Ai P = true -> + Ai = (A S S1 S2 D E) -> + D = Δ Ti P1 Tf -> + isSubset_of_events [ε] E = true -> + isSubset_of_states [s1] S1 = true -> + Ti = Δi ( [ε ] , [s1]) -> + protocol_signature P . + + +(**This lemma (protocol_signature_DME) proves that DME protocol fulfills the properties of protocol signature*) +Lemma protocol_signature_DME : protocol_signature DME_Prot . +Proof. +unfold DME_Prot. +unfold SND. +apply pr with SND [Start] [Idle] (Δ (Δi ([ε], [Start])) (Qi_Qf ([Start], [Idle])) (Δf ([Idle], [token]))) + [ε; token] Start (Δi ([ε], [Start])) [Start; Idle] (Δf ([Idle], [token])) (Qi_Qf ([Start], [Idle])). +simpl. +destruct Aeq_dec_BA. +reflexivity. +destruct n. +reflexivity. +reflexivity. +reflexivity. +simpl. +destruct Aeq_dec_event. +reflexivity. +destruct n. +reflexivity. +simpl. +destruct Aeq_dec_state. +reflexivity. +destruct n. +reflexivity. +reflexivity. +Qed. + + +(**This lemma (protocol_signature_DINNING) proves that DINING_Prot fulfills the properties of protocol signature*) +Lemma protocol_signature_DINING : protocol_signature DINING_Prot . +Proof. +unfold DINING_Prot. +unfold LFT. +apply pr with LFT [NotEating] [WaitLeft] (Δ (Δi ([ε], [NotEating])) (Qi_Qf ([NotEating], [WaitLeft])) (Δf ([WaitLeft], [ask_left]))) + [ε; ask_left] NotEating (Δi ([ε], [NotEating])) [NotEating; WaitLeft] (Δf ([WaitLeft], [ask_left])) (Qi_Qf ([NotEating], [WaitLeft])). +simpl. +destruct Aeq_dec_BA. +reflexivity. +destruct n. +reflexivity. +reflexivity. +reflexivity. +simpl. +destruct Aeq_dec_event. +reflexivity. +destruct n. +reflexivity. +simpl. +destruct Aeq_dec_state. +reflexivity. +destruct n. +reflexivity. +reflexivity. +Qed. + +(**This lemma (protocol_signature_SPIN_LOCK) proves that SPIN LOCK protocol fulfills the properties of protocol signature*) +Lemma protocol_signature_SPIN_LOCK : protocol_signature SPIN_LOCK_Prot . +Proof. +unfold SPIN_LOCK_Prot. +unfold REQUEST. +apply pr with REQUEST [Start] [Waiting] (Δ (Δi ([ε], [Start])) (Qi_Qf ([Start], [Waiting])) (Δf ([Waiting], [req]))) + [ε; req] Start (Δi ([ε], [Start])) [Start; Waiting] (Δf ([Waiting], [req])) (Qi_Qf ([Start], [Waiting])). +simpl. +destruct Aeq_dec_BA. +reflexivity. +destruct n. +reflexivity. +reflexivity. +reflexivity. +simpl. +destruct Aeq_dec_event. +reflexivity. +destruct n. +reflexivity. +simpl. +destruct Aeq_dec_state. +reflexivity. +destruct n. +reflexivity. +reflexivity. +Qed. + +(**Topology Rule*) + +(** Variable process_index represents naturals which is the index of the processes in the system*) +Definition process_index := nat. + +(** Variable I represents set of naturals representing the set of process indexes (process_index)*) +Definition I := list process_index. + +Hypothesis Aeq_dec_I : forall A A1 : I, { A= A1} + {A <> A1}. + +Hypothesis Aeq_dec_process_index : forall A A1 : process_index , { A= A1} + {A <> A1}. + + Fixpoint isMem_I (a:process_index) (P: I) : bool := + match P with + | nil => false + | B :: Bl => match Aeq_dec_process_index a B with + | left _ => true + | right _ => isMem_I a Bl + end +end. + +Extraction isMem_I. + +Fixpoint remove_one_process_index (v:process_index) (s:I) : I := + match s with + | [] => [] + | h::t => if (Aeq_dec_process_index h v) then t else h::(remove_one_process_index v t) + end. + +Extraction remove_one_process_index. + +Fixpoint isSubset_of_I (s1:I) (s2: I) : bool := + match s1 with + | nil => true + | h::t => if (isMem_I h s2) then (isSubset_of_I t (remove_one_process_index h s2)) else false + end. + +Extraction isSubset_of_I. + +Definition i : id := Id 0. + +(** Variable N represents set of naturals which models the system parameter*) +Definition N := list nat. + +(**Topology rule*) +(**There are only one kind of topology_rule that represent mapping from (Events (events) * Process Indexes(I) * Naturals(N)) to Process Indexes (I) for a +given protocol signature (Prot) *) +Inductive topology_rule (P : Prot) : Type := + | topo : (prod events (prod I N)) -> I -> topology_rule P. + +(** DME_topo is a variable representing a topology rule for DME protocol*) +Definition DME_topo : topology_rule DME_Prot := topo DME_Prot ([token], ([1], [2])) [2]. + +Extraction DME_topo. + +(** DINING_topo_1 is a variable representing a topology rule for DINING philosopher *) +Definition DINING_topo_1 : topology_rule DINING_Prot := topo DINING_Prot ([ask_left], ([2], [3])) [1]. + +Extraction DINING_topo_1. + +(** DINING_topo_2 is a variable representing a topology rule for DINING philosopher *) +Definition DINING_topo_2 : topology_rule DINING_Prot := topo DINING_Prot ([ask_right], ([2], [3])) [3]. + +Extraction DINING_topo_2. + +(**Parameterized System Topology*) +(** There are only one kind of parameterized system topology which represents the set of topology rule for a given protocol signature (Prot)*) +Inductive parameterized_system_topology (P : Prot) : Type := +| Topo : list (topology_rule P) -> parameterized_system_topology P. + + +Inductive isMem_parameterized_system_topology (P : Prot) (s : topology_rule P) (S : parameterized_system_topology P) : bool -> Prop := + | mem_1 : S = Topo P nil-> + isMem_parameterized_system_topology P s S false + | mem_2 : forall s1 S1, + S = Topo P (s1 :: S1) -> + s = s1 -> + isMem_parameterized_system_topology P s S true + | mem_3 : forall s1 S1, + S = Topo P (s1 :: S1) -> + s <> s1 -> + isMem_parameterized_system_topology P s (Topo P S1) true -> + isMem_parameterized_system_topology P s S true. + +Check isMem_parameterized_system_topology. + +(** DME_Topo is a variable which represents the set of topolofy rule for DME protocol (DME_Prot)*) +Definition DME_Topo : parameterized_system_topology DME_Prot := Topo DME_Prot [ topo DME_Prot ([token], ([1], [2])) [2] ]. + +Extraction DME_Topo. + +(** DINING_Topo is a variable which represents the set of topolofy rule for DINING philosopher (DINING_Prot)*) +Definition DINING_Topo : parameterized_system_topology DINING_Prot := Topo DINING_Prot [(topo DINING_Prot ([ask_left], ([2], [3])) [1]) ; (topo DINING_Prot ([ask_right], ([2], [3])) [3]) ]. + +Extraction DINING_Topo. + +(** SPIN_LOCK_Topo is a variable which represents the set of topolofy rule for SPIN LOCK protocol (SPIN_LOCK_Prot)*) +Definition SPIN_LOCK_Topo : parameterized_system_topology SPIN_LOCK_Prot := Topo SPIN_LOCK_Prot [(topo SPIN_LOCK_Prot ([req], ([2], [2])) [3]) ; (topo SPIN_LOCK_Prot ([rel], ([1], [2])) [3]) ]. + +Extraction SPIN_LOCK_Topo. + + +(**Parameterized system instance*) + +(** Variable sys_S represents the state (I* initial_state * event) in +parameterized system instances*) +Definition sys_S := (prod I (prod initial_states events)). + +(** Variable S_L represents the set of state (sys_S) in +parameterized system instances*) +Definition S_L := list sys_S. + +(** Variable sys_action represents the action (event * event) in +parameterized system instances*) +Definition sys_action := (prod events events). + +(** Variable L represents the set of actions (sys_action) in +parameterized system instances*) +Definition L := list sys_action. + +(** Variable transition represents the transition (state * action * state) in +parameterized system instances*) +Definition transition := (prod S_L (prod L S_L)). + +(** Variable T represents the set of transitions (S * L * S) in +parameterized system instances*) +Definition T := list transition. + +Hypothesis Aeq_dec_S : forall A A1 : sys_S , { A= A1} + {A <> A1}. + +Fixpoint isMem_S (s:sys_S) (P: S_L ) : bool := + match P with + | nil => false + | (s1 :: S_list) => match Aeq_dec_S s s1 with + | left _ => true + | right _ => isMem_S s (S_list) + end +end. + +Extraction isMem_S. + +Hypothesis Aeq_dec_sys_action : forall A A1 : sys_action , { A= A1} + {A <> A1}. + +Fixpoint isMem_L (s:sys_action) (P: L ) : bool := + match P with + | nil => false + | (s1 :: S_list) => match Aeq_dec_sys_action s s1 with + | left _ => true + | right _ => isMem_L s (S_list) + end +end. + +Extraction isMem_L. + +Fixpoint remove_one_sys_action (v:sys_action) (s:L) : L := + match s with + | [] => [] + | h::t => if (Aeq_dec_sys_action h v) then t else h::(remove_one_sys_action v t) + end. + +Extraction remove_one_sys_action. + +Fixpoint isSubset_of_L (s1:L) (s2: L) : bool := + match s1 with + | nil => true + | h::t => if (isMem_L h s2) then (isSubset_of_L t (remove_one_sys_action h s2)) else false + end. + +Extraction isSubset_of_L. + + +Fixpoint event_add (a:event) (x: events ) : events := + match x with + | nil => a :: nil + | a1 :: x1 => + match Aeq_dec_event a a1 with + | left _ => a1 :: x1 + | right _ => a1 :: event_add a x1 + end + end. + +Extraction event_add. + +(** Recursive function (union_events) which does the union of set of events *) +Fixpoint union_events ( Sin : events) (Sf : events) : events := +match Sf with + | nil => Sin + | s1 :: l1 => event_add s1 (union_events Sin l1) +end. + +Extraction union_events. + +(** There are only one constructor which specifies the behavior of any transition in a parameterized system for a +given protocol signature (Prot) , tolology (parameterized_system_topology) and number of processes in the instnace (N)*) +Inductive isMem_T (P : Prot) (R :parameterized_system_topology P) (k : nat) (T1: transition) (T2 : T) : bool -> Prop := + | mem_T : forall s s' e i q1 E1 j q2 E2 A1 q2' Δ1 e' E1' r E E2', + T1 = (s , ([([e] , [e'])], s')) -> + isMem_S ([i] , ([q1] , E1)) s = true-> + isMem_events e E1 = true -> + isMem_S ([j] , ([q2] , E2)) s = true -> + isMem_Prot A1 P = true-> + A1 = A [q2; q2'] [q2] [q2'] Δ1 E -> + Δ1 = (Δ ( Δi ([e] , [q2])) (Qi_Qf ([q2] , [q2'])) (Δf ([q2'], [e']))) -> + isMem_S ([i], ([q1], E1')) s' = true -> + E1' = (remove_one_event e E1) -> + isMem_S ([j], ([q2'], E2')) s' = true -> + E1' = union_events E2 [e'] -> + isMem_parameterized_system_topology P r R true -> + r = topo P ([e], ([i], [k])) [j] -> + isMem_T P R k T1 T2 true. + +(** Variable sys_Si represent the initial state (I * initial state * event) of the parameterized system instance*) +Definition sys_Si := (prod I (prod initial_states events)). + +(** Variable Si represent the set of initial states (sys_Si) of the parameterized system instance*) +Definition Si := list sys_Si. + +(**Parameterized system instance*) +(** There are only one kind of parameterized system instance that represent its states (S_L), actions (L) , +transitions (T) and initial states (Si) for a given protocol signature (Prot), number of processes (nat) and +topplogy (parameterized_system_topology)*) +Inductive parameterized_system_instance (P : Prot) (k : nat) (R : parameterized_system_topology P) : Type := + | sys : S_L -> L -> T -> Si -> parameterized_system_instance P k R. + +(**Parameterized System*) +(*Variable parameterized_system represents the set of parameterized system instances (parameterized_system_instance)*) +Definition parameterized_system := forall P k R , list (parameterized_system_instance P k R). + +(**DME example*) +(** Variable DME_system represents the parameterized system instance of DME protocol for given +protocol signature (DME_Prot), number of processes in the instance (2) and topplogy (DME_Topo)*) +Definition DME_system : parameterized_system_instance DME_Prot 2 DME_Topo := sys DME_Prot 2 DME_Topo + [ ([2] , ([Start] , [ε])) ; + ([1] , ([Idle] , [ε])) ; + ([2] , ([Idle] , [token])) ; + ([2] , ([Ncs] , [ε ; choose])) ; + ([1] , ([Idle] , [ε ])) ; + ([2] , ([Ncs] , [choose])) ; + ([2] , ([Cs] , [ε ; into])) ; + ([2] , ([Idle] , [ε ; token])) ] + [ ([ε], [token]) ; + ([token], [choose]) ; + ([choose], [token]) ; + ([choose], [into]) ; + ([into], [token]) ] + [ ([([1] , ([Idle] , [ε])) ; ([2] , ([Start] , [ε])) ] , ([([ε], [token])], [([1] , ([Idle] , [ε ])) ; ([2] , ([Idle] , [token]))])) ; + ( [([2] , ([Idle] , [token])); ([1] , ([Idle] , [ε]))] , ([([token], [choose])], [([2] , ([Idle] , [ ])) ; ([1] , ([Ncs] , [ε ;choose]))])) ; + ( [([2] , ([Idle] , [ ])) ; ([1] , ([Ncs] , [ε ; choose]))] , ([([choose], [token])], [([2] , ([Idle] , [ ])) ; ([1] , ([Idle] , [ε ; token ]))])) ; + ( [([2] , ([Idle] , [ ])); ([2] , ([Ncs] , [ε ; choose]))] , ([([choose], [into])], [([2] , ([Idle] , [ ])); ([1] , ([Cs] , [ε ; into ]))])) ] + [ ([1] , ([Idle] , [ε ])) ; + ([2] , ([Start] , [ε])) ]. + +(** Variable DINNING_system represents the parameterized system instance of Dinning Philosopher for given +protocol signature (DINING_Prot), number of processes in the instance (3) and topplogy (DINING_Topo)*) +Definition DINING_system : parameterized_system_instance DINING_Prot 3 DINING_Topo := sys DINING_Prot 3 DINING_Topo + [ ([3] , ([WaitLeft] , [ask_left])) ; + ([2] , ([WaitRight] , [ask_right])) ; + ([1] , ([NotEating] , [ ])) ; + ([1] , ([WaitLeft] , [ask_left])) ; + ([2] , ([WaitRight] , [ask_right ; left_taken ])) ; + ([1] , ([WaitLeft] , [ ])) ; + ([3] , ([WaitLeft] , [ ])) ; + ([1] , ([WaitLeft] , [ask_left ; left_free])); + ([3] , ([WaitRight] , [ask_right ])) ; + ([3] , ([WaitRight] , [ ])) ; + ([2] , ([WaitRight] , [ask_right ; right_taken])) ; + ([1] , ([WaitLeft] , [ask_left ; right_free])) ; + ([2] , ([Eat] , [rel_forks])) ] + [ ([ε], [ask_left]) ; + ([ask_left], [left_taken]) ; + ([ask_left], [left_free]) ; + ([left_free], [ask_right]) ; + ([ask_right], [right_taken]) ; + ([ask_right], [right_free]) ; + ([right_free], [rel_forks]) ; + ([rel_forks], [ε]) ] + [ ([([3] , ([WaitLeft] , [ask_left])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([NotEating] , [ ])) ] , ([([ε], [ask_left])], [([3] , ([WaitLeft] , [ask_left ])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left])) ])) ; + ([([3] , ([WaitLeft] , [ask_left])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left ])) ] , ([([ask_left], [left_taken])], [([3] , ([WaitLeft] , [ask_left ])) ; ([2] , ([WaitRight] , [ask_right; left_taken])) ; ([1] , ([WaitLeft] , [ ])) ])) ; + ([([3] , ([WaitLeft] , [ask_left])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left])) ] , ([([ask_left], [left_free])], [([3] , ([WaitLeft] , [ ])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left ; left_free])) ])) ; + ([([3] , ([WaitLeft] , [ ])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left; left_free]))] , ([([left_free], [ask_right])], [([3] , ([WaitRight] , [ ask_right])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left ])) ])) ; + ([([3] , ([WaitRight] , [ask_right])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left])) ] , ([([ask_right], [right_taken])], [([3] , ([WaitRight] , [ ])) ; ([2] , ([WaitRight] , [ask_right ; right_taken])) ; ([1] , ([WaitLeft] , [ask_left ])) ])) ; + ([([3] , ([WaitRight] , [ask_right])) ; ([2] , ([WaitRight] , [ask_right])) ; ([1] , ([WaitLeft] , [ask_left])) ] , ([([ask_right], [right_free])], [([3] , ([WaitRight] , [ask_right ])) ; ([2] , ([WaitRight] , [ ])) ; ([1] , ([WaitLeft] , [ask_left; right_free ])) ])) ; + ([([3] , ([WaitRight] , [ask_right])) ; ([2] , ([WaitRight] , [ ])) ; ([1] , ([WaitLeft] , [ask_left ; right_free])) ] , ([([right_free], [rel_forks])], [([3] , ([WaitRight] , [ask_right ])) ; ([2] , ([Eat] , [rel_forks])) ; ([1] , ([WaitLeft] , [ask_left ])) ])) ] + [ ([3] , ([WaitLeft] , [ask_left ])) ; + ([2] , ([WaitRight] , [ask_right ])) ; + ([1] , ([NotEating] , [ ])) ] . + +(** Variable SPINLOCK_system represents the parameterized system instance of SPIN LOCK protocol for given +protocol signature (SPIN_LOCK_Prot), number of processes in the instance (3) and topplogy (SPIN_LOCK_Topo)*) +Definition SPINLOCK_system : parameterized_system_instance SPIN_LOCK_Prot 3 SPIN_LOCK_Topo := sys SPIN_LOCK_Prot 3 SPIN_LOCK_Topo + [ ([1] , ([Start] , [ ])) ; + ([2] , ([Start] , [ ])) ; + ([3] , ([NB] , [ ])) ; + ([1] , ([Waiting] , [req])) ; + ([1] , ([Waiting] , [ ])) ; + ([3] , ([B] , [ack])) ; + ([3] , ([B] , [nack ; ack])); + ([2] , ([HasObject] , [into ])) ; + ([3] , ([B] , [ nack])) ; + ([2] , ([Start] , [rel])) ; + ([3] , ([B] , [ ])) ; + ([3] , ([NB] , [nack])) ] + [ ([ε], [req]) ; + ([req], [req]) ; + ([ack], [into]) ; + ([nack], [req]) ; + ([into], [rel]) ; + ([ack], [into]) ; + ([rel], [rel]) ] + [ ([([1] , ([Start] , [ ])) ; ([2] , ([Start] , [ ])) ; ([3] , ([NB] , [ ])) ] , ([([ε], [req])], [([1] , ([Waiting] , [req ])) ; ([2] , ([Start] , [ ])) ; ([3] , ([NB] , [ ])) ])) ; + ([([1] , ([Waiting] , [req])) ; ([2] , ([Start] , [ ])) ; ([3] , ([NB] , [ ])) ] , ([([req], [req])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Start] , [ ])) ; ([3] , ([B] , [ ack])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Start] , [ ])) ; ([3] , ([B] , [ack])) ] , ([([ε], [req])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [req])) ; ([3] , ([B] , [ack])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [req])) ; ([3] , ([B] , [ack]))] , ([([req], [req])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [ ])) ; ([3] , ([B] , [nack ; ack ])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [ ])) ; ([3] , ([B] , [nack ; ack])) ] , ([([ack], [into])], [([1] , ([Waiting] , [ ])) ; ([2] , ([HasObject] , [into])) ; ([3] , ([B] , [nack ])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [ ])) ; ([3] , ([B] , [nack ; ack])) ] , ([([nack], [req])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [req ])) ; ([3] , ([B] , [ack])) ])) ; + ([([1] , ([WaitRight] , [ ])) ; ([2] , ([WaitRight] , [req ])) ; ([3] , ([B] , [ack])) ] , ([([req], [req])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [ ])) ; ([1] , ([B] , [nack ; ack])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [ req])) ; ([3] , ([B] , [nack ; ack])) ] , ([([ack], [into])], [([1] , ([HasObject] , [into ])) ; ([2] , ([Waiting] , [req ])) ; ([3] , ([B] , [ ])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([HasObject] , [ into])) ; ([3] , ([B] , [nack ])) ] , ([([into], [rel])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Start] , [rel ])) ; ([3] , ([B] , [nack])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Start] , [rel])) ; ([3] , ([B] , [nack ])) ] , ([([rel], [rel])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Start] , [ ])) ; ([3] , ([NB] , [nack])) ])) ; + ([([1] , ([Waiting] , [ ])) ; ([2] , ([Start] , [ ] )) ; ([3] , ([NB] , [nack ])) ] , ([([ε], [req])], [([1] , ([Waiting] , [ ])) ; ([2] , ([Waiting] , [req ])) ; ([3] , ([NB] , [nack])) ])) ] + [ ([1] , ([Start] , [ ])) ; + ([2] , ([Start] , [ ])) ; + ([3] , ([NB] , [ ])) ] . + +(**1-E behavior*) + +(** Variable QI1E represents the initial states (initial_states) in the 1E behavior*) +Definition QI1E := initial_states. + +(** Variable Q1E represents the states (states) in the 1E behavior*) +Definition Q1E := states. + +(** Variable transition_relation represents the transition relation of 1E behavior (Q1E * L * Q1E) in the 1E behavior*) +Definition transition_relation := (prod Q1E (prod L Q1E)). + +(** Variable Δ1E represents the set of transition relations (transition_relation) in the 1E behavior*) +Definition Δ1E := list transition_relation. + +Inductive isMem_Δ1E (P : Prot) (T1 : transition_relation) (T2 : Δ1E) : bool -> Prop := + | mem_Δ1E_1 : forall q q' e e' A1 Δ1 E1 , + T1 = ([q], ([([e] , [e'])] , [q'] )) -> + isMem_Prot A1 P = true -> + A1 = A [q; q'] [q] [q'] Δ1 E1 -> + Δ1 = (Δ ( Δi ([ε] , [q])) (Qi_Qf ([q] , [q'])) (Δf ([q'], [e']))) -> + isMem_Δ1E P T1 T2 true + | mem_Δ1E_2 : forall q qF e e' A1 Δ1 E1 Δ2 E2 q' q'F e'' A2 , + T1 = ([q], ([([e] , [e'])] , [qF] )) -> + isMem_Prot A1 P = true -> + A1 = A [q; qF] [q] [qF] Δ1 E1 -> + Δ1 = (Δ ( Δi ([e] , [q])) (Qi_Qf ([q] , [qF])) (Δf ([qF], [e']))) -> + isMem_Prot A2 P = true -> + A2 = A [q'; q'F] [q'] [q'F] Δ2 E2 -> + Δ2 = (Δ ( Δi ([e'] , [q'])) (Qi_Qf ([q'] , [q'F])) (Δf ([q'F], [e'']))) -> + isMem_Δ1E P T1 T2 true. + +(** There are only one kind of 1E behavior (behavior_1E) that represent its states (Q1E), actions (L) (L is defined before for the parameterized +instances, transition relations (Δ1E) and initial states (QI1E) +for a given protocol signature (Prot)*) +Inductive behavior_1E (P : Prot) : Type := + | b_1E : Q1E -> L -> Δ1E -> QI1E -> behavior_1E P. + +(**Variable DME_1E represents the 1E behavior (behavior_1E) of DME protocol for a given protocol +signature (DME_Prot)*) +Definition DME_1E : behavior_1E DME_Prot := b_1E DME_Prot + [ Start ; Idle ; Ncs ; Cs] + [ ([ε], [token]) ; + ([token], [choose]) ; + ([choose], [token]) ; + ([choose], [into]) ; + ([into], [token]) ] + [ ([Start] , ([([ε], [token])], [Idle])); + ([Idle] , ([([token], [choose])], [Ncs])); + ([Ncs] , ([([choose], [token])], [Idle])); + ([Ncs] , ([([choose], [into])], [Cs])); + ([Cs] , ([([into], [token])], [Idle]))] + [ Start] . + +Extraction DME_1E. + +(**Variable DINING_1E represents the 1E behavior (behavior_1E) of Dining philosopher for a given protocol +signature (DINING_Prot)*) +Definition DINING_1E : behavior_1E DINING_Prot := b_1E DINING_Prot [NotEating ; WaitLeft ; Eat ; WaitRight ] + [ ([ε], [ask_left]) ; + ([ask_left], [ask_left]) ; + ([ask_left], [left_free]) ; + ([left_free], [left_free]) ; + ([left_taken], [left_taken]) ; + ([ask_left], [left_taken]) ; + ([left_taken], [ask_left]) ; + ([left_free], [ask_right]) ; + ([ask_right], [ask_right]) ; + ([ask_right], [right_free]) ; + ([ask_right], [right_taken]) ; + ([right_free], [right_free]) ; + ([right_taken], [ask_right]) ; + ([right_taken], [right_taken]) ; + ([right_free], [rel_forks]) ; + ([rel_forks], [rel_forks]) ; + ([rel_forks], [ε]) ; + ([ε], [ε]) ] + [ ([NotEating] , ([([ε], [ask_left])], [WaitLeft])); + ([WaitLeft] , ([([ask_left], [ask_left])], [NotEating])); + ([WaitLeft] , ([([ask_left], [ask_left])], [WaitLeft])); + ([WaitLeft] , ([([ask_left], [ask_left])], [Eat])); + ([WaitLeft] , ([([ask_left], [ask_left])], [WaitRight])); + ([NotEating] , ([([ask_left], [left_free])], [NotEating])); + ([WaitLeft] , ([([ask_left], [left_free])], [WaitLeft])); + ([Eat] , ([([ask_left], [left_taken])], [Eat])); + ([WaitRight] , ([([ask_left], [left_taken])], [WaitRight])); + ([NotEating] , ([([left_free], [left_free])], [WaitLeft])); + ([WaitLeft] , ([([left_free], [left_free])], [WaitLeft])); + ([Eat] , ([([left_taken], [left_taken])], [WaitLeft])); + ([WaitRight] , ([([left_taken], [left_taken])], [WaitLeft])); + ([WaitLeft] , ([([left_taken], [ask_left])], [WaitLeft])); + ([WaitLeft] , ([([ask_left], [ask_left])], [NotEating])); + ([WaitLeft] , ([([ask_left], [ask_left])], [WaitLeft])); + ([WaitLeft] , ([([left_free], [ask_right])], [WaitRight])); + ([WaitRight] , ([([ask_right], [ask_right])], [NotEating])); + ([WaitRight] , ([([ask_right], [ask_right])], [WaitLeft])); + ([WaitRight] , ([([ask_right], [ask_right])], [Eat])); + ([WaitRight] , ([([ask_right], [ask_right])], [WaitRight])); + ([NotEating] , ([([ask_right], [right_free])], [NotEating])); + ([WaitLeft] , ([([ask_right], [right_free])], [WaitLeft])); + ([Eat] , ([([ask_right], [right_taken])], [Eat])); + ([WaitRight] , ([([ask_right], [right_taken])], [WaitRight])); + ([NotEating] , ([([right_free], [right_free])], [WaitRight])); + ([WaitLeft] , ([([right_free], [right_free])], [WaitRight])); + ([WaitRight] , ([([right_taken], [ask_right])], [WaitRight])); + ([WaitRight] , ([([ask_right], [ask_right])], [NotEating])); + ([WaitRight] , ([([ask_right], [ask_right])], [WaitLeft])); + ([WaitRight] , ([([right_free], [rel_forks])], [Eat])); + ([Eat] , ([([rel_forks], [rel_forks])], [Eat])); + ([Eat] , ([([rel_forks], [ε])], [NotEating])); + ([NotEating] , ([([ε], [ε])], [NotEating]))] + [NotEating]. + +Extraction DINING_1E. + +(**Variable SPIN_LOCK_1E represents the 1E behavior (behavior_1E) of Spin Lock protocol for a given protocol +signature (SPIN_LOCK_Prot)*) +Definition SPIN_LOCK_1E : behavior_1E SPIN_LOCK_Prot := b_1E SPIN_LOCK_Prot [Start ; Waiting ; NB ; B ; HasObject ] + [ ([ε], [req]) ; + ([req], [req]) ; + ([ack], [ack]) ; + ([ack], [into]) ; + ([into], [into]) ; + ([nack], [nack]) ; + ([nack], [req]) ; + ([into], [rel]) ; + ([rel], [ε]) ; + ([ε], [ε]) ] + [ ([Start] , ([([ε], [req])], [Waiting])); + ([Waiting] , ([([req], [req])], [NB])); + ([Waiting] , ([([req], [req])], [B])); + ([NB] , ([([req], [req])], [B])); + ([B] , ([([req], [req])], [B])); + ([B] , ([([ack], [ack])], [Waiting])); + ([B] , ([([nack], [nack])], [Waiting])); + ([B] , ([([ack], [ack])], [Waiting])); + ([Waiting] , ([([ack], [into])], [HasObject])); + ([Waiting] , ([([nack], [req])], [Waiting])); + ([Waiting] , ([([req], [req])], [Waiting])); + ([HasObject] , ([([into], [into])], [HasObject])); + ([HasObject] , ([([into], [rel])], [Start])); + ([Start] , ([([rel], [rel])], [B])); + ([B] , ([([rel], [ε])], [NB])); + ([NB] , ([([ε], [ε])], [Start]))] + [ Start]. + +Extraction SPIN_LOCK_1E. + +(**Cut-off*) + +(**Linear Temporal Logic minus X that means not including the next operator*) +Variable P : Set. + +(**It represents set of LTL/X formulas*) +Inductive ϕ : Type := + | id_ϕ : P -> ϕ + | form_ϕ : ϕ -> ϕ + | not_ϕ : ϕ -> ϕ + | and_ϕ : ϕ -> ϕ -> ϕ + | or_ϕ : ϕ -> ϕ -> ϕ + | until_ϕ : ϕ -> ϕ -> ϕ + | G_ϕ : ϕ -> ϕ . + +(**There are two kind of properties involved : (pro1) whcih involves only one process or +(pro2) which involves two processes*) +Inductive properties : Type := + | pro1 : process_index -> properties + | pro2 : (prod process_index process_index) -> properties. + +(** ϕ_type represents the property ϕ which may be of the form ϕ(i) or ϕ(i,j) depending on the type of properties +we are trying to verify*) +Inductive ϕ_type : Type := + | ϕ_form : ϕ -> properties -> ϕ_type. + +(** A path in 1 E*) +(**There is only one kind of path(path_in_1E) in the 1E behavior which is the sequence of input/output +events (L) for a given 1E behavior (behavior_1E) *) +Inductive path_in_1E (P : Prot) (beh_1E : behavior_1E P) : L -> Prop := + | path : forall Q1E_1 L_1 Δ1E_1 QI1E_1 , + beh_1E = b_1E P Q1E_1 L_1 Δ1E_1 QI1E_1 -> + path_in_1E P beh_1E L_1. + +(** Language of 1 E*) +(** Language of 1E is the set of path of 1E ({L}) for a given 1E (behavior_1E)*) +Inductive language_of_1E (P : Prot) (beh_1E : behavior_1E P) : list L -> Prop := + | l_1E : forall L, + language_of_1E P beh_1E L. + +(**A path in sys(k)*) +(**There is only one kind of path(path_in_sys) in the parameterized system instance which is the sequence of input/output +events (L) for a given parameterized system instance sys(k) (parameterized_system_instance) *) +Inductive path_in_sys (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) : L -> Prop := + | path_k : forall L1, + path_in_sys P k R sys_k L1. + +Hypothesis Aeq_dec_L : forall A A1 : L , { A= A1} + {A <> A1}. + + Fixpoint isMem_list_L (a:L) (P: list L) : bool := + match P with + | nil => false + | B :: Bl => match Aeq_dec_L a B with + | left _ => true + | right _ => isMem_list_L a Bl + end +end. + +Extraction isMem_list_L. + +Fixpoint remove_one_L (v:L) (s: list L) : list L := + match s with + | [] => [] + | h::t => if (Aeq_dec_L h v) then t else h::(remove_one_L v t) + end. + +Extraction remove_one_L. + +Fixpoint isSubset_of_list_L (s1: list L) (s2: list L) : bool := + match s1 with + | nil => true + | h::t => if (isMem_list_L h s2) then (isSubset_of_list_L t (remove_one_L h s2)) else false + end. + +Extraction isSubset_of_list_L. + +(**Parameterized system instance language*) +(** Language of sys is the set of path of sys(k) ({L}) for a given parameterized system instance sys(k) (parameterized_system_instance) *) +Inductive language_of_sys (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) : list L -> Prop := + | l_sys : forall L, + language_of_sys P k R sys_k L. + +Inductive head_path (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) (L1 : L) : sys_action -> Prop := + | head : forall s1 sl, + path_in_sys P k R sys_k L1 -> + L1 = ( s1 :: sl) -> + head_path P k R sys_k L1 s1. + +Inductive tail_path (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) (L1 : L) : L -> Prop := + | tail : forall s1 sl, + path_in_sys P k R sys_k L1 -> + L1 = ( s1 :: sl) -> + tail_path P k R sys_k L1 sl. + +(** The following inductive relation represents the semantics of set of LTL/X property *) +Inductive entail_path (L1 : L) (a : nat) (ϕ' : ϕ_type) : bool -> Prop := + | entail_P : forall P1 p, + ϕ' = ϕ_form (id_ϕ P1) p -> + entail_path L1 a ϕ' true + | entail_until : forall ϕ1 ϕ2 w p, + w <= a -> + ϕ' = ϕ_form (until_ϕ ϕ1 ϕ2) p -> + entail_path L1 a (ϕ_form ϕ2 p) true /\ entail_path L1 w (ϕ_form ϕ1 p) true -> + entail_path L1 a ϕ' true + | entail_G : forall ϕ1 p , + ϕ' = ϕ_form (G_ϕ ϕ1) p -> + entail_path L1 a ϕ' true + | entail_not : forall ϕ1 p , + ϕ' = ϕ_form (not_ϕ ϕ1) p -> + entail_path L1 a (ϕ_form ϕ1 p) false -> + entail_path L1 a ϕ' true + | entail_and : forall ϕ1 ϕ2 p , + ϕ' = ϕ_form (and_ϕ ϕ1 ϕ2) p -> + entail_path L1 a (ϕ_form ϕ1 p) true /\ entail_path L1 a (ϕ_form ϕ2 p) true -> + entail_path L1 a ϕ' true + | entail_or : forall ϕ1 ϕ2 p , + ϕ' = ϕ_form (or_ϕ ϕ1 ϕ2) p -> + entail_path L1 a (ϕ_form ϕ1 p) true \/ entail_path L1 a (ϕ_form ϕ2 p) true -> + entail_path L1 a ϕ' true + | entail_ϕ : forall ϕ1 p, + ϕ' = ϕ_form (ϕ1) p -> + entail_path L1 a ϕ' true + | entail_no_ϕ : forall ϕ1 p, + ϕ' = ϕ_form (ϕ1) p -> + entail_path L1 a ϕ' false. + +Check entail_path. + +(**The following inductive relation specfies that 1E behavior entails a property ϕ iff path of 1E behavior entails the property ϕ*) +Inductive entail_1E (P: Prot) (beh_1E : behavior_1E P) (ϕ1 : ϕ_type) : bool -> Prop := + | sat : forall L1 a , + path_in_1E P beh_1E L1 -> + entail_path L1 a ϕ1 true -> + entail_1E P beh_1E ϕ1 true + | sat_not : forall L1 a, + path_in_1E P beh_1E L1 -> + entail_path L1 a ϕ1 false -> + entail_1E P beh_1E ϕ1 false. + +(**The following inductive relation specfies that a parameterized system instance entails a property ϕ iff path of the system entails the property ϕ*) +Inductive entail_sys (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) (ϕ1 : ϕ_type) : bool -> Prop := + | satisfy : forall S1 T1 Si1 L1 a, + sys_k = sys P k R S1 L1 T1 Si1 -> + path_in_sys P k R sys_k L1 -> + entail_path L1 a ϕ1 true -> + entail_sys P k R sys_k ϕ1 true + | satisfy_not : forall S1 T1 Si1 L1 a, + sys_k = sys P k R S1 L1 T1 Si1 -> + path_in_sys P k R sys_k L1 -> + entail_path L1 a ϕ1 false -> + entail_sys P k R sys_k ϕ1 false . + + +Check entail_sys. + +Definition p : id := Id 0. +Definition q : id := Id 1. + + +Inductive less_equal (n : process_index) : process_index -> Prop := +| le_0 : + less_equal n n +| le_n_m : forall m, + less_equal n m -> + less_equal n (m+1) +where "n <= m" := (less_equal n m) : nat_scope. + +Hypothesis nat_rule1 : forall i k : process_index, 1<= i <= k. +Hypothesis nat_rule2 : forall k n : process_index, k <= n. +Hypothesis nat_rule3 : forall i j : process_index, i <> j. +Hypothesis nat_rule4 : forall i j : process_index, i = j + 1. + +Axiom path_element_of_language : forall P k R sys_k L2 L1 , + language_of_sys P k R sys_k L2 -> + path_in_sys P k R sys_k L1 -> + isMem_list_L L1 L2 = true . + +(**Cut-off*) +(** k (nat) is said to be the cut-off for a given protocol signature (Prot) and parameterized system instance with k processes +(parameterized_system_instance (sys_k) ) if one of the following (case_1 or case_2) holds*) +(** There are two kind of cut-off condition to specify that k is the cut-off. *) +Inductive cut_off (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) : Prop := + | case_1 : forall i S1 L1 T1 Si1 n S2 L2 T2 Si2 sys_n ϕ1, + 1 <= i <= k -> + sys_k = sys P k R S1 L1 T1 Si1 -> + entail_sys P k R sys_k (ϕ_form ϕ1 (pro1 i)) true-> + k <= n -> + 1 <= i <= n -> + sys_n = sys P n R S2 L2 T2 Si2 -> + entail_sys P n R sys_n (ϕ_form ϕ1 (pro1 i)) true -> + cut_off P k R sys_k + | case_2 : forall i j S1 L1 T1 Si1 n S2 L2 T2 Si2 sys_n ϕ1, + 1 <= i <= k -> + 1 <= j <= k -> + i = j+1 \/ i = j-1 \/ ((j = 1) /\ (i = k) ) -> + i <> j -> + sys_k = sys P k R S1 L1 T1 Si1 -> + entail_sys P k R sys_k (ϕ_form ϕ1 (pro2 ((i), j))) true-> + k <= n -> + 1 <= i <= n -> + 1 <= j <= n -> + i <> j -> + sys_n = sys P n R S2 L2 T2 Si2 -> + entail_sys P n R sys_n (ϕ_form ϕ1 (pro2 ((i), (j)))) true-> + cut_off P k R sys_k. + + +(**Maximal behavior induced by a process in a system instance sys(k)*) +(** The set of paths (list L) represents maximum behavior of a process (process_index) in a system instance (parameterized_system_instance) +iff the following eveidences is satisfied for the proposition (behav_max_sys_k)*) +(** There is one constructor which describes the properties to be satisfied by the maximum behavior*) +Inductive behav_max_sys_k (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) ( i : process_index) : (list L) -> Prop := + | max : forall S2 L2 T2 Si2 l1 e e' e'' , + (1 <= i <= k) -> + i >= 0 -> + sys_k = sys P k R S2 L2 T2 Si2 -> + isMem_L ([ε] , [e]) L2 = true -> + isMem_L ([e'] , [e'']) L2 = true-> + isMem_L ([e] , [e']) L2 = true -> + isMem_list_L [([ε] , [e])] l1 = true -> + isMem_list_L [([e'] , [e''])] l1 = true-> + isMem_list_L [([e] , [e'])] l1 = true -> + isMem_list_L [([ε] , [e]) ; ([e] , [e']) ; ([e'] , [e'']) ] l1 = true -> + behav_max_sys_k P k R sys_k i l1. + +(**There is one kind of maximum behavior induced by a process in system instance which represents the set +of paths (list L) in the system instance (sys_k)*) +Inductive max_sys (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) ( p : process_index): Type := + | max_k : list L -> max_sys P k R sys_k p . + +(**The following inductive relation specfies that a maximum behavior induced by a process entails a property ϕ iff path of the max(sys(k)) entails the property ϕ*) +Inductive entail1 (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) (p q : process_index) (M : max_sys P k R sys_k p ) (ϕ1 : ϕ_type) : bool -> Prop := + | satisfies1 : forall L1 L1' a, + M = max_k P k R sys_k p L1 -> + isMem_list_L L1' L1 = true -> + entail_path L1' a ϕ1 true -> + entail1 P k R sys_k p q M ϕ1 true + | not_satisfies1 : forall L1 L1' a , + M = max_k P k R sys_k p L1 -> + isMem_list_L L1' L1 = true -> + entail_path L1' a ϕ1 false -> + entail1 P k R sys_k p q M ϕ1 false . + +(** The following axiom specifies that for a given protocol signature (P), maximum behavior induced +by a process (i) in system instance (L1) is the subset of the language of the 1E (L2).*) +Axiom max_subset_1E : forall P k R sys_k L2 L1 beh_1E i max_sys_k, + max_sys_k = max_k P k R sys_k i L1 -> + language_of_1E P beh_1E L2 -> + isSubset_of_list_L L1 L2 = true. + +Definition inc (n : nat) : nat := + match n with + | O => 1 + | S n' => S (S n') + end. + +Inductive com : Type := + | CAss : nat -> nat -> com + | CWhile : Prop -> com -> com. + +Notation "'WHILE' b 'DO' c 'END'" := + (CWhile b c) (at level 80, right associativity). + +Notation "x '::=' a" := + (CAss x a) (at level 60). + +(**Imperative definition for the algorithm*) +Inductive procedure_cutoff' (P : Prot) (R : parameterized_system_topology P) : com -> nat -> Prop := + | algo : forall sys_k S1 T1 Si1 beh_1E Q1 L1E Δ1E_1 QI1E_1 L1 L1' L2' k, + k >= 2 -> + sys_k = sys P 2 R S1 L1 T1 Si1 -> + beh_1E = b_1E P Q1 L1E Δ1E_1 QI1E_1 -> + language_of_sys P 2 R (sys P 2 R S1 L1 T1 Si1 ) L1' -> + language_of_1E P beh_1E L2' -> + procedure_cutoff' P R (WHILE ( isSubset_of_list_L L2' L1' = false ) DO + k ::= (k+1) END) k. + +(** The following relation (procedure_cutoff) specifies the conditions for finding the cut-off depending on the +condition that L(1E) is the subset of L(sys(k)) or not *) +Inductive procedure_cutoff (P: Prot) (R : parameterized_system_topology P) : nat -> Prop := + | algo_1 : forall S1 T1 L1 Sin1 beh_1E L2' L1' k , + k >= 2 -> + language_of_sys P k R (sys P k R S1 L1 T1 Sin1 ) L1' -> + language_of_1E P beh_1E L2' -> + isSubset_of_list_L L2' L1' = true -> + procedure_cutoff P R k + | algo_2 : forall S1 T1 L1 Sin1 beh_1E L2' L1' k L1'' S2 L2 T2 Sin2 k' , + k >= 2 -> + language_of_sys P k R (sys P k R S1 L1 T1 Sin1 ) L1' -> + language_of_1E P beh_1E L2' -> + isSubset_of_list_L L2' L1' = false -> + inc k = k' -> + language_of_sys P k' R (sys P k' R S2 L2 T2 Sin2 ) L1'' -> + isSubset_of_list_L L2' L1'' = true -> + procedure_cutoff P R k'. + + +(**Example showing that algorithm for DME protocol produces 2 as the cut-off*) +Lemma procedure_cutoff_DME : procedure_cutoff DME_Prot DME_Topo 2. +Proof. +apply algo_1 with [ ([2] , ([Start] , [ε])) ; + ([1] , ([Idle] , [ε])) ; + ([2] , ([Idle] , [token])) ; + ([2] , ([Ncs] , [ε ; choose])) ; + ([1] , ([Idle] , [ε ])) ; + ([2] , ([Ncs] , [choose])) ; + ([2] , ([Cs] , [ε ; into])) ; + ([2] , ([Idle] , [ε ; token])) ] + + [ ([([1] , ([Idle] , [ε])) ; ([2] , ([Start] , [ε])) ] , ([([ε], [token])], [([1] , ([Idle] , [ε ])) ; ([2] , ([Idle] , [token]))])) ; + ( [([2] , ([Idle] , [token])); ([1] , ([Idle] , [ε]))] , ([([token], [choose])], [([2] , ([Idle] , [ ])) ; ([1] , ([Ncs] , [ε ;choose]))])) ; + ( [([2] , ([Idle] , [ ])) ; ([1] , ([Ncs] , [ε ; choose]))] , ([([choose], [token])], [([2] , ([Idle] , [ ])) ; ([1] , ([Idle] , [ε ; token ]))])) ; + ( [([2] , ([Idle] , [ ])); ([2] , ([Ncs] , [ε ; choose]))] , ([([choose], [into])], [([2] , ([Idle] , [ ])); ([1] , ([Cs] , [ε ; into ]))])) ] + + [ ([ε], [token]) ; + ([token], [choose]) ; + ([choose], [token]) ; + ([choose], [into]) ; + ([into], [token]) ] + [ ([1] , ([Idle] , [ε ])) ; + ([2] , ([Start] , [ε])) ] + DME_1E + [ [ ([ε], [token]) ; + ([token], [choose]) ; + ([choose], [token]) ; + ([choose], [into]) ; + ([into], [token]) ]] + [ [ ([ε], [token]) ; + ([token], [choose]) ; + ([choose], [token]) ; + ([choose], [into]) ; + ([into], [token]) ]]. +auto. +apply l_sys. +apply l_1E. +simpl. +destruct (Aeq_dec_L). +reflexivity. +destruct n. +reflexivity. +Qed. + +Check procedure_cutoff. + +Inductive isMem_max_sys (P : Prot) (k : nat) (R : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R) ( p : process_index)(s : L) (S : max_sys P k R sys_k p) : bool -> Prop := + | mem_max1 : S = max_k P k R sys_k p nil-> + isMem_max_sys P k R sys_k p s S false + | mem_max2 : forall s1 S1, + S = max_k P k R sys_k p (s1 :: S1) -> + s = s1 -> + isMem_max_sys P k R sys_k p s S true + | mem_max3 : forall s1 S1, + S = max_k P k R sys_k p (s1 :: S1) -> + s <> s1 -> + isMem_max_sys P k R sys_k p s (max_k P k R sys_k p S1) true -> + isMem_max_sys P k R sys_k p s S true. + + +(**Path Projection*) + +Definition pair_process := (prod process_index process_index). + +(** The relation (path_projection) represents the projected path with respect to adjacent processes (R = (i,j)) for a +given system instance (sys_k) with k number of processes which is sequence of input/output events in the path (L). +There is only one constructor which describes the property of any memebr of projected path(L_proj) *) +Inductive path_projection (P : Prot) (k : nat) (R1 : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R1) (L2 : L) (P1 : path_in_sys P k R1 sys_k L2) (R : pair_process ) : L -> Prop := + | proj_path : forall i j E E' q S1 L1 T1 Sin1 e e' L1' l1 q' L_proj, + 1 <= i <= k -> + 1 <= j <= k -> + R = (i, j) -> + i = j+1 \/ i = j-1 \/ ((j = 1) /\ (i = k) ) -> + R1 = Topo P [topo P (E, ([i], [k])) [j]] -> + sys_k = sys P k R1 S1 L1 T1 Sin1 -> + language_of_sys P k R1 sys_k L1' -> + path_in_sys P k R1 sys_k L1 -> + isMem_list_L L1 L1' = true -> + isMem_L l1 L1 = true -> + l1 = ([e], [e']) -> + isMem_T P R1 k ([([i], ([q], E))] , ([([e], [e'])] , [([i], ([q'], E'))])) T1 true-> + (isMem_events e E = false /\ isMem_events e E' = true) \/ (isMem_events e' E = true /\ isMem_events e' E' = false) -> + isMem_L l1 L_proj = true -> + path_projection P k R1 sys_k L2 P1 R L_proj. + +Check path_projection. + +(** The relation (T_projection) represents the projection of transition relation (T) with respect to +adjacent processes (R = (i,j)). There is only one kind of constructor which describes the property of any memeber of +the projected transition(T2)*) +Inductive T_projection (T1 : T) (R : pair_process ) : T -> Prop := + | proj_T : forall i j P k R1 S1 L1 Sin1 E E' q q' e e' sys_k T2, + sys_k = sys P k R1 S1 L1 T1 Sin1 -> + 1 <= i <= k -> + 1 <= j <= k -> + R = (i, j) -> + i = j+1 \/ i = j-1 \/ ((j = 1) /\ (i = k) ) -> + isMem_T P R1 k ([([i], ([q], E))] , ([([e], [e'])] , [([i], ([q'], E'))])) T1 true-> + (isMem_events e E = false /\ isMem_events e E' = true) \/ (isMem_events e' E = true /\ isMem_events e' E' = false) -> + isMem_T P R1 k ([([i], ([q], E))] , ([([e], [e'])] , [([i], ([q'], E'))])) T2 true-> + T_projection T1 R T2. + +(** The relation (system_projection) represents the system projection for a given system instance (sys_k) with +respect to adjacent processes (R = (i,j)). *) +Inductive system_projection (P : Prot) (k : nat) (R1 : parameterized_system_topology P) (sys_k : parameterized_system_instance P k R1) (R : pair_process ) : parameterized_system_instance P k R1 -> Prop := + | proj_sys : forall i j S1 L1 T1 Sin1 sys_k_proj T2, + 1 <= i <= k -> + 1 <= j <= k -> + R = (i, j) -> + i = j+1 \/ i = j-1 \/ ((j = 1) /\ (i = k) )-> + sys_k = sys P k R1 S1 L1 T1 Sin1 -> + T_projection T1 R T2 -> + sys_k_proj = sys P k R1 S1 L1 T2 Sin1 -> + system_projection P k R1 sys_k R sys_k_proj. + +(**The theorem (lemma_1) says that if sys(k) entails property ϕ(i,j) +then projected behavior of the system with respect to (i,j) also entails the same property*) +Theorem lemma_1 : forall i j P k R R1 sys_k S1 L1 T1 Sin1 T2 ϕ1 a, + 1 <= i <= k -> + 1 <= j <= k -> + R1 = (i,j) -> + i = j+1 \/ i = j-1 \/ ((j = 1) /\ (i = k) ) -> + sys_k = sys P k R S1 L1 T1 Sin1 -> + T_projection T1 R1 T2 -> + entail_path L1 a (ϕ_form ϕ1 (pro2((i), j))) true -> + entail_sys P k R sys_k (ϕ_form ϕ1 (pro2((i), j))) true <-> entail_sys P k R (sys P k R S1 L1 T2 Sin1) (ϕ_form ϕ1 (pro2((i), j))) true. +Proof. +intros. +split. +intros. +apply satisfy with S1 T2 Sin1 L1 a0 . +reflexivity. +apply path_k. +destruct ϕ1. +apply entail_P with p0 (pro2 (i0, j)) . +reflexivity. +apply entail_ϕ with (form_ϕ ϕ1) (pro2 (i0, j)). +reflexivity. +apply entail_not with ϕ1 (pro2 (i0, j)) . +reflexivity. +apply entail_no_ϕ with ϕ1 (pro2 (i0, j)) . +reflexivity. +apply entail_and with ϕ1_1 ϕ1_2 (pro2 (i0, j)). +reflexivity. +split. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_ϕ with ϕ1_2 (pro2 (i0, j)). +reflexivity. +apply entail_or with ϕ1_1 ϕ1_2 (pro2 (i0, j)). +reflexivity. +left. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_until with ϕ1_1 ϕ1_2 a0 (pro2 (i0, j)) . +simpl. +auto. +reflexivity. +split. +apply entail_ϕ with ϕ1_2 (pro2 (i0, j)). +reflexivity. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_G with ϕ1 (pro2 (i0, j)). +reflexivity. +intros. +apply satisfy with S1 T1 Sin1 L1 a0. +assumption. +apply path_k. +apply entail_ϕ with ϕ1 (pro2 (i0, j)). +reflexivity. +Qed. + +(** The lamma (lemma_2) states that for any system instance (sys_k) and for all adjacent processes (i,j) if sys_k entails +φ(i, j) then max(sys(k)) also entails φ(i, j) and vice versa*) +Theorem lemma_2 : forall i j P k R sys_k L1' ϕ1 S1 L1 T1 Si1 a , + 1 <= i <= k /\ 1 <= j <= k -> + i = j+1 \/ i = j -1 \/ (i = k /\ j = 1) -> + sys_k = (sys P k R S1 L1 T1 Si1) -> + path_in_sys P k R sys_k L1 -> + entail_path L1 a (ϕ_form ϕ1 (pro2((i), j))) true -> + entail_sys P k R sys_k (ϕ_form ϕ1 (pro2((i), j))) true <-> entail1 P k R sys_k (i) (j) (max_k P k R sys_k i L1') (ϕ_form ϕ1 (pro2((i), (j)))) true . +Proof. +intros. +split. +intros. +apply satisfies1 with L1' L1 a0 . +reflexivity. +apply path_element_of_language with P0 k R sys_k . +apply l_sys. +apply path_k. +destruct ϕ1. +apply entail_P with p0 (pro2 (i0, j)) . +reflexivity. +apply entail_ϕ with (form_ϕ ϕ1) (pro2 (i0, j)). +reflexivity. +apply entail_not with ϕ1 (pro2 (i0, j)) . +reflexivity. +apply entail_no_ϕ with ( ϕ1) (pro2 (i0, j)). +reflexivity. +apply entail_and with ϕ1_1 ϕ1_2 (pro2 (i0, j)). +reflexivity. +split. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_ϕ with ϕ1_2 (pro2 (i0, j)). +reflexivity. +apply entail_or with ϕ1_1 ϕ1_2 (pro2 (i0, j)). +reflexivity. +left. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_until with ϕ1_1 ϕ1_2 a0 (pro2 (i0, j)) . +simpl. +auto. +reflexivity. +split. +apply entail_ϕ with ϕ1_2 (pro2 (i0, j)). +reflexivity. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_G with ϕ1 (pro2 (i0, j)). +reflexivity. +intros. +apply satisfy with S1 T1 Si1 L1 a0. +assumption. +assumption. +apply entail_ϕ with ϕ1 (pro2 (i0, j)). +reflexivity. +Qed. + +(** This lemma says that if the procedure_cutoff terminates and it returns k then L(1E) is the subset of L(sys_k)*) +Lemma theorem1 : forall P R S1 T1 L1 Sin1 L2' L1' beh_1E k , + language_of_sys P k R (sys P k R S1 L1 T1 Sin1 ) L1' -> + language_of_1E P beh_1E L2' -> + exists k , procedure_cutoff P R k -> + exists L1' L2', isSubset_of_list_L L2' L1' = true . +Proof. +intros. +subst. +exists(k). +intros. +inversion H1. +exists(L1'0). +exists(L2'0). +assumption. +exists(L1''). +exists(L2'0). +assumption. +Qed. +(**The theorem (theorem_2) states that if there is a evidence for truth fulfillment of the condition language of 1E (language_of_1E) behavior is the subset of language of +sys(k) (langauge_of_sys) then if sys(k) entails ϕ we can also say that sys(n) entails ϕ and vice versa *) +Theorem theorem_2 : forall i j n P k R sys_k S1 L1 T1 Sin1 S2 L2 T2 Sin2 beh_1E ϕ1 L3 L1' l2 a a1, + 1 <= i <= k -> + 1 <= j <= k -> + i = j+1 \/ i = j-1 \/ ((j = 1) /\ (i = k) )-> + n > k -> + sys_k = sys P k R S1 L1 T1 Sin1 -> + language_of_sys P k R sys_k L1' -> + path_in_sys P k R sys_k L1 -> + isMem_list_L L1 L1' = true-> + language_of_1E P beh_1E L3 -> + path_in_1E P beh_1E l2 -> + isMem_list_L l2 L3 = true-> + isSubset_of_list_L L3 L1' = true -> + entail_path L1 a (ϕ_form ϕ1 (pro2((i), j))) true -> + entail_path L2 a1 (ϕ_form ϕ1 (pro2((i), j))) true -> + entail_sys P k R sys_k (ϕ_form ϕ1 (pro2((i), j))) true <-> entail_sys P n R (sys P n R S2 L2 T2 Sin2) (ϕ_form ϕ1 (pro2((i), j))) true. +Proof. +intros. +split. +intros. +apply satisfy with S2 T2 Sin2 L2 a0. +reflexivity. +apply path_k. +destruct ϕ1. +apply entail_P with p0 (pro2 (i0, j)) . +reflexivity. +apply entail_ϕ with (form_ϕ ϕ1) (pro2 (i0, j)). +reflexivity. +apply entail_not with ϕ1 (pro2 (i0, j)) . +reflexivity. +apply entail_no_ϕ with ϕ1 (pro2 (i0, j)) . +reflexivity. +apply entail_and with ϕ1_1 ϕ1_2 (pro2 (i0, j)). +reflexivity. +split. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_ϕ with ϕ1_2 (pro2 (i0, j)). +reflexivity. +apply entail_or with ϕ1_1 ϕ1_2 (pro2 (i0, j)). +reflexivity. +left. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_until with ϕ1_1 ϕ1_2 a0 (pro2 (i0, j)) . +simpl. +auto. +reflexivity. +split. +apply entail_ϕ with ϕ1_2 (pro2 (i0, j)). +reflexivity. +apply entail_ϕ with ϕ1_1 (pro2 (i0, j)). +reflexivity. +apply entail_G with ϕ1 (pro2 (i0, j)). +reflexivity. +intros. +apply satisfy with S1 T1 Sin1 L1 a0. +assumption. +assumption. +apply entail_ϕ with ϕ1 (pro2 (i0, j)). +reflexivity. +Qed. + + +(**Soundness*) +(** The theorem (theorem_3) states that if procedure cut-off terminates (procedure_cutoff P R k) (returns k) then the return value k is the cut-off +(cut_off P k R sys_k)*) +Theorem theoem_3 : forall n k P R sys_k sys_n S1 T1 Sin1 S2 T2 Si2 ϕ1 ϕ2 P1 L1 L2 L1' L2' a a1, + sys_n = sys P n R S2 L2 T2 Si2 -> + sys_k = sys P k R S1 L1 T1 Sin1 -> + ϕ2 = (ϕ_form ϕ1 P1) -> + language_of_sys P k R sys_k L1' -> + path_in_sys P k R sys_k L1 -> + isMem_list_L L1 L1' = true-> + language_of_sys P n R sys_n L2' -> + path_in_sys P n R sys_n L2 -> + isMem_list_L L2 L2' = true-> + entail_path L1 a ϕ2 true -> + entail_path L2 a1 ϕ2 true -> + procedure_cutoff P R k -> + cut_off P k R sys_k. +Proof. +intros. +destruct P1. +apply case_1 with p0 S1 L1 T1 Sin1 n S2 L2 T2 Si2 sys_n ϕ1. +apply nat_rule1. +assumption. +apply satisfy with S1 T1 Sin1 L1 a0. +assumption. +assumption. +rewrite <- H1. +assumption. +apply nat_rule2. +apply nat_rule1. +assumption. +rewrite <- H1. +apply satisfy with S2 T2 Si2 L2 a2. +assumption. +assumption. +assumption. +destruct p0. +apply case_2 with p0 p1 S1 L1 T1 Sin1 n S2 L2 T2 Si2 sys_n ϕ1. +apply nat_rule1. +apply nat_rule1. +constructor. +apply nat_rule4. +apply nat_rule3. +assumption. +rewrite H1 in H8. +apply satisfy with S1 T1 Sin1 L1 a0. +assumption. +assumption. +assumption. +apply nat_rule2. +apply nat_rule1. +apply nat_rule1. +apply nat_rule3. +assumption. +rewrite H1 in H9. +apply satisfy with S2 T2 Si2 L2 a2. +assumption. +assumption. +assumption. +Qed. diff --git a/golok/cycle/index.shtml b/golok/cycle/index.shtml new file mode 100644 index 0000000..14ef9e1 --- /dev/null +++ b/golok/cycle/index.shtml @@ -0,0 +1,13 @@ + + + + +
+ +Omitted Proofs for CAV 2013. +

+

+Tool for CAV 2013. + + + diff --git a/golok/cycle/proof.pdf b/golok/cycle/proof.pdf new file mode 100644 index 0000000..b11e22f Binary files /dev/null and b/golok/cycle/proof.pdf differ diff --git a/golok/download/examples.tar.gz b/golok/download/examples.tar.gz new file mode 100644 index 0000000..ea0d5b6 Binary files /dev/null and b/golok/download/examples.tar.gz differ diff --git a/golok/download/golok-1.1.shtml b/golok/download/golok-1.1.shtml new file mode 100644 index 0000000..c96e984 --- /dev/null +++ b/golok/download/golok-1.1.shtml @@ -0,0 +1,50 @@ + + + + +

+

Downloading Golok

+ +
+

+ You are downloading Golok version 1.1. + Golok is a tool for push-button verification of + parameterized systems. Note that more recent versions with + better expressive power and performance characteristics are + now available from the download page. + Golok is available for free for research and teaching purposes + and for evaluation for commercial purposes subject to the following + licensing agreement. +

+
    +

    Copyright (C) 2009, Iowa State University of Science and Technology.
    + All rights reserved.

    + The Golok framework is available for free for non-profit research + and educational purposes. For commercial licensing please + contact Hridesh Rajan by sending an e-mail to hridesh@cs.iastate.edu. + The compiler, tools, libraries + and sources are licensed according to the following license: + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software") for non-profit research and educational + purposes, to use this Software subject to the following conditions: + The above copyright notice and this permission notice shall + be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE + OR OTHER DEALINGS IN THE SOFTWARE.

    +
+
+ +

I agree, download Golok.


+ +
+ + + + diff --git a/golok/download/golok-1.2.shtml b/golok/download/golok-1.2.shtml new file mode 100644 index 0000000..5b560a1 --- /dev/null +++ b/golok/download/golok-1.2.shtml @@ -0,0 +1,48 @@ + + + + +
+

Downloading Golok

+ +
+

+ You are downloading Golok version 1.2. + Golok is a tool for push-button verification of parameterized systems. + Golok is available for free for research and teaching purposes + and for evaluation for commercial purposes subject to the following + licensing agreement. +

+
    +

    Copyright (C) 2010, Iowa State University of Science and Technology.
    + All rights reserved.

    + The Golok framework is available for free for non-profit research + and educational purposes. For commercial licensing please + contact Hridesh Rajan by sending an e-mail to hridesh@cs.iastate.edu. + The compiler, tools, libraries + and sources are licensed according to the following license: + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software") for non-profit research and educational + purposes, to use this Software subject to the following conditions: + The above copyright notice and this permission notice shall + be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE + OR OTHER DEALINGS IN THE SOFTWARE.

    +
+
+ +

I agree, download Golok (Fedora Version).


+ +

I agree, download Golok (Debian Version).


+
+ + + + diff --git a/golok/download/golok-1.3.shtml b/golok/download/golok-1.3.shtml new file mode 100644 index 0000000..74b5d94 --- /dev/null +++ b/golok/download/golok-1.3.shtml @@ -0,0 +1,46 @@ + + + + +
+

Downloading Golok

+ +
+

+ You are downloading Golok version 1.3. + Golok is a tool for push-button verification of parameterized systems. + Golok is available for free for research and teaching purposes + and for evaluation for commercial purposes subject to the following + licensing agreement. +

+
    +

    Copyright (C) 2012, Iowa State University of Science and Technology.
    + All rights reserved.

    + The Golok framework is available for free for non-profit research + and educational purposes. For commercial licensing please + contact Hridesh Rajan by sending an e-mail to hridesh@iastate.edu. + The compiler, tools, libraries + and sources are licensed according to the following license: + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software") for non-profit research and educational + purposes, to use this Software subject to the following conditions: + The above copyright notice and this permission notice shall + be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE + OR OTHER DEALINGS IN THE SOFTWARE.

    +
+
+ +

I agree, download Golok (Fedora Version).


+
+ + + + diff --git a/golok/download/golok-bin-v1.1.tar.bz2 b/golok/download/golok-bin-v1.1.tar.bz2 new file mode 100644 index 0000000..536d140 Binary files /dev/null and b/golok/download/golok-bin-v1.1.tar.bz2 differ diff --git a/golok/download/golok-bin-v1.2-debian.tar.gz b/golok/download/golok-bin-v1.2-debian.tar.gz new file mode 100644 index 0000000..ffbe29c Binary files /dev/null and b/golok/download/golok-bin-v1.2-debian.tar.gz differ diff --git a/golok/download/golok-bin-v1.2-fedora.tar.gz b/golok/download/golok-bin-v1.2-fedora.tar.gz new file mode 100644 index 0000000..a7db659 Binary files /dev/null and b/golok/download/golok-bin-v1.2-fedora.tar.gz differ diff --git a/golok/download/golok-bin-v1.2.tar.bz2 b/golok/download/golok-bin-v1.2.tar.bz2 new file mode 100644 index 0000000..dec59f1 Binary files /dev/null and b/golok/download/golok-bin-v1.2.tar.bz2 differ diff --git a/golok/download/golok_bin_v1.3-fedora.tar.gz b/golok/download/golok_bin_v1.3-fedora.tar.gz new file mode 100644 index 0000000..2c15932 Binary files /dev/null and b/golok/download/golok_bin_v1.3-fedora.tar.gz differ diff --git a/golok/download/index.shtml b/golok/download/index.shtml new file mode 100644 index 0000000..2442e21 --- /dev/null +++ b/golok/download/index.shtml @@ -0,0 +1,68 @@ + + + + +
+

Downloading Golok

+ +

This web-page makes several versions of our tool available. +Each of the newer versions include capabilities of the older +versions. If you want to try out the tool, you should probably +get the latest version. On the other hand, if you intend to +compare two we describe their differences below.

+ + +

ICFEM 2016: Golok version 1.3 (2016)

+

+This is the version of Golok handles parameterized systems +with spurious loops. For instance, in a protocol +with linear topology where processes pass a token from their left to +their right, the number of passings of the token is dependent on +the number of processes in the protocol. This version includes: +

+
    +
  • Support for parameterized systems with parameter-dependent behavior
  • +
  • Extraction of the Promela model of the parameterized system from the input specification. The model + could then be verified using the Spin Model Checker.
  • +
+ +

+ This version can be downloaded from here. +

+ + +

Golok version 1.2 (Released Mar 2010)

+

+This is the version of Golok is for + +verifying multi-parameterized systems corresponding to our ICFEM paper. +It provides all features that were included in 1.1. +In addition to those features, it also includes: +

+
    +
  • Support for including processes of more than one type.
  • +
  • Number of significant optimizations to improve the scalability of Golok
  • +
+ +

+This version can be downloaded from here. +

+ +

Golok version 1.1 (Released June 2009)

+

+This is the version of Golok corresponding to our ESEC/FSE paper. +It provides the following features: +

+
    +
  • language constructs for expressing behavioral automata,
  • +
  • language constructs for expressing system topology,
  • +
  • language constructs for expressing initial configuration,
  • +
  • and implementation of our algorithm for computing cut-off value for a single-parameter system.
  • +
+

+This version can be downloaded from here. +

+ +
+ + diff --git a/golok/golok-overview.png b/golok/golok-overview.png new file mode 100644 index 0000000..8c73934 Binary files /dev/null and b/golok/golok-overview.png differ diff --git a/golok/golok-overview.svg b/golok/golok-overview.svg new file mode 100644 index 0000000..d78fb53 --- /dev/null +++ b/golok/golok-overview.svg @@ -0,0 +1,1034 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Input Specification + + Maximal BehaviorGenerator + + System InstanceGenerator + + Simulation Checker + + + VisualTranslator + + + generates sendsresult input + specifies + MaximalBehavior + passes + + System generates + passes + + passes + passes results + reads + + + _anonymous_0 + + + a0 + + SND in Start {} + + + a1 + + SND in Idle {} + + + a0->a1 + + + epsilon/ + token + + + a2 + + RCV in Ncs {} + + + a1->a2 + + + token/ + choose + + + a4 + + PASS in Idle {} + + + a2->a4 + + + choose/ + token + + + a3 + + ENTER in Cs {} + + + a2->a3 + + + choose/ + in + + + a4->a2 + + + token/ + choose + + + a5 + + LEAVE in Idle {} + + + a3->a5 + + + in/ + token + + + a5->a2 + + + token/ + choose + + + models + passes results + cut-off value + reads + Legend + + Manual process Automated process + + diff --git a/golok/icfem_16_proof.pdf b/golok/icfem_16_proof.pdf new file mode 100755 index 0000000..9223f2b Binary files /dev/null and b/golok/icfem_16_proof.pdf differ diff --git a/golok/includes/bottombar.html b/golok/includes/bottombar.html new file mode 100644 index 0000000..4a8d380 --- /dev/null +++ b/golok/includes/bottombar.html @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + +
+ + diff --git a/golok/includes/topbar.html b/golok/includes/topbar.html new file mode 100644 index 0000000..616bb5f --- /dev/null +++ b/golok/includes/topbar.html @@ -0,0 +1,144 @@ + + + + + + + +Golok: Push-button Verification of Parameterized Systems. + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + Iowa State University +
+ + + + +
+ + +
+

Golok: Push-button Verification of Parameterized Systems

+
+

These pages describe work carried out under the Golok project. +The PIs are Hridesh Rajan and +Samik Basu and +much of the work is carried out by students +Youssef Hanna and +David Samuelson. +

+
+ + + + + diff --git a/golok/index.shtml b/golok/index.shtml new file mode 100644 index 0000000..2697fe7 --- /dev/null +++ b/golok/index.shtml @@ -0,0 +1,100 @@ + + + + + + diff --git a/golok/papers/esec-fse-09.pdf b/golok/papers/esec-fse-09.pdf new file mode 100644 index 0000000..d377cc6 Binary files /dev/null and b/golok/papers/esec-fse-09.pdf differ diff --git a/golok/papers/icfem-2010.pdf b/golok/papers/icfem-2010.pdf new file mode 100644 index 0000000..9ce1f8e Binary files /dev/null and b/golok/papers/icfem-2010.pdf differ diff --git a/golok/papers/index.shtml b/golok/papers/index.shtml new file mode 100644 index 0000000..e35dade --- /dev/null +++ b/golok/papers/index.shtml @@ -0,0 +1,32 @@ + + + + + + diff --git a/golok/slede.png b/golok/slede.png new file mode 100644 index 0000000..119e778 Binary files /dev/null and b/golok/slede.png differ diff --git a/golok/theorem2.pdf b/golok/theorem2.pdf new file mode 100644 index 0000000..11e7f47 Binary files /dev/null and b/golok/theorem2.pdf differ diff --git a/hridesh/404.html b/hridesh/404.html new file mode 100644 index 0000000..d43dafc --- /dev/null +++ b/hridesh/404.html @@ -0,0 +1,5 @@ + + +You have reached this page in error + + diff --git a/hridesh/HRajan-1pageCV.pdf b/hridesh/HRajan-1pageCV.pdf new file mode 100755 index 0000000..abdfe2b Binary files /dev/null and b/hridesh/HRajan-1pageCV.pdf differ diff --git a/hridesh/HRajan-2pageCV.pdf b/hridesh/HRajan-2pageCV.pdf new file mode 100755 index 0000000..a34a37d Binary files /dev/null and b/hridesh/HRajan-2pageCV.pdf differ diff --git a/hridesh/MS-Thesis/files/template-541.tar.gz b/hridesh/MS-Thesis/files/template-541.tar.gz new file mode 100644 index 0000000..72db7ff Binary files /dev/null and b/hridesh/MS-Thesis/files/template-541.tar.gz differ diff --git a/hridesh/MS-Thesis/final.shtml b/hridesh/MS-Thesis/final.shtml new file mode 100644 index 0000000..727b97d --- /dev/null +++ b/hridesh/MS-Thesis/final.shtml @@ -0,0 +1,119 @@ + + + +Com S 541: Details About Final Project Reports + + + + + +

Final Report: Due Dec 11, 2008 at 12:40pm CST

+ +

Format for Final Project Report: +Final project report must be prepared using LaTeX. +We require you to use LaTeX as the operational +semantics, type systems, and meta-theory can be +easily typeset using this typesetting system. +We provide a template for preparing these +deliverables here. +

+ +

Submission Instructions: + project reports must be submitted via e-mail to +hridesh@cs.iastate.edu. +If you click the link above the subject will be filled automatically, +otherwise please ensure that your subject is exactly +"[Fall-08-541-Final-Project-Report]" (without the quotes). +

+

+ + +

How to write your submission and how it will be graded?

+ +

Following are important parts of your final project report. + +

+

+ + + + + + + + + diff --git a/hridesh/MS-Thesis/idea.shtml b/hridesh/MS-Thesis/idea.shtml new file mode 100644 index 0000000..62543e3 --- /dev/null +++ b/hridesh/MS-Thesis/idea.shtml @@ -0,0 +1,111 @@ + + + +Com S 541: Details About Project Ideas + + + + + +

Project Idea: On or before Sep 4, 2008 at 11:59pm CST

+ +

Submission Instructions: +Project ideas must be submitted via e-mail to +hridesh@cs.iastate.edu. +If you click the link above the subject will be filled automatically, +otherwise please ensure that your subject is exactly +"[Fall-08-541-Project-Idea]" (without the quotes). +Please download the template for project report from +here and +modify the abstract.tex file to contain the description +of your idea. +Please attach the abstract.tex with your submission e-mail. +

+ +

Keywords: Along with the project idea, please also +include a list of 4-6 relevant keywords that pertain to your +topic in the submission e-mail.

+ +

How to write your submission?

+ +

+Phil Koopman's Checklist for parts of an abstract +should serve as a guide for you to write your idea. +I am reproducing it verbatim here for your convenience. +

+ +

+"Despite the fact that an abstract is quite brief, +it must do almost as much work as the multi-page +paper that follows it. In a [..] paper, this +means that it should in most cases include the +following sections. Each section is typically a +single sentence, although there is room for +creativity. In particular, the parts may be +merged or spread among a set of sentences. Use the +following as a checklist for your next abstract: + +

+ + + + + + + +
+

News

+ + + +

+Aug 2010: Youssef's submission to ICFEM 2010 accepted. +

+

+Mar 2010: Golok ver1.2 is now available for download. This version allows for verifying parameterized systems with multiple parameters. +

+

+June 2009: Golok ver1.1 is now available for download. +

+Mar 2009: Youssef's submission to ESEC/FSE 2009 accepted. +

+ +
+ +
+
+ +

About Golok

+

+Golok is a framework for automatic verification of parameterized +systems. Given the atomic actions of the processes of the system presented +as behavioral automata, the topology of the system and the initial +state of the system, Golok automatically generates system-specific cut-off. +Golok generates GraphViz source for visualization of the generated cut-off. +

+ + + + + +

Motivation

+ +

+Parameterized systems are systems consisting of homogeneous processes, +where the parameter indicates the number of such processes in the +system. A parameterized system, therefore, describes an infinite +family of systems where instances of the family can be obtained by +fixing the parameter. Verification of correctness of such systems +amounts to verifying the correctness of every member of the infinite +family described by the system. This problem is undecidable in general. +

+ +

+A number of sound but incomplete verification techniques has been +proposed and developed in the recent past. In essence, these techniques +depend on computing the invariant or the common global behavior +of sys(n) for all n and identifying the smallest k < n +such that sys(k) exhibits that behavior. Then it can be shown that a +property is satisfied on any system instance sys(n) for any n > k +if and only if it is satisfied on sys(k). The problem with current +techniques is that they are either manual, cover only certain classes +of systems and/or are dependent on the property to be verified. +

+ +

+Golok aims to solve this problem. Golok is a framework for automating cut-off generation +of parameterized systems. +

+ +

Key Features of Golok

+
    + +
  • an interface that allows a user to specify behavioral automata,
  • + +
  • full automation of cut-off technique including model generation +and simulation checking without user intervention
  • + +
  • a visualization of part of the sys(k) instance that simulates +the maximal behavior of a process as a proof of the cut-off value. + +
+ + + +
+
+ + +
+ + +
+
+ +

Publications Related to Golok

+ +

2010

+
    +
  • +Youssef Hanna, David Samuelson, Samik Basu, and Hridesh Rajan, "Automating Cut-off for Multi-Parameterized +Systems", The 12th International Conference on Formal Engineering Methods (ICFEM 2010), +November 2010, Shanghai, China. [PDF] [Theorem2 / Notes] +
  • +
+

+

2009

+
    +
  • +Youssef Hanna, Samik Basu, and Hridesh Rajan, "Behavioral Automata Composition for Automatic Topology +Independent Verification of Parameterized Systems", The 7th joint meeting of the European Software +Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 09), +August 2009, Amsterdam, The Netherlands. [PDF] [Technial Report] +
  • +
+ +
+ +
+ +
Year Semester Due Date Deliverable
Year 1 Fall By the beginning of final's week Informal exchange and project conception. +
    Same as Course Registration Deadline Register for Com S 511, Com S 541, and Com S 515. +
  Spring Same as Course Registration Deadline Register for Com S 531, Com S 540, and Com S 512. +
    Same as ISU Course Drop Deadline POS Formation and Major Professor (adviser) selection. +
    Same as First Day of Finals Week MS Project Idea Due. +
  Summer Same as First day of Summer Session I MS Project Idea Revision Due. +
    Same as Final day of Summer Session I MS Project Proposal Due. +
    Same as Final day of Summer Session II MS Project Proposal Revision Due. +
Year 2 Fall Same as Registration Deadline Register for 3 credits Com S 699. +
    Same as Registration Deadline Register for 3 credits Com S 699. +
    By 2nd Monday in the Semester MS project proposal revision due (based on feedback). +
  Spring Same as Registration Deadline Register for 3 credits Com S 699. +
  Summer Same as First day of Summer Session I MS Project Idea Revision Due. +
    Same as Final day of Summer Session I MS Project Proposal Due. +
    Same as Final day of Summer Session II MS Project Proposal Revision Due. +
+ + +

Project Description

+

+A term project is worth 40% of your grade in this course. +The objective of the term project will be to reinforce the +knowledge of the formal tools that you will gain in this +course by applying it to a real-world research problem. +The output, and the graded deliverables, will thus be +expected to demonstrate the advance towards solving the +problem that you have selected to work on. +Note that the magnitude of advance over the semester may +vary based on the topic of your project. +The interim and final papers will report on your progress +towards solving the problem. +The description of these deliverables will be made +available below as the semester progresses. +

+ +

Project Deliverables, Due Dates and Weight (% of class grade)

+ + + +

+ +

Format for Proposal, Interim Report, and Final Report

+ +

+These deliverables must be prepared using LaTeX. +We require you to use LaTeX as the operational +semantics, type systems, and meta-theory can be +easily typeset using this typesetting system. +We provide a template for preparing these +deliverables here. +

+ + + + diff --git a/hridesh/MS-Thesis/interim.shtml b/hridesh/MS-Thesis/interim.shtml new file mode 100644 index 0000000..693a28c --- /dev/null +++ b/hridesh/MS-Thesis/interim.shtml @@ -0,0 +1,110 @@ + + + +Com S 541: Details About Interim Project Report + + + + + +

Interim Project Report: Due Nov 3, 2008 at 11:59pm CST

+ +

Format for Interim Report: +Interim report must be prepared using LaTeX. +We require you to use LaTeX as the operational +semantics, type systems, and meta-theory can be +easily typeset using this typesetting system. +We provide a template for preparing these +deliverables here. +

+ +

Submission Instructions: +Interim project reports must be submitted via e-mail to +hridesh@cs.iastate.edu. +If you click the link above the subject will be filled automatically, +otherwise please ensure that your subject is exactly +"[Fall-08-541-Interim-Project-Report]" (without the quotes). +

+

+ + +

How to write your submission and how it will be graded?

+ +

Following are important parts of your interim project report. + +

+

+ + + + + + diff --git a/hridesh/MS-Thesis/proposal.shtml b/hridesh/MS-Thesis/proposal.shtml new file mode 100644 index 0000000..e5dfdbe --- /dev/null +++ b/hridesh/MS-Thesis/proposal.shtml @@ -0,0 +1,141 @@ + + + +Com S 541: Details About Project Proposal + + + + + +

Project Proposal: Due Sept 18, 2008 at 11:59pm CST

+ +

Format for Proposal +This deliverable must be prepared using LaTeX. +We require you to use LaTeX as the operational +semantics, type systems, and meta-theory can be +easily typeset using this typesetting system. +We provide a template for preparing these +deliverables here. +

+ +

Submission Instructions: +Project ideas must be submitted via e-mail to +hridesh@cs.iastate.edu. +If you click the link above the subject will be filled automatically, +otherwise please ensure that your subject is exactly +"[Fall-08-541-Project-Proposal]" (without the quotes). +

+

+ +

How to write your submission and how it will be graded?

+ +

There are two important parts of your project proposal. + +

+ +and then there are two other parts, that are necessary to make +the context of the above clear. + + + +I will explain these in some detail below. + +

+ +

Related Work

+ +

An important part of your project is to +position your work with respect to the work that has already been +done on the topic of your project. Thus, the first step in writing +your related work is to search for relevant papers. I suggest that +you use the following iterative algorithm to look for related ideas. + +

+ +

Evaluation Methodology

+

+The evaluation of your technical approach is the most important +scientific activity. +The main purpose of evaluation is to validate your hypothesis +about your approach. +In writing the evaluation methodology part of your project +proposal, I encourage you to emphasize on two main aspects of +your experiment. +

+The description of hypothesis and experimental setup are +intertwined in the sense that each hypothesis must be +tested by a set of experiments. +

+ + + + + + diff --git a/hridesh/amesActivities.shtml b/hridesh/amesActivities.shtml new file mode 100644 index 0000000..16af692 --- /dev/null +++ b/hridesh/amesActivities.shtml @@ -0,0 +1,85 @@ + + + +Things to do around Ames, IA + + + + + +

Music and Social Gatherings

+

+During Summer: +Ames on the Half Shell - Friday evening +concerts in the Bandshell Park (Intersection of Duff Ave and 6th Street). +

+ + +

Sports

+

During Football and Basketball Season: Check out the schedule for +Iowa State Cyclones.

+ + +

Theater

+ + + +

Other Sources of Ongoing Events

+ + + +

Finally, if you can't find anything, there is Cinema

+ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hridesh/bio-short.htm b/hridesh/bio-short.htm new file mode 100644 index 0000000..92628e4 --- /dev/null +++ b/hridesh/bio-short.htm @@ -0,0 +1,10 @@ +Hridesh Rajan is +an Associate Professor of Computer Science at +the Iowa State University. +His research interests are in programming language design, semantics, +implementation, and optimiztion and in software engineering. +Hridesh is the leader of the Ptolemy project and has been designing the +language, developing its semantics and implementation and conducting +empirical evaluation to validate its design along with others. +He can be reached at +hridesh@iastate.edu.

diff --git a/hridesh/bio.shtml b/hridesh/bio.shtml new file mode 100644 index 0000000..078063b --- /dev/null +++ b/hridesh/bio.shtml @@ -0,0 +1,136 @@ + + + +Dr. Hridesh Rajan, Kingland Professor of Computer Science, Iowa State University + + + + +

Official Biographical Sketch

+

+Hridesh Rajan is a professor and interim department chair +of computer science at Iowa State University, +where he has been since 2005. +Professor Rajan earned his MS and Ph.D. from the University of Virginia +in 2004 and 2005 respectively. +Prof. Rajan's research interests are +in programming languages, software engineering, and data science where he is most known +for his design of the Ptolemy +programming language that showed how to +modularly reason about crosscutting concerns and the +Boa programming +language and its infrastructure that decreases the barriers to +data-driven software engineering. +Professor Rajan’s recent research and educational activities are aimed at +decreasing the barrier to entry to data-driven sciences to broaden participation. +His work on the Boa project is aimed at invention and refinement of +cyberinfrastructures that democratize data-driven science. +His work on the Midwest Big Data Summer School is experimenting with broadly +accessible data science curricula. +Professor Rajan is the founding general chair of the annual +Midwest Big Data Summer School, +and the founder of the VMIL workshop series. +

+

+Professor Rajan is the +interim department chair of +Department of Computer Science, +director of the +Laboratory for Software Design at +Iowa State University, and +Professor-In-Charge of the +Data Science programs +at Iowa State University. +Professor Rajan also serves as an associate editor for the +IEEE Transactions on Software Engineering. +Professor Rajan served on the steering committee of the +Midwest Big Data Hub, +a consortium of universities in the Midwest region of the United States +focussed on promoting data science activities. +Professor Rajan also served as the chair of the Faculty Senate +Information Technology committee during the transition of ERP systems. +Professor Rajan is a recipient of the National Science Foundation CAREER +award in 2009, LAS Award for Early Achievement in Research in 2010, +a Big-12 Fellowship in 2012, and a Fulbright scholarship in 2018. +He is a distinguished member of ACM, and a member of IEEE, and AAAS. +He is also the inaugural holder of the Kingland professorship in the +Department of Computer Science. +

+ +

Short bio (for talks, etc.)

+

+Hridesh Rajan is the Kingland professor and interim department chair +in the Department of Computer +Science at Iowa State University. Prof. Rajan's research interests are +in programming languages, software engineering, and data science where he is most known +for his design of the Ptolemy programming language that showed how to +modularly reason about crosscutting concerns and the Boa programming +language and its infrastructure that decreases the barriers to +data-driven software engineering. He has been recognized by the US +National Science Foundation (NSF) with a CAREER award, an Early +Achievement in Research Award, a Big-12 Fellowship, the Kingland +Professorship, and an exemplary mentor for Junior Faculty award. +Prof. Rajan is a Fulbright scholar, +distinguished member of the ACM, and serves +as an associate editor for the IEEE Transactions on Software Engineering. +

+ + +

Academic Background

+

+My advisor at University of Virginia +was Kevin Sullivan, whose +advisor was David Notkin. +My academic genealogy +goes all the way to Edsger Dijkstra. +

+ +

+In prior life, I worked at Bell Labs India, +the R&D organization of Lucent Technologies. +At the time, I was interested in bandwidth and power optimization issues in mobile +ad hoc & sensor networks as they scale up. I still keep up with these topics. +

+ +

My Canine Children: Sheru & Sarisha

+

+

+Canine Children +Canine Children +

+ +

Personal Restoration Project (2005-2017): 1902 Victorian in Ames

+

+

+1902 Victorian +

+

+1902 Victorian +

+ +

Fall At Night

+

+

+Fall at Night +

+ +

Personal

+

+I come from a small town called Mokama in Bihar, +India. I have had the pleasure to live within +50ft from the river Ganga, a major river in India, for most of my childhood. +If you are from Mokama, I will be glad to hear from you. Send me an e-mail and +we can share stories :-). +

+ +

+Beside computer science, I love + +cavaliers and cyclones, +Dreamworks Animation Movies, +driving, and golf (not necessarily in this order). +I also enjoy restoration work. +

+ + + diff --git a/hridesh/bio.shtml.bak b/hridesh/bio.shtml.bak new file mode 100644 index 0000000..14c9fa1 --- /dev/null +++ b/hridesh/bio.shtml.bak @@ -0,0 +1,107 @@ + + + +Hridesh Rajan, Assistant Professor of Computer Science, Iowa State University + + + + +

Official Biographical Sketch

+

+Hridesh Rajan is an Associate Professor of +Computer Science at +Iowa State University, where he has been since August 2005. +He received his PhD in +Computer Science +from the University of Virginia +in 2005 under supervision of +Kevin Sullivan. +He received his undergraduate degree from +Institute of Technology, +Banaras Hindu University(IT-BHU) in 2000. +Before his graduate studies at UVA, he +worked for Lucent Technologies, India (Bell Labs, India) +as a Member of Technical Staff. +Professor Rajan's research interests include +programming language design and implementation +and software engineering. +Professor Rajan is a recepient of the National Science Foundation CAREER award in 2009 +and LAS Award for Early Achievement in Research in 2010. +

+ + +

Academic Background

+

+

+My advisor at University of Virginia +was Kevin Sullivan, whose +advisor was David Notkin. +My academic genealogy +goes all the way to Edsger Dijkstra. +

+ +

+In prior life, I worked at Bell Labs India, +the R&D organization of Lucent Technologies. +At the time, I was interested in bandwidth and power optimization issues in mobile +ad hoc & sensor networks as they scale up. I still keep up with these topics. +

+ +

Personal

+ +

+I come from a small town called Mokama in Bihar, +India. I have had the pleasure to live within +50ft from the river Ganga, a major river in India, for most of my childhood. +If you are from Mokama, I will be glad to hear from you. Send me an e-mail and +we can share stories :-). +

+ +

+Beside computer science, I love + +cavaliers (trying to grow into cyclones), +Dreamworks Animation Movies, +driving, racquet ball, paintball, chess, and pool (not necessarily in this order). +Sometimes, I also pretend to be a handyman. +

+ +

Etc,etc

+ +

A friend of mine who shall remain nameless writes comic strips +about online matrimonials +www.shaadicomics.com. His comic strips are quite funny.

+ +

Another colleague and long-time friend runs this job web-site +geared towards MBA jobs +for IIM graduates. I find this forum particularly effective.

+ + + diff --git a/hridesh/calendar.bak.shtml b/hridesh/calendar.bak.shtml new file mode 100644 index 0000000..95c2fa1 --- /dev/null +++ b/hridesh/calendar.bak.shtml @@ -0,0 +1,37 @@ + + + +Weekly Schedule for Hridesh Rajan + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hridesh/contact.shtml b/hridesh/contact.shtml new file mode 100644 index 0000000..717883c --- /dev/null +++ b/hridesh/contact.shtml @@ -0,0 +1,43 @@ + + + + Contact Information for Hridesh Rajan + + + + + +

Best Way To Get in Touch

+

+hridesh@cs.iastate.edu

+ +

Prospective students: +Please read this advice before sending an e-mail. I will know if you haven't.

+

Acknowledgements: This advice is adopted from David Evans at University of Virginia

+ +

If you want to meet instead

+

Please check my +calendar for a mutually convenient time.

+ +

Other More Traditional Mediums

+ +

Mailing Address:

+

Hridesh Rajan,
+Assistant Professor,
+ Dept. of Computer Science ,
+226 Atanasoff Hall,
+ Iowa State University
+ Ames, IA, 50011-1041, USA

+ +

Phone: +1-515-294-6168

+ +

Fax: +1-515-294-0258

+ +

Physical Address:

+ +

101 Atanasoff Hall

+ + + + + diff --git a/hridesh/empty.gif b/hridesh/empty.gif new file mode 100644 index 0000000..a63a7e4 Binary files /dev/null and b/hridesh/empty.gif differ diff --git a/hridesh/files/plop07-camera-ready/Rajan-PLoP-07.pdf b/hridesh/files/plop07-camera-ready/Rajan-PLoP-07.pdf new file mode 100755 index 0000000..bb29e25 Binary files /dev/null and b/hridesh/files/plop07-camera-ready/Rajan-PLoP-07.pdf differ diff --git a/hridesh/files/plop07-camera-ready/sig-alternate.cls b/hridesh/files/plop07-camera-ready/sig-alternate.cls new file mode 100755 index 0000000..6df09c2 --- /dev/null +++ b/hridesh/files/plop07-camera-ready/sig-alternate.cls @@ -0,0 +1,1378 @@ +% +% Adapted by Hridesh Rajan for PLoP 2007, Nov 26, 2008 +% +% SIG-ALTERNATE.CLS - VERSION 1.8 +% "COMPATIBLE" WITH THE "ACM_PROC_ARTICLE-SP.CLS" V2.7SP +% Gerald Murray July 26th. 2005 +% +% ---- Start of 'updates' ---- +% +% Allowance made to switch default fonts between those systems using +% METAFONT and those using 'Type 1' or 'Truetype' fonts. +% See LINE NUMBER 252 for details. +% Also provided for enumerated/annotated Corollaries 'surrounded' by +% enumerated Theorems (line 841). +% Gerry November 11th. 1999 +% +% Made the Permission Statement / Conference Info / Copyright Info +% 'user definable' in the source .tex file OR automatic if +% not specified. +% +% Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002) +% JS/GM fix to vertical spacing before Proofs (July 30th. 2002) +% +% Footnotes inside table cells using \minipage (Oct. 2002) +% +% ---- End of 'updates' ---- +% +\def\fileversion{v1.8} % for ACM's tracking purposes +\def\filedate{July 26, 2005} % Gerry Murray's tracking data +\def\docdate {Tuesday 26th. July 2005} % Gerry Murray (with deltas to doc} +\usepackage{epsfig} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{amsfonts} +% +% SIG-ALTERNATE DOCUMENT STYLE +% G.K.M. Tobin August-October 1999 +% adapted from ARTICLE document style by Ken Traub, Olin Shivers +% also using elements of esub2acm.cls +% HEAVILY MODIFIED, SUBSEQUENTLY, BY GERRY MURRAY 2000 +% ARTICLE DOCUMENT STYLE -- Released 16 March 1988 +% for LaTeX version 2.09 +% Copyright (C) 1988 by Leslie Lamport +% +% +%%% sig-alternate.cls is an 'ALTERNATE' document style for producing +%%% two-column camera-ready pages for ACM conferences. +%%% THIS FILE DOES NOT STRICTLY ADHERE TO THE SIGS (BOARD-ENDORSED) +%%% PROCEEDINGS STYLE. It has been designed to produce a 'tighter' +%%% paper in response to concerns over page budgets. +%%% The main features of this style are: +%%% +%%% 1) Two columns. +%%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of +%%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx) +%%% 3) First page has title information, and an extra 6pc of space at the +%%% bottom of the first column for the ACM copyright notice. +%%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold. +%%% +%%% +%%% There are a few restrictions you must observe: +%%% +%%% 1) You cannot change the font size; ACM wants you to use 9pt. +%%% 3) You must start your paper with the \maketitle command. Prior to the +%%% \maketitle you must have \title and \author commands. If you have a +%%% \date command it will be ignored; no date appears on the paper, since +%%% the proceedings will have a date on the front cover. +%%% 4) Marginal paragraphs, tables of contents, lists of figures and tables, +%%% and page headings are all forbidden. +%%% 5) The `figure' environment will produce a figure one column wide; if you +%%% want one that is two columns wide, use `figure*'. +%%% +% +%%% Copyright Space: +%%% This style automatically reserves 1" blank space at the bottom of page 1/ +%%% column 1. This space can optionally be filled with some text using the +%%% \toappear{...} command. If used, this command must be BEFORE the \maketitle +%%% command. If this command is defined AND [preprint] is on, then the +%%% space is filled with the {...} text (at the bottom); otherwise, it is +%%% blank. If you use \toappearbox{...} instead of \toappear{...} then a +%%% box will be drawn around the text (if [preprint] is on). +%%% +%%% A typical usage looks like this: +%%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian +%%% Embalming Technique, June 1991, Alfaretta, Georgia.} +%%% This will be included in the preprint, and left out of the conference +%%% version. +%%% +%%% WARNING: +%%% Some dvi-ps converters heuristically allow chars to drift from their +%%% true positions a few pixels. This may be noticeable with the 9pt sans-serif +%%% bold font used for section headers. +%%% You may turn this hackery off via the -e option: +%%% dvips -e 0 foo.dvi >foo.ps +%%% +\typeout{Document Class 'sig-alternate' <26th. July '05>. Modified by G.K.M. Tobin/Gerry Murray} +\typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by} +\typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca} +\typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.} +\typeout{****** Bugs/comments/suggestions/technicalities to Gerry Murray -- murray@hq.acm.org ******} +\typeout{Questions on the style, SIGS policies, etc. to Adrienne Griscti griscti@acm.org} +\oddsidemargin 4.5pc +\evensidemargin 4.5pc +\advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness +\advance\evensidemargin by -1in % Correct for LaTeX gratuitousness +\marginparwidth 0pt % Margin pars are not allowed. +\marginparsep 11pt % Horizontal space between outer margin and + % marginal note + + % Top of page: +\topmargin 4.5pc % Nominal distance from top of page to top of + % box containing running head. +\advance\topmargin by -1in % Correct for LaTeX gratuitousness +\headheight 0pt % Height of box containing running head. +\headsep 0pt % Space between running head and text. + % Bottom of page: +\footskip 30pt % Distance from baseline of box containing foot + % to baseline of last line of text. +\@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e +\footheight 12pt % Height of box containing running foot. + +%% Must redefine the top margin so there's room for headers and +%% page numbers if you are using the preprint option. Footers +%% are OK as is. Olin. +\advance\topmargin by -37pt % Leave 37pt above text for headers +\headheight 12pt % Height of box containing running head. +\headsep 25pt % Space between running head and text. + +\textheight 666pt % 9 1/4 column height +\textwidth 42pc % Width of text line. + % For two-column mode: +\columnsep 2pc % Space between columns +\columnseprule 0pt % Width of rule between columns. +\hfuzz 1pt % Allow some variation in column width, otherwise it's + % too hard to typeset in narrow columns. + +\footnotesep 5.6pt % Height of strut placed at the beginning of every + % footnote =3D height of normal \footnotesize strut, + % so no extra space between footnotes. + +\skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and + % top of first footnote. +\floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved + % to top or bottom of text page. +\textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats + % at top or bottom of page. +\intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and + % text. +\@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e +\@maxsep 18pt % The maximum of \floatsep, + % \textfloatsep and \intextsep (minus + % the stretch and shrink). +\dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column + % figures in two-column mode. +\dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column + % floats. +\@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e +\@dblmaxsep 18pt % The maximum of \dblfloatsep and + % \dbltexfloatsep. +\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be + % 0pt plus ...) +\@fpsep 8pt plus 2fil % Space between floats on float page/column. +\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be + % 0pt plus ... ) +\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...) +\@dblfpsep 8pt plus 2fil % Space between floats on float page. +\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be + % 0pt plus ... ) +\marginparpush 5pt % Minimum vertical separation between two marginal + % notes. + +\parskip 0pt plus 1pt % Extra vertical space between paragraphs. +\parindent 9pt % GM July 2000 / was 0pt - width of paragraph indentation. +\partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to + % \parskip and \topsep, added when user + % leaves blank line before environment. + +\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] +\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] +\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] + +\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment. +\@endparpenalty -\@lowpenalty % After a list or paragraph environment. +\@itempenalty -\@lowpenalty % Between list items. + +\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf' + document style.}\@eha} +\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf' + document style.}\@eha} +\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf' + document style.}\@eha} + +\@options + +\lineskip 2pt % \lineskip is 1pt for all font sizes. +\normallineskip 2pt +\def\baselinestretch{1} + +\abovedisplayskip 9pt plus2pt minus4.5pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt% +\belowdisplayshortskip 5.4pt plus3pt minus3pt% +\let\@listi\@listI % Setting of \@listi added 9 Jun 87 + +\def\small{\@setsize\small{9pt}\viiipt\@viiipt +\abovedisplayskip 7.6pt plus 3pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt% +\belowdisplayshortskip 3.6pt plus2pt minus 2pt +\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 +\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt +\abovedisplayskip 6.4pt plus 2pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus 1pt% +\belowdisplayshortskip 2.7pt plus 1pt minus 2pt +\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 +\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\newcount\aucount +\newcount\originalaucount +\newdimen\auwidth +\auwidth=\textwidth +\newdimen\auskip +\newcount\auskipcount +\newdimen\auskip +\global\auskip=1pc +\newdimen\allauboxes +\allauboxes=\auwidth +\newtoks\addauthors +\newcount\addauflag +\global\addauflag=0 %Haven't shown additional authors yet + +\newtoks\subtitletext +\gdef\subtitle#1{\subtitletext={#1}} + +\gdef\additionalauthors#1{\addauthors={#1}} + +\gdef\numberofauthors#1{\global\aucount=#1 +\ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g} +\global\auskipcount=\aucount\global\advance\auskipcount by 1 +\global\multiply\auskipcount by 2 +\global\multiply\auskip by \auskipcount +\global\advance\auwidth by -\auskip +\global\divide\auwidth by \aucount} + +% \and was modified to count the number of authors. GKMT 12 Aug 1999 +\def\alignauthor{% % \begin{tabular} +\end{tabular}% + \begin{tabular}[t]{p{\auwidth}}\centering}% + +% *** NOTE *** NOTE *** NOTE *** NOTE *** +% If you have 'font problems' then you may need +% to change these, e.g. 'arialb' instead of "arialbd". +% Gerry Murray 11/11/1999 +% *** OR ** comment out block A and activate block B or vice versa. +% ********************************************** +% +% -- Start of block A -- (Type 1 or Truetype fonts) +%\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd +%\newfont{\secit}{timesbi at 12pt} %13 Jan 00 gkmt +%\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi +%\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000 +% % because "normal" is italic, "italic" is Roman +%\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd +%\newfont{\ttlit}{arialbi at 18pt} % 13 Jan 00 gkmt +%\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial +%\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt +%\newfont{\subttlbf}{arialbd at 14pt} % 13 Jan 00 gkmt +%\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial +%\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt +%\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial +%\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt +%\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial +%\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times +%\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi +%\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times +%\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times + +% ********************************************* +% -- End of block A -- +% +% +% -- Start of block B -- METAFONT +% +++++++++++++++++++++++++++++++++++++++++++++ +% Next (default) block for those using Metafont +% Gerry Murray 11/11/1999 +% *** THIS BLOCK FOR THOSE USING METAFONT ***** +% ********************************************* +\newfont{\secfnt}{ptmb at 12pt} +\newfont{\secit}{ptmbi at 12pt} %13 Jan 00 gkmt +\newfont{\subsecfnt}{ptmri at 11pt} +\newfont{\subsecit}{ptmbi at 11pt} % 13 Jan 00 gkmt -- was ptmr changed to ptmbi gm 2/4/2000 + % because "normal" is italic, "italic" is Roman +\newfont{\ttlfnt}{phvb at 18pt} +\newfont{\ttlit}{phvbo at 18pt} % GM 2/4/2000 +\newfont{\subttlfnt}{phvr at 14pt} +\newfont{\subttlit}{phvro at 14pt} % GM 2/4/2000 +\newfont{\subttlbf}{phvb at 14pt} % 13 Jan 00 gkmt +\newfont{\aufnt}{phvr at 12pt} +\newfont{\auit}{phvro at 12pt} % GM 2/4/2000 +\newfont{\affaddr}{phvr at 10pt} +\newfont{\affaddrit}{phvro at 10pt} % GM 2/4/2000 +\newfont{\eaddfnt}{phvr at 12pt} +\newfont{\ixpt}{ptmr at 9pt} +\newfont{\confname}{ptmri at 8pt} +\newfont{\crnotice}{ptmr at 8pt} +\newfont{\ninept}{ptmr at 9pt} +% +++++++++++++++++++++++++++++++++++++++++++++ +% -- End of block B -- + + +\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}} + +\def\addauthorsection{\ifnum\originalaucount>3 + \section{Additional Authors}\the\addauthors + \fi} + +\newcount\savesection +\newcount\sectioncntr +\global\sectioncntr=1 + +\setcounter{secnumdepth}{3} + +\def\appendix{\par +\section*{APPENDIX} +\setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}} } + +\leftmargini 22.5pt +\leftmarginii 19.8pt % > \labelsep + width of '(m)' +\leftmarginiii 16.8pt % > \labelsep + width of 'vii.' +\leftmarginiv 15.3pt % > \labelsep + width of 'M.' +\leftmarginv 9pt +\leftmarginvi 9pt + +\leftmargin\leftmargini +\labelsep 4.5pt +\labelwidth\leftmargini\advance\labelwidth-\labelsep + +\def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt% +\topsep 7.2pt plus 2pt minus 4pt% +\itemsep 3.6pt plus 2pt minus 1pt} + +\let\@listi\@listI +\@listi + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 3.6pt plus 2pt minus 1pt + \parsep 1.8pt plus 0.9pt minus 0.9pt + \itemsep \parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 1.8pt plus 0.9pt minus 0.9pt + \parsep \z@ \partopsep 1pt plus 0pt minus 1pt + \itemsep \topsep} + +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} + +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep} + +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} + +\def\labelenumi{\theenumi.} +\def\theenumi{\arabic{enumi}} + +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} + +\def\labelenumiii{\theenumiii.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} + +\def\labelenumiv{\theenumiv.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} + +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} +\let\endverse\endlist + +\def\quotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist + +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + +\def\descriptionlabel#1{\hspace\labelsep \bf #1} +\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + +\let\enddescription\endlist + +\def\theequation{\arabic{equation}} + +\arraycolsep 4.5pt % Half the space between columns in an array environment. +\tabcolsep 5.4pt % Half the space between columns in a tabular environment. +\arrayrulewidth .4pt % Width of rules in array and tabular environment. +\doublerulesep 1.8pt % Space between adjacent rules in array or tabular env. + +\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.) + +\skip\@mpfootins =\skip\footins + +\fboxsep =2.7pt % Space left between box and text by \fbox and \framebox. +\fboxrule =.4pt % Width of rules in box made by \fbox and \framebox. + +\def\thepart{\Roman{part}} % Roman numeral part numbers. +\def\thesection {\arabic{section}} +\def\thesubsection {\thesection.\arabic{subsection}} +%\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002 +%\def\theparagraph {\thesubsubsection.\arabic{paragraph}} % GM 7/30/2002 +\def\thesubparagraph {\theparagraph.\arabic{subparagraph}} + +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} + +\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not + allowed in the `acmconf' document style.}\@eha} + +\def\l@part#1#2{\addpenalty{\@secpenalty} + \addvspace{2.25em plus 1pt} % space above part line + \begingroup + \@tempdima 3em % width of box holding part number, used by + \parindent \z@ \rightskip \@pnumwidth %% \numberline + \parfillskip -\@pnumwidth + {\large \bf % set line in \large boldface + \leavevmode % TeX command to enter horizontal mode. + #1\hfil \hbox to\@pnumwidth{\hss #2}}\par + \nobreak % Never break after part entry + \endgroup} + +\def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break + \addvspace{1.0em plus 1pt} % space above toc entry + \@tempdima 1.5em % width of box holding section number + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \bf % Boldface. + \leavevmode % TeX command to enter horizontal mode. + \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to + \hskip -\leftskip %% 25 Jan 88 change to \numberline + #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par + \endgroup} + + +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} + +\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not + allowed in the `acmconf' document style.}\@eha} + +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\listoftables{\@latexerr{\listoftables: Lists of tables are not + allowed in the `acmconf' document style.}\@eha} +\let\l@table\l@figure + +\def\footnoterule{\kern-3\p@ + \hrule width .4\columnwidth + \kern 2.6\p@} % The \hrule has default height of .4pt . +% ------ +\long\def\@makefntext#1{\noindent +%\hbox to .5em{\hss$^{\@thefnmark}$}#1} % original +\hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1} % C. Clifton / GM Oct. 2nd. 2002 +% ------- + +\long\def\@maketntext#1{\noindent +#1} + +\long\def\@maketitlenotetext#1#2{\noindent + \hbox to 1.8em{\hss$^{#1}$}#2} + +\setcounter{topnumber}{2} +\def\topfraction{.7} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.3} +\setcounter{totalnumber}{3} +\def\textfraction{.2} +\def\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.7} +\def\dblfloatpagefraction{.5} + +% +\long\def\@makecaption#1#2{ + \vskip \baselineskip + \setbox\@tempboxa\hbox{\textbf{#1: #2}} + \ifdim \wd\@tempboxa >\hsize % IF longer than one line: + \textbf{#1: #2}\par % THEN set as ordinary paragraph. + \else % ELSE center. + \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par + \fi} + +% + +\long\def\@makecaption#1#2{ + \vskip 10pt + \setbox\@tempboxa\hbox{\textbf{#1: #2}} + \ifdim \wd\@tempboxa >\hsize % IF longer than one line: + \textbf{#1: #2}\par % THEN set as ordinary paragraph. + \else % ELSE center. + \hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi} + +\@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e + +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{Figure \thefigure} +\def\figure{\@float{figure}} +\let\endfigure\end@float +\@namedef{figure*}{\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} + +\@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e + +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{Table \thetable} +\def\table{\@float{table}} +\let\endtable\end@float +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + +\newtoks\titleboxnotes +\newcount\titleboxnoteflag + +\def\maketitle{\par + \begingroup + \def\thefootnote{\fnsymbol{footnote}} + \def\@makefnmark{\hbox + to 0pt{$^{\@thefnmark}$\hss}} + \twocolumn[\@maketitle] +\@thanks + \endgroup + \setcounter{footnote}{0} + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax + \@copyrightspace} + +%% CHANGES ON NEXT LINES +\newif\if@ll % to record which version of LaTeX is in use + +\expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used +\else% LaTeX2e is used, so set ll to true +\global\@lltrue +\fi + +\if@ll + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{sig-alternate} [2005/26/07 - V1.8 - based on acmproc.cls V1.3 ] + \RequirePackage{latexsym}% QUERY: are these two really needed? + \let\dooptions\ProcessOptions +\else + \let\dooptions\@options +\fi +%% END CHANGES + +\def\@height{height} +\def\@width{width} +\def\@minus{minus} +\def\@plus{plus} +\def\hb@xt@{\hbox to} +\newif\if@faircopy +\@faircopyfalse +\def\ds@faircopy{\@faircopytrue} + +\def\ds@preprint{\@faircopyfalse} + +\@twosidetrue +\@mparswitchtrue +\def\ds@draft{\overfullrule 5\p@} +%% CHANGE ON NEXT LINE +\dooptions + +\lineskip \p@ +\normallineskip \p@ +\def\baselinestretch{1} +\def\@ptsize{0} %needed for amssymbols.sty + +%% CHANGES ON NEXT LINES +\if@ll% allow use of old-style font change commands in LaTeX2e +\@maxdepth\maxdepth +% +\DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} +\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} +\fi +% +\if@ll + \renewcommand{\rmdefault}{cmr} % was 'ttm' +% Note! I have also found 'mvr' to work ESPECIALLY well. +% Gerry - October 1999 +% You may need to change your LV1times.fd file so that sc is +% mapped to cmcsc - -for smallcaps -- that is if you decide +% to change {cmr} to {times} above. (Not recommended) + \renewcommand{\@ptsize}{} + \renewcommand{\normalsize}{% + \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI + } +\else + \def\@normalsize{%changed next to 9 from 10 + \@setsize\normalsize{9\p@}\ixpt\@ixpt + \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI + }% +\fi +\if@ll + \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}} + \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}} + \newcommand\large{\@setfontsize\large\@xiipt{14\p@}} + \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}} + \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}} + \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}} + \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}} +\else + \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt} + \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt} + \def\large{\@setsize\large{14\p@}\xiipt\@xiipt} + \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt} + \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt} + \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt} + \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt} +\fi +\normalsize + +% make aubox hsize/number of authors up to 3, less gutter +% then showbox gutter showbox gutter showbox -- GKMT Aug 99 +\newbox\@acmtitlebox +\def\@maketitle{\newpage + \null + \setbox\@acmtitlebox\vbox{% +\baselineskip 20pt +\vskip 2em % Vertical space above title. + \begin{center} + {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size. + \vskip 1.5em % Vertical space after title. +%This should be the subtitle. +{\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi + {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a + \lineskip .5em % tabular environment + \begin{tabular}[t]{c}\@author + \end{tabular}\par} + \vskip 1.5em % Vertical space after author. + \end{center}} + \dimen0=\ht\@acmtitlebox + \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT + \unvbox\@acmtitlebox + \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi} + + +\newcount\titlenotecount +\global\titlenotecount=0 +\newtoks\tntoks +\newtoks\tntokstwo +\newtoks\tntoksthree +\newtoks\tntoksfour +\newtoks\tntoksfive + +\def\abstract{ +\ifnum\titlenotecount>0 % was =1 + \insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + }% + \color@begingroup +\ifnum\titlenotecount=1 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=2 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=3 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=4 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=5 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}% +\fi + \color@endgroup} %g} +\fi +\setcounter{footnote}{0} +\section*{ABSTRACT}\normalsize%\ninept +} + +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +\def\keywords{\if@twocolumn +\section*{Keywords} +\else \small +\quotation +\fi} + +\def\terms{\if@twocolumn +\section*{General Terms} +\else \small +\quotation +\fi} + +% -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999 +\newcount\catcount +\global\catcount=1 + +\def\category#1#2#3{% +\ifnum\catcount=1 +\section*{Categories and Subject Descriptors} +\advance\catcount by 1\else{\unskip; }\fi + \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}% +} + +\def\@category#1#2#3[#4]{% + \begingroup + \let\and\relax + #1 [\textbf{#2}]% + \if!#4!% + \if!#3!\else : #3\fi + \else + :\space + \if!#3!\else #3\kern\z@---\hskip\z@\fi + \textit{#4}% + \fi + \endgroup +} +% + +%%% This section (written by KBT) handles the 1" box in the lower left +%%% corner of the left column of the first page by creating a picture, +%%% and inserting the predefined string at the bottom (with a negative +%%% displacement to offset the space allocated for a non-existent +%%% caption). +%%% +\newtoks\copyrightnotice +\def\ftype@copyrightbox{8} +\def\@copyrightspace{ +\@float{copyrightbox}[b] +\begin{center} +\setlength{\unitlength}{1pc} +\begin{picture}(20,6) %Space for copyright notice +\put(0,-0.95){\crnotice{\@toappear}} +\end{picture} +\end{center} +\end@float} + +\def\@toappear{} % Default setting blank - commands below change this. +\long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}} +\def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}} + +\newtoks\conf +\newtoks\confinfo +\def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}} + + +\def\marginpar{\@latexerr{The \marginpar command is not allowed in the + `acmconf' document style.}\@eha} + +\mark{{}{}} % Initializes TeX's marks + +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +\def\@begintheorem#1#2{% + \parskip 0pt % GM July 2000 (for tighter spacing) + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {{\sc #1}\hskip 5\p@\relax#2.}% + ] + \it +} +\def\@opargbegintheorem#1#2#3{% + \parskip 0pt % GM July 2000 (for tighter spacing) + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries + \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title' + \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems + \hskip 5\p@\relax % if they occur 'around' said corollaries. + \box\@tempboxa % Gerry - Nov. 1999. + \fi.}% + ] + \it +} +\newif\if@qeded +\global\@qededfalse + +% -- original +%\def\proof{% +% \vspace{-\parskip} % GM July 2000 (for tighter spacing) +% \global\@qededfalse +% \@ifnextchar[{\@xproof}{\@proof}% +%} +% -- end of original + +% (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002 +\def\proof{% +\vspace{-\lastskip}\vspace{-\parsep}\penalty-51% +\global\@qededfalse +\@ifnextchar[{\@xproof}{\@proof}% +} + +\def\endproof{% + \if@qeded\else\qed\fi + \endtrivlist +} +\def\@proof{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\sc Proof.}% + ] + \ignorespaces +} +\def\@xproof[#1]{% + \trivlist + \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]% + \ignorespaces +} +\def\qed{% + \unskip + \kern 10\p@ + \begingroup + \unitlength\p@ + \linethickness{.4\p@}% + \framebox(6,6){}% + \endgroup + \global\@qededtrue +} + +\def\newdef#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \global\@namedef{#1}{\@defthm{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}% + }% +} +\def\@defthm#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}% +} +\def\@xdefthm#1#2{% + \@begindef{#2}{\csname the#1\endcsname}% + \ignorespaces +} +\def\@ydefthm#1#2[#3]{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #2% + \savebox\@tempboxa{#3}% + \ifdim \wd\@tempboxa>\z@ + \ \box\@tempboxa + \fi.% + }]% + \ignorespaces +} +\def\@begindef#1#2{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #1\ \rm #2.}% + ]% +} +\def\theequation{\arabic{equation}} + +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\def\thepart{\Roman{part}} +\def\thesection{\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt +\newif\if@uchead +\@ucheadfalse + +%% CHANGES: NEW NOTE +%% NOTE: OK to use old-style font commands below, since they were +%% suitably redefined for LaTeX2e +%% END CHANGES +\setcounter{secnumdepth}{3} +\def\part{% + \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} + {4\p@}{\normalsize\@ucheadtrue}% +} +\def\section{% + \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% GM + {4\p@}{\baselineskip 14pt\secfnt\@ucheadtrue}% +} + +\def\subsection{% + \@startsection{subsection}{2}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@} + {4\p@}{\secfnt}% +} +\def\subsubsection{% + \@startsection{subsubsection}{3}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@}% + {4\p@}{\subsecfnt}% +} +\def\paragraph{% + \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% + {-5\p@}{\subsecfnt}% +} +\let\@period=. +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec %gkmt, 11 aug 99 + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \par % + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa + \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty + \addvspace\@tempskipa + \fi +\parskip=0pt % GM July 2000 (non numbered) section heads + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}} + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}% +} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \edef\@svsec{% + \begingroup + %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt + \ifnum#2>2 \noexpand#6 \fi + \csname the#1\endcsname + \endgroup + \ifnum #2=1\relax .\fi + \hskip 1em + }% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6\relax + \@hangfrom{\hskip #3\relax\@svsec}% + \begingroup + \interlinepenalty \@M + \if@uchead + \uppercase{#8}% + \else + #8% + \fi + \par + \endgroup + \endgroup + \csname #1mark\endcsname{#7}% + \vskip -12pt %gkmt, 11 aug 99 and GM July 2000 (was -14) - numbered section head spacing +\addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7% + }% + \else + \def\@svsechd{% + #6% + \hskip #3\relax + \@svsec + \if@uchead + \uppercase{#8}% + \else + #8% + \fi + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7% + }% + }% + \fi + \@xsect{#5}\hskip 1pt + \par +} +\def\@xsect#1{% + \@tempskipa #1\relax + \ifdim \@tempskipa>\z@ + \par + \nobreak + \vskip \@tempskipa + \@afterheading + \else + \global\@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + \clubpenalty\@M + \hskip -\parindent + \begingroup + \@svsechd + \@period + \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \else + \clubpenalty \@clubpenalty + \everypar{}% + \fi + }% + \fi + \ignorespaces +} +\def\@trivlist{% + \@topsepadd\topsep + \if@noskipsec + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \ifvmode + \advance\@topsepadd\partopsep + \else + \unskip + \par + \fi + \if@inlabel + \@noparitemtrue + \@noparlisttrue + \else + \@noparlistfalse + \@topsep\@topsepadd + \fi + \advance\@topsep \parskip + \leftskip\z@skip + \rightskip\@rightskip + \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi} + \global\@newlisttrue + \@outerparskip\parskip +} + +%%% Actually, 'abbrev' works just fine as the default +%%% Bibliography style. + +\typeout{Using 'Abbrev' bibliography style} +\newcommand\bibyear[2]{% + \unskip\quad\ignorespaces#1\unskip + \if#2..\quad \else \quad#2 \fi +} +\newcommand{\bibemph}[1]{{\em#1}} +\newcommand{\bibemphic}[1]{{\em#1\/}} +\newcommand{\bibsc}[1]{{\sc#1}} +\def\@normalcite{% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% +} +\def\@citeNB{% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% +} +\def\@citeRB{% + \def\@cite##1##2{##1\if@tempswa , ##2\fi]}% +} +\def\start@cite#1#2{% + \edef\citeauthoryear##1##2##3{% + ###1% + \ifnum#2=\z@ \else\ ###2\fi + }% + \ifnum#1=\thr@@ + \let\@@cite\@citeyear + \else + \let\@@cite\@citenormal + \fi + \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}% +} +\def\cite{\start@cite23} +\def\citeNP{\cite*} +\def\citeA{\start@cite10} +\def\citeANP{\citeA*} +\def\shortcite{\start@cite23} +\def\shortciteNP{\shortcite*} +\def\shortciteA{\start@cite20} +\def\shortciteANP{\shortciteA*} +\def\citeyear{\start@cite30} +\def\citeyearNP{\citeyear*} +\def\citeN{% + \@citeRB + \def\citeauthoryear##1##2##3{##1\ [##3% + \def\reserved@a{##1}% + \def\citeauthoryear####1####2####3{% + \def\reserved@b{####1}% + \ifx\reserved@a\reserved@b + ####3% + \else + \errmessage{Package acmart Error: author mismatch + in \string\citeN^^J^^J% + See the acmart package documentation for explanation}% + \fi + }% + }% + \@ifstar\@citeyear\@citeyear +} +\def\shortciteN{% + \@citeRB + \def\citeauthoryear##1##2##3{##2\ [##3% + \def\reserved@a{##2}% + \def\citeauthoryear####1####2####3{% + \def\reserved@b{####2}% + \ifx\reserved@a\reserved@b + ####3% + \else + \errmessage{Package acmart Error: author mismatch + in \string\shortciteN^^J^^J% + See the acmart package documentation for explanation}% + \fi + }% + }% + \@ifstar\@citeyear\@citeyear % GM July 2000 +} +\def\@citenormal{% + \@ifnextchar [{\@tempswatrue\@citex;} + {\@tempswafalse\@citex,[]}% % GM July 2000 +} +\def\@citeyear{% + \@ifnextchar [{\@tempswatrue\@citex,}% + {\@tempswafalse\@citex,[]}% +} +\def\@citex#1[#2]#3{% + \let\@citea\@empty + \@cite{% + \@for\@citeb:=#3\do{% + \@citea + \def\@citea{#1 }% + \edef\@citeb{\expandafter\@iden\@citeb}% + \if@filesw + \immediate\write\@auxout{\string\citation{\@citeb}}% + \fi + \@ifundefined{b@\@citeb}{% + {\bf ?}% + \@warning{% + Citation `\@citeb' on page \thepage\space undefined% + }% + }% + {\csname b@\@citeb\endcsname}% + }% + }{#2}% +} +\let\@biblabel\@gobble +\newdimen\bibindent +\setcounter{enumi}{1} +\bibindent=0em +\def\thebibliography#1{% +\ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi + \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE + {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004) + \vskip -9pt % GM July 2000 (for tighter spacing) + \@mkboth{{\refname}}{{\refname}}% + }% + \list{[\arabic{enumi}]}{% + \settowidth\labelwidth{[#1]}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \advance\leftmargin\bibindent + \parsep=0pt\itemsep=1pt % GM July 2000 + \itemindent -\bibindent + \listparindent \itemindent + \usecounter{enumi} + }% + \let\newblock\@empty + \raggedright % GM July 2000 + \sloppy + \sfcode`\.=1000\relax +} + + +\gdef\balancecolumns +{\vfill\eject +\global\@colht=\textheight +\global\ht\@cclv=\textheight +} + +\newcount\colcntr +\global\colcntr=0 +\newbox\savebox + +\gdef \@makecol {% +\global\advance\colcntr by 1 +\ifnum\colcntr>2 \global\colcntr=1\fi + \ifvoid\footins + \setbox\@outputbox \box\@cclv + \else + \setbox\@outputbox \vbox{% +\boxmaxdepth \@maxdepth + \@tempdima\dp\@cclv + \unvbox \@cclv + \vskip-\@tempdima + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + }% + \fi + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% +\@texttop + \dimen@ \dp\@outputbox + \unvbox \@outputbox + \vskip -\dimen@ + \@textbottom + }% + \fi + \global \maxdepth \@maxdepth +} +\def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn +\global\advance\titlenotecount by 1 +\ifnum\titlenotecount=1 + \raisebox{9pt}{$\ast$} +\fi +\ifnum\titlenotecount=2 + \raisebox{9pt}{$\dagger$} +\fi +\ifnum\titlenotecount=3 + \raisebox{9pt}{$\ddagger$} +\fi +\ifnum\titlenotecount=4 +\raisebox{9pt}{$\S$} +\fi +\ifnum\titlenotecount=5 +\raisebox{9pt}{$\P$} +\fi + \@titlenotetext +}} + +\long\def\@titlenotetext#1{\insert\footins{% +\ifnum\titlenotecount=1\global\tntoks={#1}\fi +\ifnum\titlenotecount=2\global\tntokstwo={#1}\fi +\ifnum\titlenotecount=3\global\tntoksthree={#1}\fi +\ifnum\titlenotecount=4\global\tntoksfour={#1}\fi +\ifnum\titlenotecount=5\global\tntoksfive={#1}\fi + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + }% + \color@begingroup + \color@endgroup}} + +%%%%%%%%%%%%%%%%%%%%%%%%% +\ps@plain +\baselineskip=11pt +\let\thepage\relax % For NO page numbers - GM Nov. 30th. 1999 and July 2000 +\def\setpagenumber#1{\global\setcounter{page}{#1}} +%\pagenumbering{arabic} % Arabic page numbers GM July 2000 +\twocolumn % Double column. +\flushbottom % Even bottom -- alas, does not balance columns at end of document +\pagestyle{plain} + +% Need Copyright Year and Copyright Data to be user definable (in .tex file). +% Gerry Nov. 30th. 1999 +\newtoks\copyrtyr +\newtoks\acmcopyr +\newtoks\boilerplate +\global\acmcopyr={978-1-60558-411-9} % Default - 5/11/2001 *** Gerry +\global\copyrtyr={2007} % Default - 3/3/2003 *** Gerry +\def\CopyrightYear#1{\global\copyrtyr{#1}} +\def\crdata#1{\global\acmcopyr{#1}} +\def\permission#1{\global\boilerplate{#1}} +% +\global\boilerplate={Preliminary versions of these papers were workshopped at Pattern + Languages of Programming (PLoP) '07 September 5-8, 2007, Monticello, + IL, USA. Permission to make digital or hard copies of all or part of + this work for personal or classroom use is granted without fee + provided that copies are not made or distributed for profit or + commercial advantage and that copies bear this notice and the full + citation on the first page. To copy otherwise, to republish, to post + on servers or to redistribute to lists, requires prior specific + permission.} +\newtoks\copyrightetc +\global\copyrightetc{Copyright is held by the authors. \the\acmcopyr\ ...\$5.00} + +\toappear{\the\boilerplate\par +{\confname{\the\conf}} \the\confinfo\par \the\copyrightetc.} +% +%% End of sig-alternate.cls -- V1.8 - 7/26/2005 -- +%% Gerry Murray -- Wednesday July 26th. 2005 diff --git a/hridesh/fundingNSF.htm b/hridesh/fundingNSF.htm new file mode 100644 index 0000000..e02c75e --- /dev/null +++ b/hridesh/fundingNSF.htm @@ -0,0 +1,55 @@ + + + + + + + +
+ +National Science Foundation + +

+

We are thankful to the US National Science Foundation for supporting our +research under the following grants. +

+ + +
diff --git a/hridesh/gradadm/#Textbooks-Spring2002.htm# b/hridesh/gradadm/#Textbooks-Spring2002.htm# new file mode 100755 index 0000000..3f0cb42 --- /dev/null +++ b/hridesh/gradadm/#Textbooks-Spring2002.htm# @@ -0,0 +1,765 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Spring 2002 Computer Science + Textbook Listing
CourseInstructorTextbookISBNPublisher  
ComS 101Gloria CainCourseWorks
ComS 103Margaret MorrisCourse Kit - books0-7895-6618-4Course Technology
Course Kit - passwords (get from instructor)0-619-06652-0Course Technology
ComS 104Becca WemhoffThe Computer Continuum1-308-9813-9Prentice Hall
Visual Basic 6 Programming1-302-6199-8Prentice Hall
ComS 107Suzanne TomlinsonProgramming with MS Visual Basic + 6.0 - A C
+ Comprehensive with VB Working Model
0-619-03795-4
ComS 201Suzanne TomlinsonStructured COBOL Programming, + 2nd ed.
+ With Merant Microfocus
0-7895-5715-0Course Technology
ComS 203Al Taylorno textbook
ComS 207Ralph TomlinsonStarting Out with C++, 2nd Edition1-57676-034-0Scott/Jones Publishers
Simple Program Design, 3rd Edition0-619-01590-XCourse Technology
ComS 227Owen ReynoldsA Computer Science Tapestry Exploring Programming and0-07-232203-9McGraw-Hill
Computer Science with C++, 2nd ed.
ComS 228Lynette KizerData Structures and Other Objects Using C++, 2nd Edition0-201-70297-5McGraw Hill
ComS 309Robyn LutzSoftware Engineering, 6th Edition020139815xAddison-Wesley
Simanta Mitra
ComS 311Yan-Bin JiaIntroduction to Algorithms, 2nd Ed.0-07-0131511McGraw-Hill
ComS 321G. PrabhuComputer Organization and Design1-55860-428-6Morgan Kaufmann
ComS 330Giora SlutzkiDiscrete Mathematics and Its Applications, 4th Ed.0-07-289905-0McGraw Hill
ComS 331Jack LutzAutomata and Computability0-387-94907-0Springer
ComS 342Markus LumpeEssentials of Programming Languages0-262-06217-8MIT Press
The Little Schemer, 4th Edition0-262-56099-2MIT Press
ComS 352Lynette KizerOperating Systems Concepts0-471-41743-2John Wiley & Sonsrequired
ComS 362Gary LeavensApplying UML and Patterns: An Introduction, 2nd Ed.0130925691Addison-Wesleyrequired
UML Distilled, 2nd Ed.020165783XAddison-Wesleyrecommended
Design Patterns0-201-63361-2Addison-Wesleyrecommended
Object Oriented Design Heuristics020163385XAddison-Wesleyrecommended
ComS 363Shashi GadiaA First Course in Database Systems0-13-035300-0Prentice HallRequired
Com 381xLes MillerData Structures and Other Objects Using C++, 2nd Edition0-201-70297-5McGraw HillRequired
ComS 425Ricky KendallParallel and Distributed Computing: A Survey of Models, Paradigms, and Approaches0471358312Wiley-InterscienceRequired
Expert C Programming0131774298Prentice Hall PTRRecommended
A Practical Guide to Linux0201895498Addison-WesleyRecommended
ComS 440/540Hui-Hsien ChouCompilers: Principles, Techniques, and Tools0-201-10088-6Addison-WesleyRequired
Programming for the Java Virtual Machine0-201-30972-6Addison-WesleyRequired
ComS 512Simanta MitraProgramming in the 1990s - An + introduction
+ to the calculation on programs
Springer-VerlagRequired
ComS 531Jack LutzComputability and Complexity Theory0-387-95055-9Springer
ComS 552Johnny WongAdvanced Concepts in Operating Systems0-07-057572-XMcGraw Hill
Recom. text: Unix + Network Programming, Vol 2 - 2nd Ed.0-13-081081-9Prentice Hall
ComS 561Tavanapong WallapakDatabase Management Systems, 2nd Edition0-07-232206-3McGraw Hill
ComS 573Vasant HonavarMachine Learning0070428077McGraw Hill
ComS 612Soma ChaudhuriDistributed Computing0-07-709352-6McGraw Hill
ComS 641Gary LeavensRefinement Calculus, A Systematic Introduction0-387-98417-8Springer Verlag
ComS 673Vasant HonavarNo textbook
Updated 12/19/01
+ + + + diff --git a/hridesh/gradadm/591.html b/hridesh/gradadm/591.html new file mode 100755 index 0000000..0529a6a --- /dev/null +++ b/hridesh/gradadm/591.html @@ -0,0 +1,56 @@ + + +
ComS 591 Graduate Orientation Seminar + + + +

+


+ +

Com S 591 Graduate Orientation Seminar

+

Course Overview

This is a 1-credit seminar designed to introduce +beginning graduate students to graduate study, research, and careers in Computer +Science. The course covers topics such as: M.S. and Ph.D. degree +requirements,introduction to ISU computing facilities, career choices, research +methods, evaluation criteria, ethics, technical presentations, technical +writing, ethics in writing, and overview of faculty research. Students are +expected to explore on-line resources on various topics prior to the seminar +each week and actively participate in the discussions. +

+


+ +

Course Staff

+

Coordinator:
David Fernandez-Baca +
Professor
Department of Computer +Science
226 Atanasoff Hall
Iowa +State University
mailto:fernande@cs.iastate.edu +

The seminar meets at 5:10 p.m. every Thursday in B29 Atanasoff Hall unless +otherwise noted on the schedule. +


+ +

Fall 2001 Schedule

+
    +
    + +

    Useful Online Resources

    +
    +
    +This page was created by Dr. Vasant Honavar +and is currently being maintained by Melanie Eckhart. +Please +send suggestions, additions, or changes to: webmaster@cs.iastate.edu. +
    +
    diff --git a/hridesh/gradadm/ConcurrTrans.html b/hridesh/gradadm/ConcurrTrans.html new file mode 100644 index 0000000..60c1ca6 --- /dev/null +++ b/hridesh/gradadm/ConcurrTrans.html @@ -0,0 +1,341 @@ + + + + + + + + +http://www + + + + + + + + + + +
    + +

     

    + + + + + +
    CONCURRENT DEGREE OR TRANSFER STUDENT
     
     
    Students aspiring to study in Computer Science are evaluated with all other students applying for the 
    stated semester, including ISU students desiring to transfer or receive concurrent degrees. 
     
    The Graduate College Handbook will define Concurrent or Transfer Student 
    (http://www.grad-college.iastate.edu/degree/graduatecollegehandbook.html).
     
    PROCEDURE
     
    1.      Obtain a copy of the form Request to Pursue Two Concurrent Graduate Degrees at this website 
    + http://www.grad-college.iastate.edu/deadline/ConcurrentDegrees.doc and complete as directed.
     
    2.      Attach copies of information, listed below:
     
    A.     TOEFL score
    B.     GRE scores
    C.     Graduate Admissions Evaluation Sheet
    D.     Previous transcripts
    E.      Previous letters of recommendation
     
    3.      Attach one, new letter of recommendation supporting your computer skills.
     
    4.      Attach current transcripts from ISU - official or from Access Plus.
     
    5.      Complete and attach - Computer Science Course Evaluation Form
    (http://www.cs.iastate.edu/gradadm/preapp.html)
     
    6.      Attach Statement of Purpose explaining request to pursue computer science degree.
     
    7.      Submit completed form and all attachments to: 
     Graduate Student Center, ATTN: Linda Dutton, 226 Atanasoff Hall.
     
    APPLICATION DEADLINES
     
    Application deadline for Spring admission is September 1.
     
    Application deadline for Fall admission is January 1. 
     
    Applications received after these deadlines may not be processed until the following semester. 
     
    NOTIFICATION: Applicants will be notified via email. 
     
    + +

     

    + +

     

    + +
    + + + + diff --git a/hridesh/gradadm/ConcurrTrans.txt b/hridesh/gradadm/ConcurrTrans.txt new file mode 100755 index 0000000..fcc6225 --- /dev/null +++ b/hridesh/gradadm/ConcurrTrans.txt @@ -0,0 +1,46 @@ +CONCURRENT DEGREE OR TRANSFER STUDENT + + +Students aspiring to study in Computer Science are evaluated with all other students applying for +the stated semester, including ISU students desiring to transfer or receive concurrent degrees. + +The Graduate College Handbook will define Concurrent or Transfer Student +(http://www.grad-college.iastate.edu/degree/graduatecollegehandbook.html). + +PROCEDURE + +1. Obtain a copy of the form "Request to Pursue Two Concurrent Graduate Degrees" at this + website http://www.grad-college.iastate.edu/deadline/ConcurrentDegrees.doc and complete + as directed. + +2. Attach copies of information, listed below: + + A. TOEFL score + B. GRE scores + C. Graduate Admissions Evaluation Sheet + D. Previous transcripts + E. Previous letters of recommendation + +3. Attach one, new letter of recommendation supporting your computer skills. + +4. Attach current transcripts from ISU - official or from Access Plus. + +5. Complete and attach - Computer Science Course Evaluation Form + (http://www.cs.iastate.edu/gradadm/preapp.html) + +6. Attach "Statement of Purpose" explaining request to pursue computer science degree. + +7. Submit completed form and all attachments to: + Graduate Student Center, ATTN: Linda Dutton, 226 Atanasoff Hall. + +APPLICATION DEADLINES + +Application deadline for Spring admission is September 1. + +Application deadline for Fall admission is January 1. + +Applications received after these deadlines may not be processed until the following semester. + +NOTIFICATION: Applicants will be notified via email. + + diff --git a/hridesh/gradadm/ConcurrTrans.txt.bak.042303 b/hridesh/gradadm/ConcurrTrans.txt.bak.042303 new file mode 100755 index 0000000..ec00abe --- /dev/null +++ b/hridesh/gradadm/ConcurrTrans.txt.bak.042303 @@ -0,0 +1,34 @@ +Applying for a Concurrent Degree or +Transferring from Another ISU Department + +Students wishing to study in Computer Science are evaluated along with all other +students for the desired application semester. This includes ISU Graduate Students in +other departments wishing to transfer or receive a concurrent degree. + +The Graduate College Handbook can give you a definition of the Concurrent or Transfer +student. + +Procedure: + +1. Go to your current graduate department and request the form to apply for a transfer or +a concurrent degree. Ask the department to complete the form. +2. At this time, also request that these items be copied and sent with the form to +Computer Science. +a. Copy of Toefl score. +b. Copy of GRE scores. +c. Copy of the Graduate Admissions Evaluation Sheet. +d. Previous transcripts. +e. Previous letters of recommendation. +3. Get one more, new letter of recommendation regarding your computer skills. +4. Get current transcripts from ISU--these can be official or from Access. +5. Complete and return the Computer Science Course Evaluation Form. +6. Write up a short, simple statement of purpose as to why you wish to get a degree in +computer science. +7. Turn all information in to the Graduate Secretary in 226 Atanasoff Hall. + +Applications for January admission are due September 15 and applications for Fall +admission are due January 15. Applications received after these deadlines may not be +processed until the following semester. You will be notified by email of the application +decision. The decision could take up to two months following the due dates. + + diff --git a/hridesh/gradadm/EMadmitltrtxt.txt b/hridesh/gradadm/EMadmitltrtxt.txt new file mode 100755 index 0000000..6edee16 --- /dev/null +++ b/hridesh/gradadm/EMadmitltrtxt.txt @@ -0,0 +1,12 @@ +Dear Admitted Student: +

    +Congratulations on your admission to the Ph.D. program in Computer Science at Iowa State University. The Graduate Admissions Committee was especially pleased to see your application among a very strong pool of applications for admission to the Computer Science Graduate Program at Iowa State. +

    +Based on your stated interests, we have determined that certain faculty members would be potential mentors for you during your studies at Iowa State University. You can find your mentor(s) on a table located at www.cs.iastate.edu/gradadm/f01mentors.html. Your name is being passed on to these faculty members, some of whom may contact you to further explore your interests in working with them. +

    +We can offer a limited number of teaching and research assistantships to highly qualified applicants who are committed to pursuing a Ph.D. degree in Computer Science. Given the limited number of assistantships that are available, and the nontrivial effort needed on our part to arrange funding for international students, we can offer such assistantships to only those students who have both the ability, as well as the commitment, to pursue a Ph.D. degree. We would urge you to give this serious consideration since our ability to fund international students in the future is closely tied to the outcome of such funding to students with similar backgrounds. Consequently, we strongly discourage applicants who already possess a Master's degree from pursuing the M.S. degree in our graduate program. We expect the students who are admitted to the Ph.D. program, to begin studies and research leading to a Ph.D. upon their arrival at Iowa State University. +

    +If after reviewing the information on research opportunities in the laboratories of potential mentors listed above, and carefully evaluating your career objectives, you determine that you are interested in seriously pursuing a Ph.D. degree in Computer Science at Iowa State University, please respond to eckhart@cs.iastate.edu as soon as possible. We will make every effort to offer you funding for the duration of the Ph.D. program (subject of course to satisfactory performance on your part after you arrive here), through a combination of teaching and research assistantships. +

    +If you have specific questions concerning research projects being carried out in the laboratories and research groups of particular faculty members, we encourage you to contact them directly by email. When you write to them, please be sure to mention that you have been admitted to the Ph.D. program. Faculty web pages can be found at http://www.cs.iastate.edu/gradadm/facstaff.html. +

    diff --git a/hridesh/gradadm/F01CkLst.pdf b/hridesh/gradadm/F01CkLst.pdf new file mode 100755 index 0000000..bd53395 Binary files /dev/null and b/hridesh/gradadm/F01CkLst.pdf differ diff --git a/hridesh/gradadm/F01book.htm b/hridesh/gradadm/F01book.htm new file mode 100755 index 0000000..fc16d9f --- /dev/null +++ b/hridesh/gradadm/F01book.htm @@ -0,0 +1,4498 @@ + + + + + + + + +faculty research interests + + + + + + +

    + +

    SRINIVAS ALURU, Assistant Professor +(Major Appointment in Computer Engineering)

    + +

     

    + +

    B. Tech 1989, Computer Science & Engineering., Indian Institute of +Technology, Madras, India

    + +

    M.S. 1991, Computer Science, Iowa State University

    + +

    Ph.D. 1994, Computer Science, Iowa State University

    + +

     

    + +

    Major Interests:

    + +

    Parallel models, Algorithms and Applications, Bioinformatics and +Computational Biology, and Scientific Computing.

    + +

    Internet: aluru@iastate.edu

    + +

     

    + +

    Current Research:

    + +

    Dr. Aluru is interested in developing algorithms and software systems for +important applications on high-performance parallel computers and clusters. The +primary application areas of target are computational biology and hierarchical +methods in scientific computing. In computational biology, his research is currently +focused on developing parallel data structures for sequence data, developing +intellegent database schemes for sequence data, parallel algorithms and +software for gene identification using EST data and problems related to +structure data. His scientific computing research is focused on developing +distribution-independent sequential and parallel algorithms based on the +hierarchical fast multipole method, for solving problems in computational +electromagnetics. His research is funded by NSF, ARO and DOE.

    + +

     

    + +

    Representative Publications:

    + +

    I. Al-furaih, S. Aluru, S. Goil and S. Ranka, "Parallel construction +of multidimensional binary search trees," IEEE Transactions on Parallel and Distributed Systems, 11(2):136-148, +2000.

    + +

     

    + +

    F. Sevilgen, S. Aluru and N. Futamura, "A provably optimal, +distribution-independent, parallel fast multipole method," Proc. 14thIEEE International Parallel and +Distributed Processing Symposium, pp. 77-84, 2000.

    + +

     

    + +

    S. Aluru, G.M. Prabhu, J. Gustafson and F. Sevilgen, +"Distribution-independent hierarchical algorithms for the N-body +problem," Journal of Supercomputing, +12:303-323, 1998.

    + +

     

    + +

    S. Aluru, "Lagged Fibonacci random number generators for distributed +memory parallel computers," Journal +of Parallel and Distributed Computing, 45(1):1-12, 1997.

    + +

     

    + +

    I. Al-furaih, S. Aluru, S. Goil and S. Ranka, "Practical algorithms +for selection on coarse-grained parallel computers," IEEE Transactions on +Parallel and Distributed Systems, 8(8):313-324, 1997.

    + +

     

    + +

    J. Gustafson and S. Aluru, "Massively parallel searching for better +algorithms or how to do a cross product in five multiplications,"Journal of Scientific Programming, +pp. 203-217, 1996.

    + +

     

    + +

    S. Aluru, "Greengard's N-body Algorithm is not Order N," SIAM Journal on Scientific +Computing, 17(3):773-776, 1996.

    + +

     

    + +

     

    + +

    ALBERT L. BAKER, +Associate Professor of +Computer Science

    + +

     

    + +

    B.A. 1974, Mathematics, Drake University

    + +

    M.S. 1976, Computer Science, The Ohio +State University

    + +

    Ph.D. 1979, Computer Science, The Ohio +State University

    + +

     

    + +

    Major Interests:

    + +

    Software Engineering (Specification Languages, Software Testing, CASE +Tools), Natural Language Text Analysis.

    + +

     

    + +

    Current Research:

    + +

    Dr. Baker's recent work in Software Engineering is focused on formal +specification languages. He has +developed a model-based, formal specification language for C++ classes - +SPECS++. This is a typical model-based +specification language in that class values are modeled as discrete +mathematical structures and operations are specified using first order +pre-condition and post-condition assertions over the data models. SPECS++ handles inheritance, templates and +objects. Dr. Baker has also, along with Dr. Leavens, developed a similar +model-based specification language for Java called JML (Java Modeling +Language). JML retains the expression syntax of Java and includes expressively +convenient features like specification examples and redundant assertions. Drs. +Baker and Leavens are currently enhancing and extending JML to support the +specification of Java threads, events and are developing a formal semantics for +JML.

    + +

     

    + +

    A compiler for an executable subset of SPECS-C++ has been implemented. +The more difficult challenge in this endeavor is the "execution" of +post-condition assertions, since these assertions are written to define +post-state values and may not directly express an approach to constructing +these values. The SPECS-C++ compiler handles "constructive +assertions," which are simply those assertions which can be executed using +constraint resolution technique developed for this purpose (in collaboration +with Dr. Tim Wahls). Thus, while SPECS-C++ retains the precision and level of +abstraction achieved by other model-based specification languages, it has the +added advantage of yielding an executable prototype directly from a class +specification. Drs. Baker and Leavens are currently extending this assertion +evaluation technology to the newer JML specification language for Java.

    + +

     

    + +

    Dr. Baker, along with his Ph.D. student, Marybeth Gurski, is enhancing +the SPECS-C++ compiler and incorporating this technology in a prototype CASE tool +that supports:

    + +

             +the testing of a specification of a C++ class through the automated +generation of abstract test cases and use of the SPECS-C++ compiler to +"execute" the specification,

    + +

             +the automated generation of implementation-level test cases, the automated +execution of an implementation of the specified class using the generated +implementation-level test cases, and

    + +

             +the automated use of the class specification as a test oracle to +determine the correctness of each implementation-level test case.

    + +

    This Test Validation System integrates the use of formal, model-based +specifications with with white-box testing techniques.

    + +

     

    + +

    Dr. Baker's research in Natural Language Text Analysis has led to +software systems that support the analysis of verbatim responses to open-ended +questions (as might be used in population survey research). These systems allow for the efficient +identification, coding and recognition of the significant concepts in verbatim +responses. His recent results support +the identification of relations between concepts, and can be used as the basis +of natural language database systems with natural language interfaces to large +volumes of natural language text.

    + +

     

    + +

    Representative Publications:

    + +

    "Preliminary Design of JML: A Behavioral Interface Specification Language +for Java", Baker, A.L., Leavens, G.T., & Ruby, C., Iowa State +University Department of Computer Science Technical Report #TR98-06d, April +1999.

    + +

     

    + +

    "Formal Semantics for Structured Analysis Style Data Flow Diagram +Specification Languages", G. T. Leavens, T. Wahls, and A. L. Baker, ACM +SAC'99 -- 1999 ACM Symposium on Applied Computing.

    + +

     

    + +

    "Enhancing the Pre- and Postcondition Technique for More Expressive +Specifications", Leavens, G.T., and Baker, A.L., to appear. Proceedings of +the World Congress on Formal Methods in Development of Computing Systems +(FM99), Toulouse, France, September 1999.

    + +

     

    + +

    "Programming is Writing: Why Programs need to be Carefully +Read", G. T. Leavens, A. L. Baker, V. Honavar, S. M. LaValle and G. +Prabhu, Mathematics and Computer Education, 32(3):284-295, Fall 1998.

    + +

     

    + +

    "Testing SPECS-C++: A First Step in Validating Distributed Systems +Specification," Baker, A.L., & Gurski, M. Proceedings of the ISMM International Conference on Intelligent +Information Management Systems, Washington, D.C., June 1997, pp. 105-108.

    + +

     

    + +

    "Modelling and Simulating Computer Networks Using Formalized Data +flow Diagrams," Baker, A.L., and Haverdink, M. IASTED International Conference on Modelling and Simulation, May +1997.

    + +

     

    + +

     

    + +

    JOHN +PETER BOYSEN, Senior Systems Analyst, Academic Information +Technologies, and Adjunct Assistant Professor, Computer Science

    + +

     

    + +

    B.S. 1969, Physics, University of Florida

    + +

    M.S. 1976, Computer Science, Iowa State +University

    + +

    Ph.D. 1979, Computer Science, Iowa State +University

    + +

     

    + +

    Major +Interests:

    + +

    Instructional +use of computers, programming languages, object-oriented programming.

    + +

     

    + +

    Current +Research:

    + +

    Current research +involves the development of instructional applications for the Internet. Projects include Java Instructional +simulations in meterology and mathematics and +the Ecademy system which is a Java-based Instructional Management System used +in the creation and delivery of Web-based instructional classes.

    + +

     

    + +

    Representative +Publications:

    + +

    ClassNet: +Managing the Virtual Classroom Boysen, P., & Van Gorp, M., (1997). International Journal of Educational +Telecommunications, 3(2/3):279-292.

    + +

     

    + +

    "Interactive +Computer Graphics in the Study of Human Body Planar Motion Under Free Fall +Conditions, Boysen, P., Francis, P., & Thomas, R. (1997). +Journal of Biomechanics, 10:783-788.

    + +

     

    + +

    "Reducing +Object Storage Requirements in a Multi-user Environment, Boysen, P., & +Shah, P., Software-Practice and +Experience, 23(3):255-241, March 1993.

    + +

     

    + +

    Using Simulations to Fill Instructional +Gaps, Boysen, P., & Thomas, R. EDU, 40:8-11, Winter 1986.

    + +

     

    + +

    "A +Taxonomy for the Instructional Use of Computers, Boysen, P., & Thomas, R., AEDS Monitor, 22(11):12, May/June +1984.

    + +

     

    + +

    "An +Evaluation of the Instructional Effectiveness of a Computer Lesson in +Biomechanics, Boysen, P., & Francis, P. (1982). Research Quarterly for +Exercise and Sport, 53(3):232-235.

    + +

     

    + +

    "Them +Bones: The Use of Computer-Assisted Instructional Techniques in the Teaching of +Human Anatomy, Boysen, P., Francis, P., Ciskey, M., & Seastrand, P. The Computing Teacher, 9(3):11-16, November +1981.

    + +

     

    + +

    "Measuring +Computer Program Comprehension, Boysen, P., & Keller, R. ACM +SIGCSE Bulletin, 12:92-102, February 1980.

    + +

     

    + +

     

    + +

    SOMA CHAUDHURI, Associate Professor of Computer +Science

    + +

     

    + +

    B.S. 1984, Mathematics, Massachusetts Institute of +Technology, Cambridge

    + +

    B.S. 1984, Computer Science, Massachusetts Institute of +Technology, Cambridge

    + +

    M.S. 1987, Computer Science, University of Washington, +Seattle

    + +

    Ph.D. 1990, Computer Science, University of Washington, +Seattle

    + +

     

    + +

    Major Interests:

    + +

    Theory of Distributed Computing, Parallel Algorithms and Parallel +Complexity.

    + +

     

    + +

    Current Research:

    + +

    Dr. Chaudhuri's research in distributed computing has focused on +understanding the power of asynchronous distributed systems subject to various +kinds of failures. A persistent question has been to determine the problems +that are solvable in the presence of uncertainty due to processor asynchrony +and failures. She used combinatorial techniques to prove that cer-tain problems +are impossible to solve in these systems. The current focus of her research has +shifted to the study of systems that are semi-synchronous, i.e., that have +partial but inexact information about timing. These systems are much more +realis-tic and deserve further study. +Dr. Chaudhuri is using similar combinatorial techniques with the goal of +obtaining time and space complexity characterizations for problems in +semi-synchronous systems analogous to the fault-resiliency character-ization +obtained for problems in asynchronous systems. +The ultimate objective would be to understand in a formal sense the +advantage that can be gained by considering timing-based models for distributed +computing over asynchronous models, and the disadvantage they represent in +relation to fully synchronous models.

    + +

     

    + +

    Dr. Chaudhuri has also been recently interested in the area of +distributed ad hoc networks. In particular, it would be useful to develop +algorithms that are specifically suited to solving problems in these networks. +These networks are unpredictable due to frequent link failures when nodes drift +apart and link formations when nodes drift closer to each other. Existing +distributed algorithms that rely on static communication links cannot run in +such networks. Instead, efficient algorithms would have to be designed that +adjusts to the mobility of the network.

    + +

     

    + +

    Representative Publications:

    + +

    "Tight Bounds for "k"-Set Agreement." Chaudhuri, S., +Herlihy, M., Lynch, N., & Tuttle, M. (2000). To appear in Journal of the ACM.

    + +

     

    + +

    "One-Write Algorithms for Multi-Valued Regular and Atomic +Registers," Chaudhuri, S., Kosa, M., & Welch, J.L. Acta Informatica, 37:161-192, 2000.

    + +

     

    + +

    "Wait-Free Implementations in Message Passing Systems." Chaudhuri, S., Herlihy, M., & Tuttle, M. +Theoretical Computer Science (2000). +Theoretical Computer Science, +220(1):211-245, June 1999.

    + +

     

    + +

    "Shared Memory Consistency Conditions for Non-Sequential Execution: +Definitions and Programming Strategies," Chaudhuri, S., Attiya, H., +Friedman, R., & Welch, J.L. SIAM Journal on Computing, 27(1):65-89, +February 1998.

    + +

     

    + +

    "Understanding the Set Consensus Partial order Using the +Borowsky-Gafni Simulation," Chaudhuri, S., & Reiners, P. Proceedings of the Tenth International +Workshop on Distributed Algorithms, 1996. +Lecture notes in Computer Science 1151, Springer-Verlag, pp. 362-379.

    + +

     

    + +

    "Using Adaptive Timeouts to Achieve At-Most-Once Message +Delivery," Chaudhuri, S., Coan, B., & Welch, J. Distributed Computing, 9(3):109-117, September 1995.

    + +

     

    + +

    "Bounds on the Costs of Multi-Valued Register Implementations," +Chaudhuri, S., & Welch, J. SIAM +Journal on Computing, 23(2):335-354, April 1994.

    + +

     

    + +

    "Designing Algorithms for Distributed Systems with Partially +Synchronized Clocks," Chaudhuri, S., Gawlick, R., & Lynch, N. +Proceedings of the Twelfth Annual ACM Symposium on Principles of Distributed +Computing, August 1993.

    + +

     

    + +

    "More Choices Allow More Faults: Set Consensus Problems in Totally +Asynchronous Systems," Chaudhuri, S. +Information and Computation, 105(1):132-158, July 1993.

    + +

     

    + +

     

    + +

    HUI-HSIEN CHOU, Assistant Professor of Computer +Science & Zoology and Genetics

    + +

     

    + +

    B.S, 1984, Chemical Engineering, Ming-Chih Institute of +Technology, Taipei, Taiwan

    + +

    B.S, 1989, Computer Science, National Taiwan University, +Taipei, Taiwan

    + +

    Ph.D., 1996, Computer Science, University of Maryland at +College Park

    + +

     

    + +

    203 Science II, Iowa State University, Ames, IA 50011;

    + +

    Email: hhchou@iastate.edu

    + +

     

    + +

    Major Interests:

    + +

    Bioinformatics, computational biology, cellular automata, and simulated +self-organization phenomena.

    + +

     

    + +

    Current Research:

    + +

    Dr. Chou's research centers around the understanding of +life, or living systems. Toward that goal, he has interest in two complementary +scientific front-ends: computational biology and artificial life. In +computational biology, he studies how to best analyze the vast amount of new +biological data resulted from recent advances in molecular biology techniques, +such as genomics, transcriptomics and proteomics. These new techniques all allow us to gather explosively more +information about a species than before. Using computers, Dr. Chou has designed +an automatic sequence clean-up program (Lucy) which processes raw DNA data +before fragment assembly. He is working on a new alignment strategy based on +specialized coding methods which eventually can be generalized to work on many +different kinds of biological data that can be obtained from the three +techniques.
    +
    +If we consider computational biology an analytical approach to understanding +life, then the synthetic approach must be artificial life, the research of +recreating life phenomena within computers. It is an attempt to grasp the idea +of life in an information processing context without touching the details of +implementation such as using DNA or proteins. Dr. Chou has been working on the +cellular automata modeling of self-replication processes. Cellular automata are +massively parallel computer-theoretical models which closely resemble the +information restrictions of a living system. In cellular automata,
    +there is no centralized control, and global behaviors must be the collaborative +results of the components making up a system. As in cells, where no single +molecule is the commander-in-chief, but is equal to each other.
    +
    +Combining these two research approaches, Dr. Chou hopes to one day take us a +little closer toward answering questions such as "what is life?", +"how does life emerge?", "how does life evolve?", and maybe +"how does life compute?"
    +
    +

    + +

    Representative Publications

    + +

    Hui-Hsien Chou and Michael H. Holmes. "Sequence comparison at the edge of +uncertainty." Submitted to +Bioinformatics in January, 2001.
    +
    +Eugene W. +Myers, et al. "A Whole-Genome Assembly of Drosophila}". Science, 287:2196-2204, March 24, 2000.

    + +

     

    + +

    Hui-Hsien Chou, Granger G. Sutton, Anna Glodek, and John Scott. +"Lucy - A Sequence Cleanup Program." Proceedings of the Tenth Annual +Genome Sequencing and Annotation Conference (GSAC X), Miami, Florida, September +1998.

    + +

     

    + +

    Hui-Hsien Chou and James A. Reggia. "Problem Solving During +Artificial Selection of Self-Replicating Loops." Physica, D 115:293-312, 1998.

    + +

     

    + +

    Hui-Hsien Chou and James A. Reggia. "Emergency of Self-Replicating +Structures in a Cellular Automata Space." +Physica, D 100:252-276, 1997.

    + +

     

    + +

    Hui-Hsien Chou, James A. Reggia, Rafael Navarro-Gonza lez, and Jayoung +Wu. "An Extended Cellular Space Method for Simulating Autocatalytica +Oligonucleotides." Computers and +Chemistry, 18(1):33-43, 1994.

    + +

     

    + +

    James A. Reggia, Steven L. Armentrout, Hui-Hsien Chou, and Yun Peng. +"Simple Systems that Exhibit Self-Directed Replication." Science, 259:1282-1288, Feb. 26, 1993.

    + +

     

    + +

     

    + +

    CAROLINA CRUZ-NEIRA, Associate Professor of Industrial & Manufacturing Systems Engineering +and Associate Director of the Virtual Reality Applications Center (Major +Appointment in Computer Engineering)
    +
    +

    + +

    Ph.D. 1995, Electrical Engineering +& Computer Science, Electronic Visualization Laboratory, University of +Illinois at Chicago
    +M.S. 1991, Electrical Engineering & Computer Science, Electronic +Visualization Laboratory, University of Illinois at Chicago
    +B.S. 1987, Cum Laude, Systems Engineerng. Universidad Metropolitana de Caracas, +Venezuela
    +
    +

    + +

    Areas of Interest:
    +
    Virtual reality, high-speed networks, software engineering and interactive +computer graphics.
    +
    +Current Research:
    +
    Her research focuses on the development of tools, such as +distributed software , engineering, and artistic virtual reality applications.
    +
    +Selected Publications (* denotes students)
    +
    Bierbaum, A*, Just, C*., Hartling, P*., and Cruz-Neira, C., "VR +Juggler: A vVirtual Platform for Virtual Reality Application Development, IEEE VR 2000 Conference. Yokohama, +Japan, March 2001
    +
    +Cruz-Neira, C., Lindahl, G. "A +Voyage into Virtual Reality: Networking Our VR Lab to Iowa Middle Schools and +High Schools." IEEE Computer Graphics and Applications. +March 2000, pp. 16-19.
    +
    +Cruz-Neira, C., and Lutz, R. +"Using Virtual Environments for Certification." IEEE +Software, July/August 1999. pp.26-30.
    +
    +Nelson, L.*, Cook, D., and Cruz-Neira, C. "XGobi vs. the C2: Results of an +Experiment Comparing Data Visualization in a 3-D Immersive Virtual Reality +Environment with a 2-D Workstation Display." Journal of Computational +Statistics. Special Issue on the Use of Interactive Graphics. January 1999. +pp.441-450.

    + +


    +
    +

    + +

    OLIVER EULENSTEIN, Assistant Professor of Computer Science

    + +

     

    + +

    Dr.rer.nat. +1998, Computer Science, University of Bonn

    + +

    Diplom-Informatiker +1991, Computer Science, University of Paderborn (the US-equivalent for +Dr.rer.nat. is Ph.D. and for Diplom-Informatiker is M.S )

    + +

     

    + +

    Web Page: http://www.cs.iastate.edu/~oeulenst

    + +

     

    + +

    Major +Research Interests:

    + +

    Computational +Biology, Combinatorial Optimization in Science and Engineering, and Design and +Analysis of Discrete Algorithms.

    + +

     

    + +

    Current +Research:

    + +

    Introducing +Computational Biology: In July 1995 the first organism, {\Haemo\-philius +influenzae} was entirely sequenced and its 1 830 137 DNA base pairs were +published. Soon after this other organisms were completely sequenced and, most +likely, the human genome will be completely sequenced by the end of this +decade.

    + +

     

    + +

    Given an +organism's sequence information, the biologists task is now to reveal function and interference of these +sequences. As a metaphor, the biologist wants +to understand the function of a complex spacecraft engine only by +looking at its parts.

    + +

     

    + +

    Computational +Biology offers algorithms to support biologists in their effort to retrieve +information out of an organism's enormous set of sequence information. Design and +analysis of these algorithms is based on models that reflect the biologists +needs as best as possible. A model must also allow the design of an algorithm +that actually solves the problem in practice in a reasonable time. Thus, a +basic problem in Computational Biology is to develop good models. Most of the +time biologists and computer scientists collaborate to set up an initial model +and then refine it stepwise according to practical results. Thus, Computational +Biology is an interdisciplinary science where Biology and Computer Science are +intertwined.

    + +

     

    + +

    Current +Research in Computational Biology: Reconstructing the ancestral relations of +biological sequences can give insights into the function of biological +sequences, and thus helps to reveal unknown functions of genes. The ancestral +relations of a set of biological sequences can be represented by a rooted tree, +where any two sequences are related through their least common ancestor.

    + +

     

    + +

    Most of my +current research is in constructing phylogenetic trees, which is a sub-area of +Computational Biology. For convenience I will describe one of my research +topics, phylogenetic super-trees in more detail.

    + +

     

    + +

    Computational +Biology offers a huge set of different methods for phylogenetic tree +construction that are available through program packages like PAUP, McClade and +Component, which are widely used by systematic biologists. Already +reconstructed phylogenetic trees can be found in phylogenetic tree databases +like TreeBase. Some of these databases have grown enormously and now contain +sets of trees that overlap in some of their sequences. My goal is to construct +a super-tree from such a set of overlapping phylogenetic trees. A super-tree +would give a much broader picture of how sequences evolve. Unfortunately, +combining trees into a super-tree is not an easy task. For example one of the +arising problems is that phylogenetic trees have for their shared sequences +often different ancient relationships.\medskip

    + +

     

    + +

    Together with +the biologist Mike Sanderson from the University of California Davis, I +developed a model to construct super-trees. In collaboration with David +Fernandez-Baca and the help of the student Duhong Chen we are designing +algorithms based on this model. In our new computational biology lab (CBL), we +are implementing own ideas and analyze algorithms. We are also refining the +underlying model. Recently Mike Sanderson, the biologist Olaf +Biminda-Edmondson, and I received an NSF grand that will support our research +on super-trees for the coming three years.

    + +

     

    + +

    Other topics +of my current research in Computational Biology are the prediction of +gene-duplications and reconstructing phylogenetic trees from incomplete +information. The above should not led to the impression that my interests are +exclusively in phylogenetic tree construction. In fact I am interested in many +algorithmic problems of biology and actively look for potential +interdisciplinary collaborations.

    + +

     

    + +

    Representative +Publications:

    + +

    "On the +equivalence of two tree mapping measures", Oliver Eulenstein and Martin +Vingron, Discrete Applied Mathematics, +88, 103-128, 1998.

    + +

     

    + +

    "Duplication-Based +Measures of Difference Between Gene- and Species Trees", Oliver +Eulenstein, Boris Mirkin and Martin Vingron, Journal of Computational Biology, 5, 135-148, 1998.

    + +

     

    + +

    "Towards +detection of orthologues in sequence databases", Yan P. Yuan, Oliver +Eulenstein, Martin Vingron and Per Bork, Bioinformatics, +14,3 285-289, 1998.

    + +

     

    + +

    "Comparison +of Annotation Duplication, Tree Mapping, and Copying as Methods to Compare Gene +Trees with Species Trees", Oliver Eulenstein, Boris Mirkin and Martin +Vingron, DIMACS Series in Discrete +Mathematics and Theoretical Computer Sciences AMS, 1997.

    + +

     

    + +

     

    + +

    DAVID FERNANDEZ-BACA, Professor +and Interim Chair of Computer Science

    + +

     

    + +

    B.S. 1980, Electrical & Computer +Engineering, National University of Mexico, Mexico City

    + +

    M.S. +1983, Electrical & Computer Engineering, University of California, Davis

    + +

    Ph.D. +1986, Computer Science, University of California, Davis

    + +

     

    + +

    Major +Interests:

    + +

    Design and analysis of algorithms, combinatorial optimization, graph +algorithms, computational biology.

    + +

     

    + +

    Current Research:

    + +

    Dr. Fernandez-Baca's research is in the design and analysis of +combinatorial algorithms. His main area +is parametric optimization, where his goal is to design efficient algorithms to +analyze the sensitivity of the optimum solution to changes in the input data. +Dr. Fernandez-Baca also studies combinatorial problems arising in sequence +comparison and construction of evolutionary trees for sets of species.

    + +

     

    + +

    Representative Publications:

    + +

    "Decomposable Multi-Parameter Matroid Optimization Problems," +Fernandez-Baca, D., To appear in Theoretical +Computer Science, 2002.

    + +

     

    + +

    "On Nonlinear Parametric Search," Fernandez-Baca, D., To appear +in Algorithmica, 2001.

    + +

     

    + +

    "Parametric multiple sequence alignment and phylogeny +construction," Fernandez-Baca, D., Seppalainen, T., & Slutzki, G. +(2000). In Proceedings of 11th Annual Symposium on Combinatorial Pattern +Matching, Springer LNCS 1848:69-83.

    + +

     

    + +

    "Bounds for Parametric Sequence Comparison," Fernandez-Baca, D., +Seppalainen, T., & Slutzki, G. To +appear in Discrete Applied Mathematics +(preliminary version in Proceedings of the Conference on String Processing and +Information Retrieval, SPIRE 99).

    + +

     

    + +

    "On the Approximability of the Steiner Tree Problem in Phylogeny," +Fernandez-Baca, D., & Lagergren, J. (1998). Discrete Applied Mathematics, 88:129-145. (Special issue on +Computational Biology.)

    + +

     

    + +

    "Linear-time Algorithms for Parametric Minimum Spanning Tree +Problems on Planar Graphs," Fernandez-Baca, D., and Slutzki, G. (1997). Theoretical Computer Science, 181:57-74.

    + +

     

    + +

    "Optimal Parametric Search in Graphs of Bounded Tree-width," +Fernandez-Baca, D., and Slutzki, G. +(1997). Journal of Algorithms, +22:212-240.

    + +

     

    + +

    "Using Sparsification for Parametric Minimum Spanning Tree Problems," +Fernandez-Baca, D., Slutzki, G., and Eppstein, D. (1996). Nordic +Journal of Computing, 3(4):352-366. +(Special issue devoted to selected papers from the 5th Scandinavian +Workshop on Algorithm Theory.)

    + +

     

    + +

    "Weighted Multidimensional Search and its Application to Convex +Optimization," Fernandez-Baca, D., +and Agarwala, R. (1996). SIAM Journal on Computing, 25:83-99.

    + +

     

    + +

    "A Polynomial-Time Algorithm for the Perfect Phylogeny Problem when +the Number of Character States is Fixed," Fernandez-Baca, D., and Agarwala, +R. (1994). SIAM J. Computing, +23:1216-1224.

    + +

     

    + +

     

    + +

    SHASHI K. +GADIA, Associate Professor of +Computer Science

    + +

     

    + +

    B.S. (Hons), 1969, Mathematics, Birla Inst. of Tech. & +Science

    + +

    M.Sc. 1970, Mathematics, Birla Inst. of Tech. & Science

    + +

    Ph.D. 1977, Mathematics, University of Illinois

    + +

    M.S. 1980, Computer Science, Ohio State University

    + +

     

    + +

    Major Interests:

    + +

    Temporal, spatial, belief, security, +statistical and incomplete data; database models, type hierarchy, languages, +user interfaces, optimization, implementation and access methods; pattern +matching in spatio-temporal data.

    + +

     

    + +

    Current Research:

    + +

    Models, query languages, incomplete +information, implementation, index structures, and query optimization for +dimensional (temporal, spatial, and belief), genetic, and other forms of data, +in relational, object-oriented, and semistructured (XML) database paradigms. +The goal of the research in dimensional data is to unify different forms of +dimensional data seamlessly in a scalable, efficient, easy to use, and coherent +framework. An object-oriented model and query language for dimensional data +that is consistent with the ODMG (Object Data Management Group) standard is of +interest. Database models for semistructured data are rapidly advancing under +the banner of XML (Extensible Markup Language). The February 16, 2001 +announcements of the XMLs Query Group of the W3 (World Wide Web) Consortium represent a major +milestone that extends the established classic database style wisdom of +powerful and declarative algebraic querying to XML by treating XML documents as +databases. This will advance the frontiers of databases in revolutionary ways +to applications such as e-business, software engineering, and genetic data +where representation and/or exchange of heterogeneous and evolutionary +information is required.

    + +

     

    + +

    Representative Publications:

    + +

    A linguistic framework for multidimensional +data, Elisa Bertino, Tsz S. Cheng, Shashi K Gadia, and Giovanna +Guerrini. Submitted for publication, February, 2001.

    + +

     

    + +

    Querying +multiple temporal granularity data. Isabella Merlo, Elisa +Bertino, Elena Ferrari, Shashi K Gadia, and Giovanna Guerrini. Proceedings Seventh International Workshop +on Temporal Representation and Reasoning of TIME-2000, Nova Scotia, Canada, +July 7-9, 2000

    + +

    + +

    Algebraic identities and query optimization in the parametric +model for relational temporal databases, IEEE Transactions on Knowledge and +Data Engineering. Vol 10(5), pp 793-807, 1998.

    + +

    + +

    Applicability of Temporal Data Models to Query Multilevel +Security Databases: A Case Study, Shashi K. Gadia. Research and Practice; +Etzion, Jajodia, and Sripada, eds.; Lecture Notes in Computer Science, Vol +1399, pp238-256, Springer Verlag, Berlin, 1998.

    + +

     

    + +

    Relational Database Systems With Zero Information-Loss, +Gadia, S., & Bhargava, G. (1993). +IEEE Transactions on Knowledge and Data Engineering, 5:76-87.

    + +

     

    + +

    "Incomplete Information in Relational Temporal +Databases, Gadia, S., Nair, S., & Poon, Y. (1992). Proceedings of the 18th International +Conference on Very Large Databases, pp. 395-406.

    + +

     

    + +

    "A Generalized Model for a Relational Temporal +Database, Gadia, S., & Yeung, C. +(1988). ACM SIGMOD Conference on +Management of Data, pp. 251-259.

    + +

     

    + +

    A Homogeneous Relational Model and Query Languages for +Temporal Databases, Gadia, S. (1988). +ACM Transactions on Database Systems, 14:418-448.

    + +

     

    + +

    A Query Language for a Homogeneous Temporal Database, +Gadia, S., & Vaishnav, J. (1985). +Proc. Fourth Annual ACM SIGACT-SIGMOD Symposium on Principles of Database +Systems, pp 51-56.

    + +

     

    + +

    The concept of an error in a database: an application of +temporal databases, Gautam Bhargava and Shashi K. Gadia. Appeared in +Proceedings of INSDOC COMAD90 International Conference on Management of Data, +December 1990.

    + +

     

    + +

     

    + +

    VASANT HONAVAR, Professor of Computer Science

    + +

     

    + +

    B.E. 1982, +Electronics Engineering, Bangalore University, India

    + +

    M.S. 1984, +Electrical and Computer Engineering, Drexel University

    + +

    M.S. 1989, +Computer Science, University of Wisconsin at Madison

    + +

    Ph.D. 1990, +Computer Science and Cognitive Science, University of Wisconsin at Madison

    + +

     

    + +

    www: http://www.cs.iastate.edu/~honavar/

    + +

     

    + +

    Current Affiliations:

    + +

    Professor, Department of +Computer Science

    + +

    Professor in Charge, +Artificial Intelligence Research Laboratory

    + +

    Editor-in-Chief, +Cognitive Systems Research

    + +

    Project Director, +Bioinformatics, Computational Molecular Biology Training Group

    + +

    Faculty Member, +Bioinformatics and Computational Biology Graduate Program

    + +

    Faculty Member, Lawrence +E. Baker Center for Bioinformatics and Biological Statistics

    + +

    Faculty Member, Virtual +Reality Applications Center

    + +

    Faculty Member, +Information Security Graduate Program

    + +

    Faculty Member, +Neuroscience Graduate Program

    + +

     

    + +

    Research +and Teaching Interests:

    + +

    Artificial Intelligence and Cognitive Science (Artificial Neural +Networks; Autonomous Agents; Automata Induction; Com-putational Learning +Theory; Computational Organizational Theory; Data Mining, Knowledge Discovery +and Visualization; Decision Support Systems; Distributed Knowledge Networks; +Distributed Learning; Incremental Learning; Intelligent Agents and Multi-Agent +Systems; Multi-Agent Coordination and Communication; Knowledge Representation +and Infer-ence; Machine Learning; Mobile Agents; Parallel and Distributed AI); +Biological Computation (Computational Neuro-science; Evolutionary, Cellular, +and Neural Computation); Bioinformatics and Computational Biology (Genetic +Regulatory Networks; Protein Structure-Function Prediction; Computational Genomics; +Metabolic Pathways; Distributed Knowledge Networks for Bioinformatics); Complex +Adaptive Systems; Network Information Systems (Distributed Knowledge Networks; +Distributed Databases, Mediators, and Data Warehouses; Intelligent Agents, +Mobile Agents, and Multi-Agent Systems); Applied AI (Diagnosis; Bioinformatics; +Complex Systems Monitoring and Control; Intrusion Detection).

    + +

     

    + +

    Examples of current projects in Honavar's laboratory on Intelligent +Agents, Mobile Agents, and Multi-Agent Systems include Distributed Knowledge +Networks for information retrieval, extraction, organization and visualization; +and data-driven knowledge discovery and theory refinement using autonomous, +heterogeneous, distributed knowledge and data sources with emphasis on +Bioinformatics and Situation Assessment and Decision Support applications. In +related work, topics in mobile agent infrastructures, inter-agent negotiation +protocols, distributed problem solving, coordination and control structures for +multi-agent systems, and agent-oriented software engineering are being +investigated.

    + +

    + +

    Current research in Honavar's lab in machine learning emphasizes +theoretical foundations, design, analysis, and implemen-tation of algorithms +for knowledge acquisition and data and +knowledge visualization from large, distributed, autonomous, dynamic data and +knowledge sources; efficient and scalable algorithms for grammar induction, +feature subset selection, induction of pattern classifiers and function +approximators, spatial and temporal knowledge acquisition, and multi-task +learning; and applications of machine +learning in bioinformatics and computational biology, domain-specific automated +program synthesis, decision support, customizable digital information assistants, +diagnosis, monitoring and control of complex +distributed systems (e.g., computer systems, power systems) and related +areas.

    + +

    + +

    Current research in Computational Neuroscience is focused on algorithmic +models of memory and learning across multiple modalities, tasks, and timescales +in biological systems (including interactions with motivational and reward +systems) and computational models of acquisition and use of spatial, temporal, +spatio-temporal cognitive maps.

    + +

    + +

    Current research in Computational Biology and Bioinformatics emphasizes +novel algorithms for information retrieval and organization, machine learning +approaches to gene discovery, characterization of macromolecular +structure-function relationships, gene expression data analysis, discovery of +genetic networks from expression data, and information theoretic and +grammatical analysis of DNA and protein sequences.

    + +

    + +

    Honavar's research is supported in part by grants from the National +Science Foundation, Department of Defense, John Deere Foundation, Carver +Foundation, Pioneer Hi-Bred, Inc., Department of Energy, and the ISU Graduate +College.

    + +

    + +

    Recent +Representative Publications:

    + +

    Balakrishnan, K. and Honavar, V. (2001). Evolving +Neurocontrollers and Sensors for Artificial Agents. In: Evolutionary +Synthesis of Intelligent Agents. Patel, M., Honavar, V. and Balakrishnan, +K. (Ed). Cambridge, MA: MIT Press. pp. 109-152.

    + +

     

    + +

    Caragea, D., Silvescu, +A., and Honavar, V. (2001). Invited Chapter. Analysis and Synthesis of Agents +that Learn from Distributed, Dynamic Data Sources. Emergent Neural Computational +Architectures. Wermter, S., Austin, J., and Willshaw, D. Springer-Verlag. In +press.

    + +

     

    + +

    Helmer, +G., Wong, J., Slagell, M., Honavar, V., Miller, L. and Lutz, R. (2001). A +Software Fault Tree Approach to Requirements Analysis of an Intrusion Detection +System. In: Proceedings of the Symposium on Requirements Engineering for +Information Security, Indianapolis, IN, USA. In press.

    + +

     

    + +

    Mikler, A., Honavar, V. and Wong, J. (2001). Autonomous +Agents for Coordinated Distributed Parameterized Heuristic Routing in Large +Dynamic Communication Networks. Journal +of Systems and Software In press.

    + +

     

    + +

    Parekh, R. and Honavar, +V. (2001). DFA Learning from Simple Examples. Machine Learning. In press.

    + +

     

    + +

    Silvescu, A., and +Honavar, V. (2001). Temporal Boolean +Network Models of Genetic Networks and their Inference from Gene Expression +Time Series Data. Complex Systems. In press.

    + +

     

    + +

    Wang, D., Wang, X., +Honavar, V., and Dobbs, D. (2001). Data-Driven Generation of Decision Trees for +Motif-Based Assignment of Protein Sequences to Functional Families. In: Proceedings of the Atlantic Symposium on +Computational Biology, Genome Information Systems & Technology.

    + +

     

    + +

    Balakrishnan, K., +Bousquet, O. and Honavar, V. (2000). Spatial Learning and Localization in +Animals: A Computational Model and Its Implications for Mobile Robots, Adaptive Behavior. 7(2):173-216.

    + +

     

    + +

    Caragea, D., Silvescu, A., and Honavar, V. (2000). Agents +that Learn from Distributed Dynamic Data Sources. In: Proceedings of the +Workshop on Learning Agents, Agents 2000/ECML 2000. Stone, P. and Sen, S. (Ed.) +ECML. Barcelona, Spain. pp. 53-61.

    + +

     

    + +

    Parekh, R. and Honavar, +V. (2000). On the Relationships between Models of Learning in Helpful +Environments. In: Proceedings of the +Fifth International Conference on Grammatical Inference. Lisbon, Portugal. +Lecture Notes in Artificial Intelligence Vol. 1891. Berlin: Springer-Verlag. +pp. 207-220.

    + +

     

    + +

    Parekh, R., Yang, J., +and Honavar, V. (2000). Constructive +Neural Network Learning Algorithms for Multi-Category Pattern Classification. IEEE Transactions on Neural Networks. +11(2):436-451.

    + +

     

    + +

    Yang, J., Parekh, R., and +Honavar, V. (1999). DistAl: An Inter-pattern Distance Based Constructive +Learning Algorithm. Intelligent Data Analysis. 3:55-73.

    + +

     

    + +

     

    + +

    XIAOQIU HUANG, Associate Professor of Computer Science

    + +

     

    + +

    B.S. 1982, Computer Science, Changsha +Institute of Technology

    + +

    M.S. 1989, Computer Science, Pennsylvania +State University

    + +

    Ph.D. 1990, Computer Science, +Pennsylvania State University

    + +

     

    + +

    Major +Research Interests:

    + +

    Computational +biology, parallel and distributed applications.

    + +

     

    + +

    Current +Research:

    + +

    Dr. +Huang is interested in algorithms and software for solving computational +problems in genome sequencing and analysis. +He has developed a number of computer programs for analysis of DNA and +protein sequences. Dr. Huang's programs +have been included in a number of academic and commercial packages. Most of his programs can be used on WWW at http://genome.cs.mtu.edu/sas.html. There are over 15,000 web accesses to the +sequence analysis server.

    + +

     

    + +

    Dr. +Huang is currently working on a DNA sequence assembly program. The sequence assembly program is used to +assemble short DNA reads into long sequences in shotgun DNA sequencing +projects. He is also working on a +computer program for finding genes in genomic DNA sequences. The goal of this project is to develop a +computer program that uses both sequence similarity in information and +statistical information to identify exon-intron boundaries in genomic DNA +sequences. In the future, Dr. Huang +will continue to work on computational programs in genome sequencing and +analysis.

    + +

     

    + +

    Recent +Publications:

    + +

    Huang, +X, and Madan, A. (1999). CAP3: A DNA +Sequence Assembly Program, Genome +Research, 9: 868-877.

    + +

     

    + +

    Joshi, +C.P., Zhou, H., Huang, X, and Chiang, V. (1997). Context sequences of translation initiation codon in plants. Plant +Molecular Biology, 35: 993-1001.

    + +

     

    + +

    Huang, +X, Adams, M.D., Zhou, H., and Kerlavage, A.R. (1997). A Tool for Analyzing and Annotating Genomic Sequences, Genomics, 46(1): 37-45.

    + +

     

    + +

    Huang, +X., and Zhang, J. (1996). Methods for +Comparing a DNA Sequence with a Protein Sequence, Computer Applications in the Biosciences, 12(6):497-506.

    + +

     

    + +

    Huang, +X. (1996). Fast Comparison of a DNA Sequence with a Protein Sequence Database, Microbial & Comparative Genomics, +1(4):281-291.

    + +

     

    + +

    Huang, +X. (1996). An Improved Sequence Assembly Program, Genomics, 33:21-31.

    + +

     

    + +

    Huang, +X. (1994). On Global Sequence +Alignment, Computer Applications in the +Biosciences. 10(3):227-235.

    + +

     

    + +

     

    + +

    YAN-BIN JIA, Assistant +Professor of Computer Science

    + +

     

    + +

    B.S. 1988, Computer Science, University of Science and +Technology of China

    + +

    M.S. 1993, Robotics (and Computer Science), Carnegie +Mellon University

    + +

    Ph.D. 1997, Robotics (and Computer Science), Carnegie +Mellon University

    + +

     

    + +

    Major +Research Interests:

    + +

    Robotics and +artificial intelligence, computational geometry, geometric modeling, shape +reconstruction and matching, numerical algorithms for curve computation, +algorithms for robot sensing, dextrous manipulation and control, hacking robot +interfaces, information requirements and retrieval, optimization, nonlinear +control and observation, kinematics and dynamics of manipulation.

    + +

    Internet: +jia@cs.iastate.edu

    + +

     

    + +

    Current +Research:

    + +

    "The +hand is the cutting edge of the mind," and "The world can only be +grasped by action, not by contemplation," says Bronowski in his book +"The Ascent of Man". Dr. +Jia's main research objective is to make the robot execute real world tasks +intelligently and skillfully.

    + +

     

    + +

    His +investigation into robot dexterity has focused on seeking a coordinated +understanding of computational and control issues in manipulation tasks. One +objective of this study is dynamic retrieval of geometric information such as +shape and pose, and of mechanical information such as motion and force. Another +objective is careful engineering of the above information to make the robot +exhibit skills during its execution of physical tasks. Through efforts balanced +between theoretical inquiry and experimental demonstration, I hope to gain +in-depth knowledge about action and intelligence as they interact with each other.

    + +

     

    + +

    For over a +year Dr. Jia has been studying how to program a robotic hand to localize and +recognize an object of general shape and to execute basic operations as well as +dextrous maneuvers. This investigation +makes primary use of one source of information which is ubiquitous in the +physical world --- {\it contact} between two or more bodies. The study encompasses several of the most +active areas in robotics: tactile sensing, shape recognition and reconstruction, +dextrous manipulation, grasping, motion planning, and controllability.

    + +

     

    + +

    The human +learns skills through practice, so should the robot. Dr. Jia is also interested in applying machine learning +techniques to tackle tasks that would be computationally expensive or +intractable otherwise. He would like to program the robot so that it will be +able to give performances that approach the human level.

    + +

     

    + +

    Dr. Jia's +other interests include information requirements and retrieval and hacking +robot interfaces.

    + +

     

    + +

    Representative +Publications:

    + +

    "Grasping +Curved Objects through Rolling," Yan-Bin Jia, In Proceedings of the IEEE +International Conference on Robotics and Automation, pp. 377-382, San +Francisco, CA, April 2000.

    + +

     

    + +

    "Pose +and Motion from Contact," Yan-Bin Jia and Michael Erdmann, International Journal of Robotics Research, +18(5):466-490, 1999.

    + +

     

    + +

    "Local +Observability of Rolling," Yan-Bin Jia and Michael Erdmann, In Robotics: +The Algorithmic Perspective, P.K. Agarwal et al. (eds.), pp. 251-263, A. K. +Peters, Boston, 1998. Also Proc. 3rd Int'l Workshop on the Algorithmic +Foundations of Robotics, Houston, TX, March 1998.

    + +

     

    + +

    "Geometric +Sensing of Known Planar Shapes," Yan-Bin Jia and Michael Erdmann, International Journal of Robotics Research, +15(4):365-392, 1996.

    + +

     

    + +

    "On +Computing Optimal Planar Grasps," Yan-Bin Jia. In Proceedings of the 1995 +IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. +3:427-434, Pittsburgh, PA, August 1995.

    + +

     

    + +

    "The +Complexity of Sensing by Point Sampling," Yan-Bin Jia and Michael Erdmann, +In Algorithmic Foundations of Robotics, Ken Goldberg et al. (eds.), pp. +283-300, A. K. Peters, Boston, 1995. Also Proc. 1st Int'l Workshop on the +Algorithmic Foundations of Robotics, San Francisco, CA, February 1994.

    + +

     

    + +

     

    + +

    RICKY A. KENDALL, +Adjunct Associate Professor of Computer +Science, Scientist Ames Laboratory

    + +

     

    + +

    B.S. 1983, +Chemistry, Indiana State University

    + +

    Ph.D. 1988, +Theoretical and Computational Chemistry, University of Utah

    + +

     

    + +

    Major Interests:

    + +

    The encompassing theme of Dr. Kendall's research is to make the +development of high performance applications on parallel and distributed +computing platforms more facile. His +interests include asynchronous communications software, parallel I/O, +application domain specific APIs, e.g., targeted software engineering, and +general application of parallel and distributed algorithms.

    + +

     

    + +

    Current Research:

    + +

    Currently Dr. Kendall and his students are focused on four main projects +that include the development of a generalized, portable SHMEM library that +provides asynchronous one-sided communication protocols (e.g., put and get +operations) to applications across a wide spectrum of computational +resources. Another area is the +development of a parallel I/O mechanisms that are also asynchronous on cluster +based systems so that the disk facilities of cluster computers can meet the +performance requirements of high performance applications. The third focus area is the development of a +generic compression library that puts state-of-the-art compression algorithms +behind a user friendly API for scientific application developers. It will provide a means of addressing +sparsity in many application domains. +The fourth area is utilizing mixed mode programming models (thread based +algorithms mixed with either message passing or distributed shared memory) to +address the architectural designs of emerging clusters and large MPP +supercomputers.

    + +

     

    + +

    Representative Publications:

    + +

    K. Parzyszek, J. Nieplocha and R. A. Kendall, "A Generalized +Portable SHMEM Library for High Performance Computing", Proceedings of the +IASTED Parallel and Distributed Computing and Systems 2000, Las Vegas, Nevada, +November 2000, (M. Guizani and X. Shen, Eds.), pp. 401-406. IASTED, Calgary +(2000).

    + +

     

    + +

    B. Bode, D.M. Halstead, R. Kendall, Z. Lei, and D. Jackson, "The +Portable Batch Scheduler and the Maui Scheduler on Linux Clusters," +Proceedings from the 4th Annual USENIX Extreme Linux Conference, pp. 217-224 +(2000).

    + +

     

    + +

    R.A. Kendall, E. Apra, D.E. Bernholdt, E.J. Bylaska, M. Dupuis, G.I. +Fann, R.J. Harrison, J. Ju, J.A. Nichols, J. Nieplocha, T.P. Straatsma, T.L. +Windus, and A.T. Wong, "High Performance Computational Chemistry; an +Overview of NWChem a Distributed Parallel Application," Computer Physics Communications, +128:260-283 (2000).

    + +

     

    + +

    I. Foster, J. Nieplocha, and R.A. Kendall "ChemIO: High-Performance +Parallel I/O for Computational Chemistry Applications," The International Journal of High +Performance Computing Applications, 12:345-363, (1998).

    + +

     

    + +

    R.A. Kendall "High Performance Computing in Chemistry and Massively +Parallel Computers: A Simple Transition?," International Journal of +Quantum Chemistry: Quantum Chem. Symposium, 27:769 (1993).

    + +

     

    + +

     

    + +

    SURESH C. +KOTHARI, Professor (Major Appointment in Computer Engineering)

    + +

     

    + +

    B.S. 1970, Mathematics, Poona University, India

    + +

    M.S. 1972, Mathematics, Poona University, India

    + +

    Ph.D. 1977, Mathematics, Purdue University

    + +

     

    + +

    Major +Interests:

    + +

    Software Reengineering, Program +Comprehension, Parallel and Distributed Computing, Computational Science, +Bioinformatics.

    + +

     

    + +

    Current Research:

    + +

    The objective of our research is to +develop new technology that will significantly improve productivity of software +engi-neers, especially with respect to reengineering and program comprehension. +We are developing a Software Reengineering Environment (SRE) that incorporates +use of domain-specific knowledge to address software reengineering problems, +which are otherwise intractable. This environment enables a novel combination +of the power of automation and high-level reasoning by human experts to yield +solutions to such difficult reengineering problems as automatic +parallelization. The domain-specific knowledge is about a class of problems. +Thus, the process can be applied not to just one problem, but a class of +problems. Moreover the framework is extensible to continue to incorporate new +classes of problems. An important key attribute of our technology is an +interactive and integrated environment for program comprehension. It includes +novel software visualization tools, a powerful visualization environment +resulting from integration of complementary tools and the use of information +filters to deal with the vast data resulting from program analysis. The research involves multi-disciplinary +collaborations to develop specific applications of the technology. Our efforts have +resulted in the following systems:

    + +

             +A distributed processing system called BATRUN (Batch +After Twilight Run) that supports development of distributed applications by +providing basic framework for monitoring resources, scheduling, check-pointing, +and process migration.

    + +

             +ParAgent, an automatic parallelization of numerical +weather prediction models.

    + +

             +Proteomics Workbench that supports internet-based tools +for automatic collection and analysis of data to facilitate large-scale +computational experiments in proteomics.

    + +

     

    + +

    Representative Publications:

    + +

    Mitra S., +Kothari S., Cho J., Krishnaswamy A., ParAgent: a domain-specific automatic +parallelization tool, Proceedings of High +Performance Computing Conference, India, December 2000.

    + +

     

    + +

    Deng Y, Kothari, +S., Meum L., Namara Y., Cho J., Mitra S., ParAgent: A software reengineering +tool for parallel computing, IASTED 12th +International Conference on Parallel and Distributed Computing and Systems, +Las Vegas, November 2000.

    + +

     

    + +

    Deng Y., Kothari +S., Namara Y., Program Slice Browser, 9th +International Workshop on Program Comprehension, Toronto, May 2001 +(accepted for publication).

    + +

     

    + +

    Kothari S., Kim +Y., Takle E., Parallelization agent for atmospheric model. In Proceedings +of the Symposium on Regional Weather Prediction on Parallel Computer +Environments, 28794, 1997.

    + +

     

    + +

    Tandiary F., +Kothari S.C., Dixit A., Anderson W., Batrun: +Utilizing Idle Workstations for Large-Scale Computing, Kothari, +S.C. IEEE Parallel and Distributed Technology, 4-2:41-49, 1996.

    + +

     

    + +

    Kothari, S., K. +Subramanian, and D. Heller, Active message communication package for PVM. Journal +of Parallel and Distributed Processing pp. 14652, 1996.

    + +

     

    + +

     

    + +

    GARY T. LEAVENS, Professor of Computer Science
    +

    + +

    B.S. +1978, Computer & Communication Sciences, The University of Michigan

    + +

    M.S. +1980, Computer Science, The University of Southern California

    + +

    Ph.D. +1989, Computer Science, Massachusetts Institute of Technology

    + +

     

    + +

    Major Interests:

    + +

    Programming and specification language design and semantics, +formal methods (program specification and verification), type theory, +object-oriented programming languages, component-based systems, information +assurance, functional programming, distributed programming languages.
    +
    +

    + +

    Current Research:

    + +

    The long term goal of Dr. Leavens' research is to understand better how +to solve programming problems: how to specify such problems, methods for +thinking about such problems, notations for expressing solutions, and ways to +check that the solutions are correct. In pursuing this goal, I have worked in +two main areas: formal methods and programming languages.

    + +

     

    + +

    Formal Methods: Dr. Leavens' work +in formal methods has been focused on ways to specify and verify +object-oriented (OO) software components. +The specification work involves the design and formal description of +behavioral interface specification languages (BISLs). BISLs record information about detailed design: the interfaces +and functional behavior of program modules. +His research group has designed a BISL for Smalltalk, called +Larch/Smalltalk, a BISL for C++, called Larch/C++, and, a BISL for Java called +JML. Work on these BISLs focuses on the problem of how to make them expres-sive +enough for documenting existing code; we measure this using both theoretical +analysis and case studies. They have +made some progress towards solving this problem; for example, work reported at +OOPSLA 2000 aims to explain needs to be specified to deriving a subclass +without seeing the source code for a superclass. However, there is a lot of information that cannot (yet) be +recorded, such as performance constraints. Our current work on JML funded by +the National Science Foundation (NSF) tries to address some of these issues, as +well as issues of practicality and how to deal with multimethods (see below). +Work on JML was done jointly with Professor Al Baker, and Clyde Ruby is a major +contributor. A former Ph.D. student, Yoonsik Cheon, designed Larch/Smalltalk. +He has also been working with Baker and a former Ph.D. student, Tim Wahls, on +executing such specifications.

    + +

     

    + +

    Dr. Leavens' long term interest in formal methods for OO software +components is behavioral subtyping. The message passing mechanism of OO +languages, such as C++ and Java, allows one to easily extend programs by adding +new types. This works best if objects +of the new types behave like the objects of the old types; the old types are +supertypes of the new types, which are called subtypes. How should one reason +about programs that use subtyping and message passing? They seek a reasoning method, formalized by +specification and verification techniques, that is modular in the sense that +when subtypes are added to a program, unchanged modules do not have to be +respecified or reverified. Modular reasoning is guaranteed by the technique of +supertype abstraction, which relies on behavioral subtyping. To use supertype +abstraction, one specifies and verifies code in terms of the static types of +expressions written in a program (as usual), uses a type checker to ensure that +the static types are supertypes of the run-time types, and then must prove that +subtypes obey the specifications of their supertypes. This last condition is behavioral subtyping.

    + +

     

    + +

    Krishna Kishore Dhara, a recently graduated Ph.D. student, has extended +the formal theory of behavioral subtyping to types whose instances have +time-varying state. Professor Don Pigozzi (of the Mathematics Department at +ISU) and Dr. Leavens has found an exact algebraic characterization of +behavioral subtyping for immutable types. Our joint research on the above +topics has been funded by the NSF.

    + +

     

    + +

    The potential impact of the work in formal methods is possibly great; it +might lead to the engineering of software, instead of hacking. It also seems +necessary for high quality software components and reuse. But more +realistically, Dr. Leavens views research as trying to formally understand what +one needs to think about when documenting and reasoning about a program or +program component. This can be of great value for teaching and for the +construction of tools, even if people do not use the formalism directly or on a +daily basis.

    + +

     

    + +

    Programming Language +Design and Semantics: The other main +aspect of his work has been on the design and semantics of object-oriented +languages with generic functions. Such +languages are known as multimethod programming languages, because method calls +can dispatch a message send on all arguments, unlike a single-dispatching OO +language, such as Smalltalk, C++, or Java. Multimethod languages are +interesting because they can more easily express solutions to certain problems +in OO programming (binary methods).

    + +

     

    + +

    Dr. Leavens' work on multimethod languages is joint with Craig Chambers +of the University of Washington, his student Todd D. Millstein as well as +Curtis Clifton, Jianbing Chen, Sevtap Otles Karakoy, and Professor Don Pigozzi +of ISU. It focuses on the semantics and type systems for variants of the Cecil +and Java languages. To date they have published papers about an algorithm for +type checking such languages with very expressive features (orthogonal +inheritance and subtyping), about how to add multimethods to existing +languages, and a way to add multimethods to Java. One big problem is to get a +language with both a (sound) static type system and a sensible module system; +however, this problem has been solved by Millstein and Chambers (as reported in +ECOOP '99). We hope to apply this to design OO languages that are more +flexible. We are working on a language that allows one to program abstract data +types in two styles, one of which is easier to extend (as in standard OO +languages) and the other of which is easier to reason about. Programmers can +use both styles in the same program. The potential impact might be large if +this leads to more flexible ways of supporting abstract data types in +programming languages, as they are at the heart of modular, reusable coding +practices. A recent NSF is starting to fund research on formal methods for such +languages.

    + +

     

    + +

    See http://www.cs.iastate.edu/~leavens/ +for details.

    + +

     

    + +

    Representative Publications:

    + +

    Clyde Ruby and Gary T. Leavens. Safely Creating Correct Subclasses +without Seeing Superclass Code. To appear in OOPSLA 2000 Proceedings, (Volume +35, number 10 of ACM SIGPLAN Notices, October 2000).

    + +

     

    + +

    Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd Millstein. +MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java. To +appear in OOPSLA 2000 Proceedings, (Volume 35, number 10 of ACM SIGPLAN +Notices, October 2000).

    + +

     

    + +

    Gary T. Leavens and Don Pigozzi. A complete algebraic characterization of +behavioral subtyping. Acta Informatica, 36:617-663, 2000.

    + +

     

    + +

    Gary T. Leavens and Krishna Kishore Dhara. Concepts of Behavioral +Subtyping and a Sketch of their Extension to Component-Based Systems. In Gary +T. Leavens and Murali Sitaraman (editors), Foundations of Component-Based +Systems, Cambridge University Press, 2000. Chapter 6, pages 113-135.

    + +

     

    + +

    Gary T. Leavens and Jeannette M. Wing. +Protective Interface Specifications. +Formal Aspects of Computing, +10:59-75, 1998.

    + +

     

    + +

    Gary T. Leavens and Don Pigozzi. The Behavior-Realization Adjunction and +Generalized Homomorphic Relations. Theoretical Computer Science, +177:183-216, 1997.

    + +

     

    + +

    Gary T. Leavens. An Overview of Larch/C++: Behavioral Specifications for +C++ Modules. In Haim Kilov and William Harvey (editors), Specification of Behavioral Semantics in Object-Oriented Information +Modeling (Kluwer Academic Publishers, 1996), Chapter 8, pp. 121-142.

    + +

     

    + +

    Krishna Kishore Dhara and Gary T. Leavens. Forcing Behavioral Subtyping +Through Specification Inheritance. In Proceedings 18th International +Conference on Software Engineering, Berlin, Germany, pp. 258-267. IEEE, 1996.

    + +

     

    + +

    Gary T. Leavens and William E. Weihl. Specification and Verification of +Object-Oriented Programs Using Supertype Abstraction. Acta Informatica, +32(8):705-778, November 1995.

    + +

     

    + +

    Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, The Hopkins Objects Group, +Gary T. Leavens, and Benjamin Pierce. On Binary Methods. Theory and Practice of Object Systems 1(3):221-242, 1995.

    + +

     

    + +

    Craig Chambers and Gary T. Leavens. Typechecking and Modules for +Multimethods. ACM Transactions on +Programming Languages and Systems, 17(6):805-843, November 1995.

    + +

     

    + +

    Yoonsik Cheon and Gary T. Leavens. The Larch/Smalltalk Interface +Specification Language. ACM Transactions +on Software Engineering and Methodology, 3(3):221-253, July 1994.

    + +

     

    + +

     

    + +

    MARKUS LUMPE, Assistant +Professor of Computer Science

    + +

     

    + +

    M.S. 1990, Computer Science, +Dresden University of Technology

    + +

    PhD. 1999, Computer Science, +Institute of Computer Science and Applied Mathematics, University of Berne

    + +

     

    + +

    Major Research Interests:

    + +

    Design +and implementation of object- and component-oriented languages, Type theory for +software composition, Formal semantics, Concurrent programming, Object-oriented +compiler construction techniques.

    + +

    Current Research:

    + +

    My +major research interests are in programming languages, modern compiler +construction, and component technology. Within these areas, I am focusing on +foundations like type systems, behavioral equivalence theories, distribution +and localization of components and processes. In addition, I am very much +interested in applications aspects like the modeling of compositional +abstractions, component repositories, and the specification of functional and +non-functional properties of components. My primary long-term goal is the +development of a robust formal model to specify applications as composition of +distributed components.

    + +

    I +have developed the pL-calculus, a variant of the p-calculus, which is +used as the formal basis for Piccola, +a small composition language. The pL-calculus is a process calculus, in which agents communicate +by passing extensible, labeled records, or so-called forms'', rather than +tuples. This approach makes it much easier to model compositional abstractions +than it is possible in the plain p-calculus, since the contents of +communication are now independent of position; agents are more naturally +polymorphic since communication forms can be easily extended, and environmental +arguments can be passed implicitly.

    + +

    The +next stage will be a higher-order system, which provides also means for +communicating agents agents will become first-class entities. Moreover, the +next stage will employ the unifying concept that everything is a form, that +is, every abstraction is itself a form. Therefore, the distinction between +agents, channels, and forms will disappear, which will hopefully result in a +unique language paradigm for software composition.

    + +

    Additionally, +I have an active interest in the development of modern compiler techniques and +programming languages. My interests focus on (i) the definition of an object- +or component-oriented framework for defining any kind of language processors, (ii) +the definition of framework to map any source language to the Java virtual +machine, and (iii) the definition of new higher-level programming abstractions +and idioms.

    + +

     

    + +

    Representative Publications:

    + +

    Markus Lumpe, Jean-Guy Schneider +and Oscar Nierstrasz, Using Metaobjects to Model Concurrent Objects with +PICT, Proceedings of Languages et +Modles Objects, Leysin, October 1996, pp. 1-12.

    + +

     

    + +

    Jean-Guy Schneider and Markus +Lumpe, Synchronizing Concurrent Objects in the Pi-Calculus, Proceedings of Langages et Modles Objets +'97, Roland Ducournau and Serge Garlatti (Eds.), Hermes, Roscoff, October +1997, pp. 61-76.

    + +

     

    + +

    Markus Lumpe, Jean-Guy +Schneider, Oscar Nierstrasz and Franz Achermann, Towards a formal composition +language, Proceedings of ESEC '97 +Workshop on Foundations of Component-Based Systems, Gary T. Leavens and +Murali Sitaraman (Eds.), Zurich, September 1997, pp. 178-187.

    + +

     

    + +

    Markus Lumpe, A Pi-Calculus +Based Approach for Software Composition, Ph.D. thesis, University of Bern, +Institute of Computer Science and Applied Mathematics, January 1999.

    + +

     

    + +

    Franz Achermann, Markus Lumpe, +Jean-Guy Schneider and Oscar Nierstrasz, Piccola - a Small Composition +Language, Formal Methods for Distributed +Processing, an Object Oriented Approach, Howard Bowman and John Derrick. +(Eds.), Cambridge University Press, 2000.

    + +

     

    + +

    Markus Lumpe, Franz Achermann +and Oscar Nierstrasz, A Formal Language for Composition, Foundations of Component Based System, Gary Leavens and Murali +Sitaraman (Eds.), Cambridge University Press, 2000.

    + +

     

    + +

    Jean-Guy Schneider and Markus +Lumpe, A Metamodel for Concurrent, Object-based Programming, Proceedings of Langages et Modles Objets +'2000, Hermes, Mont Saint-Hilaire, Qubec, January 2000.

    + +

     

    + +

    Markus Lumpe and Jean-Guy +Schneider, Forms - A Flexible Notation for Software Composition, Proceedings of Third Australian Workshop on +Software and System Architectures, John Grundy and Jun Han (Eds.), Sydney, +November 2000, pp. 24-36.

    + +

     

    + +

     

    + +

    JACK H. LUTZ, +Professor of Computer +Science

    + +

     

    + +

    B.G.S. 1976, Mathematics, University of +Kansas

    + +

    M.A. 1979, Mathematics, University of +Kansas

    + +

    M.S. 1981, Computer Science, University +of Kansas

    + +

    Ph.D. 1987, Mathematics, California +Institute of Technology

    + +

     

    + +

    Major Interests:

    + +

    Computational Complexity, including structure of complexity classes, +resource-bounded measure, and probabilistic complexity. Algorithmic Information and Randomness, +including computational randomness, Kolmogorov complexity, computational depth, +and games and prediction.

    + +

     

    + +

    Current Research:

    + +

    Dr. Lutz does most of his research in two areas: computational complexity +theory and algorithmic information theory. +In computational complexity, he and his students are investigating the +structure of complexity classes (deterministic, non-deterministic, +probabilistic, and quantum) using resource-bounded measure, a +complexity-theoretic generalization of Lebesgue measure that he has +developed. Current work focuses on weak +completeness, circuit-size complexity, natural proofs, genericity, interactions +between randomization and nondeterminisim, strong hypotheses, real-valued +functions, and the foundations of resource-bounded measure. In algorithmic information, he and his +students are investigating random-ness, resource-bounded randomness, Kolmogorov +complexity, algorithmic prediction, feasible martingales, games, and +computational depth.

    + +

     

    + +

    Representative Publications:

    + +

    "The Density of Weakly Complete Problems under Adaptive +Reductions," Lutz, J., & Zhao, Y. SIAM Journal on Computing, to appear.

    + +

     

    + +

    "Equivalence of Measures of Complexity Classes," Breutzmann, +J., & Lutz, J. SIAM Journal on +Computing, to appear.

    + +

    "Query Order and NP-Completeness," Dai, J., & Lutz, J. +(1999). Proceedings of the Fourteenth +Annual IEEE Conference on Computational Complexity, IEEE Computer Society Press, pp. 142-148.

    + +

     

    + +

    "Genericity and Randomness over Feasible Probability Measures," +Lorentz, A., & Lutz, J. (1998). Theoretical Computer Science, +207:245-259.

    + +

     

    + +

    "Observations on Measure and Lowness for Delta-P-2," Lutz, J. +(1997). Theory of Computing Systems (formerly named Mathematical Systems +Theory), 30:429-442.

    + +

     

    + +

    "The Quantitative Structure of Exponential Time," Lutz, J. +(1997). In Complexity Theory Retrospective II (Hemaspaandra, L.A., & +Selman, A.L., eds.), Springer-Verlag, pp. 225-254.

    + +

     

    + +

    "Completeness and Weak Completeness under Polynomial-Size +Circuits," Juedes, D., & Lutz, J. (1996). Information and Computation, 125:13-31.

    + +

     

    + +

    "The Complexity and Distribution of Hard Problems," Juedes, D., +& Lutz, J. (1995). SIAM Journal on +Computing 24:279-295.

    + +

     

    + +

    "Weakly Hard Problems," Lutz, J. (1995). SIAM Journal on +Computing, 24:1170-1189.

    + +

     

    + +

    "Computational Depth and Reducibility," Juedes, D., Lathrop, +J., & Lutz, J. (1994). Theoretical +Computer Science, 132:37-70.

    + +

     

    + +

    "Measure, Stochasticity, and the Density of Hard Languages," +Lutz, J., & Mayordomo, E. (1994). SIAM Journal on Computing, 23:762-779.

    + +

     

    + +

     

    + +

    ROBYN +LUTZ, Associate +Professor of Computer Science

    + +

     

    + +

    B.A. 1974, English, University of Kansas

    + +

    M.A. 1976, Spanish, University of Kansas

    + +

    Ph.D. 1980, Spanish, University of Kansas

    + +

    M.S. 1990, Computer Science, Iowa State +University

    + +

     

    + +

    Major Interests:

    + +

    Software safety, fault detection and recovery, requirements engineering, +formal methods, safety-critical product lines, and software engineering +for spacecraft.

    + +

     

    + +

    Current Research:

    + +

    Dr. Lutz' research is in two overlapping areas of software engineering: +(1) how to build safe systems and (2) how to specify and analyze requirements.

    + +

     

    + +

    In the first area, her work focuses on software system safety. In +particular, she is interested in developing safety analysis techniques for +high-integrity product lines. Dr. Lutz +is also working on architectural analysis techniques for safety-critical +systems. Her vision for future research in this area is detailed in my recent survey, +"Software Engineering for Safety: A Roadmap," available on my web +page (http://www.cs.iastate.edu/~rlutz).

    + +

     

    + +

    In the second area, her interest is in formally modeling and analyzing +requirements for fault detection and recovery. +Many of her results in this area have been applied to NASA spacecraft. +Currently, she is also beginning a funded research project to characterize +critical software faults that escape testing to manifest themselves during +flight.

    + +

     

    + +

    Representative Publications:

    + +

    "A Software Fault Tree Approach to Requirements Analysis of an +Intrusion Detection System," with G. Helmer, J. Wong, M. Slagell, V. +Honavar, and L. Miller, Symposium on Requirements Engineering for +Information Security, March 5-6, 2001.

    + +

     

    + +

    "Extending the Product Family Approach to Support Safe Reuse," The Journal of Systems and Software, +53, 3, September 2000. pp. 207-217.

    + +

     

    + +

    "Software Engineering for Safety: A Roadmap," in The Future of Software Engineering, Ed. +Anthony Finkelstein, ACM Press, 2000, pp. 213-224.

    + +

     

    + +

    "An Approach to Architectural Analysis of Product Lines," with +Gerald C. Gannod, 22nd International +Conference on Software Engineering (ICSE'00), June 7-9, 2000, Limerick, +Ireland, pp. 548-557.

    + +

     

    + +

    "Failure Modes and Effects Analysis," with R. Woodhouse, Encyclopedia of Electrical and Electronics +Engineering, ed. J. Webster, John Wiley and Sons Publishers, Vol. 7, 1999, +p. 253-257.

    + +

     

    + +

    "Applying Adaptive Safety Analysis Techniques," with Hui-Yin +Shaw, Tenth International Symposium on +Software Reliability Engineering (ISSRE'99), Nov 1-4, 1999, Boca Raton, FL.

    + +

     

    + +

    "Using Immersive Virtual Environments for Certification," with +C. Cruz-Neira, IEEE Software, Vol. +16, 4, July/Aug, 1999, pp. 26-30.

    + +

     

    + +

    "Toward Safe Reuse of Product Family Specifications," Proceedings of the Fifth Symposium on +Software Reusability (SSR'99), May 21-23, 1999, Los Angeles, CA, pp. 17-26.

    + +

     

    + +

    "Bi-directional Analysis for Certification of Safety-Critical +Software," with Robert Woodhouse, First +International Software Assurance Certification Conference (ISACC'99), Feb. +28-March 2, 1999, Washington, D.C.

    + +

     

    + +

    "Safety Analysis of Requirements for a Product Family," with G. +Helmer, M. Moseman, D. Statezni, and S. Tockey, Proceedings of the Third IEEE International Conference on Requirements +Engineering (ICRE '98), April 6-10, 1998, Colorado Springs, CO, 24-31.

    + +

     

    + +

    "Experiences Using Lightweight Formal Methods for Requirements +Modeling," with S. Easterbrook, R. Covington, J. Kelly, Y. Ampo, and D. +Hamilton, IEEE Transactions on Software +Engineering, 24(1):4-14, January 1998.

    + +

     

    + +

    "Requirements Analysis Using Forward and Backward Search" with +R. Woodhouse, Annals of Software +Engineering, 3:459-475, 1997.

    + +

     

    + +

    "Reuse of a Formal Model for Requirements Validation," Proceedings of the Fourth NASA Langley +Formal Methods Workshop, 10-12 September, 1997, Hampton, VA, 75-85.

    + +

     

    + +

    "Targeting Safety-Related Errors During Software Requirements +Analysis," The Journal of Systems +and Software, 34:223-230, September 1996.

    + +

     

    + +

    "Detecting Unsafe Error Recovery Schedules" with J. Wong, IEEE Transactions on Software Engineering, +18(8):749-760, August 1992. 1998, 198-199.

    + +

     

    + +

     

    + +

    LES MILLER, +Professor of Computer +Science

    + +

     

    + +

    B.A. 1967, Mathematics, University of +South Dakota

    + +

    M.A. 1974, Mathematics, University of +South Dakota

    + +

    Ph.D. 1980, Computer Science, Southern +Methodist University

    + +

     

    + +

    Major Interests:

    + +

    Object oriented databases, Organizational decision +support systems, Multi-agent systems, Knowledge management systems, Data +warehouses, Computational Biology.

    + +

     

    + +

    Current Research:

    + +

    We are currently looking at multi-agent systems to +provide the infrastructure for integrating heterogeneous data sources. In +addition to the agent systems, we have developed an object-oriented data +warehouse to serve as part of the integration infrastructure. We have also been looking at tools for generating +and populating data warehouse designs. +We are also concerned with applying database and machine learning +techniques to problems in computational biology.

    + +

     

    + +

    Representative Publications:

    + +

    "Populating +a data warehouse with mobile agents," Dandu, R., L. Miller, S. Nilakanta, +and V. Honavar. (1999). To appear in The Tenth International Conference of the +Information Resources Management Association.

    + +

     

    + +

    "Distributed +Knowledge Networks," Honavar, V., L.L. Miller, and J. Wong. (1998). IEEE +Information Technology Conference, pp. 87-90.

    + +

     

    + +

    "Object-oriented +data warehouse for information fusion from heterogeneous distributed data and +knowledge sources," Miller, L.L., V. Honavar, J. Wong, and S. Nilakanta. +(1998). IEEE Information Technology +Conference, pp. 27-31.

    + +

     

    + +

    "Data Warehouse Modeler: A Case Tool for Warehouse +Design," Miller, L.L., & Nilakanta, S. (1998). Hawaiian International +Conference on Systems Science, pp. 42-48.

    + +

     

    + +

    "Extending the Object-Relational Interface to Support an Extensible +View System for Multidatabase Integration and Interoperation," Miller, +L.L., Yen, D., Sirjani, A., & Tenner, J. (1998). International Journal of Computer Systems Science and Engineering. +13:4, pp. 227-240.

    + +

     

    + +

    "A Dynamic Approach for Finding the Join Sequence +in a Universal Relation Interface," Miller, L.L., & Owrang, M. M. (1998). To appear in the Journal of Integrated Computer-Aided +Engineering, 4:310-318.

    + +

     

    + +

     

    + +

    "Warehousing Structured and Unstructured Data for +Data Mining." Miller, L.L., Honavar, V., & Barta, T. (1997). ASIS '97, pp. 215-224.

    + +

     

    + +

     

    + +

    ANDREW S. MINER, Assistant Professor of +Computer Science

    + +

     

    + +

    B.S. 1993, Physics and Computer Science, +Randolph-Macon College

    + +

    M.S. 1995, Computer Science, College of +William and Mary

    + +

    Ph.D. 2000, Computer Science, College of +William and Mary

    + +

     

    + +

    Major Interests:

    + +

    Performance reliability and +logical analysis of systems, Petri nets and stochastic modeling; state space +generation techniques, binary and multi-valued decision diagrams; compositional +approaches, distributed algorithms for solution techniques.

    + +

     

    + +

    Current Research:

    + +

    Technology advancements yield increasingly complex systems. +Dr. Miner's research focuses on +techniques for analyzing such systems, especially during their design stage. In +particular, he considers techniques that use some high-level modeling +formalism, such as stochastic Petri nets, to capture the desired behavior of +the system. Using a well-defined mathematical formalism allows certain types of +logical analysis, in which all the possible states of the model are +examined, or performance or reliability analysis, in which +the underlying stochastic process of the model (usually a Markov chain) is +considered. Logical analysis is typically used to verify the correctness or +robustness of a system against a set of criteria, and is especially applicable +to software and hardware verification. Performance and reliability analyses are +instead used to determine how well a system performs or the expected lifetime +of a system, and are applied to a variety of systems, including communications +systems, web servers, distributed systems, and mission-critical systems.

    + +

     

    + +

    The main difficulty in these types of analyses is that even +a simple model can contain an extremely large number of possible states, +leading to excessive storage and CPU requirements. Indeed, the number of +reachable states of a model usually determines the tractability of its +analysis. Dr. Miner's work addresses this problem by developing techniques that +can handle a large number of states.

    + +

     

    + +

    Representative Publications:

    + +

    A.S. Miner, G. Ciardo, and S. Donatelli. "Using the exact state space of a large +structured Markov model to computer approximate stationary measures." In Proc. ACM +SIGMETRICS 2000, International Conference +on Measurement and Modeling of Computer Systems, Santa Clara, CA, pages +207-216. June 2000.

    + +

     

    + +

    G. Ciardo and A.S. Miner, "Structural +approaches for SPN analysis." High Performance Computing Symposium, Washington, +DC, USA, April 2000, pp. 345-356.

    + +

     

    + +

    G. Ciardo and A.S. Miner. "A data structure for the efficient +Kronecker solutation of GSPN's." +In P. Buchholz, editor, Proc. 8th +International Workshop on Petri Nets and Performance Models (PNPM'99), +Zaragoza, Spain, IEEE Computer Society Press, pages 22-31, September 1999.

    + +

     

    + +

    A.S. Miner and G. Ciardo. "Efficient reachability set generation +and storage using decision diagrams." +In H. Kleijn and S. Donatelli, editors, Application and Theory of Petri Nets 1999, LNCS 1639 (Proc. 20th International Conference on +Applications and Theory of Petri Nets, Williamsburg, VA, USA), pages +6-25. June 1999. Springer-Verlag.

    + +

     

    + +

    G. Ciardo and A.S. Miner. "Storage +alternatives for large structured state spaces." In R. Marie, B. Plateau, M. Calzarossa, and G. Rubino, editors, Proc. 9th International Conference on +Modelling Techniques and Tools for Computer Performance Evaluation, LNCS +1245, pages 44-57, St. Malo, France, June 1997. Springer-Verlag.

    + +

     

    + +

     

    + +

    SIMANTA +MITRA, Adjunct Assistant Professor of Computer +Science

    + +

     

    + +

    Ph.D. 1997, Computer Science, Iowa State University, +Ames

    + +

    M.S. 1991, Computer Science , Iowa State University, +Ames

    + +

    B.E. 1987, Computer Science and Technology, Calcutta +University, India

    + +

     

    + +

    Major Interests:

    + +

    Programming Languages, Compilers, Computer Architecture, Parallelizing +Tools, Embedded and Real-Time computing, +Performance evaluation of computer systems, and software engineering.

    + +

     

    + +

    Representative Work:

    + +

    Parallelization

    + +

    U.S. Patent for "An apparatus and method for parallelizing legacy +computer codes". Patent approved 04/14/99.

    + +

     

    + +

    Simanta Mitra, Suraj C. Kothari, Parallelization Agent: A new approach to +parallelization of legacy codes, Eighth SIAM conference on Parallel Processing +for Scientific Computing, March 1997.

    + +

     

    + +

    Simanta Mitra, "A class-based approach to parallelization of legacy +codes", PhD thesis, Computer Science Department, Iowa State University, +December 1997.

    + +

     

    + +

    Suraj C. Kothari, Simanta Mitra, "Analysis of Computational Balance +of Parallel Numerical Algorithms", Eighth SIAM conference on Parallel +processing for Scientific Computing, March 1997.

    + +

     

    + +

    Suraj C. Kothari, Simanta Mitra, "A scalable 2D parallel sparse +solver", Seventh SIAM conference on parallel processing for scientific +computing,pp. 424-429, Feb 1995.

    + +

     

    + +

    Real-Time Java

    + +

    U.S. Patent for "Method for efficient soft real-time execution of +portable byte code computer programs". +Patent pending approval. Filed 12/19/97

    + +

     

    + +

    "Core Real-Time Extensions to the Java platform", contributed +paper to EETimes.

    + +

     

    + +

     

    + +

    GURPUR PRABHU, Associate Professor of Computer Science

    + +

     

    + +

    B.Tech. 1975, Electrical Engineering, +IIT, Madras, India

    + +

    M.Tech. 1978, Computer Science, IIT, +Kanpur, India

    + +

    Ph.D. 1983, Computer Science, Washington +State University, Pullman

    + +

     

    + +

    Major Interests:

    + +

    Parallel processing, computer architecture, business process modeling and +analysis.

    + +

     

    + +

    Current Research:

    + +

    Dr. Prabhu's current research focuses on performance issues of parallel +programs and methods for business transformation.

    + +

     

    + +

    Representative Publications:

    + +

    "Programming is Writing: Why Programs must be Carefully +Evaluated," Journal of Mathematics +and Computer Education, 32:3, Fall 1998, pp. 284-295 (with Gary Leavens, +Albert Baker, Vasant Honavar, and Steve LaValle).

    + +

     

    + +

    "Parallelizing a very high resolution climate model using clusters +of workstations with PVM and performance and load balance analyses," (with +Hao Wang and Eugene Takle), Proceedings of the International Conference on +Parallel and Distributed Processing Techniques and Applications, 1998, pp. +1762-1765, CSREA Press.

    + +

     

    + +

    "Distribution-Independent Hierarchical Algorithms for the N-body +problem," Journal of Supercomputing, +12, 1998, pp. 303-323 (with Srinivas Aluru, John Gustafson, and Fatih +Sevilgen).

    + +

     

    + +

    "A Framework +for Business Transformation," Journal of Microcomputer Applications, 17:1, 1998, pp. +1-7 (with Sree Nilakanta and Ashok Subramanian).

    + +

     

    + +

    "Enterprise Integration: Art or Science?" Summer Conference of the Society for +Enterprise Engineering, June 1995.

    + +

    + +

    "Truly Distribution-Independent Algorithms for the N-Body +Problem," Prabhu, G., Aluru, S., & Gustafson, J. Supercomputing +'94, pp. 420-428.

    + +

    + +

    "A Methodology for Business Transformation," Prabhu, G., +Nilakanta, S., & Subramanian, A. +(1994). Proceedings of the Third International Conference on Systems +Integration, Brazil, pp. 403-411.

    + +

     

    + +

    "The Use of Microcontrollers in Mechatronics Education," +Prabhu, G., & Wright, C. (1994). Proceedings of the Workshop on +Mechatronics Education, Stanford, pp. 72-77.

    + +

     

    + +

     

    + +

    LU RUAN, Assistant +Professor of Computer Science

    + +

     

    + +

    B.E. 1996, Computer Science, +Tsinghua University, China

    + +

    M.S. 1999, Computer Science, +University of Minnesota - Twin Cities

    + +

    Ph.D. 2001, Computer Science, +University of Minnesota - Twin Cities

    + +

     

    + +

    Major Interests:

    + +

    Optical +Networks, IP over WDM, Wireless Networks, Approximation Algorithms, +Combinatorial Optimization

    + +

     

    + +

    Current Research:

    + +

    IP over WDM is +being envisioned as one of the most attractive architectures for the new +Internet. In this architecture, high-speed IP routers are interconnected by +intelligent optical core networks. Survivability in these networks is essential +since a single link/node failure will cause tremendous service loss due to the +extremely high capacity of optical fiber.

    + +

     

    + +

    Protection/restoration +schemes exist in both IP layer and WDM layer to recover from failures. However, +the scheme of one layer operates without the knowledge of the other layer. Dr. +Ruans current research is on developing novel and fast resilient schemes for +both layers and integrating them seamlessly and efficiently. Two important +objectives are to be achieved when developing such schemes: (1) Protection +bandwidth should be efficiently shared by traffic demands. (2) Protection +guarantee can be measured quantitatively to support the concept of Quality of +Protection.

    + +

     

    + +

    Representative Publications:

    + +

    L. +Ruan, D-Z. Du, X. Hu, X. Jia, D. Li and Z. Sun, "Converter Placement +Supporting Broadcast in WDM Optical Networks," IEEE Transactions on +Computers, 50:7, pp. 750-758, July 2001.

    + +

    D. Li, X. Du, +X. Hu, L. Ruan and X. Jia, "Minimizing Number of Wavelengths in Multicast +Routing Trees in WDM Networks," Networks, 35: 4, pp. 260-265, July +2000.

    + +

    B. Lu and L. +Ruan, "Polynomial Time Approximation Scheme for the Rectilinear Steiner +Arborescence Problem," Journal of Combinatorial Optimization, 4:3, +pp. 357-363, September 2000. +

    + +

    L. Ruan, D-Z. +Du, X. Hu, X. Jia and D. Li, "Approximations for Color-Covering +Problems," Proceedings of the First International Congress of Chinese +Mathematicians, pp.203 -207, 2000. +

    + +

    X. Jia, X. Hu, +L. Ruan and J. Sun, "Multicast Routing, Load Balancing and wavelength +Assignment on Tree of Rings," Proceedings of IASTED International +Conference on Wireless and Optical Communications, Banff, Canada, June 2001, +pp. 239-244.

    + +

    L. Ruan and +D-Z. Du (eds.), Optical Networks-Recent Advances, Kluwer Academic Publisher, to +appear in September 2001.

    + +

    X. Cheng, D.-Z. Du, J. Kim and L. Ruan, +Rectangular Partitions, to appear in Handbook of Combinatorial Optimization +(vol. 5), D.-Z. Du and P.M. Pardalos (eds.).

    + +

     

    + +

     

    + +

    GIORA SLUTZKI, +Professor of Computer +Science

    + +

     

    + +

    B.S. 1970, Mathematics & Physics, +Hebrew University of Jerusalem, Israel

    + +

    M.S. 1973, Computer Science, Weizmann +Institute of Science, Rehovot, Israel

    + +

    Ph.D. 1977, Computer Science, Tel-Aviv +University, Tel-Aviv, Israel

    + +

     

    + +

    Major Interests:

    + +

    Algorithms and Complexity, Game Theory and Computational Economics, +Formal Languages, Automata Theory, Logic.

    + +

     

    + +

    Current Research:

    + +

    Dr. Slutzki is currently working on complexity of some problems in +abstract algebra and graph theory. He also works on parametric string alignment +and problems in pursuit-evasion in polygons.

    + +

     

    + +

    Representative Publications:

    + +

    "Complexity of Some Problems +Concerning Varieties and Quasi-Varieties of Algebras" (with C. +Bergman). SIAM Journal on Computing, 30 (2) (2000), pp. 359-382. Extended +Abstract appeared in 16-th STACS (1999).

    + +

     

    + +

    "An Algorithm for Searching a +Polygonal Region with a Flashlight" (with B. Simov and S. LaValle). +16-th ACM Symposium on Computational Geometry (SoCG '00), June 2000, Hong Kong. +Proceedings, pp. 260-269.

    + +

     

    + +

    "Parametric multiple sequence +alignment and phylogeny construction" (with D. Fernandez-Baca and +T. Seppalainen). 11-th Annual Symposium on Combinatorial Pattern Matching (CPM +'00), June 2000, Montreal, Canada. Springer Verlag, LNCS 1848, pp. 69-83.

    + +

     

    + +

    "Computational Complexity of Some +Problems Involving Congruences on Algebras" (with C. Bergman). +15-th Annual IEEE Symposium on Logic in Computer Science (LICS '00), June 2000, +Santa Barbara, California. Proceedings, pp. 168-174.

    + +

     

    + +

    "Computational Complexity of +Term-Equivalence" (with C. Bergman and D. Juedes). International +Journal of Algebra and Computation 9 (1) (1999), pp. 113-128.

    + +

     

    + +

    "Lower Bounds for Parametric Sequence +Comparison" (with D. Fernandez-Baca and T. Seppalainen). Symposium +on String Processing and Information Retrieval (SPIRE '99), September 1999, +Cancun, Mexico. IEEE Computer Society, Proceedings, pp. 55-62.

    + +

     

    + +

    "Multi-valued Logic Programming +Semantics: An Algebraic Approach" (with B. Mobasher and D. +Pigozzi). Theoretical Computer Science, 171 (1997), pp. 77-109.

    + +

     

    + +

    "Optimal Parametric Search on Graphs +of Bounded Tree-width" (with D. Fernandez-Baca). Journal of +Algorithms 22 (1997), pp. 212-240.

    + +

     

    + +

    "A Hierarchy of Deterministic Top-down +Tree Transformations" (with S. Vagvolgyi). Mathematical Systems +Theory 29 (1996), pp. 169-188.

    + +

     

    + +

    "Using Sparsification for Parametric +Minimum Spanning Tree Problems" (with D. Fernandez-Baca and D. +Eppstein). Special SWAT issue of the Nordic Journal of Computing, 3 (4)(Winter +1996), pp. 352-366.

    + +

     

    + +

     

    + +

    WALLAPAK TAVANAPONG, Assistant Professor of Computer Science

    + +

     

    + +

    B.S. 1992, Computer Science, Thammasat University, +Thailand

    + +

    M.S. 1995, Computer Science, University of Central +Florida

    + +

    Ph.D. 1999, Computer Science, University of Central +Florida

    + +

     

    + +

    Major +Interests:

    + +

    Distributed Multimedia +Systems, Multimedia and Communications, Multimedia Databases, Parallel and +Distributed Databases, Web Performance.

    + +

     

    + +

    Current +Research:

    + +

    The information +superhighway will consist of a collection of heterogeneous high-speed networks, +offering a wide variety of services. Due to these infrastructures, affordable +high performance computers and peripherals, and the World Wide Web, multimedia +data such as videos and audio will greatly increase its presence and +significance far beyond those seen on the Internet today. Designing efficient techniques to retrieve +and deliver multimedia data to remote users is very challenging due to the unique +traits of multimedia data. First, video +and audio data demand both large storage space and high communication +bandwidth. Second, the data must be +presented in a timely manner without interruptions or large jitters. Lastly, the rich and complex semantics +inherent in multimedia data make it necessary to design novel search +techniques.

    + +

     

    + +

    Dr. Tavanapong's +research addresses three critical aspects of multimedia computing: distributed +multimedia caching and delivery techniques, multimedia server design, and +multimedia databases. Her research in +distributed multimedia caching and delivery strategies focuses on designing +innovative distributed and collaborative strategies for caching multimedia data +along distributed systems to reduce service delays and wide-area-network +bandwidth consumption. Her research +contribution in media server design involves novel algorithms for a high +performance media server or a cluster of workstations to support a large number +of concurrent users efficiently. +Lastly, her work in multimedia databases concentrates on content-based +search for desire video segments from a large video database.

    + +

     

    + +

    Grants

    + +

    Strategies for Caching +Information on Distributed Systems. NSF Career Award CCR-0092914, PI, 2001, +$253,930.

    + +

     

    + +

    Representative +Publications:

    + +

    Design and +Implementation of a Video Browsing System for the Internet. Tavanapong, W. and Hua, K.A. To appear in Journal of Software Practice & Experience, 2001.

    + +

     

    + +

    A Noise-Reduction +Approach to Scene Segmentation for Large Video Databases. Tavanapong, W. and Zhou, J. To appear in Proc. of IEEE Int'l. Conf. on Information Technology: Coding and +Computing (ITCC), 2001 (Invited paper).

    + +

     

    + +

    A Characteristics-Based +Bandwidth Reduction Technique for Pre-recorded Videos. W. Tavanapong and S. Krishnamohan. In Proc +of IEEE Int'l Conf. on Multimedia and Expo, pages 1751-1754, New York City, +NY, July 2000.

    + +

     

    + +

    2PSM: An Efficient +Framework for Searching Video Information in a Limited-Bandwidth +Environment. Hua, K.A., Tavanapong, W. +and, Wang, J.Z. ACM Multimedia Systems, +7(5), 396-408, September, 1999.

    + +

     

    + +

    Performance of Load +Balancing Techniques for Join Operations in Shared-Nothing Database Management +Systems. Hua, K.A., Tavanapong, W., and +Lo, Y. Journal of Parallel and Distributed Computing, 56, 17-46, 1999.

    + +

     

    + +

    Reducing Web Browsing +Delay using Profiled-Based Prefetching. Tavanapong, W., Hua, K.A., and Sheu, S. +In Proc. of WebNet 98 - World Conf. of +the WWW, Internet & Intranet, pp. 879-884, Orlando, FL, November, 1998.

    + +

     

    + +

    A Framework for +Supporting Previewing and VCR Operations in a Low Bandwidth Environment. +Tavanapong, W., Hua, K.A., and Wang, J.Z. In Proc. of ACM Multimedia '97, pp. 303-312, Seattle, WA, November, +1997.

    + +

     

    + +

    Pre-admission control +for Movie-on-Demand. Tavanapong, W., Hua, K.A., and Sheu, S. In Proc. of Int'l Conf. on Multimedia +Information Systems, pp. 151-158, Schaumburg, IL, April, 1997.

    + +

     

    + +

    Dynamic Grouping: An +Efficient Buffer Management Scheme for Video-on-Demand Servers. Sheu, S., Hua, K.A., and Tavanapong, W. In Proc. of Int'l Conf. on Multimedia +Information Systems, pp. 135-142, Schaumburg, IL, April, 1997.

    + +

     

    + +

    Chaining: A Generalized +Batching Technique for Video-on-Demand Systems. Sheu, S., Hua, K.A., and +Tavanapong, W. In Proc. of IEEE Int'l +Conf. On Multimedia Computing and Systems, pp. 110-117, Ottawa, Canada, +June 1997.

    + +

     

    + +

    Scheduling Queries for +Parallel Execution on Multicomputer Database Management Systems. Lo, Y., Hua, K.A., and Tavanapong, W. In Proc. of Int'l Conf. on Database and Expert +Systems Applications, Zurich, Switzerland, 1996.

    + +

     

    + +

    A +Performance Evaluation of Load Balancing Techniques for Join Operations on +Multicomputer Database Systems. Hua, +K.A., Tavanapong, W., and Young H.C. In Proc. +of IEEE Int'l Conf. on Data Engineering, pp. 44-51, Taipei, Taiwan, 1995.

    + +

     

    + +

     

    + +

    AKHILESH TYAGI, Associate +Professor (Major Appointment in Computer Engineering)

    + +

     

    + +

    B.Tech. 1981, +Electrical Engineering, Birla Institute of Technology & Science, Pilani, +India.

    + +

    M.Tech. 1983, Computer +Engineering, Indian Institute of Technology, New Delhi, India.

    + +

    Ph.D. 1988, Computer +Science, University of Washington

    + +

     

    + +

    Major Interests:

    + +

    Computer Architecture, VLSI: +Complexity Theory, Low Energy VLSI Design Synthesis.

    + +

     

    + +

    Current Research:

    + +

    My architecture research interests are in exploiting +instruction-level-parallelism (ILP) both with the microarchitecture and +compiler. One of the current projects uses branch decoupling to achieve that. +In another thread, we are employing reconfigurable caches that can work both as +on-chip memory and function units to speed up the processor. We are also +exploring microarchitecture level support for computer security. The current +focus is on protecting the program pointers through a combination of +microarchitecture and compiler actions.

    + +

     

    + +

    In VLSI research, we are developing a function-level model of energy +consumption. We are also researching low power VLSI design issues particularly +when applied to processor design.

    + +

     

    + +

    Representative +Publications:

    + +

    "A Trace Based Evaluation of Speculative Branch Decoupling", +{\it with} A. Nadkarni, {\it Proceedings of IEEE International Conference on +Computer Design} (ICCD) 2000.

    + +

     

    + +

    "Dynamic Branch Decoupled Architecture'', {\it with} H.C. Ng and P. +Mohapatra, {\it Proceedings of IEEE International Conference on Computer Design +(ICCD)}, October 1999.

    + +

     

    + +

    "Hybrid Data/Configuration Caching for Striped FPGAs'', {\it with} D. +Deshpande and A. Somani, in {\it Proceedings of

    + +

    IEEE International Symposium on Field Programmable Custom Computing +Machines}, April 1999.

    + +

     

    + +

    "On Reconfiguring Cache for Computing'', {\it with} H-S. Kim and A. +Somani, in {\it Proceedings of IEEE International Symposium on Field +Programmable Custom Computing Machines}, April 1999.

    + +

     

    + +

    "Configuration Caching Vs Data Caching for Striped FPGAs'', {\it +with} D. Deshpande and A. Somani, in {\it Proceedings of ACM International +Symposium on FPGAs}, pp 206-214, ACM Press, February 1999.

    + +

     

    + +

    Reduced Address +Bus Switching with Gray PC, with F. Jensen, in {\it Proceedings of Power Driven Microarchitecture Workshop at International +Symposium on Computer Architecture}, ACM Press, June 1998.

    + +

     

    + +

    Entropic Limitations on Finite State Machine +Switching', Tyagi, A., IEEE Transactions +on VLSI Systems, 5:4, pp. 456-464, December 1997.

    + +

     

    + +

    Efficient Parallel +Algorithms for Optical Computing with the DFT Primitive', with J. Reif, in +{\it Applied Optics}, 36:29, pp. 7327-9340, Optical Society of America, October +1997.

    + +

     

    + +

    Branch Decoupled Architectures, Tyagi, A. Proceedings +of Workshop on Interaction Between Compilers and Computer Architectures at IEEE +High Performance Computer Architecture Symposium. A summary to appear in IEEE +TC on Computer Architecture Newsletter, pp. 13-15, June 1997.

    + +

     

    + +

    Statistical Module +Level Area and Delay Estimation, VLSI +Design, 5:2, pp. 141-153, April 1997, Gordon & Breach Publishers.

    + +

     

    + +

    Configurable memory +Queues/Computing Units Architecture, Tyagi, A., in Proceedings of Reconfigurable Architectures Workshop at International +Parallel Processing Symposium, April 1997.

    + +

     

    + +

    Minimizing Interconnect Energy +through Integrated Low-Power Placement and Combinational Logic Synthesis, with +Tyagi, A., & Holt, G., in Proceedings +of ACM International Symposium on Physical Design, ACM Press, April 1997.

    + +

     

    + +

     

    + +

    JOHNNY S. K. +WONG, Professor of Computer Science

    + +

     

    + +

    B.S. 1977, Mathematics & Computer Science, The University +of Hong Kong

    + +

    M.S. 1982, Mathematics, The University of Sydney, NSW, +Australia

    + +

    Ph.D. 1987, Computer Science, The University of Sydney, NSW, +Australia

    + +

     

    + +

    Major Interests:

    + +

    Distributed Computing Environment (DCE), Distributed +Operating Systems, Communication Protocols, Object-Oriented Systems and +Databases, Common Object Request Broker Architecture (CORBA), Hypermedia +Systems, Multimedia Information Systems, Web Caching, Intrusion Detection, +Information Assurance.

    + +

     

    + +

    Current Research:

    + +

    Dr. Wong's research interests include design and +implementation issues in operating systems, distributed systems and multimedia +communications. Current activities +center around hypermedia, distributed multi-media database systems, and +intelligent mobile agents, intrusion detection and countermeasures, distributed +computing environment (DCE), and Common Object Request Broker Architecture +(CORBA), Web Caching, Information Assurance.

    + +

     

    + +

    The current research projects are funded by the Department +of Defense (DoD) on Intrusion Detection and Countermeasures (with Drs. Miller +and Honavar), by the Mayo Foundation on Database Generating and X-Ray +Displaying using the World Wide Web, and by NSF on the development of +courseware modules on Information Assurance (IA).

    + +

     

    + +

    Representative Publications:

    + +

    "SMART Mobile Agent Facility'', Wong, J, Helmer, G., +Naganathan, V., Polavarapu, S. Honavar, V. and Miller, L., The Journal of Systems and Software, accepted.

    + +

     

    + +

    "Anomalous intrusion detection system for hostile Java +Applets", G. Helmer, Wong, J. and Madaka, S., The Journal of Systems and Software, 55:273-286, January 2001.

    + +

     

    + +

    "Achieving Non-repudiation of Web-based +Transactions", Kalla, M., Wong, J., Albert, S. and Mikler, A., The Journal of Systems and Software, +48(3):165-175, November 1999.

    + +

     

    + +

    "Intelligent Mobile Agents in Large Distributed +Autonomous Coopertaive Systems", Wong, J. and Mikler, A.(1999), The Journal of Systems and Software, +47(2):75-87, July 1999.

    + +

     

    + +

    "A Framework for a World Wide Web Based Data Mining +System," R. Nayar, Wong,J., and Mikler, A., Journal of Network and Computer Applications, 21:163-185, July 1998.

    + +

     

    + +

    "A Multimedia Presentation Toolkit for the World Wide +Web", Wong,J., Rao, S., & Ramaiah, N., Software: Practice and Experience, 27(4):425-446, April 1997.

    + +

     

    + +

    "Remote Access to Multimedia Databases: An +object-Oriented Approach", Wong, J., & Parthasarathy, D., Software: Practice & Experience, +26(6):677-704, June 1996.

    + +

     

    + +

    "Design and Implementation of Heterogeneous Distributed +Multimedia System using Mosaic GSQL," Wong, J., Magavi, S., & Bodla, +P., Software: Practice & Experience, +25(11):1223-1242, November 1995.

    + +

     

    + +

    "Design and Implementation of National Engineering +Education Delivery System (NEEDS)," Wong, J., Schmitz, D., & Nelson, +R. Software: Practice & Experience, +24(11):1051-1076, November 1994.

    + +

     

    + +

    "Remote Database Access in Distributed Computing +Environment," Wong, J., Marshall, W., & Goodman, R. Software: Practice & Experience, +24(4):421-434, April 1994.

    + +

     

    + +

    "Detecting Unsafe Error Recovery Schedules," Wong, +J., & Lutz, R. IEEE Transactions on +Software Engineering, pp. 749-760, August 1992.

    + +

     

    + +

    "An Efficient Process Migration Algorithm in +Distributed Systems," Wong, J., & Suen, T. IEEE Transactions on Parallel and Distributed Systems, pp. 488-499, +July 1992.

    + +

     

    + +

     

    + +

     

    + +
    + + + + diff --git a/hridesh/gradadm/F02RegisCkLst.pdf b/hridesh/gradadm/F02RegisCkLst.pdf new file mode 100755 index 0000000..f9642b0 Binary files /dev/null and b/hridesh/gradadm/F02RegisCkLst.pdf differ diff --git a/hridesh/gradadm/F02book.htm b/hridesh/gradadm/F02book.htm new file mode 100755 index 0000000..32a2313 --- /dev/null +++ b/hridesh/gradadm/F02book.htm @@ -0,0 +1,5446 @@ + + + + + + + + +faculty research interests + + + + + + +
    + +

     

    + +

     

    + +

    PAVAN +ADURI, Assistant Professor of Computer Science

    + +

     

    + +

    Ph.D. 2001, +Computer Science, University at Buffalo, Buffalo

    + +

    M. Tech. 1995, +Computer Science, Indian Institute of Technology, Kanpur

    + +

    B. Tech, 1993, +Computer Science, JNT University, Hyderabad

    + +

     

    + +

    Major +Interests:

    + +

    Computational +Complexity: Average-case complexity, Connections between average-case +complexity and worst-case complexity, Structural complexity of function +classes.

    + +

     

    + +

    Current +Research:

    + +

    Part of my work is motivated by the +following questions:

    + +

    1. What is a +hard problem? What are the properties of hard problems?

    + +

    2. What are +the relationships among various notions of hardness?

    + +

    3. For +problems in NP, what is the relationship between search and decision ?

    + +

    There are several ways to define a +satisfactory notion of hardness such as worst-case hardness, average-case +hardness, and almost-everywhere hardness. Part of the work concerns with a +variation of average-case hardness known as distributional hardness. This +involves understanding various properties of distributionally-hard languages +and investigate the question of whether such languages exist in NP.

    + +

    Some problems +such as Permanent have the fascinating property that if they are easy on +average, then they are easy in worst-case. Thus, the worst-case hardness of the +problem is the same as the average-case hardness of the problem. Can we find +such problems in NP? A slightly related question is given a problem in NP that +is mildly hard can we construct a much harder problem in NP?

    + +

    The last +question deals with the complexity of function classes. Is computing a witness +for a NP problem more difficult than decision? Can we compute some non trivial +partial information about NP-complete problems? These questions lead to a study +of concepts such as selectivity and membership comparable.

    + +

     

    + +

    Representative +Publications:

    + +

    "Separation of NP-completeness +notions", A. Pavan and A. Selman. 16th Annual IEEE Conference +on Computational Complexity, 1999, pp 78-89.

    + +

     

    + +

    "Complete distributional problems, +hard languages, and resource-bounded measure", A. Pavan and A. Selman. +Theoretical Computer Science. 234:273-286 (2000).

    + +

     

    + +

    "On the hardness of permanent", +J. Cai, A. Pavan and D. Sivakumar. Proceedings of the 16th Annual Symposium on +Theoretical Aspects of Computer Science LNCS 1563: 90-99, 1999.

    + +

     

    + +

     

    + +
    +
    + +

    CARL K. CHANG, Professor and Chair of +Computer Science

    + +

     

    + +

    B.S. +1974, Mathematics, National Central University, Taiwan

    + +

    M.S. 1978, Computer +Science, Northern Illinois University

    + +

    Ph.D. +1982, Computer Science, Northwestern University

    + +

     

    + +

    Major Interests:

    + +

    Software +engineering, net-centric computing.

    + +

     

    + +

    Current Research:

    + +

    Professor Changs research +in software engineering includes two major activities: software architecture +based requirements engineering (SABRE) and project management with genetic +algorithms (PROMGA). His research in net-centric computing currently focuses on +rule-mitigated collaboration technology to support formal electronic meetings. +He also studies distributed requirements engineering using mobile agents.

    + +

     

    + +

    Representative Publications (1994-)

    + +

    Refereed +Journal Papers:

    + +

    Carl K. Chang, Jane +Cleland-Huang, Shiyan Hua and Annie Combelles, On Function-Class +Decomposition, IEEE Computer, Dec. 2001, pp. 87-93.

    + +

     

    + +

    Carl K. Chang, Tao Zhang +and Mark Christensen, Genetic Algorithms for Project Management, Annals of +Software Engineering, Kluwer Academic Publishers, 11:107-139, Nov. 2001.

    + +

     

    + +

    Carl K. Chang, Yong Liu, +Thribhuvana Murthy, James Kenevan and Pattanasak Mongkolwat, Simulation of +UICCELL II'', SIMULATION, The Society for Computer Simulation International, +75(3):128-140, Sept. 2000.

    + +

     

    + +

    Carl K. Chang and +Chiao-Chuan Shih, A Circular Skip-Cluster Scheme to Support Video-on-Demand +Services'', ACM Multimedia Systems, Springer-Verlag, 7(2):107-118, 1999.

    + +

     

    + +

    Carl +K. Chang, Gerald Engel, Willis King, Eric Roberts, Russ Shackelford, Robert H. +Sloan, and Pradip K. Srimani, Curricula 2001: Bringing the Future to the +Classroom, IEEE Computer, 32(9):85-88, September 1999.

    + +

     

    + +

    Carl K. Chang and Mark +Christensen, Net Practice in Software Project Management, IEEE Software, +16(6):80-88, Nov/Dec 1999.

    + +

     

    + +

    Luqi, Carl K. Chang and +Hong Zhu, Specifications in Software Prototyping'', The Journal of Systems and +Software, 42:125-140, 1998.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare: A Distributed Multimedia Environment with +Interoperability.'' Computers in Industry, 29(1-2):71-78, July 1996, Elsevier +Science B.V., Netherlands, 1995.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare : On Distributed Multimedia Temporal Relations and +Synchronization Agents.'' IEEE Multimedia, June 1996, pp. 30-39.

    + +

     

    + +

    Carl K. Chang and +Chiao-Chuan Shih, Challenges and Trends of Multimedia Services'', 1994-1995 +Annual Review of Communications, National Engineering Consortium, 1995, pp. +683-686.

    + +

     

    + +

    C. K. Chang and Yahya +Al-Salqan, Performance Study of CSMA/CD with Connected Direct Data +Link--Simulation Study'', Int'l Journal in Computer Simulation, +4(3):343-371, 1994.

    + +

     

    + +

    Refereed Conference +Papers:

    + +

    Carl K. Chang, Jia Zhang, and Tsang Ming Jiang, Formalization of +Computer Supported Cooperative Work Applications, Prof. of 2001 IEEE Workshop on Future Trends of +Distributed Computing Systems, Bologna, Italy, October 31-November 2, 2001, pp. +185-191.

    + +

     

    + +

     

    + +

    Chia-Song Ma*, Carl K. Chang, Jane Cleland-Huang, Measuring the +Intensity of Object Coupling in C++ Programs, to be published in Proc. of IEEE +COMPSAC 2001, Lisle, Illinois, October 8-12, 2001.

    + +

     

    + +

    Jane +Cleland-Huang, Carl K. Chang, Hosung Kim and Arun Balakrishnan, +Requirements-Based Dynamic Metrics on Object-Oriented Systems, to be +published in Proc. ff IEEE International Symposium on Requirements Engineering, +Toronto, Canada, August, 2001.

    + +

     

    + +

    Carl K. Chang and Lie +Cai, Agent Based Requirements Evolution Over the Internet, Proc. of IEEE +Workshop on Software Engineering on the Internet, The IEEE-CS/IPSJ 2001 +Symposium on Applications and the Internet (SAINT 2001), Jan. 8-12, 2001, pp. +83-88.

    + +

     

    + +

    Jane L. Huang and Carl +K. Chang, Supporting the Partitioning of Distributed Systems with Function +Class Decomposition, Proc. of IEEE COMPSAC 2000, Taipei, Taiwan, Oct. 25-27, +2000, pp. 351-356

    + +

     

    + +

    Carl K. Chang, Alexei +Vorontsov, Jia Zhang and Francis Quek, Rule-Mitigated Collaboration Technology, +Proc. of 1999 IEEE Workshop on Future Trends of Distributed Computing Systems, +Dec. 20-22, Cape Town, South Africa, pp. 137-142.

    + +

     

    + +

    Carl K. Chang and +Seongwoon Kim, I3:A Petri-net based Specification Method for +Architectural Component, Proc. of IEEE COMPSAC99, Oct. 27-29, Phoenix, +Arizona, pp. 396-402.

    + +

     

    + +

    Carl +K. Chang, Lie Cai and Francis Quek, On Formal Meetings for Net-centric +Web-based Computing, Proc. of The International Symposium on Internet +Technology, Taipei, April 29-May 1, 1998, pp. 35-40.

    + +

     

    + +

    Carl K. Chang, Francis +Quek, Lie Cai, Seongwoon Kim and Annie Kunzmann-Combelles, "A Research on +Collaboration Net", Proc. of 1997 IEEE Workshop on Future Trends of +Distributed Computing Systems, Tunis, Tunisia, October 1997, pp. 228-233.

    + +

     

    + +

    Carl K. Chang, Yi-Te +Tseng, and Ugo Buy, "Compiling Process Algebraic Specifications Into Timed +Automata", Proc. of IEEE COMPSAC'97, Washington, DC, August 1997, pp. +338-343.

    + +

     

    + +

    Carl K. Chang, +Chiao-Chuan Shih, Thinh T. Nguyen and Pattanasak Mongkolwat, A Popularity-based +Data Allocation Scheme for a Cluster-based VOD Server'', Proc. of IEEE +COMPSAC'96, Seoul, Korea, August 1996, pp. 62-67.

    + +

     

    + +

    Carl K. Chang and +Chiao-Chuan Shih, "Reducing the System Response Time of a Large-scale VOD +Server by Disk Grouping", Proc. of IEEE ICCASS '96 (International +Conference on Circuits and Systems Symposium), Shanghai, China, June 1996.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare: On Distributed Multimedi a Synchronization'', Proc. of +The second IEEE International Conference on Multimedia Computing and Systems, +Washington, DC, May 1995, pp. 150-158.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare: A Distributed Multimedia Environment with +Interoperability'', Proc. of The Fourth IEEE International Workshop on Enabling +Technology: Infrastructure for Collaborative Environment, Berkely Springs, WV, +April 1995, pp. 128-137.

    + +

     

    + +

    Carl K. Chang, Jamsheed +Bugwadia and Pattanasak Mongkolwat, An Message-Oriented Discrete Event +Simulation Model of the Cellular Telephone System", Proc. of 1995 Summer +Computer Simulation Conference, Ottawa, Ontario, Canada, 1995, pp. 858-862.

    + +

     

    + +

    Carl K. Chang, +Pattanasak Mongkolwat and Bashir Haswarey, Creating a Distributed Environment +Using Object-Oriented Technology'', Proc. of IEEE COMPSAC' 95, Pheonix, +Arizona, August 1995, pp. 262-267.

    + +

     

    + +

    Carl K. Chang, Yong Liu +and Thribhuvana Murthy, Study of Performance Engineering with Emphasis on +Simulation of UICCELL II", Proc. of IASTED International Conference: +MODELLING AND SIMULATION, Pittsburgh, Pennsylvania. April 27-29, 1995, pp. +403-406.

    + +

     

    + +

     

    + +

    SOMA CHAUDHURI, Associate Professor of Computer +Science

    + +

     

    + +

    B.S. 1984, Mathematics, Massachusetts Institute of +Technology, Cambridge

    + +

    B.S. 1984, Computer Science & Engineering, +Massachusetts Institute of Technology, Cambridge

    + +

    M.S. 1987, Computer Science & Engineering, +University of Washington, Seattle

    + +

    Ph.D. 1990, Computer Science & Engineering, +University of Washington, Seattle

    + +

     

    + +

    Major Interests:

    + +

    Theory of Distributed Computing, Parallel Algorithms and Parallel +Complexity.

    + +

     

    + +

    Current Research:

    + +

    Dr. Chaudhuri's research in distributed computing has focused on +understanding the power of asynchronous distributed systems subject to various +kinds of failures. A persistent question has been to determine the problems +that are solvable in the presence of uncertainty due to processor asynchrony +and failures. She used combinatorial techniques to prove that certain problems +are impossible to solve in these systems. The current focus of her research has +shifted to the study of systems that are semi-synchronous, i.e., that have +partial but inexact information about timing. These systems are much more +realistic and deserve further study. +Dr. Chaudhuri is using similar combinatorial techniques with the goal of +obtaining time and space complexity characterizations for problems in +semi-synchronous systems analogous to the fault-resiliency character-ization +obtained for problems in asynchronous systems. +The ultimate objective would be to understand in a formal sense the +advantage that can be gained by considering timing-based models for distributed +computing over asynchronous models, and the disadvantage they represent in +relation to fully synchronous models.

    + +

    Dr. +Chaudhuri has also been recently interested in the area of distributed ad hoc +networks. In particular, it would be useful to develop algorithms that are +specifically suited to solving problems in these networks. These networks are +unpredictable due to frequent link failures when nodes drift apart and link +formations when nodes drift closer to each other. Existing distributed +algorithms that rely on static communication links cannot run in such networks. +Instead, efficient algorithms would have to be designed that adjusts to the +mobility of the network.

    + +

     

    + +

    Representative Publications:

    + +

    "Tight Bounds for "k"-Set Agreement." Chaudhuri, S., +Herlihy, M., Lynch, N., & Tuttle, M. (2000). To appear in Journal of the +ACM.

    + +

     

    + +

    "One-Write Algorithms for Multi-Valued Regular and Atomic +Registers," Chaudhuri, S., Kosa, M., & Welch, J.L. Acta Informatica, +37:161-192, 2000.

    + +

     

    + +

    "Wait-Free Implementations in Message Passing Systems." Chaudhuri, S., Herlihy, M., & Tuttle, M. +Theoretical Computer Science (2000). Theoretical Computer Science, +220(1):211-245, June 1999.

    + +

     

    + +

    "Shared Memory Consistency Conditions for Non-Sequential Execution: +Definitions and Programming Strategies," Chaudhuri, S., Attiya, H., +Friedman, R., & Welch, J.L. SIAM +Journal on Computing, 27(1):65-89, February 1998.

    + +

     

    + +

    "Understanding the Set Consensus Partial order Using the +Borowsky-Gafni Simulation," Chaudhuri, S., & Reiners, P. Proceedings of the Tenth International +Workshop on Distributed Algorithms, 1996. +Lecture notes in Computer Science 1151, Springer-Verlag, pp. 362-379.

    + +

     

    + +

    "Using Adaptive Timeouts to Achieve At-Most-Once Message +Delivery," Chaudhuri, S., Coan, B., & Welch, J. Distributed Computing, +9(3):109-117, September 1995.

    + +

     

    + +

    "Bounds on the Costs of Multi-Valued Register Implementations," +Chaudhuri, S., & Welch, J. SIAM Journal on Computing, 23(2):335-354, April +1994.

    + +

     

    + +

    "Designing Algorithms for Distributed Systems with Partially +Synchronized Clocks," Chaudhuri, S., Gawlick, R., & Lynch, N. +Proceedings of the Twelfth Annual ACM Symposium on Principles of Distributed +Computing, August 1993.

    + +

     

    + +

    "More Choices Allow More Faults: Set Consensus Problems in Totally +Asynchronous Systems," Chaudhuri, S. Information and Computation, +105(1):132-158, July 1993.

    + +

     

    + +

     

    + +

    HUI-HSIEN CHOU, Assistant Professor of Computer +Science & Zoology and Genetics

    + +

     

    + +

    B.S, 1984, Chemical Engineering, Ming-Chih Institute of +Technology, Taipei, Taiwan

    + +

    B.S, 1989, Computer Science, National Taiwan University, +Taipei, Taiwan

    + +

    Ph.D., 1996, Computer Science, University of Maryland at +College Park

    + +

     

    + +

    203 Science II, Iowa State University, Ames, IA 50011;

    + +

    Email: hhchou@iastate.edu

    + +

     

    + +

    Major +Interests:

    + +

    Bioinformatics, computational biology, +cellular automata, programming language design and compiling.

    + +

     

    + +

    Current +Research:

    + +

    Dr. Chou's research centers around two +complementary scientific front-ends: computational biology and artificial life. +In computational biology, he studies how to best analyze the vast amount of +biological data generated because of recent advances in high-throughput +molecular biology research, such as genomics, transcriptomics and +proteomics. These advances allow us to +gather explosively more biological data about species, but then only computers +can efficiently analyze these huge quantity of data. Dr. Chou has designed an +automatic DNA sequence quality assurance program (Lucy) that is in use by many +research centers to turn raw DNA sequences into high quality data for +subsequent genomic data processing. Dr. Chou is currently working on an +integrated approach of biological data analysis that handles sequence, +structure, microarray and pathway data altogether based on specialized coding +methods developed by him.

    + +

    One can view +computational biology as an analytical approach to understanding life. An +alternative, the synthetic approach taken in the artificial life research, aims +at simulating life phenomena within computers. It is an attempt to grasp the +principles of life in an information processing context without touching the +difficult details of implementation such as DNA or proteins. Dr. Chou has been +working on the cellular automata modeling of self-replication processes. +Cellular automata are massively parallel computer-theoretical models which +closely resemble the information restrictions in living cells. As in cells, +where no single molecule is the commander-in-chief, in cellular automata, there +is no centralized control. All global behaviors must be the collaborative +results of each automaton making up the models. Yet, complex and very +interesting behaviors such as information self-replication can be observed with +such models, promoting one to computationally study the principles of life.

    + +

    On more +practical aspects, Dr. Chou is also involved in programming language design and +compiling. He has developed the Trend cellular automata programming language to +facilitate the cellular automata studies mentioned above. He is currently +working on a visual programming tool that can automatically generate working +Perl programs for biologists who may not know how to program in Perl directly.

    + +

     

    + +

    Representative +Publications:

    + +

    Hui-Hsien Chou, Wei Huang and James A. +Reggia. "The Trend Cellular Automata Programming Environment." To by +published by SIMULATION: Transactions of The Society for Modeling and +Simulation International.

    + +

     

    + +

    Hui-Hsien Chou and Michael H. +Holmes. "DNA Sequences Quality +Trimming and Vector Removal." +Bioinformatics, 17(12):1093-1104, Dec. 2001.

    + +

     

    + +

    Eugene W. Myers, et al. "A +Whole-Genome Assembly of Drosophila." Science, 287:2196-2204, March 24, +2000.

    + +

     

    + +

    Hui-Hsien Chou and James A. Reggia. +"Problem Solving During Artificial Selection of Self-Replicating +Loops." Physica, D 115:293-312, 1998.

    + +

     

    + +

    Hui-Hsien Chou and James A. Reggia. +"Emergent of Self-Replicating Structures in a Cellular Automata +Space." Physica, D 100:252-276, +1997.

    + +

     

    + +

    Hui-Hsien Chou, James A. Reggia, Rafael +Navarro-Gonzalez, and Jayoung Wu. "An Extended Cellular Space Method for +Simulating Autocatalytic Oligonucleotides." Computers and Chemistry, +18(1):33-43, 1994.

    + +

     

    + +

    James A. Reggia, Steven L. Armentrout, +Hui-Hsien Chou, and Yun Peng. "Simple Systems that Exhibit Self-Directed +Replication." Science, 259:1282-1288, Feb. 26, 1993.

    + +

     

    + +

     

    + +

    OLIVER EULENSTEIN, Assistant Professor of Computer Science

    + +

     

    + +

    Dr.rer.nat. +1998, Computer Science, University of Bonn

    + +

    Diplom-Informatiker +1991, Computer Science, University of Paderborn (the US-equivalent for +Dr.rer.nat. is Ph.D. and for Diplom-Informatiker is M.S )

    + +

     

    + +

    Web Page: http://www.cs.iastate.edu/~oeulenst

    + +

     

    + +

    Major +Research Interests:

    + +

    Computational +Biology, Combinatorial Optimization in Science and Engineering, and Design and +Analysis of Discrete Algorithms.

    + +

     

    + +

    Current +Research:

    + +

    Introducing +Computational Biology: In July 1995 the first organism, {\Haemo\-philius +influenzae} was entirely sequenced and its 1 830 137 DNA base pairs were +published. Soon after this other organisms were completely sequenced and, most +likely, the human genome will be completely sequenced by the end of this +decade.

    + +

    Given +an organism's sequence information, the biologists task is now to reveal function and interference of these +sequences. As a metaphor, the biologist wants +to understand the function of a complex spacecraft engine only by +looking at its parts.

    + +

    Computational +Biology offers algorithms to support biologists in their effort to retrieve +information out of an organism's enormous set of sequence information. Design +and analysis of these algorithms is based on models that reflect the biologists +needs as best as possible. A model must also allow the design of an algorithm +that actually solves the problem in practice in a reasonable time. Thus, a +basic problem in Computational Biology is to develop good models. Most of the +time biologists and computer scientists collaborate to set up an initial model +and then refine it stepwise according to practical results. Thus, Computational +Biology is an interdisciplinary science where Biology and Computer Science are +intertwined.

    + +

    Current +Research in Computational Biology: Reconstructing the ancestral relations of +biological sequences can give insights into the function of biological +sequences, and thus helps to reveal unknown functions of genes. The ancestral +relations of a set of biological sequences can be represented by a rooted tree, +where any two sequences are related through their least common ancestor.

    + +

    Most +of my current research is in constructing phylogenetic trees, which is a +sub-area of Computational Biology. For convenience I will describe one of my +research topics, phylogenetic super-trees in more detail.

    + +

    Computational +Biology offers a huge set of different methods for phylogenetic tree +construction that are available through program packages like PAUP, McClade and +Component, which are widely used by systematic biologists. Already +reconstructed phylogenetic trees can be found in phylogenetic tree databases +like TreeBase. Some of these databases have grown enormously and now contain +sets of trees that overlap in some of their sequences. My goal is to construct +a super-tree from such a set of overlapping phylogenetic trees. A super-tree +would give a much broader picture of how sequences evolve. Unfortunately, +combining trees into a super-tree is not an easy task. For example one of the +arising problems is that phylogenetic trees have for their shared sequences +often different ancient relationships.\medskip

    + +

    Together +with the biologist Mike Sanderson from the University of California Davis, I +developed a model to construct super-trees. In collaboration with David +Fernandez-Baca and the help of the student Duhong Chen we are designing +algorithms based on this model. In our new computational biology lab (CBL), we +are implementing own ideas and analyze algorithms. We are also refining the +underlying model. Recently Mike Sanderson, the biologist Olaf +Biminda-Edmondson, and I received an NSF grand that will support our research +on super-trees for the coming three years.

    + +

    Other +topics of my current research in Computational Biology are the prediction of gene-duplications +and reconstructing phylogenetic trees from incomplete information. The above +should not led to the impression that my interests are exclusively in +phylogenetic tree construction. In fact I am interested in many algorithmic +problems of biology and actively look for potential interdisciplinary +collaborations.

    + +

     

    + +

    Grants:
    +
    $  398,170,  +funding period 2000-2003, +"Algorithms and Software for Phylogenetic Supertrees"  +(NSF-1053164),
    +O. Eulenstein (co-PI), D. Gusfield (co-PI), M.J. Sanderson (PI).

    + +

     

    + +

    Representative +Publications:

    + +

    D. Chen, L. +Diao, O. Eulenstein, D. Fernndez-Baca, M. J. Sanderson, Flipping: A Supertree Construction Method to appear +in DIMACS Series in Discrete Mathematics and Theoretical Computer Sciences, AMS +(2003).

    + +

     

    + +

    D. Chen, O. +Eulenstein, D. Fernndez-Baca, and M.J. Sanderson; Supertrees by Flipping; +Computing & Combinatorics Conference (COCOON) 2002.
    +
    +D. Chen, L. Diao, O. Eulenstein, D. Fernndez-Baca, and M.J. Sanderson; +Flipping: A Supertree Construction Method; Ed. F.B.M. Morris et al., +DIMACS Series in Discrete Mathematics and Theoretical Computer Sciences, AMS +(2002).
    +
    +J. Schonfeld, O. Eulenstein, K. +VanderVelden, and G.J.P. Naylor; Investigating Evolutionary Lines of Least +Resistance Using the Inverse Protein-Folding Problem; Pacific Symposium on +Biocomputing (PSB) 2002.

    + +

     

    + +

    Oliver +Eulenstein and Martin Vingron, "On the equivalence of two tree mapping +measures", Discrete Applied Mathematics, 88:103-128, 1998.

    + +

     

    + +

    Oliver +Eulenstein, Boris Mirkin and Martin Vingron. "Duplication-Based Measures +of Difference Between Gene- and Species Trees", Journal of Computational +Biology, 5:135-148, 1998.

    + +

     

    + +

    Yan P. Yuan, +Oliver Eulenstein, Martin Vingron and Per Bork, "Towards detection of orthologues in sequence +databases", Bioinformatics, 14(3):285-289, 1998.

    + +

     

    + +

    Oliver +Eulenstein, Boris Mirkin and Martin Vingron, "Comparison of Annotation +Duplication, Tree Mapping, and Copying as Methods to Compare Gene Trees with +Species Trees, DIMACS Series in Discrete Mathematics and Theoretical Computer +Sciences AMS, 1997.

    + +

     

    + +

     

    + +

    DAVID FERNANDEZ-BACA, Professor +of Computer Science

    + +

     

    + +

    B.S. 1980, Electrical & Computer +Engineering, National University of Mexico, Mexico City

    + +

    M.S. +1983, Electrical & Computer Engineering, University of California, Davis

    + +

    Ph.D. +1986, Computer Science, University of California, Davis

    + +

     

    + +

    Major Interests:

    + +

    Design and analysis of algorithms, +combinatorial optimization, graph algorithms, computational biology.

    + +

     

    + +

    Current Research:

    + +

    Dr. Fernandez-Baca's research is in the +design and analysis of combinatorial algorithms. His main area is parametric optimization, where his goal is to +design efficient algorithms to analyze the sensitivity of the optimum solution +to changes in the input data. Dr. Fernandez-Baca also studies combinatorial +problems arising in sequence comparison and construction of evolutionary trees +for sets of species.

    + +

     

    + +

    Representative +Publications:

    + +

    D. Chen, L. +Diao, O. Eulenstein, D. Fernndez-Baca, and M. Sanderson. Flipping: A supertree +construction method. To appear in the Bioconsensus volume of the DIMACS +Series in Discrete Mathematics and Theoretical Computer Science, F. +McMorris et al. (eds), American Mathematical Society, 2002.

    + +

     

    + +

    D. +Fernndez-Baca, T. Sepplinen, and G. Slutzki. Bounds for parametric sequence +comparison. Discrete Applied Mathematics, 118:181-198, 2002.

    + +

     

    + +

    D. Chen, O. +Eulenstein, D. Fernndez-Baca, and M. Sanderson. Supertrees by flipping. To +appear in Proceedings of COCOON 2002, Springer-Verlag LNCS.

    + +

     

    + +

    F. Sun, D. +Fernndez-Baca, and W. Yu. Inverse parametric sequence alignment. To appear in Proceedings +of COCOON 2002, Springer-Verlag LNCS.

    + +

     

    + +

    D. +Fernndez-Baca. Multiparameter matroidal knapsack problems. To appear in Theoretical +Computer Science, 2002.

    + +

     

    + +

    D. +Fernndez-Baca. The perfect phylogeny problem. In Steiner Trees in Industry, +X. Cheng and D.-Z. Du (eds.), pp. 203-234, Kluwer, 2001.

    + +

     

    + +

    D. +Fernndez-Baca. On nonlinear parametric search. Algorithmica, 30:1-11, +2001.

    + +

     

    + +

    D. +Fernndez-Baca, T. Sepplinen, and G. Slutzki. Parametric multiple sequence +alignment and phylogeny construction. Proc. Combinatorial Pattern Matching +2000, Springer-Verlag LNCS, Vol. 1848, pp. 69--83.

    + +

    D. +Fernndez-Baca and J. Lagergren. On the approximability of the Steiner tree +problem in phylogeny. Discrete Applied Mathematics 88:129-145, 1998.

    + +

     

    + +

    D. +Fernndez-Baca and G. Slutzki. Linear-time algorithms for parametric minimum +spanning tree problems on planar graphs. Theoretical Computer Science, +181:57-74, 1997 .

    + +

     

    + +

    D. +Fernndez-Baca and G. Slutzki. Optimal parametric search on graphs of bounded +tree-width. Journal of Algorithms 22:212-240, 1997.

    + +

     

    + +

    D. +Fernndez-Baca and J. Lagergren. A polynomial-time algorithm for near-perfect +phylogeny. In proceedings of 23rd International Conference on Automata, +Languages, and Programming, pp. 670-680, Springer Verlag Lecture Notes in +Computer Science, 1996.

    + +

     

    + +

     

    + +

    SHASHI K. +GADIA, Associate Professor of +Computer Science

    + +

     

    + +

    B.S. (Hons), 1969, Mathematics, Birla Inst. of Tech. & +Science

    + +

    M.Sc. 1970, Mathematics, Birla Inst. of Tech. & Science

    + +

    Ph.D. 1977, Mathematics, University of Illinois

    + +

    M.S. 1980, Computer Science, Ohio State University

    + +

     

    + +

    Major Interests:

    + +

    Temporal, spatial, belief, security, +statistical and incomplete data; database models, type hierarchy, languages, +user interfaces, optimization, implementation and access methods; pattern +matching in spatio-temporal data.

    + +

     

    + +

    Current Research:

    + +

    Models, query languages, incomplete +information, implementation, index structures, and query optimization for +dimensional (temporal, spatial, and belief), genetic, and other forms of data, +in relational, object-oriented, and semistructured (XML) database paradigms. +The goal of the research in dimensional data is to unify different forms of +dimensional data seamlessly in a scalable, efficient, easy to use, and coherent +framework. An object-oriented model and query language for dimensional data +that is consistent with the ODMG (Object Data Management Group) standard is of +interest. Database models for semistructured data are rapidly advancing under +the banner of XML (Extensible Markup Language). The February 16, 2001 +announcements of the XMLs Query Group of the W3 (World Wide Web) Consortium represent a major +milestone that extends the established classic database style wisdom of +powerful and declarative algebraic querying to XML by treating XML documents as +databases. This will advance the frontiers of databases in revolutionary ways +to applications such as e-business, software engineering, and genetic data +where representation and/or exchange of heterogeneous and evolutionary +information is required.

    + +

     

    + +

    Representative Publications:

    + +

    A linguistic framework for multidimensional +data, Elisa Bertino, Tsz S. Cheng, Shashi K Gadia, and Giovanna +Guerrini. Submitted for publication, February, 2001.

    + +

     

    + +

    Querying +multiple temporal granularity data. Isabella Merlo, Elisa +Bertino, Elena Ferrari, Shashi K Gadia, and Giovanna Guerrini. Proceedings Seventh International Workshop +on Temporal Representation and Reasoning of TIME-2000, Nova Scotia, Canada, +July 7-9, 2000

    + +

    + +

    Algebraic identities and query optimization in the parametric +model for relational temporal databases, IEEE Transactions on Knowledge and +Data Engineering. Vol 10(5), pp 793-807, 1998.

    + +

    + +

    Applicability of Temporal Data Models to Query Multilevel +Security Databases: A Case Study, Shashi K. Gadia. Research and Practice; +Etzion, Jajodia, and Sripada, eds.; Lecture Notes in Computer Science, 1399: +238-256, Springer Verlag, Berlin, 1998.

    + +

     

    + +

    Relational Database Systems With Zero Information-Loss, +Gadia, S., & Bhargava, G. (1993). +IEEE Transactions on Knowledge and Data Engineering, 5:76-87.

    + +

     

    + +

    "Incomplete Information in Relational Temporal +Databases, Gadia, S., Nair, S., & Poon, Y. (1992). Proceedings of the 18th International +Conference on Very Large Databases, pp. 395-406.

    + +

     

    + +

    "A Generalized Model for a Relational Temporal +Database, Gadia, S., & Yeung, C. +(1988). ACM SIGMOD Conference on +Management of Data, pp. 251-259.

    + +

     

    + +

    A Homogeneous Relational Model and Query Languages for +Temporal Databases, Gadia, S. (1988). +ACM Transactions on Database Systems, 14:418-448.

    + +

     

    + +

    A Query Language for a Homogeneous Temporal Database, +Gadia, S., & Vaishnav, J. (1985). +Proc. Fourth Annual ACM SIGACT-SIGMOD Symposium on Principles of Database +Systems, pp 51-56.

    + +

     

    + +

    The concept of an error in a database: an application of +temporal databases, Gautam Bhargava and Shashi K. Gadia. Appeared in +Proceedings of INSDOC COMAD90 International Conference on Management of Data, +December 1990.

    + +

     

    + +

    VASANT HONAVAR, Professor of Computer Science

    + +

     

    + +

    B.E. 1982, +Electronics Engineering, Bangalore University, India

    + +

    M.S. 1984, +Electrical and Computer Engineering, Drexel University

    + +

    M.S. 1989, +Computer Science, University of Wisconsin at Madison

    + +

    Ph.D. 1990, +Computer Science and Cognitive Science, University of Wisconsin at Madison

    + +

     

    + +

    www: http://www.cs.iastate.edu/~honavar/

    + +

     

    + +

    Current +Affiliations:

    + +

    Professor, Department of Computer Science

    + +

    Director, Artificial Intelligence +Research Laboratory

    + +

    Editor-in-Chief, Cognitive Systems +Research

    + +

    Project Director, Bioinformatics, +Computational Molecular Biology Training Group

    + +

    Associate Chair, Bioinformatics and +Computational Biology Graduate Program

    + +

    Faculty Member, Bioinformatics and +Computational Biology Graduate Program

    + +

    Faculty Member, Laurence H. Baker Center +for Bioinformatics and Biological Statistics

    + +

    Faculty Member, Virtual Reality +Applications Center

    + +

    Faculty Member, Information Security +Graduate Program

    + +

    Faculty Member, Neuroscience Graduate +Program

    + +

     

    + +

    Research +and Teaching Interests:

    + +

    Artificial Intelligence (Autonomous +Agents; Automata Induction; Computational Learning Theory; Computational +Organizational Theory; Data Mining, Knowledge Discovery and Visualization; +Distributed Knowledge Networks; Cumulative Distributed Learning; Incremental +Learning; Intelligent Agents and Multi-Agent Systems; Multi-Agent Coordination, +Communication, and Negotiation; Knowledge Representation and Inference; +Probabilistic Models and Bayesian Inference; Machine Learning; Neural +Networks); Bioinformatics (Distributed Information Networks for for Data +Integration, Information Extraction, Data Mining, and Knowledge Discovery; +Knowledge Representation and Automated Inference); Computational Molecular +Biology (Genetic Networks; Computational Characterization of Protein +Sequence-Structure-Function Relationships and and Protein-Protein Interactions; +Computational Genomics; Metabolic Pathways; Gene Expression Analysis; +Computational Neuroscience; Evolutionary, Cellular, and Neural Computation); +Distributed Information Networks (Distributed Knowledge Networks; Distributed +Databases, Mediators, and Data Warehouses; Intelligent Agents, Mobile Agents, +and Multi-Agent Systems); Applied Artificial Intelligence.

    + +

    Examples of +current projects in Honavar's laboratory on Distributed Intelligent Information +Systems focuses on the design, analysis, and implementation of algorithms and +software for information extraction, integration, organization, and +visualization; and learning from from heterogeneous, distributed, dynamic, and +autonomous data, information, and knowledge sources. In particular, we are +developing ontology-driven information integration that enable analysis of data +from multiple perspectives, algorithms with provable performance guarantees for +distributed, incremental, and cumulative learning tasks; algorithms for +learning from data and knowledge (including alternative ontologies), algorithms +for learning from alternately structured (e.g. relational, graph, etc.) data; +and algorithms for multi-agent learning. +This work is driven by large-scale applications of machine learning and +automated inference for scientific discovery in Computational Molecular Biology +and other data-rich domains.

    + +

    In related +work, topics in mobile agent infrastructures, inter-agent negotiation +protocols, distributed problem solving, coordination and control structures for +multi-agent systems, and agent-oriented software engineering are being +investigated.

    + +

    Current research in Computational Molecular +Biology emphasizes machine learning approaches to gene discovery, +characterization of protein sequence-structure-function relationships, +protein-protein interactions, discovery of genetic networks from expression +data, and information theoretic, and grammatical analysis of DNA and protein +sequences, and computational geometric analysis of protein structures.

    + +

    Honavar's +research is supported in part by grants from the National Science Foundation, +Department of Defense, John Deere Foundation, Carver Foundation, Pioneer +Hi-Bred, Inc., Department of Energy, and the ISU Graduate College.

    + +

    + +

    Recent +Representative Publications:

    + +

    Andorf, C., Dobbs, D., and Honavar, V. +(2002). Discovering Protein Function Classification Rules from Reduced Alphabet +Representations of Protein Sequences. In: Proceedings of the Conference on +Computational Biology and Genome

    + +

    Informatics (part of the 2002 Joint +Conference on Information Sciences). Durham, North Carolina.

    + +

     

    + +

    Caragea, D., Silvescu, A., and Honavar, +V. (2002). Invited Chapter. Multi-Agent Decision Tree Learning from Distributed +Autonomous Data Sources. In: Intelligent Agent Software Engineering. +Plekhanova, V. and Wermter, S. (ed.). Idea Group Publisher. In press.

    + +

     

    + +

    Honavar, V., Andorf, C., Caragea, D., +Dobbs, D., Reinoso-Castillo, J., Silvescu, A. (2002). Invited Chapter. +Algorithmic and Systems Solutions for Computer Assisted Knowledge Acquisition +in Bioinformatics and Computational Biology. In: Computational Biology and +Genome Informatics. Wu, C., Wang,P., and Wang, J. (Ed.) World Scientific. In +press.

    + +

     

    + +

    Wang, X., Schroeder, D., Dobbs, D., and +Honavar, V. (2002). Data-Driven Discovery of Protein Function Classifiers: +Decision Trees Based on MEME Motifs Outperform Those Based on PROSITE Patterns +and Profiles on Peptidase Families. In Proceedings of the Conference on +Computational Biology and Genome Informatics (part of the 2002 Joint Conference +on Information Sciences).

    + +

     

    + +

    Balakrishnan, K. and Honavar, V. (2001). +Evolving Neurocontrollers and Sensors for Artificial Agents. In: Advances in +Evolutionary Synthesis of Intelligent Agents. Patel, M., Honavar, V. and +Balakrishnan, K. (Ed). Cambridge, MA: MIT Press. pp. 109-152.

    + +

     

    + +

    Caragea, D., Silvescu, A., and Honavar, +V. (2001). Invited Chapter. Analysis +and Synthesis of Agents that Learn from Distributed, Dynamic Data Sources. +Emergent Neural Computational Architectures. Wermter, S., Austin, J., and +Willshaw, D. Springer-Verlag.

    + +

     

    + +

    Caragea, D., Cook, D., and Honavar, V. +(2001). Gaining Insights into Support Vector Machine Classifiers Using +Projection-Based Tour Methods. In: Proceedings of the Conference on Knowledge +Discovery and Data Mining (KDD-01). AAAI Press.

    + +

     

    + +

    Helmer, G., Wong, J., Slagell, M., +Honavar, V., Miller, L. and Lutz, R. (2001). A Software Fault Tree Approach to +Requirements Analysis of an Intrusion Detection System. In: Proceedings of the +Symposium on Requirements Engineering for Information Security, Indianapolis, +IN, USA.

    + +

     

    + +

    Mikler, A., Honavar, V. and Wong, J. +(2001). Autonomous Agents for Coordinated Distributed Parameterized Heuristic +Routing in Large Dynamic Communication Networks. Journal of Systems and +Software. 56:231-246.

    + +

     

    + +

    Parekh, R. and Honavar, V. (2001). DFA +Learning from Simple Examples. Machine Learning. 44:9-35.

    + +

     

    + +

    Polikar, R., Udpa, L., Udpa, S., and +Honavar, V. (2001). Learn++: An Incremental Learning Algorithm for Multi-Layer +Perceptron Networks. IEEE Transactions on Systems, Man, and Cybernetics. +31(4):497-508.

    + +

     

    + +

     

    + +

    XIAOQIU HUANG, Associate Professor of Computer Science

    + +

     

    + +

    B.S. 1982, Computer Science, Changsha +Institute of Technology

    + +

    M.S. 1989, Computer Science, Pennsylvania +State University

    + +

    Ph.D. 1990, Computer Science, +Pennsylvania State University

    + +

     

    + +

    Major Research +Interests:

    + +

    Computational biology, parallel and +distributed applications.

    + +

     

    + +

    Current Research:

    + +

    Dr. Huang is interested in algorithms and +software for solving computational problems in genome sequencing and +analysis. He has developed a number of +computer programs for analysis of DNA and protein sequences. Dr. Huang's programs have been included in a +number of academic and commercial packages. Most of his programs can be used on +WWW at http://bioinformatics.iastate.edu/aat/sas.html.

    + +

     

    + +

    Dr. Huang is currently working on a DNA +sequence assembly program for a whole-genome data set of 30 million sequences. +The sequence assembly program is used to assemble short DNA sequences into long +sequences in shotgun DNA sequencing projects. He is also working on a computer +program for comparing all the DNA sequences of the human genome with those of the mouse genome. The goal of this +project is to develop a computer program that quickly computes

    + +

    biologically interesting similarities +between the two genomes. In the future, Dr. Huang will continue to work on +computational programs in genome sequencing and analysis.

    + +

     

    + +

    Recent Publications:

    + +

    Huang, X. (2002). Bioinformatics Support +of Genome Sequencing Projects, In Lengauer, T. (ed.), Bioinformatics - From +Genomes to Drugs, 2:25-48.

    + +

     

    + +

    Huang, X, and Madan, A. (1999). CAP3: A DNA Sequence Assembly Program, +Genome Research, 9: 868-877.

    + +

     

    + +

    Joshi, C.P., Zhou, H., Huang, X, and +Chiang, V. (1997). Context sequences of +translation initiation codon in plants. +Plant Molecular Biology, 35:993-1001.

    + +

     

    + +

    Huang, X, Adams, M.D., Zhou, H., and +Kerlavage, A.R. (1997). A Tool for +Analyzing and Annotating Genomic Sequences, Genomics, 46(1):37-45.

    + +

     

    + +

    Huang, X., and Zhang, J. (1996). Methods for Comparing a DNA Sequence with a +Protein Sequence, Computer Applications in the Biosciences, 12(6):497-506.

    + +

     

    + +

    Huang, X. (1996). Fast Comparison of a +DNA Sequence with a Protein Sequence Database, Microbial & Comparative +Genomics, 1(4):281-291.

    + +

     

    + +

    Huang, X. (1996). An Improved Sequence +Assembly Program, Genomics, 33:21-31.

    + +

     

    + +
    +
    + +

    YAN-BIN JIA, Assistant +Professor of Computer Science

    + +

     

    + +

    B.S. 1988, Computer Science, University of Science and +Technology of China

    + +

    M.S. 1993, Robotics (and Computer Science), Carnegie +Mellon University

    + +

    Ph.D. 1997, Robotics (and Computer Science), Carnegie +Mellon University

    + +

     

    + +

    Major Research +Interests:

    + +

    Robotics, shape localization, reconstruction, +and recognition, computational geometry, geometric modeling, curve computation, +robot sensing, dexterous manipulation and control, hacking robot interfaces, +optimization, nonlinear

    + +

    control and observation, kinematics and +dynamics of manipulation.

    + +

    Internet: jia@cs.iastate.edu

    + +

     

    + +

    Current Research:

    + +

    "The hand is the cutting edge of the +mind," and "The world can only be grasped by action, not by +contemplation," says Bronowski in his book "The Ascent of +Man". Dr. Jia's main research +objective is to make the robot execute real world tasks intelligently and +skillfully.

    + +

    His +investigation into robot dexterity has focused on seeking a coordinated +understanding of computational and control issues in manipulation tasks. One +objective of this study is dynamic retrieval of geometric information such +as shape and pose, and of mechanical +information such as motion and force. +Another objective is careful engineering of the above information to +make the robot exhibit skills during its execution of physical tasks. Through +efforts balanced between theoretical inquiry and experimental demonstration, +Dr. Jia hopes to gain in-depth knowledge about action and intelligence as they +interact with each other.

    + +

    For over two +years Dr. Jia has been studying how to program a robotic hand to localize and +recognize an object of curved shape and to execute basic operations as well as +dextrous maneuvers. This investigation +makes primary use of one source of information which is ubiquitous in the +physical world ---{\it contact} between two or more bodies. He hopes to understand basic computational +principles of touch sensing in the context of parts localization, model-based +recognition, and shape reconstruction.

    + +

    The human +learns skills through practice, so should the robot. Dr. Jia is also interested in applying learning techniques to +tackle tasks that would be computationally expensive or intractable otherwise. +He would like to program the robot so that it will be able to give performances +that approach the human level someday.

    + +

     

    + +

    Representative +Publications:

    + +

    "Curvature-Based Computation of +Antipodal Grasps", Yan-Bin Jia. Accepted by the IEEE International +Conference on Robotics and Automation, Washington, D.C., May 11-15, 2002.

    + +

     

    + +

    "Geometry and Computation of +Antipodal Points on Plane Curves", Yan-Bin Jia. submitted to Computational +Geometry: Theory and Applications. +Technical Report ISU-CS-01-04, CS Department, Iowa State University, +Ames, IA, 2001.

    + +

     

    + +

    "Localization on Curved Objects +Using Tactile Information", Yan-Bin Jia. In Proceedings of the IEEE/RSJ +International Conference on Intelligent Robots and Systems, pp. 701-706, Maui, +HI, Oct 29-Nov 3, 2001.

    + +

     

    + +

    "Grasping Curved Objects through +Rolling," Yan-Bin Jia. In Proceedings of the IEEE International Conference +on Robotics and Automation, pp. 377-382, San Francisco, CA, April 2000.

    + +

     

    + +

    "Pose and Motion from Contact," +Yan-Bin Jia and Michael Erdmann. International Journal of Robotics Research, +18(5):466-490, 1999.

    + +

     

    + +

    "Local Observability of +Rolling," Yan-Bin Jia and Michael Erdmann. In Robotics: The Algorithmic +Perspective, P.K. Agarwal et al. (eds.), pp. 251-263, A. K. Peters, Boston, +1998. Also Proc. 3rd Int'l Workshop on the Algorithmic Foundations of Robotics, +Houston, TX, March 1998.

    + +

     

    + +

    "Geometric Sensing of Known Planar +Shapes," Yan-Bin Jia and Michael Erdmann. International Journal of +Robotics Research, 15(4):365-392, 1996.

    + +

     

    + +

    "The Complexity of Sensing by Point +Sampling," Yan-Bin Jia and Michael Erdmann. In Algorithmic Foundations of +Robotics, Ken Goldberg et al. (eds.), pp. 283-300, A. K. Peters, Boston, 1995. +Also Proc. 1st Int'l Workshop on the Algorithmic Foundations of Robotics, San +Francisco, CA, February 1994.

    + +

     

    + +

     

    + +

    GARY T. LEAVENS, Professor of Computer Science
    +

    + +

    B.S. +1978, Computer & Communication Sciences, The University of Michigan

    + +

    M.S. +1980, Computer Science, The University of Southern California

    + +

    Ph.D. +1989, Computer Science, Massachusetts Institute of Technology

    + +

     

    + +

    Major Interests:

    + +

    Programming and specification language design +and semantics, formal methods (program specification and verification), type +theory, object-oriented programming languages, aspect-oriented programming +languages, component-based systems, +information assurance, functional programming, distributed programming +languages.

    + +

     

    + +

    Current Research:

    + +

    The long term goal of Dr. Leavens's research is +to understand better how to solve programming problems: how to specify such +problems, methods for thinking about such problems, notations for expressing +solutions, ways to check that the solutions are correct, and tools for +automating and assisting with these processes. In pursuing this goal, he has +worked in two main areas: formal methods and programming languages.

    + +

     

    + +

    Formal Methods

    + +

    Dr. Leavens's work in formal methods has been +focused on ways to specify and verify object-oriented (OO) software +components. The specification work +involves the design and formal description of behavioral interface +specification languages (BISLs). BISLs +record information about detailed design: the interfaces and functional +behavior of program modules. Dr. +Leavens's group has designed a BISL for Smalltalk, called Larch/Smalltalk, a +BISL for C++, called

    + +

    Larch/C++, and, a BISL for Java called JML (see +www.jmlspecs.org). Work on these BISLs focuses on the problem of how

    + +

    to make them expressive enough for documenting +existing code; this is measured using both theoretical analysis and case +studies. The group has made some +progress towards solving this problem; for example, work reported at OOPSLA +2000 aims to explain needs to be specified to deriving a subclass without +seeing the source code for a superclass. +However, there is a lot of information that cannot (yet) be recorded, +such as performance constraints. The +current work on JML has been funded by the National Science Foundation (NSF), +and tries to address some of these issues, as well as issues of practicality +and how to deal with multimethods (see below). Early work on JML was done +jointly with Professor Al Baker, and Clyde Ruby was and is a major contributor. Yoonsik Cheon, designed Larch/Smalltalk and +is also contributing to the design of JML. Dr. Leavens has also been working +with Baker and a former Ph.D. student, Tim Wahls, on executing such +specifications.

    + +

    A long term interest for Dr. Leavens, in the area of +formal methods for software components, is behavioral subtyping. Behavioral +subtyping allows one to reason about OO programs that use message passing. To +explain this, consider that the message passing mechanism of OO languages, such +as C++ and Java, allows one to easily extend programs by adding new types. This works best if objects of the new types +behave like the objects of the old types; the old types are supertypes of the +new types, which are called subtypes. How should one reason about programs that +use subtyping and message passing? A +reasoning method, formalized by specification and verification techniques, +should be "modular" in the sense that when subtypes are added to a +program, unchanged modules do not have to be respecified or reverified. Modular +reasoning is guaranteed by the technique of supertype abstraction, which relies +on behavioral subtyping. To use supertype +abstraction, one specifies and verifies code in terms of the static types of +expressions written in a program (as usual), uses a type checker to ensure that +the static types are supertypes of the run-time types, and then must prove that +subtypes obey the specifications of their supertypes. This last condition is behavioral subtyping.

    + +

    Krishna Kishore Dhara, a +former Ph.D. student supervised by Leavens, has extended the formal theory of +behavioral subtyping to types whose instances have time-varying state. Professor Don Pigozzi (of the Mathematics +Department at ISU) and Leavens have found an exact algebraic characterization +of behavioral subtyping for immutable types. +They are now working on effective techniques for proving behavioral +subtyping. This joint research has been funded by the NSF.

    + +

    The potential impact of the +work in formal methods is possibly great; it might lead to the engineering of +software, instead of hacking. It also seems necessary for high quality software +components and reuse. But more realistically, Leavens views the research as +trying to formally understand what one needs to think about when documenting +and reasoning about a program or program component. This can be of great value +for teaching and for the construction of tools, even if people do not use the +formalism directly or on a daily basis.

    + +

     

    + +

    Programming Language Design and Semantics

    + +

    The other main aspect of Dr. Leavens's work has +been on the design and semantics of object-oriented languages with generic +functions. Such languages are known as +multimethod programming languages, because method calls can dispatch a message +send on all arguments, unlike a single-dispatching OO language, such as +Smalltalk, C++, or Java. Multimethod languages are interesting because they can +more easily express solutions to certain problems in OO programming (binary

    + +

    methods).

    + +

    Leavens's work on multimethod languages is joint +with Ph.D. student Curtis Clifton, and has been done in collaboration with and +with Craig Chambers of the University of Washington, and Chambers's student +Todd D. Millstein. Former master's +students Jianbing Chen and Sevtap Karakoy also have contributed to this +work. The work focuses on the semantics +and type systems for variants of the Cecil and Java languages. To date they +have published papers about an algorithm for type checking such languages with +very expressive features (orthogonal inheritance and subtyping), about how to +add multimethods to existing languages, and a way to add multimethods to Java. +One big problem is to get a language with both a (sound) static type system and +a sensible module system; however, this problem has been solved by Millstein +and Chambers (as reported in ECOOP '99). +We have applied these ideas to the design of an extension to the Java +programming language called MultiJava (see www.multijava.org). A long term goal +is a language that allows one to program abstract data types in two styles, one +of which is easier to extend (as in standard OO languages) and the other of +which is easier to reason about. Programmers can use both styles in the same +program. Another goal is to extend the kind of modular programming and +reasoning techniques that apply to MultiJava to aspect-oriented programs. The potential impact of these research +directions might be large if this leads to more flexible, modular, and reusable +coding practices. A recent NSF grant has funded research on formal methods for +such languages.

    + +

     

    + +

    See http://www.cs.iastate.edu/~leavens/ for +details.

    + +

     

    + +

    Representative Publications

    + +

    Clyde Ruby and Gary T. Leavens. Safely Creating +Correct Subclasses without Seeing Superclass Code. In OOPSLA 2000 Proceedings, +pp. 208-228 (Volume 35, number 10 of ACM SIGPLAN Notices, October 2000).

    + +

     

    + +

    Curtis Clifton, Gary T. Leavens, Craig +Chambers, and Todd Millstein. MultiJava: Modular Open Classes and Symmetric +Multiple Dispatch for Java. In OOPSLA 2000 Proceedings, pp. 130-145 (Volume 35, +number 10 of ACM

    + +

    SIGPLAN Notices, October 2000).

    + +

     

    + +

    Gary T. Leavens and Don Pigozzi. A complete +algebraic characterization of behavioral subtyping. Acta Informatica, +36:617-663, 2000.

    + +

     

    + +

    Gary T. Leavens and Krishna Kishore Dhara. +Concepts of Behavioral Subtyping and a Sketch of their Extension to +Component-Based Systems. In Gary T. Leavens and Murali Sitaraman (editors), +Foundations of Component-Based Systems, Cambridge University Press, 2000. +Chapter 6, pages 113-135.

    + +

     

    + +

    Gary T. Leavens and Todd D. Millstein. Multiple Dispatch as Dispatch on +Tuples. In OOPSLA '98 Conference +Proceedings, pages 374-387, Volume 33, number 10 of ACM SIGPLAN Notices, +October 1998.

    + +

     

    + +

    Gary T. Leavens and Jeannette M. Wing. Protective Interface Specifications. Formal Aspects of Computing, 10:59-75, 1998.

    + +

     

    + +

    Gary T. Leavens. An Overview of Larch/C++: +Behavioral Specifications for C++ Modules. In Haim Kilov and William Harvey +(editors), Specification of Behavioral Semantics in Object-Oriented Information +Modeling (Kluwer Academic Publishers, 1996), Chapter 8, pages 121-142.

    + +

     

    + +

    Krishna Kishore Dhara and Gary T. Leavens. +Forcing Behavioral Subtyping Through Specification Inheritance. In Proceedings +18th International Conference on Software Engineering, Berlin, +Germany, pages 258-267. IEEE, 1996.

    + +

     

    + +

    Gary T. Leavens and William E. Weihl. Specification +and Verification of Object-Oriented Programs Using Supertype Abstraction. Acta +Informatica, 32(8):705-778, November 1995.

    + +

     

    + +

    Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, +The Hopkins Objects Group, Gary T. Leavens, and Benjamin Pierce. On Binary +Methods. Theory and Practice of Object Systems 1(3):221-242, 1995.

    + +

     

    + +

    Craig Chambers and Gary T. Leavens. +Typechecking and Modules for Multimethods. ACM Transactions on Programming +Languages and Systems, 17(6):805-843, November 1995.

    + +

     

    + +

    Yoonsik Cheon and Gary T. Leavens. The +Larch/Smalltalk Interface Specification Language. ACM Transactions on Software +Engineering and Methodology, 3(3):221-253, July 1994.

    + +

     

    + +

    Gary T. Leavens, Modular Specification and +Verification of Object-Oriented Programs. IEEE Software, 8(4):72-80, July, +1991.

    + +

     

    + +

    Gary T. Leavens and William E. Weihl. Reasoning +about Object-Oriented Programs that use Subtypes (extended abstract). In OOPSLA +ECOOP '90 Proceedings, pages 212-223 (Volume 25, number 10 of ACM SIGPLAN

    + +

    Notices, October 1990).

    + +

     

    + +

     

    + +

    MARKUS LUMPE, Assistant +Professor of Computer Science

    + +

     

    + +

    M.S. 1990, Computer Science, +Dresden University of Technology

    + +

    PhD. 1999, Computer Science, +Institute of Computer Science and Applied Mathematics, University of Berne

    + +

     

    + +

    Major Research Interests:

    + +

    Design +and implementation of object- and component-oriented languages, Type theory for +software composition, Formal semantics, Concurrent programming, Object-oriented +compiler construction techniques.

    + +

    Current Research:

    + +

    My +major research interests are in programming languages, modern compiler +construction, and component technology. Within these areas, I am focusing on +foundations like type systems, behavioral equivalence theories, distribution +and localization of components and processes. In addition, I am very much +interested in applications aspects like the modeling of compositional +abstractions, component repositories, and the specification of functional and +non-functional properties of components. My primary long-term goal is the +development of a robust formal model to specify applications as composition of +distributed components.

    + +

    I +have developed the pL-calculus, a variant of the p-calculus, +which is used as the formal basis for Piccola, a small compo-sition language. +The pL-calculus is a process calculus, in which +agents communicate by passing extensible, labeled records, or so-called +forms'', rather than tuples. This approach makes it much easier to model +compositional abstractions than it is possible in the plain p-calculus, +since the contents of communication are now independent of position; agents are +more naturally polymorphic since communication forms can be easily extended, +and environmental arguments can be passed implicitly.

    + +

    The +next stage will be a higher-order system, which provides also means for +communicating agents agents will become first-class entities. Moreover, the +next stage will employ the unifying concept that everything is a form, that +is, every abstraction is itself a form. Therefore, the distinction between +agents, channels, and forms will disappear, which will hopefully result in a +unique language paradigm for software composition.

    + +

    Additionally, +I have an active interest in the development of modern compiler techniques and +programming languages. My interests focus on (i) the definition of an object- +or component-oriented framework for defining any kind of language processors, +(ii) the definition of framework to map any source language to the Java virtual +machine, and (iii) the definition of new higher-level programming abstractions +and idioms.

    + +

     

    + +

    Representative Publications:

    + +

    Markus Lumpe, Jean-Guy Schneider +and Oscar Nierstrasz, Using Metaobjects to Model Concurrent Objects with +PICT, Proceedings of Languages et Modles Objects, Leysin, October 1996, pp. +1-12.

    + +

     

    + +

    Jean-Guy Schneider and Markus +Lumpe, Synchronizing Concurrent Objects in the Pi-Calculus, Proceedings of +Langages et Modles Objets '97, Roland Ducournau and Serge Garlatti (Eds.), +Hermes, Roscoff, October 1997, pp. 61-76.

    + +

     

    + +

    Markus Lumpe, Jean-Guy +Schneider, Oscar Nierstrasz and Franz Achermann, Towards a formal composition +language, Proceedings of ESEC '97 Workshop on Foundations of Component-Based +Systems, Gary T. Leavens and Murali Sitaraman (Eds.), Zurich, September 1997, +pp. 178-187.

    + +

     

    + +

    Markus Lumpe, A Pi-Calculus +Based Approach for Software Composition, Ph.D. thesis, University of Bern, +Institute of Computer Science and Applied Mathematics, January 1999.

    + +

     

    + +

    Franz Achermann, Markus Lumpe, +Jean-Guy Schneider and Oscar Nierstrasz, Piccola - a Small Composition +Language, Formal Methods for Distributed Processing, an Object Oriented +Approach, Howard Bowman and John Derrick. (Eds.), Cambridge University Press, +2000.

    + +

     

    + +

    Markus Lumpe, Franz Achermann +and Oscar Nierstrasz, A Formal Language for Composition, Foundations of +Component Based System, Gary Leavens and Murali Sitaraman (Eds.), Cambridge +University Press, 2000.

    + +

     

    + +

    Jean-Guy Schneider and Markus +Lumpe, A Metamodel for Concurrent, Object-based Programming, Proceedings of +Langages et Modles Objets '2000, Hermes, Mont Saint-Hilaire, Qubec, January 2000.

    + +

     

    + +

    Markus Lumpe and Jean-Guy +Schneider, Forms - A Flexible Notation for Software Composition, Proceedings +of Third Australian Workshop on Software and System Architectures, John Grundy +and Jun Han (Eds.), Sydney, November 2000, pp. 24-36.

    + +

     

    + +

     

    + +

     

    + +

    JACK H. LUTZ, +Professor of Computer +Science

    + +

     

    + +

    B.G.S. 1976, Mathematics, University of +Kansas

    + +

    M.A. 1979, Mathematics, University of +Kansas

    + +

    M.S. 1981, Computer Science, University +of Kansas

    + +

    Ph.D. 1987, Mathematics, California +Institute of Technology

    + +

     

    + +

    Major Interests:

    + +

    Computational Complexity, including structure of complexity classes, +resource-bounded measure and dimension, and probabilistic complexity. Algorithmic Information and Randomness, +including computational randomness, constructive dimension, Kolmogorov +complexity, prediction, computational depth, and games.

    + +

     

    + +

    Current Research:

    + +

    Professor Lutz does most of his research in two areas: computational +complexity and algorithmic information theory. +In computational complexity he and his students are investigating the +structure of complexity classes (deterministic, non-deterministic, and +probabilistic) using resource-bounded measure and dimension, +complexity-theoretic generalizations of Lebesgue dimension and fractal +dimension that he has developed. +Current work focuses on weak derandomization, weak completeness, +average-case complexity, circuit-size complexity, strong hypotheses, +real-valued functions, and the foundation of resource-bounded measure and +dimension. In algorithmic information, +he and his students are investigating randomness, Kolmogorov complexity, +algorithmic prediction, and computational depth. This work is uncovering a variety of new applications of theory +of computation in information theory, computational learning, fractal geometry, +and games.

    + +

     

    + +

    Representative Publications:

    + +

    Jack J. Dai, James I. Lathrop, Jack H. +Lutz, and Elvira Mayordomo. Finite-State Dimension. Proceedings of the +Twenty-Eighth International Colloquium on Automata, Languages, and Programming, +Crete, Greece, July 8-12, 2001, Springer-Verlag, 2001, pp. 1028-1039.

    + +

     

    + +

    Josef M. Breutzmann, David W. Juedes, and +Jack H. Lutz. Baire Category and Nowhere Differentiability for Feasible Real +Functions. Proceedings of the Twelfth Annual International Symposium on +Algorithms and Computation. Christchurch, New Zealand, December 19-21, +2001, Springer-Verlag, 2001, pp. 219-230.

    + +

     

    + +

    Gales and the Constructive Dimension of +Individual Sequences. Proceedings of the Twenty-Seventh International +Colloquium on Automata, Languages, and Programming. Geneva, Switzerland, July +9-15, 2000, Springer-Verlag, 2000, pp. 902-913.

    + +

     

    + +

    Dimension in Complexity Classes. Proceedings +of the Fifteenth Annual IEEE Conference on Computational Complexity. Florence, +Italy, July 4-7, 2000), IEEE Computer Society Press, 2000, pp. 158-169.

    + +

     

    + +

    Jack H. Lutz, Vikram Mhetre and Sridhar +Srinivasan. Hard Instances of Hard Problems. SIAM Journal on Computing, +to appear.

    + +

     

    + +

    Jack J. Dai and Jack H. Lutz. Query +Order and NP-Completeness. Information and Computation, to appear.

    + +

     

    + +

    Jack H. Lutz and Yong Zhao. The Density +of Weakly Complete Problems under Adaptive Reductions. SIAM Journal on +Computing. 2000, 30:1197-1210.

    + +

     

    + +

    David W. Juedes and Jack H. Lutz. +Modeling Time-Bounded Prefix Kolmogorov Complexity. Theory of Computing +Systems. Mathematical Systems +Theory. 2000, 33:111-123.

    + +

     

    + +

    Josef M. Breutzmann and Jack H. Lutz. +Equivalence of Measures of Complexity Classes. SIAM Journal on Computing. +2000. 29:302-326.

    + +

     

    + +

    Jack H. Lutz and James I. Lathrop. +Recursive Computational Depth. Information and Computation, 1999, +153:139-172.

    + +

     

    + +

     

    + +

    ROBYN +LUTZ, Associate +Professor of Computer Science

    + +

     

    + +

    B.A. 1974, English, University of Kansas

    + +

    M.A. 1976, Spanish, University of Kansas

    + +

    Ph.D. 1980, Spanish, University of Kansas

    + +

    M.S. 1990, Computer Science, Iowa State +University

    + +

     

    + +

    Major +Interests:

    + +

    Software engineering, software safety, +requirements engineering, formal methods for specification and verification, +safety-critical product lines, and fault monitoring and recovery for spacecraft +autonomy.

    + +

     

    + +

    Current +Research:

    + +

    Dr. Lutz' research is in two overlapping +areas of software engineering: (1) how to build safe systems and (2) how to +specify and analyze requirements.

    + +

    In the +first area, her work focuses on software system safety. In particular, she is +interested in developing safety analysis techniques for high-integrity product +lines. Dr. Lutz is also working on +architectural analysis techniques for safety-critical systems. Her vision for +future research in this area is detailed in her recent survey, "Software +Engineering for Safety: A Roadmap," available on her web page (http://www.cs.iastate.edu/~rlutz).

    + +

    In the second +area, her interest is in formally modeling and analyzing requirements for fault +detection and recovery. Many of her +results in this area have been applied to NASA spacecraft. Currently, she is +also principal investigator on a NASA-funded research project to characterize +critical software anomalies that escape testing to manifest themselves during +flight.

    + +

     

    + +

    Representative +Publications:

    + +

    "Operational Anomalies as a Cause of +Safety-Critical Requirements Evolution, with C. Mikulski, The Journal of +Systems and Software, to appear.

    + +

     

    + +

    "Evolution of Safety-Critical +Requirements Post-Launch," with C. Mikulski, Fifth IEEE International +Symposium on Requirements Engineering (RE'01), August 27-31, 2001, Toronto, +Canada.

    + +

     

    + +

    "A Software Fault Tree Approach to +Requirements Analysis of an Intrusion Detection System," with G. Helmer, +J. Wong, M. Slagell, V. Honavar, and L. Miller, Symposium on Requirements +Engineering for Information Security, March 5-6, 2001.

    + +

     

    + +

    "Extending the Product Family +Approach to Support Safe Reuse," The Journal of Systems and Software, +53(3):207-217, September 2000.

    + +

     

    + +

    "Software Engineering for Safety: A +Roadmap," in The Future of Software Engineering, Ed. Anthony Finkelstein, +ACM Press, 2000, pp. 213-224.

    + +

     

    + +

    "An Approach to Architectural +Analysis of Product Lines," with Gerald C. Gannod, 22nd International +Conference on Software Engineering (ICSE'00), June 7-9, 2000, Limerick, +Ireland, pp. 548-557.

    + +

     

    + +

    "Failure Modes and Effects +Analysis," with R. Woodhouse, Encyclopedia of Electrical and Electronics +Engineering, ed. J. Webster, John Wiley and Sons Publishers, Vol. 7, 1999, p. +253-257.

    + +

     

    + +

    "Applying Adaptive Safety Analysis +Techniques," with Hui-Yin Shaw, Tenth International Symposium on Software +Reliability Engineering (ISSRE'99), Nov. 1-4, 1999, Boca Raton, FL.

    + +

     

    + +

    "Using Immersive Virtual +Environments for Certification," with C. Cruz-Neira, IEEE Software, Vol. +16, 4, July/Aug, 1999, pp. 26-30.

    + +

     

    + +

    "Toward Safe Reuse of Product Family +Specifications," Proceedings of the Fifth Symposium on Software +Reusability (SSR'99), May 21-23, 1999, Los Angeles, CA, pp. 17-26.

    + +

     

    + +

    "Bi-directional Analysis for +Certification of Safety-Critical Software," with Robert Woodhouse, First +International Software Assurance Certification Conference (ISACC'99), Feb. +28-March 2, 1999, Washington, D.C.

    + +

     

    + +

    "Safety Analysis of Requirements for +a Product Family," with G. Helmer, M. Moseman, D. Statezni, and S. Tockey, +Proceedings of the Third IEEE International Conference on Requirements +Engineering (ICRE '98), April 6-10, 1998, Colorado Springs, CO, 24-31.

    + +

     

    + +

    "Experiences Using Lightweight +Formal Methods for Requirements Modeling," with S. Easterbrook, R. +Covington, J. Kelly, Y. Ampo, and D. Hamilton, IEEE Transactions on Software +Engineering, 24(1):4-14, January 1998.

    + +

     

    + +

    "Requirements Analysis Using Forward +and Backward Search" with R. Woodhouse, Annals of Software Engineering, +3:459-475, 1997.

    + +

     

    + +

    "Reuse of a Formal Model for +Requirements Validation," Proceedings of the Fourth NASA Langley Formal +Methods Workshop, 10-12 September, 1997, Hampton, VA, 75-85.

    + +

     

    + +

    "Targeting Safety-Related Errors +During Software Requirements Analysis," The Journal of Systems and +Software, 34:223-230, September 1996.

    + +

     

    + +

     

    + +

    DIMITRIS MARGARITIS, +Assistant +Professor of Computer +Science

    + +

     

    + +

    B.S. 1992, Physics, University of Athens

    + +

    M.S. 1995, Computer Science, State +University of New York at Stony Brook

    + +

    Ph.D. 2002, Computer Science, Carnegie +Mellon University

    + +

     

    + +

    Major Interests:

    + +

    Probabilistic +modeling, methods for managing and reasoning with uncertainty/indeterminacy in +Artificial Intelligence and other applications, Bayesian networks, Markov +networks, data mining, machine learning, cross-disciplinary applications of +these in bioinformatics, econometrics, very large databases and other domains.

    + +

     

    + +

    Current Research:

    + +

    Dr. +Margaritis recent research is on new algorithms for learning the structure of +Bayesian networks and applying them to real-world application domains where +modeling uncertainty might be beneficial. +For example, it turns out that approximate query answering in very large +databases can be done quickly using a sufficiently complex model of the +database---in this case a Bayesian network.

    + +

     

    + +

    He +would also like to explore capturing and modeling information about influences +by statistical means in bioinformatics domains such as protein structure +prediction.

    + +

     

    + +

    Dr. +Margaritis long-term vision is to develop algorithms and representations that +help researchers learn something about their research domain by presenting them +with an automatically derived model of it. The benefit of this is to help them +focus attention to the relevant portions and possibly provide them with +insights that are difficult to produce otherwise.

    + +

     

    + +

    Representative Publications:

    + +

    D. Margaritis +and S. Thrun. A Bayesian Multiresolution Independence Test for Continuous +Variable. Uncertainty in Artificial Intelligence (UAI), August 2001.

    + +

     

    + +

    D. Margaritis, +C. Faloutsos, and S. Thrun. NetCube: A Scalable Tool for Fast Data Mining and +Compression. International Conference on Very Large Databases (VLDB), September +2001.

    + +

     

    + +

    D. Margaritis +and S. Thrun. Bayesian Network Induction via Local Neighborhoods. Neural Information Processing Systems +(NIPS), December 1999.

    + +

     

    + +

    D. Moghaddam, +H. Biermann and D. Margaritis. Regions-of-Interest and Spatial Layout for +Content-Based Image Retrieval. Journal +of Multimedia Tools and Applications, Kluwer Academic Publishers, Vol. 14, No. +3, July 2001.

    + +

     

    + +

    D. Moghaddam, +H. Biermann, D. Margaritis. Image Retrieval with Local and Spatial Queries. +International Conference on Image Processing (ICIP), Vancouver, Canada, +September 2000.

    + +

     

    + +

    D. Margaritis +and S. Thrun. Learning to Locate and Object in 3D Space from a Sequence of +Camera Images. International Conference in Machine Learning (ICML), July 1998.

    + +

     

    + +

    S. Waldherr, S. +Thrun, R. Romero, and D. Margaritis. Template-Based Recognition of Pose and +Motion Gestures on a Mobile Robot. National Conference on Artificial +Intelligence (AAAI), July 1998.

    + +

     

    + +

    T. C. Chieuh, +D. Margaritis, and S. Varadarajan. Design, Implementation and Evaluation of a +Parallel Image Shape Indexer. Visual Information Systems (Visual p7), 1997.

    + +

     

    + +

    D. Margaritis +and S. Skiena. Reconstructing Strings from Substrings in Rounds. IEEE +Foundations of Computer Science (FOCS), 1995.

    + +

     

    + +

     

    + +

    LES MILLER, Professor +of Computer Science

    + +

     

    + +

    B.A. +1967, Mathematics, University of South Dakota

    + +

    M.A. +1974, Mathematics, University of South Dakota

    + +

    Ph.D. +1980, Computer Science, Southern Methodist University

    + +

     

    + +

    Major Interests:

    + +

    Object oriented +databases, Organizational decision support systems, Multi-agent systems, +Knowledge management systems, Data warehouses, Computational Biology.

    + +

     

    + +

    Current Research:

    + +

    We are currently +looking at multi-agent systems to provide the infrastructure for integrating +heterogeneous data sources. In addition to the agent systems, we have developed +an object-oriented data warehouse to serve as part of the integration +infrastructure. We have also been +looking at tools for generating and populating data warehouse designs. We are also concerned with applying database +and machine learning techniques to problems in computational biology.

    + +

     

    + +

    Representative +Publications:

    + +

    "Populating a data warehouse with +mobile agents," Dandu, R., L. Miller, S. Nilakanta, and V. Honavar. +(1999). To appear in The Tenth International Conference of the Information +Resources Management Association.

    + +

     

    + +

    "Distributed Knowledge +Networks," Honavar, V., L.L. Miller, and J. Wong. (1998). IEEE Information +Technology Conference, pp. 87-90.

    + +

     

    + +

    "Object-oriented data warehouse for +information fusion from heterogeneous distributed data and knowledge +sources," Miller, L.L., V. Honavar, J. Wong, and S. Nilakanta. +(1998). IEEE Information Technology +Conference, pp. 27-31.

    + +

     

    + +

    "Data +Warehouse Modeler: A Case Tool for Warehouse Design," Miller, L.L., & +Nilakanta, S. (1998). Hawaiian International Conference on Systems Science, pp. +42-48.

    + +

     

    + +

    "Extending the +Object-Relational Interface to Support an Extensible View System for +Multidatabase Integration and Interoperation," Miller, L.L., Yen, D., +Sirjani, A., & Tenner, J. (1998). International Journal of Computer Systems +Science and Engineering. 13:4, pp. 227-240.

    + +

     

    + +

    "A Dynamic +Approach for Finding the Join Sequence in a Universal Relation Interface," +Miller, L.L., & Owrang, M. M. +(1998). To appear in the Journal of Integrated Computer-Aided Engineering, +4:310-318.

    + +

     

    + +

    "Warehousing +Structured and Unstructured Data for Data Mining." Miller, L.L., Honavar, +V., & Barta, T. (1997). ASIS '97, +pp. 215-224.

    + +

     

    + +

     

    + +

    ANDREW S. MINER, Assistant Professor of +Computer Science

    + +

     

    + +

    B.S. 1993, Physics and Computer Science, +Randolph-Macon College

    + +

    M.S. 1995, Computer Science, College of +William and Mary

    + +

    Ph.D. 2000, Computer Science, College of +William and Mary

    + +

     

    + +

    Major Interests:

    + +

    Performance reliability and +logical analysis of systems, Petri nets and stochastic modeling; state space +generation techniques, binary and multi-valued decision diagrams; compositional +approaches, distributed algorithms for solution techniques.

    + +

     

    + +

    Current Research:

    + +

    Technology advancements yield increasingly complex systems. +Dr. Miner's research focuses on +techniques for analyzing such systems, especially during their design stage. In +particular, he considers techniques that use some high-level modeling +formalism, such as stochastic Petri nets, to capture the desired behavior of +the system. Using a well-defined mathematical formalism allows certain types of +logical analysis, in which all +the possible states of the model are examined, or performance or reliability +analysis, in which the underlying stochastic process of the model (usually a +Markov chain) is considered. Logical analysis is typically used to verify the +correctness or robustness of a system against a set of criteria, and is +especially applicable to software and hardware verification. Performance and +reliability analyses are instead used to determine how well a system performs +or the expected lifetime of a system, and are applied to a variety of systems, +including communications systems, web servers, distributed systems, and +mission-critical systems.

    + +

     

    + +

    The main difficulty in these types of analyses is that even +a simple model can contain an extremely large number of possible states, +leading to excessive storage and CPU requirements. Indeed, the number of +reachable states of a model usually determines the tractability of its +analysis. Dr. Miner's work addresses this problem by developing techniques that +can handle a large number of states.

    + +

     

    + +

    Representative Publications:

    + +

    A.S. Miner, G. Ciardo, and S. Donatelli. "Using the exact state space of a large +structured Markov model to computer approximate stationary measures." In Proc. ACM +SIGMETRICS 2000, International Conference on Measurement and Modeling of +Computer Systems, Santa Clara, CA, pages 207-216. June 2000.

    + +

     

    + +

    G. Ciardo and A.S. Miner, "Structural +approaches for SPN analysis." High +Performance Computing Symposium, Washington, DC, USA, April 2000, pp. 345-356.

    + +

     

    + +

     

    + +

    G. Ciardo and A.S. Miner. "A data structure for the efficient +Kronecker solution of GSPN's." In +P. Buchholz, editor, Proc. 8th International Workshop on Petri Nets and +Performance Models (PNPM'99), Zaragoza, Spain, IEEE Computer Society Press, +pages 22-31, September 1999.

    + +

     

    + +

    A.S. Miner and G. Ciardo. "Efficient reachability set generation +and storage using decision diagrams." +In H. Kleijn and S. Donatelli, editors, Application and Theory of Petri +Nets 1999, LNCS 1639 (Proc. 20th International Conference on Applications and +Theory of Petri Nets, Williamsburg, VA, USA), pages 6-25. June 1999. Springer-Verlag.

    + +

     

    + +

    G. Ciardo and A.S. Miner. "Storage +alternatives for large structured state spaces." In R. Marie, B. Plateau, M. Calzarossa, and G. Rubino, editors, +Proc. 9th International Conference on Modelling Techniques and Tools for +Computer Performance Evaluation, LNCS 1245, pages 44-57, St. Malo, France, June +1997. Springer-Verlag.

    + +

     

    + +

     

    + +

    GURPUR PRABHU, Associate Professor of Computer Science

    + +

     

    + +

    B.Tech. 1975, Electrical Engineering, +IIT, Madras, India

    + +

    M.Tech. 1978, Computer Science, IIT, +Kanpur, India

    + +

    Ph.D. 1983, Computer Science, Washington +State University, Pullman

    + +

     

    + +

    Major Interests:

    + +

    Parallel processing, computer architecture, business process modeling and +analysis.

    + +

     

    + +

    Current Research:

    + +

    Dr. Prabhu's current research focuses on performance issues of parallel +programs and methods for business transformation.

    + +

     

    + +

    Representative Publications:

    + +

    "Programming is Writing: Why Programs must be Carefully +Evaluated," Journal of Mathematics and Computer Education, 32:3, Fall +1998, pp. 284-295 (with Gary Leavens, Albert Baker, Vasant Honavar, and Steve +LaValle).

    + +

     

    + +

    "Parallelizing a very high resolution climate model using clusters +of workstations with PVM and performance and load balance analyses," (with +Hao Wang and Eugene Takle), Proceedings of the International Conference on +Parallel and Distributed Processing Techniques and Applications, 1998, pp. +1762-1765, CSREA Press.

    + +

     

    + +

    "Distribution-Independent Hierarchical Algorithms for the N-body +problem," Journal of Supercomputing, 12, 1998, pp. 303-323 (with Srinivas +Aluru, John Gustafson, and Fatih Sevilgen).

    + +

     

    + +

    "A Framework for Business Transformation," Journal of +Microcomputer Applications, 17:1, 1998, pp. 1-7 (with Sree Nilakanta and Ashok +Subramanian).

    + +

     

    + +

    "Enterprise Integration: Art or Science?" Summer Conference of the Society for +Enterprise Engineering, June 1995.

    + +

    + +

    "Truly Distribution-Independent Algorithms for the N-Body +Problem," Prabhu, G., Aluru, S., & Gustafson, J. Supercomputing '94, pp. 420-428.

    + +

    + +

    "A Methodology for Business Transformation," Prabhu, G., +Nilakanta, S., & Subramanian, A. +(1994). Proceedings of the Third International Conference on Systems +Integration, Brazil, pp. 403-411.

    + +

     

    + +

    "The Use of Microcontrollers in Mechatronics Education," +Prabhu, G., & Wright, C. (1994). Proceedings of the Workshop on +Mechatronics Education, Stanford, pp. 72-77.

    + +

     

    + +
    +
    + +

    LU RUAN, Assistant +Professor of Computer Science

    + +

     

    + +

    B.E. 1996, Computer Science, +Tsinghua University, China

    + +

    M.S. 1999, Computer Science, +University of Minnesota - Twin Cities

    + +

    Ph.D. 2001, Computer Science, +University of Minnesota - Twin Cities

    + +

     

    + +

    Major +Interests:

    + +

    Computer Networking (Traffic Engineering, +Quality of Service, WDM Networks, Fault Tolerance), Approximation Algorithms.

    + +

     

    + +

    Current +Research:

    + +

    IP +over WDM is being envisioned as the architecture for the next generation +Internet. In this architecture, high-speed IP routers are interconnected by +intelligent optical core networks. +Survivability in these networks is essential since the networks carry a +high volume of traffic and a single link/node +failure will cause tremendous service loss. +Dr. Ruans current

    + +

    research focuses on the design of fast +and capacity efficient protection/restoration schemes in both the IP and WDM +layer to recover from link/node failures. +In addition, she is interested in developing techniques to integrate the +recovery schemes in the two layers seamlessly and efficiently. Three important objectives are to be +achieved: (1) Protection bandwidth should be efficiently shared by traffic +within the same layer as well as among the IP and WDM layers. (2) Recovery +schemes should be decentralized to assure scalability. (3) Differentiated +reliability (or quality of protection) is provided to client connections.

    + +

     

    + +

    Representative +Publications:

    + +

    X. Jia, X. Hu, L. Ruan and J. Sun, +"Multicast Routing, Load Balancing and wavelength Assignment on Tree of +Rings, IEEE Communications Letters, 6(2):79-81, Feb 2002.

    + +

     

    + +

    L. Ruan, D-Z. Du, X. Hu, X. Jia, D. Li +and Z. Sun, "Converter Placement Supporting Broadcast in WDM Optical +Networks, IEEE Transactions on Computers, 50(7):750-758, July 2001.

    + +

     

    + +

    B. Lu and L. Ruan, "Polynomial Time +Approximation Scheme for the Rectilinear Steiner Arborescence Problem", +Journal of Combinatorial Optimization, 4(3):357-363, Sept 2000.

    + +

     

    + +

    D. Li, X. Du, X. Hu, L. Ruan and X. Jia, +"Minimizing Number of Wavelengths in Multicast Routing Trees in WDM +Networks", Networks, 35(4):260-265, July 2000.

    + +

     

    + +

    L. Ruan and D-Z. Du (eds.), Optical +Networks-Recent Advances, Kluwer Academic Publishers, 2001.

    + +

     

    + +

    L. Ruan, D-Z. Du, X. Hu, X. Jia, D. Li, +"Approximations for Color-Covering Problems, Proceedings of the +International Congress of Chinese Mathematicians, pp. 203 -207, 2000.

    + +

     

    + +
    +
    + +

    GIORA SLUTZKI, +Professor of Computer +Science

    + +

     

    + +

    B.S. 1970, Mathematics & Physics, +Hebrew University of Jerusalem, Israel

    + +

    M.S. 1973, Computer Science, Weizmann +Institute of Science, Rehovot, Israel

    + +

    Ph.D. 1977, Computer Science, Tel-Aviv University, +Tel-Aviv, Israel

    + +

     

    + +

    Major +Interests:

    + +

    Algorithms and Complexity, Game Theory +and Computational Economics, Formal Languages, Automata Theory, Logic.

    + +

     

    + +

    Current +Research:

    + +

    Dr. Slutzki is currently working on +complexity of some problems in abstract algebra and graph theory. He also works +on parametric string alignment, problems in pursuit-evasion in polygons, and +problems related to agreement and common knowledge.

    + +

     

    + +

    Representative +Publications:

    + +

    "A Complete Pursuit-Evasion Algorithm for Two +Pursuers Using Beam Detection" (with B. Simov and S. LaValle). 2002 IEEE +International Conference on Robotics and Automation (ICRA '02), May 2002, +Washington, DC, USA. Proceedings.

    + +

     

    + +

    "Computational Complexity of Some Problems +Involving Congruences on Algebras" (with C. Bergman). Theoretical Computer +Science, 270 (2002), pp. 591-608. Extended Abstract appeared in LICS '00.

    + +

     

    + +

    "Lower Bounds for Parametric Sequence +Comparison" (with D. Fernandez-Baca and T. Seppalainen). Special Issue of Discrete +Applied Mathematics (DAM), 118(3)(2002), pp. 181-199. Extended Abstract +appeared in SPIRE '99.

    + +

     

    + +

    "Computational Complexity of Generators and +Nongenerators in Algebra" (with C. Bergman). To appear in International +Journal of Algebra and Computation.

    + +

     

    + +

    "A Duality Theory for Bilattices" (with B. Mobasher, D. +Pigozzi, and G. Voutsadakis). Algebra Universalis, 43 (2000), pp. 109-125.

    + +

     

    + +

    "An Algorithm for Searching a Polygonal Region +with a Flashlight" (with B. Simov and S. LaValle). 16-th ACM Symposium on Computational +Geometry (SoCG '00), June 2000, Hong Kong. Proceedings, pp. 260-269. To appear +in a Special Issue of the International Journal of Computational Geometry and +Applications (IJCGA).

    + +

     

    + +

    "Parametric multiple sequence alignment and +phylogeny construction" (with D. Fernandez-Baca and T. Seppalainen). 11-th +Annual Symposium on Combinatorial Pattern Matching (CPM '00), June 2000, +Montreal, Canada. Springer Verlag, LNCS 1848, pp. 69-83. To appear in Journal +of Discrete Algorithms.

    + +

     

    + +

    "Complexity of Some Problems Concerning +Varieties and Quasi-Varieties of Algebras" (with C. Bergman). SIAM +Journal on Computing, 30 (2) (2000), pp. 359-382. Extended Abstract appeared in +16-th STACS (1999).

    + +

     

    + +

    "Computational Complexity of +Term-Equivalence" (with C. Bergman and D. Juedes). International Journal of Algebra and +Computation 9 (1) (1999), pp. 113-128.

    + +

     

    + +

    "Multi-valued Logic Programming Semantics: An +Algebraic Approach" (with B. Mobasher and D. Pigozzi). Theoretical Computer Science, 171 +(1997), pp. 77-109.

    + +

     

    + +

    "Optimal Parametric Search on Graphs of Bounded +Tree-width" (with D. Fernandez-Baca). Journal of Algorithms 22 (1997), pp. +212-240.

    + +

     

    + +

    "A Hierarchy of Deterministic Top-down Tree +Transformations" (with S. Vagvolgyi). Mathematical Systems Theory 29 (1996), pp. +169-188.

    + +

     

    + +

    "Using Sparsification for Parametric Minimum +Spanning Tree Problems" (with D. Fernandez-Baca and D. Eppstein). Special +SWAT issue of the Nordic Journal of Computing, 3 (4)(Winter 1996), pp. 352-366. +

    + +

     

    + +

     

    + +

    WALLAPAK TAVANAPONG, Assistant Professor of Computer Science

    + +

     

    + +

    B.S. 1992, Computer Science, Thammasat University, +Thailand

    + +

    M.S. 1995, Computer Science, University of Central +Florida

    + +

    Ph.D. 1999, Computer Science, University of Central +Florida

    + +

     

    + +

    Major +Interests:

    + +

    Distributed Multimedia +Systems, Multimedia and Communications, Multimedia Databases, Parallel and +Distributed Databases, Web Performance.

    + +

     

    + +

    Current +Research:

    + +

    The information +superhighway will consist of a collection of heterogeneous high-speed networks, +offering a wide variety of services. Due to these infrastructures, affordable +high performance computers and peripherals, and the World Wide Web, multimedia +data such as videos and audio will greatly increase its presence and +significance far beyond those seen on the Internet today. Designing efficient techniques to retrieve +and deliver multimedia data to remote users is very challenging due to the +unique traits of multimedia data. +First, video and audio data demand both large storage space and high +communication bandwidth. Second, the +data must be presented in a timely manner without interruptions or large +jitters. Lastly, the rich and complex +semantics inherent in multimedia data make it necessary to design novel search +techniques.

    + +

     

    + +

    Dr. Tavanapong's +research addresses three critical aspects of multimedia computing: distributed +multimedia caching and delivery techniques, multimedia server design, and +multimedia databases. Her research in +distributed multimedia caching and delivery strategies focuses on designing +innovative distributed and collaborative strategies for caching multimedia data +along distributed systems to reduce service delays and wide-area-network +bandwidth consumption. Her research +contribution in media server design involves novel algorithms for a high +performance media server or a cluster of workstations to support a large number +of concurrent users efficiently. +Lastly, her work in multimedia databases concentrates on content-based +search for desire video segments from a large video database.

    + +

     

    + +

    Grants

    + +

    Strategies for Caching +Information on Distributed Systems. NSF Career Award CCR-0092914, PI, 2001, +$253,930.

    + +

     

    + +

    Representative Publications:

    + +

    Design and +Implementation of a Video Browsing System for the Internet. Tavanapong, W. and Hua, K.A. To appear in Journal of Software Practice +& Experience, 2001.

    + +

     

    + +

    A Noise-Reduction Approach +to Scene Segmentation for Large Video Databases. Tavanapong, W. and Zhou, J. +To appear in Proc. of IEEE Int'l. Conf. on Information Technology: +Coding and Computing (ITCC), 2001 (Invited paper).

    + +

     

    + +

    A Characteristics-Based +Bandwidth Reduction Technique for Pre-recorded Videos. W. Tavanapong and S. Krishnamohan. In Proc of IEEE Int'l Conf. on Multimedia +and Expo, pages 1751-1754, New York City, NY, July 2000.

    + +

     

    + +

    2PSM: An Efficient +Framework for Searching Video Information in a Limited-Bandwidth Environment. Hua, K.A., Tavanapong, W. and, Wang, J.Z. +ACM Multimedia Systems, 7(5), 396-408, September, 1999.

    + +

     

    + +

    Performance of Load +Balancing Techniques for Join Operations in Shared-Nothing Database Management +Systems. Hua, K.A., Tavanapong, W., and +Lo, Y. Journal of Parallel and +Distributed Computing, 56, 17-46, 1999.

    + +

     

    + +

    Reducing Web Browsing +Delay using Profiled-Based Prefetching. Tavanapong, W., Hua, K.A., and Sheu, S. +In Proc. of WebNet 98 - World Conf. of the WWW, Internet & Intranet, pp. +879-884, Orlando, FL, November, 1998.

    + +

     

    + +

    A Framework for +Supporting Previewing and VCR Operations in a Low Bandwidth Environment. +Tavanapong, W., Hua, K.A., and Wang, J.Z. In Proc. of ACM Multimedia '97, pp. +303-312, Seattle, WA, November, 1997.

    + +

     

    + +

    Pre-admission control +for Movie-on-Demand. Tavanapong, W., Hua, K.A., and Sheu, S. In Proc. of Int'l +Conf. on Multimedia Information Systems, pp. 151-158, Schaumburg, IL, April, +1997.

    + +

     

    + +

    Dynamic Grouping: An +Efficient Buffer Management Scheme for Video-on-Demand Servers. Sheu, S., Hua, K.A., and Tavanapong, W. In +Proc. of Int'l Conf. on Multimedia Information Systems, pp. 135-142, +Schaumburg, IL, April, 1997.

    + +

     

    + +

    Chaining: A Generalized +Batching Technique for Video-on-Demand Systems. Sheu, S., Hua, K.A., and +Tavanapong, W. In Proc. of IEEE Int'l Conf. On Multimedia Computing and +Systems, pp. 110-117, Ottawa, Canada, June 1997.

    + +

     

    + +

    Scheduling Queries for +Parallel Execution on Multicomputer Database Management Systems. Lo, Y., Hua, K.A., and Tavanapong, W. In +Proc. of Int'l Conf. on Database and Expert Systems Applications, Zurich, +Switzerland, 1996.

    + +

     

    + +

    A +Performance Evaluation of Load Balancing Techniques for Join Operations on +Multicomputer Database Systems. Hua, +K.A., Tavanapong, W., and Young H.C. In Proc. of IEEE Int'l Conf. on Data +Engineering, pp. 44-51, Taipei, Taiwan, 1995.

    + +

     

    + +

     

    + +

    JIN TIAN, Assistant Professor of Computer Science

    + +

     

    + +

    B.S. 1992, Physics, Tsinghua University, +Beijing

    + +

    M.S. 1997, Physics and Astronomy, UCLA

    + +

    Ph.D. 2002, Computer Science, UCLA

    + +

     

    + +

    Major Interests:

    + +

    Bayesian networks, probabilistic +reasoning, causal reasoning and learning.

    + +

     

    + +

    Current Research:

    + +

    My research is in the area of Bayesian +networks. I am interested in various +issues in learning Bayesian network structures from data, and in Bayesian +networks with hidden variables.

    + +

     

    + +

    My recent research is focused on causal +reasoning and learning in the framework of causal Bayesian networks. Some +topics that I have worked on are: learning causal structures from data, +inferring causal effects from a combination of data and qualitative causal +assumptions, and estimating probabilities of causation (i.e., the likelihood +that one event was the cause of another). The goal is to provide theoretical +foundations that will facilitate building intelligent systems that can learn +about and reason with causes and effects.

    + +

     

    + +

    Representative +Publications:

    + +

    J. Tian and J. Pearl, A general +identification condition for causal effects, in Proceedings of the National +Conference on Artificial Intelligence (AAAI), 2002.

    + +

     

    + +

    J. Tian and J. Pearl, On the Testable +Implications of Causal Models with Hidden Variables, in Proceedings of the +Conference on Uncertainty in Artificial Intelligence (UAI), 2002.

    + +

     

    + +

    J. Tian and J. Pearl, Causal Discovery +from Changes, in Proceedings of the Conference on Uncertainty in Artificial Intelligence +(UAI), 2001.

    + +

     

    + +

    J. Tian and J. Pearl, Probabilities of +causation: Bounds and identification, in Annals of Mathematics and Artificial +Intelligence 28: 287-313. 2000.

    + +

     

    + +

    J. Tian, A branch-and-bound algorithm for +MDL learning Bayesian networks, in Proceedings of the Conference on Uncertainty +in Artificial Intelligence (UAI), 2000.

    + +

     

    + +
    +
    + +

    JOHNNY S. K. WONG, Professor of Computer Science

    + +

     

    + +

    B.S. 1977, Mathematics & Computer +Science, The University of Hong Kong

    + +

    M.S. 1982, Mathematics, The University +of Sydney, NSW, Australia

    + +

    Ph.D. 1987, Computer Science, The +University of Sydney, NSW, Australia

    + +

     

    + +

    Major Interests:

    + +

    Distributed +Computing Environment (DCE), Distributed Operating Systems, Communication +Protocols, Object-Oriented Systems and Databases, Common Object Request Broker +Architecture (CORBA), Hypermedia Systems, Multimedia Information Systems, Web +Caching, Intrusion Detection, Information Assurance.

    + +

     

    + +

    Current Research:

    + +

    Dr. +Wong's research interests include design and implementation issues in operating +systems, distributed systems and multimedia communications. Current activities +center around hypermedia, distributed multi-media database systems, and +intelligent mobile agents, intrusion detection and countermeasures, distributed +computing environment (DCE), and Common Object Request Broker Architecture +(CORBA), Web Caching, Information Assurance.

    + +

     

    + +

    The +current research projects are funded by the Department of Defense (DoD) on +Intrusion Detection and Countermeasures (with Drs. Miller and Honavar), by the +Mayo Foundation on Database Generating and X-Ray Displaying using The World +Wide Web, and by NSF on the development of courseware modules on Information +Assurance (IA).

    + +

     

    + +

    Representative Publications:

    + +

    "SMART +Mobile Agent Facility'', Wong, J, Helmer, G., Naganathan, V., Polavarapu, S. +Honavar, V. and Miller, L., The Journal of Systems and Software, accepted.

    + +

     

    + +

    "Anomalous +intrusion detection system for hostile Java Applets", G. Helmer, Wong, J. +and Madaka, S., The Journal of Systems and Software, 55:273-286, January 2001.

    + +

     

    + +

    "Achieving +Non-repudiation of Web-based Transactions", Kalla, M., Wong, J., Albert, +S. and Mikler, A., The Journal of Systems and Software, 48(3):165-175, November +1999.

    + +

     

    + +

    "Intelligent +Mobile Agents in Large Distributed Autonomous Coopertaive Systems", Wong, +J. and Mikler, A.(1999), The Journal of Systems and Software, 47(2):75-87, July +1999.

    + +

     

    + +

    "A +Framework for a World Wide Web Based Data Mining System," R. Nayar, Wong, +J., and Mikler, A., Journal of Network and Computer Applications, 21:163-185, +July 1998.

    + +

     

    + +

    "A +Multimedia Presentation Toolkit for the World Wide Web", Wong, J., Rao, +S., & Ramaiah, N., Software: Practice and Experience, 27(4):425-446, April +1997.

    + +

     

    + +

    "Remote +Access to Multimedia Databases: An object-Oriented Approach", Wong, J., +& Parthasarathy, D., Software: Practice & Experience, 26(6):677-704, +June 1996.

    + +

     

    + +

    "Design +and Implementation of Heterogeneous Distributed Multimedia System using Mosaic +GSQL," Wong, J., Magavi, S., & Bodla, P., Software: Practice & +Experience, 25(11):1223-1242, November 1995.

    + +

     

    + +

    "Design +and Implementation of National Engineering Education Delivery System (NEEDS)," Wong, J., Schmitz, D., & +Nelson, R. Software: Practice & Experience, 24(11):1051-1076, November +1994.

    + +

     

    + +

    "Remote +Database Access in Distributed Computing Environment," Wong, J., Marshall, +W., & Goodman, R. Software: Practice & Experience, 24(4):421-434, April +1994.

    + +

     

    + +

    "Detecting +Unsafe Error Recovery Schedules," Wong, J., & Lutz, R. IEEE +Transactions on Software Engineering, pp. 749-760, August 1992.

    + +

     

    + +

    "An +Efficient Process Migration Algorithm in Distributed Systems," Wong, J., +& Suen, T. IEEE Transactions on Parallel and Distributed Systems, pp. +488-499, July 1992.

    + +
    +
    + +

    Adjunct Faculty

    + +

     

    + +

    SRINIVAS ALURU, Assistant Professor +(Major Appointment in Computer Engineering)

    + +

     

    + +

    B. Tech 1989, Computer Science & Engineering., Indian Institute of +Technology, Madras, India

    + +

    M.S. 1991, Computer Science, Iowa State University

    + +

    Ph.D. 1994, Computer Science, Iowa State University

    + +

     

    + +

    Major +Interests:

    + +

    Parallel models, Algorithms and +Applications, Bioinformatics and Computational Biology, and Scientific +Computing.

    + +

    Internet: aluru@iastate.edu

    + +

     

    + +

    Current +Research:

    + +

    Dr. Aluru is interested in developing +algorithms and software systems for important applications on high-performance +parallel computers and clusters. The primary application areas of target are +computational biology and hierarchical methods in scientific computing. In +computational biology, his research is currently focused on developing parallel +data structures for

    + +

    sequence data, developing intellegent +database schemes for sequence data, parallel algorithms and software for gene +identification using EST data and problems related to structure data. His +scientific computing research is focused on developing distribution-independent +sequential and parallel algorithms based on the hierarchical fast multipole +method, for solving problems in computational electromagnetics. His research is +funded by NSF, ARO and DOE.

    + +

     

    + +

    Representative +Publications:

    + +

    N. Futamura, S. Aluru and D. Ranjan, +"Efficient parallel algorithms for solvent accessible surface area of +proteins, IEEE Transactions on Parallel and Distributed Systems}, to appear.

    + +

     

    + +

    B. Hariharan and S. Aluru, +"Efficient parallel algorithms and software for compressed octrees with +application to hierarchical methods, Proc. 8th IEEE International Conference +on High Performance Computing, Spring Verlag Lecture Notes in Computer Science, +pp. 125-136, 2001.

    + +

     

    + +

    I. Al-furaih, S. Aluru, S. Goil and S. +Ranka, "Parallel construction of multidimensional binary search trees," +IEEE Transactions on Parallel and Distributed Systems, 11(2):136-148, 2000.

    + +

     

    + +

    F. Sevilgen, S. Aluru and N. Futamura, +"A provably optimal, distribution-independent, parallel fast multipole +method," Proc. 14th IEEE International Parallel and Distributed +Processing Symposium, pp. 77-84, 2000.

    + +

     

    + +

    S. Aluru and F. Sevilgen, "Dynamic +compressed hyperoctrees with application to the N-body problem, Proc. 19th +International Conference on Foundations of Software Technology and Theoretical +Computer Science, Springer Verlag Lecture Notes in Computer Science, +1738:21-33, 1999.

    + +

     

    + +

    F. Sevilgen and S. Aluru, "A +unifying data structure for hierarchical methods, Proc. IEEE/ACM +Supercomputing Conference, http://www.sc99.org., 1999.

    + +

     

    + +

    S. Aluru, G.M. Prabhu, J. Gustafson and +F. Sevilgen, "Distribution-independent hierarchical algorithms for the +N-body problem," Journal of Supercomputing, 12:303-323, 1998.

    + +

     

    + +

    S. Aluru, "Lagged Fibonacci random +number generators for distributed memory parallel computers," Journal of +Parallel and Distributed Computing, 45(1):1-12, 1997.

    + +

     

    + +

    I. Al-furaih, S. Aluru, S. Goil and S. +Ranka, "Practical algorithms for selection on coarse-grained parallel +computers," IEEE Transactions on Parallel and Distributed Systems, +8(8):313-324, 1997.

    + +

     

    + +

     

    + +

     

    + +

    JOHN +PETER BOYSEN, Senior Systems Analyst, Academic Information +Technologies, and Adjunct Assistant Professor, Computer Science

    + +

     

    + +

    B.S. 1969, Physics, University of Florida

    + +

    M.S. 1976, Computer Science, Iowa State +University

    + +

    Ph.D. 1979, Computer Science, Iowa State +University

    + +

     

    + +

    Major +Interests:

    + +

    Instructional +use of computers, programming languages, object-oriented programming.

    + +

     

    + +

    Current +Research:

    + +

    Current research +involves the development of instructional applications for the Internet. Projects include Java Instructional simulations +in meterology and mathematics and the +Ecademy system which is a Java-based Instructional Management System used in +the creation and delivery of Web-based instructional classes.

    + +

     

    + +

    Representative +Publications:

    + +

    ClassNet: +Managing the Virtual Classroom Boysen, P., & Van Gorp, M., (1997). +International Journal of Educational Telecommunications, 3(2/3):279-292.

    + +

     

    + +

    "Interactive +Computer Graphics in the Study of Human Body Planar Motion Under Free Fall +Conditions, Boysen, P., Francis, P., & Thomas, R. (1997). +Journal of Biomechanics, 10:783-788.

    + +

     

    + +

    "Reducing +Object Storage Requirements in a Multi-user Environment, Boysen, P., & +Shah, P., Software-Practice and Experience, 23(3):255-241, March 1993.

    + +

     

    + +

    Using Simulations to Fill Instructional +Gaps, Boysen, P., & Thomas, R. +EDU, 40:8-11, Winter 1986.

    + +

     

    + +

    "A +Taxonomy for the Instructional Use of Computers, Boysen, P., & Thomas, R., +AEDS Monitor, 22(11):12, May/June 1984.

    + +

     

    + +

    "An +Evaluation of the Instructional Effectiveness of a Computer Lesson in +Biomechanics, Boysen, P., & Francis, P. (1982). Research Quarterly for Exercise and Sport, 53(3):232-235.

    + +

     

    + +

    "Them +Bones: The Use of Computer-Assisted Instructional Techniques in the Teaching of +Human Anatomy, Boysen, P., Francis, P., Ciskey, M., & Seastrand, P. The +Computing Teacher, 9(3):11-16, November 1981.

    + +

     

    + +

    "Measuring +Computer Program Comprehension, Boysen, P., & Keller, R. ACM SIGCSE Bulletin, 12:92-102, February +1980.

    + +

     

    + +

     

    + +

    MORRIS CHANG, Associate Professor (Major Appointment in Computer Engineering)

    + +

     

    + +

    Ph.D. 1993, Computer Engineering, North Carolina +State University
    +M.S.E.E. 1986, Electrical Engineering, North Carolina State University
    +B.S.E.E. 1983, Electrical Engineering, Tatung Institute of Technology

    + +

     

    + +

    Major Interest:

    + +

    High +performance object-oriented systems, Computer architecture, Hardware +description languages, Internet architecture, Wireless networks.

    + +

     

    + +

    Current Research:

    + +

    Dr. Chang is interested in studying and +improving the performance of Java systems for server and embedded applications. +For the server applications, his research is focused on developing strategies +for memory management in multithreaded multiprocessors environment. For the +emdedded applications, garbage collection algorithms that lead to low-power +consumption and small memory footprint are studied. His current research +interests also include: distributed object systems,

    + +

    Hardware description languages and +wireless networks. His current research projects are funded by the National +Science Foundation.

    + +

     

    + +

    Selected Publications:

    + +

    C. D. Lo, W. Srisa-an and J. M. Chang, +"A Study of Page Replacement Performance in Garbage Collection Heap", +The Journal of Systems and Software, 58:235-245, Elsevier Science, 2001.

    + +

     

    + +

    G. Koutsogiannakis, and J. M. Chang, +"Java Distributed Object Models: An Alternative to Corba?" , IEEE IT +Professional, 4(3):41-47, June 2002.

    + +

     

    + +

    W. Srisa-an, C. D. Lo, and J. M. Chang +"Performance Enhancements to the Active Memory System ", Proceedings +of IEEE International Conference on Computer Design, (ICCD 2002), Freiburg, +Germany, September 16-18, 2002, pp. 249-256.

    + +

     

    + +

     

    + +

     

    + +

    CAROLINA CRUZ-NEIRA, Associate Professor of Industrial & Manufacturing Systems +Engineering and Associate Director of the Virtual Reality Applications Center +(Major Appointment in IMSE)

    + +

     

    + +

    Ph.D. 1995, Electrical Engineering & Computer +Science, Electronic Visualization Laboratory, University of Illinois at Chicago
    +M.S. 1991, Electrical Engineering & Computer Science, Electronic +Visualization Laboratory, University of Illinois at Chicago
    +B.S. 1987, Cum Laude, Systems Engineerng. Universidad Metropolitana de Caracas, +Venezuela
    +
    +

    + +

    Areas of Interest:
    +
    Virtual reality, high-speed networks, software engineering and interactive +computer graphics.
    +
    +Current Research:
    +
    Her research focuses on the development of tools, such as +distributed software , engineering, and artistic virtual reality applications.
    +
    +Selected Publications (* denotes students)
    +
    Bierbaum, A*, Just, C*., Hartling, P*., and Cruz-Neira, C., "VR +Juggler: A vVirtual Platform for Virtual Reality Application Development, IEEE +VR 2000 Conference. Yokohama, Japan, March 2001
    +
    +Cruz-Neira, C., Lindahl, G. "A +Voyage into Virtual Reality: Networking Our VR Lab to Iowa Middle Schools and +High Schools." IEEE Computer +Graphics and Applications. March 2000, pp. 16-19.
    +
    +Cruz-Neira, C., and Lutz, R. "Using +Virtual Environments for Certification." +IEEE Software, July/August 1999. pp.26-30.
    +
    +Nelson, L.*, Cook, D., and Cruz-Neira, C. "XGobi vs. the C2: Results of an +Experiment Comparing Data Visualization in a 3-D Immersive Virtual Reality +Environment with a 2-D Workstation Display." Journal of Computational Statistics. Special Issue on the Use of +Interactive Graphics. January 1999. pp.441-450.
    +
    +

    + +
    +
    + +

    RICKY A. KENDALL, Adjunct +Associate Professor of Computer Science, Scientist Ames Laboratory

    + +

     

    + +

    B.S. 1983, Chemistry, Indiana State University

    + +

    Ph.D. 1988, Theoretical and Computational +Chemistry, University of Utah

    + +

     

    + +

    Major Interests:

    + +

    The encompassing theme of Dr. +Kendall's research is to make the development of high performance applications +on parallel and distributed computing platforms more facile. His interests include asynchronous +communications software, parallel I/O, application domain specific APIs, e.g., +targeted software engineering, and general application of parallel and +distributed algorithms.

    + +

     

    + +

    Current Research:

    + +

    Currently Dr. Kendall and his students +are focused on four main projects that include the development of a +generalized, portable SHMEM library that provides asynchronous one-sided +communication protocols (e.g., put and get operations) to applications across a +wide spectrum of computational resources. +Another area is the development of a parallel I/O mechanisms that are +also asynchronous on cluster based systems so that the disk facilities of +cluster computers can meet the performance requirements of high performance +applications. The third focus area is +the development of a generic compression library that puts state-of-the-art +compression algorithms behind a user friendly API for scientific application developers. It will provide a means of addressing +sparsity in many application domains. +The fourth area is utilizing mixed mode programming models (thread based +algorithms mixed with either message passing or distributed shared memory) to +address the architectural designs of emerging clusters and large MPP +supercomputers.

    + +

     

    + +

    Representative Publications:

    + +

    K. Parzyszek, J. Nieplocha and R. A. +Kendall, "A Generalized Portable SHMEM Library for High Performance +Computing", Proceedings of the IASTED Parallel and Distributed Computing +and Systems 2000, Las Vegas, Nevada, November 2000, (M. Guizani and X. Shen, +Eds.), pp. 401-406. IASTED, Calgary (2000).

    + +

     

    + +

    B. Bode, D.M. Halstead, R. Kendall, Z. +Lei, and D. Jackson, "The Portable Batch Scheduler and the Maui Scheduler +on Linux Clusters," Proceedings from the 4th Annual USENIX Extreme Linux +Conference, pp. 217-224 (2000).

    + +

     

    + +

    R.A. Kendall, E. Apra, D.E. Bernholdt, +E.J. Bylaska, M. Dupuis, G.I. Fann, R.J. Harrison, J. Ju, J.A. Nichols, J. +Nieplocha, T.P. Straatsma, T.L. Windus, and A.T. Wong, "High Performance Computational +Chemistry; an Overview of NWChem a Distributed Parallel Application," +Computer Physics Communications, 128:260-283 (2000).

    + +

     

    + +

    I. Foster, J. Nieplocha, and R.A. +Kendall "ChemIO: High-Performance Parallel I/O for Computational Chemistry +Applications," The International Journal of High Performance Computing +Applications, 12:345-363, (1998).

    + +

     

    + +

    R.A. Kendall "High Performance +Computing in Chemistry and Massively Parallel Computers: A Simple +Transition?," International +Journal of Quantum Chemistry: Quantum Chem. Symposium, 27:769 (1993).

    + + + +

     

    + +
    +
    + +

    SURESH C. KOTHARI, Professor (Major +Appointment in Computer Engineering)

    + +

     

    + +

    B.S. 1970, Mathematics, Poona +University, India

    + +

    M.S. 1972, Mathematics, +Poona University, India

    + +

    Ph.D. 1977, Mathematics, Purdue +University

    + +

     

    + +

    Major Interests:

    + +

    Software +Engineering, Parallel and Distributed Computing, Computational Science, +Bioinformatics.

    + +

     

    + +

    Current Research:

    + +

    Our +research is system oriented. The thrust areas are: (i) knowledge-centric +software engineering environment with applications to development of software +productivity tools and automatic code generation problems such as automatic +parallelization, (ii) distributed computing environments, (iii) computational +biology and computational science.

    + +

     

    + +

    Representative Publications:

    + +

     

    + +

    Kalayanaraman, +S. Aluru, S. C. Kothari, Space and Time Efficient Parallel Algorithms and +Software for EST Clustering, International Parallel and Distributed Processing +Symposium (IPDPS), Workshop on High Performance Computational Biology (HiCOMB), +April 2002 (to appear).

    + +

     

    + +

    Murali +Ravirala, S. Sivasubramanian, S. C. Kothari, Resource-Aware Real-Time CORBA in +Multi-server Distributed Environment, International Parallel and Distributed +Processing Symposium (IPDPS), Workshop on Parallel and Distributed Real-Time +Systems (WPDRTS), April 2002 (to appear).

    + +

     

    + +

    Deng +Y., Kothari S., Namara Y., Program Slice Browser, 9th International Workshop on +Program Comprehension, Toronto, May 2001.

    + +

     

    + +

    Mitra +S., Kothari S., Cho J., Krishnaswamy A., ParAgent: A domain-specific automatic +parallelization tool. Proceedings of High Performance Computing Conference, +India, December 2000.

    + +

     

    + +

    Tandiary +F., Kothari S.C., Dixit A., Anderson W., "Batrun: Utilizing Idle Workstations for Large-Scale +Computing," Kothari, S.C. IEEE +Parallel and Distributed Technology, 4-2:41-49, 1996.

    + +

     

    + +

    Kothari, +S., K. Subramanian, and D. Heller, Active message communication package for +PVM. Journal of Parallel and +Distributed Processing, pp. 146-52, 1996.

    + + + +

     

    + +
    +
    + +

    SIMANTA +MITRA, Adjunct Assistant Professor of Computer +Science

    + +

     

    + +

    Ph.D. 1997, Computer Science, Iowa State University, +Ames

    + +

    M.S. 1991, Computer Science , Iowa State University, +Ames

    + +

    B.E. 1987, Computer Science and Technology, Calcutta +University, India

    + +

     

    + +

    Major +Interests:

    + +

    Software Engineering, Programming +Languages, Compilers, Parallelizing Tools,

    + +

    And Performance Evaluation of Computer +Systems.

    + +

     

    + +

    Representative +Work:

    + +

     

    + +

    Patents

    + +

    U.S. Patent for "An apparatus and +method for parallelizing legacy computer codes". Patent No: 6,339,840 +issued 01/15/2002.

    + +

     

    + +

    U.S. Patent for "An apparatus and +method for parallelizing legacy computer codes". Patent No: 6,243,863 +issued 06/05/2001.

    + +

     

    + +

    U.S. Patent for "Method for +efficient soft real-time execution of portable byte code computer +programs". Patent No: 6,081,665 issued 06/27/2000.

    + +

     

    + +

    Papers

    + +

    S.C. Kothari, J. Cho, Y. Deng, S. Mitra, +et al, Software Tools and Parallel Computing for Numerical Weather Prediction +Models, in proceedings of Workshop on parallel and distributed scientific and +engineering computing with applications at International Conference on Parallel +and Distributed Processing, 2002.

    + +

     

    + +

    Simanta Mitra, Suraj C. Kothari, Jaekyu +Cho, and Aravind Krishnamurthy, "ParAgent: A domain-specific automatic +parallelization tool", Proceedings of the High Performance Computing +Conference, Lecture Notes in Computer Science, 1970:141-149, India, Dec 2000.

    + +

     

    + +

    Yunbo Deng, Suraj Kothari, Lisbeth Meum, +Yogy McNamara, Jaekyu Cho, and Simanta Mitra: ParAgent: A software +reengineering tool for parallel computing, IASTED 12th International Conference +on Parallel and Distributed Computing and Systems, pp. 658-664,Las Vegas, +November 2000.

    + +

     

    + +

    Simanta Mitra, "Real-Time extensions +fill a need", EE Times, Sep 19, 1999.

    + +

     

    + +

    Kelvin Nilsen, Simanta Mitra, S. +Sankaranarayana, and V. Thanuvan, "Asynchronous Java exception handling in +a real-time context", In proceedings of the IEEE workshop on programming +languages for real-time industrial applications, Madrid, Spain, Dec 1998.

    + +

     

    + +

    Simanta Mitra, Suraj C. Kothari, +Parallelization Agent: A new approach to parallelization of legacy codes, +Eighth SIAM conference on Parallel Processing for Scientific Computing, March +1997.

    + +

     

    + +

    Suraj C. Kothari, Simanta Mitra, +"Analysis of Computational Balance of Parallel Numerical Algorithms", +Eighth SIAM conference on Parallel processing for Scientific Computing, March +1997.

    + +

     

    + +

    Suraj C. Kothari, Simanta Mitra, "A +scalable 2D parallel sparse solver", Seventh SIAM conference on parallel +processing for scientific computing, pp. 424-429, Feb 1995.

    + +

     

    + +
    +
    + +

    AKHILESH TYAGI, Associate +Professor (Major Appointment in Computer Engineering)

    + +

     

    + +

    B.Tech. 1981, +Electrical Engineering, Birla Institute of Technology & Science, Pilani, +India.

    + +

    M.Tech. 1983, Computer +Engineering, Indian Institute of Technology, New Delhi, India.

    + +

    Ph.D. 1988, Computer +Science, University of Washington

    + +

     

    + +

    Major Interests:

    + +

    Computer Architecture, VLSI: +Complexity Theory, Low Energy VLSI Design Synthesis.

    + +

     

    + +

    Current Research:

    + +

    My architecture research interests are in exploiting +instruction-level-parallelism (ILP) both with the microarchitecture and +compiler. One of the current projects uses branch decoupling to achieve that. +In another thread, we are employing reconfigurable caches that can work both as +on-chip memory and function units to speed up the processor. We are also +exploring microarchitecture level support for computer security. The current +focus is on protecting the program pointers through a combination of +microarchitecture and compiler actions.

    + +

     

    + +

    In VLSI research, we are developing a function-level model of energy +consumption. We are also researching low power VLSI design issues particularly +when applied to processor design.

    + +

     

    + +

    Representative +Publications:

    + +

    "A Trace Based Evaluation of Speculative Branch Decoupling", +{\it with} A. Nadkarni, {\it Proceedings of IEEE International Conference on +Computer Design} (ICCD) 2000.

    + +

     

    + +

    "Dynamic Branch Decoupled Architecture'', {\it with} H.C. Ng and P. +Mohapatra, {\it Proceedings of IEEE International Conference on Computer Design +(ICCD)}, October 1999.

    + +

     

    + +

    "Hybrid Data/Configuration Caching for Striped FPGAs'', {\it with} +D. Deshpande and A. Somani, in {\it Proceedings of

    + +

    IEEE International Symposium on Field Programmable Custom Computing +Machines}, April 1999.

    + +

     

    + +

    "On Reconfiguring Cache for Computing'', {\it with} H-S. Kim and A. +Somani, in {\it Proceedings of IEEE International Symposium on Field +Programmable Custom Computing Machines}, April 1999.

    + +

     

    + +

    "Configuration Caching Vs Data Caching for Striped FPGAs'', {\it +with} D. Deshpande and A. Somani, in {\it Proceedings of ACM International +Symposium on FPGAs}, pp 206-214, ACM Press, February 1999.

    + +

     

    + +

    Reduced Address +Bus Switching with Gray PC, with F. Jensen, in {\it Proceedings of Power Driven Microarchitecture Workshop at International +Symposium on Computer Architecture}, ACM Press, June 1998.

    + +

     

    + +

    Entropic Limitations on Finite State Machine +Switching', Tyagi, A., IEEE Transactions on VLSI Systems, 5:4, pp. 456-464, +December 1997.

    + +

     

    + +

    Efficient Parallel +Algorithms for Optical Computing with the DFT Primitive', with J. Reif, in +{\it Applied Optics}, 36:29, pp. 7327-9340, Optical Society of America, October +1997.

    + +

     

    + +

    Branch Decoupled Architectures, Tyagi, A. Proceedings of Workshop on Interaction +Between Compilers and Computer Architectures at IEEE High Performance Computer +Architecture Symposium. A summary to +appear in IEEE TC on Computer Architecture Newsletter, pp. 13-15, June 1997.

    + +

     

    + +

     

    + +
    + + + + diff --git a/hridesh/gradadm/FacultySearchClosed Ltr.pdf b/hridesh/gradadm/FacultySearchClosed Ltr.pdf new file mode 100755 index 0000000..2f6e3f2 Binary files /dev/null and b/hridesh/gradadm/FacultySearchClosed Ltr.pdf differ diff --git a/hridesh/gradadm/Graduate Admissions Portal.url b/hridesh/gradadm/Graduate Admissions Portal.url new file mode 100644 index 0000000..753db7b --- /dev/null +++ b/hridesh/gradadm/Graduate Admissions Portal.url @@ -0,0 +1,7 @@ +[DEFAULT] +BASEURL=http://www.grad-college.iastate.edu/admissions/portal.html +[InternetShortcut] +URL=http://www.grad-college.iastate.edu/admissions/portal.html +IDList= +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,2 diff --git a/hridesh/gradadm/INTERNSHIP COURSES.msg b/hridesh/gradadm/INTERNSHIP COURSES.msg new file mode 100644 index 0000000..9a98a1a Binary files /dev/null and b/hridesh/gradadm/INTERNSHIP COURSES.msg differ diff --git a/hridesh/gradadm/LetterRec.htm b/hridesh/gradadm/LetterRec.htm new file mode 100755 index 0000000..5b209fb --- /dev/null +++ b/hridesh/gradadm/LetterRec.htm @@ -0,0 +1,238 @@ + + + + + + + + +Iowa State University Letter of Recommendation for Graduate Admission +and Awards + + + + + + +
    + +

    Iowa State University Letter of Recommendation for Graduate Admission and +Awards

    + +
    Applicant's Name (Please Print) __________________________________________________________________________ +
    + +

    Applicant's +Address___________________________________________________________________________________ +

    + +

    Proposed +Department of +Study__________________________________________________________________________ +

    + +

    Person Writing +Letter (Please +Print Name) +__________________________________________________________________

    + +


    +(___) I waive the right given me by the Family Education Rights and Privacy Act +of 1974 to view this confidential letter of recommendation in my file at the +Computer Science program, Iowa State University.

    + +

    (___) I do not +wish to waive this right.

    + +
    Signature of +Applicant_________________________________________________Date____________________________ +
    + +
    To Applicant: Please complete the items above and give this form to an +individual well acquainted with your education and abilities.
    + +

    To Writers of +Letters of Recommendation: Please comment in detail regarding the applicant's +potential for graduate study and the basis for your judgment. We are +particularly interested in your assessment of this student's ability and +motivation to carry on advanced study and research, evidence of creative +talent, ability to speak and write English clearly, and promise for a +successful career. We are also interested in his/her potential as a possible +teaching or research assistant. Use the reverse side if necessary. (Because +Iowa State University is in compliance with Section 504 of the Rehabilitation +Act of 1973 we discourage you from referring directly or indirectly to an +applicant's handicap.)

    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
     
    + +
    Out of approximately _____________ persons I have taught/advised at this +educational level during the past _______ years, I would rank this applicant in +the upper _____ percent on the basis of +potential to achieve a graduate degree.
    + +

    Signature_______________________________________________________ +Date ________________________________

    + +

    Title/Position_________________________________________________________________________________________ +

    + +

    Institution/Organization +and Address__________________________________________________________________
    +
    +

    + +

    Note: Mail this form directly to Computer Science, 226 Atanasoff Hall, +Iowa State University, Ames, Iowa 50011-1040. (Please do not send this form to +the Admissions Office.)

    + +
    + + + + diff --git a/hridesh/gradadm/MSrequirements.txt b/hridesh/gradadm/MSrequirements.txt new file mode 100755 index 0000000..353fd29 --- /dev/null +++ b/hridesh/gradadm/MSrequirements.txt @@ -0,0 +1,67 @@ +Requirements for the M.S. Degree in Computer Science + +These requirements are for preparing the program of study (POS) which must be +approved by the POS committee and the Graduate College. Departure from these +requirements can be made provided appropriate approval is obtained from the +departmental Graduate Committee. + +1. Course and credit requirements for M.S. degree (a minimum of 31 credits) +including: +a. 15 credits: Core courses 511, 531, and 3 courses from the following set: +512, 524, 526, 541, 542, 552, 561, 572, 586. +b. A breadth requirement to include two of the following areas (as long as the +courses have not been used to satisfy the requirements in part a and at least one +of the two is a 600 level course): +512, 518x, 524 (or 624), 526, 540 (or 542), 541 (or 641), 552 (or 652), 554 (or +586), 561 or (661), 572 (or 672 or 673), 576x, 582, 587x, 594x, 611 (or 612), +625, 631 (or 632 or 633) +c. ComS 591 (1 credit) must be taken in the students first fall semester or be +replaced with 3 credits of ComS 610. +d. 3 credits of 599 (creative component) or 6 credits of 699 (thesis). +e. 1 to 6 elective credits (depending on c and d). Elective credits in Computer +Science (500 level or above excluding 599 and 699) or other fields (must be +available for graduate minor credit). ComS 610 fits here unless used to fulfill +item 1c above. +2. Grade requirements for M.S. degree +a. A grade of B- or better in each course in 1a. +b. An average grade point of 3.0 or above over all the courses in 1a and 1b. +c. A maximum of 2 C's (C, C+) and no grade below a C on the POS. +3. Creative Component of the M.S. degree +a. Non-thesis option: 3 credits identified as ComS 599 culminating in the +preparation of a formal paper. +b. Thesis option: 6 credits of research identified as ComS 699 culminating in the +preparation of a thesis. +Regardless of the option, a final oral examination is required. The emphasis is on +the creative component or thesis. +4. Guidelines for writing the M.S. creative component or thesis + +M.S. Creative Component: + +a. Creative effort is reflected in 3 credits earned through ComS 599 (Graduate +College requirement.) +b. The topic should be chosen in consultation with the Major Professor. It should +be developed in terms of the current literature and written so as to exhibit the +student's understanding of the issues. +c. The paper should be in a form suitable for submission for publication. +Emphasis is placed upon clear writing, logical development, and significance of +understanding. +d. One copy of the paper should be submitted to each member of the POS +committee two weeks before the final M.S. examination, and the student's +examination will include questions on the paper. A bound copy of the paper +must be filed with the departments graduate secretary before approval for +graduation will be granted. + +M.S. Thesis: + +a. Effort involved should approximate 6 credit hours (ComS 699). +b. A research topic should be chosen in consultation with the Major Professor. +The result of the research is to be an original contribution to the field of +Computer Science. The thesis will include a thorough literature search and +review. +c. The thesis must be written in the form prescribed by the Graduate College +Thesis Manual. A first deposit needs to be submitted to the Graduate College +Thesis Office five to six weeks (set date will be posted) before the last date for +final oral exam. Two weeks prior to the final examination, one copy is +submitted to each member of the POS Committee. Two final copies need to be +submitted to the Graduate College Thesis Office, and one copy to the +departments graduate secretary before graduation is approved. diff --git a/hridesh/gradadm/QA b/hridesh/gradadm/QA new file mode 100755 index 0000000..0e2c377 --- /dev/null +++ b/hridesh/gradadm/QA @@ -0,0 +1,4 @@ +Common Questions from Admitted Graduate Students

    + +In Progress + diff --git a/hridesh/gradadm/Recruitment.LNK b/hridesh/gradadm/Recruitment.LNK new file mode 100755 index 0000000..89c0553 Binary files /dev/null and b/hridesh/gradadm/Recruitment.LNK differ diff --git a/hridesh/gradadm/Sp02RegisCkLst.pdf b/hridesh/gradadm/Sp02RegisCkLst.pdf new file mode 100755 index 0000000..04ff441 Binary files /dev/null and b/hridesh/gradadm/Sp02RegisCkLst.pdf differ diff --git a/hridesh/gradadm/Transfer Credit Evaluation Procedures.doc b/hridesh/gradadm/Transfer Credit Evaluation Procedures.doc new file mode 100755 index 0000000..9c55a06 Binary files /dev/null and b/hridesh/gradadm/Transfer Credit Evaluation Procedures.doc differ diff --git a/hridesh/gradadm/admitted.html b/hridesh/gradadm/admitted.html new file mode 100755 index 0000000..f14a304 --- /dev/null +++ b/hridesh/gradadm/admitted.html @@ -0,0 +1,85 @@ + +Information for Admitted Students + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +
    +

    Spring 2003 Admitted Students

    +
    +Mentors +

    +

  • Faculty Mentor -- Each admitted student who indicated a research area has been given at least one faculty mentor. Once you arrive at ISU, a Computer Science faculty person will be assigned as your temporary advisor until a Major Professor is chosen. +

    +

  • GAC Mentor -- Students who have indicated they will attend ISU have been assigned a Graduate Advisory Committee (GAC) student who will help answer their questions before and after their arrival at ISU. Please direct any personal and academic questions to these students. They are very helpful and knowledgeable. +

    +Teaching Assistantships +

    +We have filled teaching assistantship positions for Fall 2002. However, this is an ongoing process and it is possible we will more openings as the summer progresses. +

    +

  • Speak-Teach Program -- Teaching Assistants are required to take the Speak-Teach oral proficiency testing and complete training if needed. Students must first register to take the examination. Computer Science will send the name of new TA's to SpeakTeach. These students are given priority in testing. They will not administer the test to students who will not become a TA. +

    +

  • Teaching Assistant Handbook -- This handbook is filled with useful information for ISU TA's. Hard copies may be picked up at the Speak-Teach Office, 201 Lab of Mechanics. +

    +

  • College Teaching Seminar -- Every Fall the Center for Teaching Excellence offers the College Teaching Seminar to all new Teaching Assistants. Please register at http://wss07.ait.iastate.edu/signup.php. +

    + +Research Assistantships +

    +A limited number of research assistantship positions may be awarded. These have been negotiated between the student and the professor who is providing the funding. +

    +Arrival at ISU +

    +

  • Transportation -- +International students may be able to find transportation from the Des Moines Airport to Ames and other help through Multicultural Student Organizations. Contact the appropriate group. +

    +

  • Students can also use the local bus service, CyRide, for transportation at the beginning and end of each semester. The CyRide homepage also contains the bus schedules and maps for Ames. +

    + +Computer Science Check-in -- +

    +When you first arrive at ISU, please come to see Melanie in 226 Atanasoff Hall. You will receive a New Student Checklist to help guide through the entry process. + +

    +International Students +

    +

  • International Education Services provides many resources for international students. Their web pages are very helpful throughout your time at ISU. +

    +

  • Medical Testing -- Tuberculosis and Measles testing is required for international students. Testing is conducted at Student Health Center. Students can also sign up for health insurance at the same time. For more information, contact Amy Mukamuri at aklm@iastate.edu. +

    +Orientations +

    +

  • International Student Orientation will be held in the Memorial Union from January __ through January __. +

    +

  • 2003 Graduate College New Student Orientation -- January _____ from 8:30 a.m. to 12 noon +

    +

  • Computer Science Graduate Advisory Committee (GAC) New Student Orientation -- Thursday, January 9, Noon to 2:00 p.m. in B29 Atanasoff Hall. ALL new students need to be at this orientation. +

    +English Examinations +

    +

  • The Graduate English Exam is for native English speakers. +

    +

  • The English Placement Exam is for non-native speakers. +

    +

    +Common Questions & Answers + + + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/advising.shtml b/hridesh/gradadm/advising.shtml new file mode 100755 index 0000000..69062b5 --- /dev/null +++ b/hridesh/gradadm/advising.shtml @@ -0,0 +1,83 @@ + + +Undergraduate Advising + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + +
     
      
     
    +
    + + + + + + + + + + + + + + + + +
     
      
     
    +
    + + + + + + + + + + + + + + + + +
     
      + +  
     
    +
    Copyright© 2002, Department of Computer + Science, Iowa State University. All rights reserved.
    +
    Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA + 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258
    + + diff --git a/hridesh/gradadm/application.html b/hridesh/gradadm/application.html new file mode 100755 index 0000000..83bef9c --- /dev/null +++ b/hridesh/gradadm/application.html @@ -0,0 +1,182 @@ + +Application Form for Graduate Program in Computer Science + + +

    Application Guidelines can be found at + +

    Application for Admission +
    Computer Science Graduate Program +
    Iowa State University
    + +

    The following summary information is used to accelerate the review and admission process. Official admission to the university and offer of financial support are contingent on formal admission to the Graduate College. If you do not wish to fill out this online form, please complete the downloadable application form and return it together with the accompanying materials to: + +

    +
    Graduate Admissions +
    Department of Computer Science +
    226 Atanasoff Hall +
    Iowa State University +
    Ames, IA, 50011-1040
    + +

    + +

    + + + + + + + + + +
    1. Name
    (family) (first) (middle)
    2. Address
    (street) (city) (state) (zip)
    Country
    3. Country of
    Citizenship
    4. Email
    5. Telephone
    (work) (home)
    Fax
    6. Degree Sought M.S.Ph.D. +
    (Note: an M.S. is not a prerequisite for a Ph.D.)
    Desired Starting Date +
    + +

    + + + + +
    7. Personal identification informationRacial/ethnic information
    (U.S. citizens only-optional)
    Visa/Immigration status
    (Non-U.S. citizens only)
    Gender Male Female +

    Date of birth (mo/day/yr) +
    +
    Country of birth +

    American Indian/Alaskan Native +
    African American +
    White (non-Hispanic) +
    Asian American/Pacific Islander +
    Hispanic
    Permanent resident +
    Other
    + +

    8. Is English your first language? No Yes + +

    9. Educational Background + + + + + + + + + + + + + +
    Institution (and country) Degree Major Date
    Institution (and country) Degree Major Date
    Institution (and country) Degree Major Date
    + +

    10. Grade Point Averages and Test Scores + + + + + + + + + +
    B.S./B.A. (GPA) on a scale of in Major Class rank (if available)
    M.S. (GPA) on a scale of in Major Class rank (if available)
    + +

    + + + + + + + + +
    GRE Scores
    (score, percent)
    Verbal
    Quantitative
    Analytical
    Total
    Subject Score (score, percent)
    Date GRE will be taken
    + +

    TOEFL (non-native English speakers only) +
    (Note: both GRE and TOEFL scores are required for international applicants.) + +

    11. Transcripts and Test Scores +
    Please attach photocopies of your transcripts, GRE scores, and TOEFL scores (if required). Indicate any courses you currently are taking or expect to take before completion of your degree. Official transcripts and test reports should be received before you can be admitted. + +

    12. References +
    Please ask three individuals familiar with your qualifications to send letters of recommendation directly to + +

    Bioinformatics and Computational Biology +
    2014 Molecular Biology Building +
    Iowa State University +
    Ames, IA, 50011-3260
    + +

    Please list your references below. + + + + + + + + + + + + + +
    Name Address Phone Email
    Name Address Phone Email
    Name Address Phone Email
    + +

    13. Statement of Professional Goals +
    On a separate page, provide a written statement of your reasons for wanting to undertake graduate study, the specific research areas that interest you and your plans for after completion of your degree. +
    + +

    14. Statement of Previous Research Experience and Publications +
    On a separate page(s), please describe any research experiences, publications, scholarships, honors, awards or other special accomplishments or circumstances that you would like the admissions committee to consider. You may attach a resume or curriculum vitae if desired. +
    + +

    15. Research Interests +
    If there are individual faculty whose research particularly interests you, please list their names below: +
    + +

    +
    + +

    18. Contact Us +
    BCB encourages you to communicate with us regarding the status of your application at any time. As you have questions about the program, about the university, or about the admissions process, please email, write or phone. + +

    Checklist for application to the Bioinformatics and Computational Biology graduate program: +

      +
    • Completed Application Summary Form (this form)
    • +
    • Photocopy of Transcript (in English)
    • +
    • Photocopy of GRE scores and TOEFL scores
    • +
    • Three (3) recommendations with Confidential Report Form
    • +
    • Statement of professional goals
    • +
    • Statement of previous research experience and publications
    • +
    + +

    Email address for Bioinformatics and Computational Biology graduate program: +bioinformatics@iastate.edu + +

    Web address for graduate majors at Iowa State University: +http://www.grad-college.iastate.edu/programs/programs.html + + + + +

    URL: http://www.grad-college.iastate.edu/bioinformatics/application.html +
    Copyright © 1999, Iowa State University, all rights reserved. + + + diff --git a/hridesh/gradadm/applying-temp.html b/hridesh/gradadm/applying-temp.html new file mode 100755 index 0000000..710e418 --- /dev/null +++ b/hridesh/gradadm/applying-temp.html @@ -0,0 +1,107 @@ + +Applying to the Graduate Program in the Department of Computer Science + + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +
    +

    Applying for Admission to Graduate Program in Computer Science

    +
    + + +Thank you for your interest in graduate program in Computer Science +at Iowa State University. Before you apply for admission, please read +and complete the Self Evaluation Form which is available +at http://www.cs.iastate.edu/gradadm/preapp.html and satisfy yourself that you meet the admission criteria. +

    +The Computer Sciences Department considers applicants for graduate study twice a year. To be considered for admission in Fall semester admission, we must receive your complete application (all of the items below) by January 15 and for Spring semester admission, we must receive your complete application by September 1. We will inform you of our decision by April 15 for Fall admission and October 30 for Spring Admission.

    +

    If you are interested in our program and would like to receive more information, please fill out and submit an information request form here. +

    +It is now possible to receive application materials electronically. University application +materials from the Graduate College can be obtained from the +Applications Section and application materials from the Computer Science Department can be obtained from http://www.cs.iastate.edu/gradadm/index.html. +

    +Iowa State University is now using a Self-Managed Application Procedure for graduate applications. The checklist can be found at https://www.applyweb.com/apply/isu/grad_checklist.pdf. +

    +International students need to send ALL materials including the Self-Managed Application Checklist to Graduate Admissions, Iowa State University, 100 Alumni Hall, Ames, IA 50011-2011. Click here for instructions for international applicants. +

    +U.S. Citizens and Permanent Residents need to send ALL application materials to Graduate Admissions, Computer Science Department, 226 Atanasoff Hall, Ames, IA 50011-1041. +

    + +The information that Computer Science requires in addition to the information listed on the Self-Managed Application Checklist includes: +

    +COURSE EVALUATION FORM (GRADUATE APPLICANT SELF EVALUATION FORM): This departmental form can be obtained from http://www.cs.iastate.edu/gradadm/preapp.html. This form must be complete and include the grade, mark, score, or percentage received in the courses listed. Your application will not be reviewed if this form is not completed. This form can be mailed with your other application materials. +

    +It can also be copied and pasted into a word processing program, then completed, and returned by email to grad_adm@cs.iastate.edu. +

    +Helpful information that is not required includes: +

    +RESUME: A 1-2 page resume listing the applicant's education, work experience, internships, etc. is helpful to the review process. +

    +Further explanation of required application documents. +

    +STATEMENT OF PURPOSE: A brief essay, no more than one page, about why you are interested in graduate study in Computer Science, your research interests, and what you propose to do with a graduate degree in Computer Science.

  • +

    +LETTERS OF RECOMMENDATION: We require three letters of recommendation from individuals (typically professors who are familiar with your work) in support of your application. Please use one Letter of Recommendation Form for each recommendation. The form may also accompany a recommendation written on the recommender's official letterhead. The recommendation letter may also be sent in without the form. Make sure your full name is written in the recommendation letter. These letters can be sent with the Self-Managed Application materials. If they are not sent as part of the Self-Managed Application, please send directly to Graduate Admissions, Computer Science Department, 226 Atanasoff Hall, Ames, IA 50011-1040. +

    +GRE SCORES: Official Quantitative, Analytical, and Verbal GRE scores are REQUIRED for all applicants. Advanced (subject) GRE in Computer Science is not required, but applicants are encouraged to submit advanced GRE scores. +Since it takes approximately 4-6 weeks for the official copy of your test +scores to reach ISU, please take your test early enough to allow the scores to +reach ISU prior to the application deadline. +If you designate Iowa State University as one of the institutions to +which scores must be sent by ETS (while making arrangements to take the test), the scores go +directly to the Graduate Admissions Office. Official scores must be received before the application is evaluated. You can include a photocopy in your application materials, but official scores are required for review. We will use any official score from ETS. +Information about GRE can be found at http://www.gre.org/. +

    +TOEFL SCORES: All applicants who completed part or all of their education in countries where English is not the ONLY official language are required to provide TOEFL scores. For applicants who are required to take TOEFL, Test of Spoken English (TSE) scores are also recommended although not required. Both are offered by the Educational Testing Service. Official scores must be sent to us by ETS. Information on TOEFL can be found at http://www.toefl.org. +Since it takes approximately 4-6 weeks for the official copy of your test +scores to reach ISU, please take your test early enough to allow the scores to +reach ISU prior to the application deadline. +If you designate Iowa State University as one of the institutions to +which scores must be sent by ETS (while making arrangements to take the test), the scores go +directly to the Graduate Admissions Office. Graduate Admissions requires official (original) TOEFL before the application is complete and can be forwarded to Computer Science for review. +

    +Application Status +

    +Each Computer Science applicant will be assigned an application tracking number which will be communicated to applicants who provide an email address when they apply to the Graduate Program in Computer Science. Applicants should note this number and save it for future reference. +

    +If your application is completed before the deadline, it can take 2-3 months +for the application to be evaluated. IF YOU ARE ADMITTED, WE WILL CONTACT YOU AS SOON AS YOUR APPLICATION HAS BEEN EVALUATED AND ADMISSION AND FINANCIAL AID DECISIONS HAVE BEEN MADE. BECAUSE OF THE LARGE VOLUME OF APPLICATIONS THAT NEED TO BE PROCESSED, WE CANNOT RESPOND INDIVIDUALLY TO YOUR EMAIL INQUIRIES CONCERNING THE STATUS OF YOUR APPLICATION. However, you can periodically check the status of your application +which will be noted with the application tracking number at the following links: +

    +Fall 2002 Applications +
    +Spring 2003 Applications +
    +Fall 2003 Applications +

    + +The housing application is not sent (and the processing of the IAP-66 or I-20 +form required for obtaining the necessary U.S. visa for international students +cannot be started) until the student has been formally admitted by the Graduate College. +

    +If a student has deferred admission entry date, please send updated transcripts or job information, an updated Course Evaluation Form, and an up-to-date Statement of Purpose. +

    +Previously denied applications are not reviewed for subsequent semesters without new information: i.e., new GRE with higher scores, additional Computer Science courses taken from a 4-year university, additional letters of recommendation, updated transcripts, etc. +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + +Last updated November 7, 2002 + diff --git a/hridesh/gradadm/applying.html b/hridesh/gradadm/applying.html new file mode 100755 index 0000000..851330a --- /dev/null +++ b/hridesh/gradadm/applying.html @@ -0,0 +1,102 @@ + +Applying to the Graduate Program in the Department of Computer Science + + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +
    +

    Applying for Admission to Graduate Program in Computer Science

    +
    + + +Thank you for your interest in graduate program in Computer Science +at Iowa State University. Before you apply for admission, please read +and complete the Self Evaluation Form which is available +at http://www.cs.iastate.edu/gradadm/preapp.html and satisfy yourself that you meet the admission criteria. +

    +The Computer Sciences Department considers applicants for graduate study twice a year. To be considered for admission in Fall semester admission, we must receive your complete application (all of the items below) by January 1 and for Spring semester admission, we must receive your complete application by September 1. We will inform you of our decision by April 15 for Fall admission and October 30 for Spring Admission.

    +

    +It is now possible to receive application materials electronically. University application +materials from the Graduate College can be obtained from the +Applications Section and application materials from the Computer Science Department can be obtained from http://www.cs.iastate.edu/gradadm/index.html. +

    +Iowa State University is now using a Self-Managed Application Procedure for graduate applications. The checklist can be found at https://www.applyweb.com/apply/isu/grad_checklist.pdf. +

    +International students need to send ALL materials including the Self-Managed Application Checklist to Graduate Admissions, Iowa State University, 100 Alumni Hall, Ames, IA 50011-2011. Click here for instructions for international applicants. +

    +U.S. Citizens and Permanent Residents need to send ALL application materials to Graduate Admissions, Computer Science Department, 226 Atanasoff Hall, Ames, IA 50011-1041. +

    + +The information that Computer Science requires in addition to the information listed on the Self-Managed Application Checklist includes: +

    +COURSE EVALUATION FORM (GRADUATE APPLICANT SELF EVALUATION FORM): This departmental form can be obtained from http://www.cs.iastate.edu/gradadm/preapp.html. This form must be complete and include the grade, mark, score, or percentage received in the courses listed. Your application will not be reviewed if this form is not completed. This form can be mailed with your other application materials. +

    +It can also be copied and pasted into a word processing program, then completed, and returned by email to grad_adm@cs.iastate.edu. +

    +Helpful information that is not required includes: +

    +RESUME: A 1-2 page resume listing the applicant's education, work experience, internships, etc. is helpful to the review process. +

    +Further explanation of required application documents. +

    +STATEMENT OF PURPOSE: A brief essay, no more than one page, about why you are interested in graduate study in Computer Science, your research interests, and what you propose to do with a graduate degree in Computer Science. +

    +LETTERS OF RECOMMENDATION: We require three letters of recommendation from individuals (typically professors who are familiar with your work) in support of your application. Please use one Letter of Recommendation Form for each recommendation. The form may also accompany a recommendation written on the recommender's official letterhead. The recommendation letter may also be sent in without the form. Make sure your full name is written in the recommendation letter. These letters can be sent with the Self-Managed Application materials. If they are not sent as part of the Self-Managed Application, please send directly to Graduate Admissions, Computer Science Department, 226 Atanasoff Hall, Ames, IA 50011-1040. +

    +GRE SCORES: Official Quantitative, Analytical, and Verbal GRE scores are REQUIRED for all applicants. Advanced (subject) GRE in Computer Science is not required, but applicants are encouraged to submit advanced GRE scores. +Since it takes approximately 4-6 weeks for the official copy of your test +scores to reach ISU, please take your test early enough to allow the scores to +reach ISU prior to the application deadline. +If you designate Iowa State University as one of the institutions to +which scores must be sent by ETS (while making arrangements to take the test), the scores go +directly to the Graduate Admissions Office. Official scores must be received before the application is evaluated. You can include a photocopy in your application materials, but official scores are required for review. We will use any official score from ETS. +Information about GRE can be found at http://www.gre.org/. +

    +TOEFL SCORES: All applicants who completed part or all of their education in countries where English is not the ONLY official language are required to provide TOEFL scores. For applicants who are required to take TOEFL, Test of Spoken English (TSE) scores are also recommended although not required. Both are offered by the Educational Testing Service. Official scores must be sent to us by ETS. Information on TOEFL can be found at http://www.toefl.org. +Since it takes approximately 4-6 weeks for the official copy of your test +scores to reach ISU, please take your test early enough to allow the scores to +reach ISU prior to the application deadline. +If you designate Iowa State University as one of the institutions to +which scores must be sent by ETS (while making arrangements to take the test), the scores go +directly to the Graduate Admissions Office. Graduate Admissions requires official (original) TOEFL before the application is complete and can be forwarded to Computer Science for review. +

    +Application Status +

    +Each Computer Science applicant will be assigned an application tracking number which will be communicated to applicants who provide an email address when they apply to the Graduate Program in Computer Science. Applicants should note this number and save it for future reference. +

    +If your application is completed before the deadline, it can take 2-3 months +for the application to be evaluated. IF YOU ARE ADMITTED, WE WILL CONTACT YOU AS SOON AS YOUR APPLICATION HAS BEEN EVALUATED AND ADMISSION AND FINANCIAL AID DECISIONS HAVE BEEN MADE. BECAUSE OF THE LARGE VOLUME OF APPLICATIONS THAT NEED TO BE PROCESSED, WE CANNOT RESPOND INDIVIDUALLY TO YOUR EMAIL INQUIRIES CONCERNING THE STATUS OF YOUR APPLICATION. However, you can periodically check the status of your application +which will be noted with the application tracking number at the following links: +

    +Fall 2004 Applications +

    + +The housing application is not sent (and the processing of the IAP-66 or I-20 +form required for obtaining the necessary U.S. visa for international students +cannot be started) until the student has been formally admitted by the Graduate College. +

    +If a student has deferred admission entry date, please send updated transcripts or job information, an updated Course Evaluation Form, and an up-to-date Statement of Purpose. +

    +Previously denied applications are not reviewed for subsequent semesters without new information: i.e., new GRE with higher scores, additional Computer Science courses taken from a 4-year university, additional letters of recommendation, updated transcripts, etc. +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + +Last updated November 7, 2002 + diff --git a/hridesh/gradadm/assistantships.html b/hridesh/gradadm/assistantships.html new file mode 100755 index 0000000..f01cff3 --- /dev/null +++ b/hridesh/gradadm/assistantships.html @@ -0,0 +1,122 @@ + +Assistantships and Fellowships + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +
    +

    Graduate Assistantships, Fellowships, and Scholarships

    +
    + + + +

    +Financial aid in the form of teaching and research assistantships, fellowships, and scholarships is availabale for +qualified applicants who are admitted to the graduate program in +Computer Science or interdepartmental graduate programs such as +Bioinformatics and Computational Biology that offer research-based graduate training for Computer Scientists at Iowa State University. Competition for financial aid is intense and award decisions are based on a careful evaluation of all of the applicants who have been admitted to the graduate program. +

    +Graduate Assistantships +

    +The Computer Science Department typically offers assistantships to highly qualified applicants who have been admitted +to the Computer Science graduate program. The number of assistantships available varies from year to year. +

    +Beginning graduate students on assistantships currently receive a stipend of $1,330 per month. The stipends are $1,430 +per month for students who have completed the MS requirements, and $1,530 per month for those who have passed the Ph.D. +preliminary examination. Graduate assistants need to pay only resident tuition which is significantly lower than +non-resident tuition. Other benefits include scholarship credit towards the assistantship recipient's tuition (one-half +reduction of resident tuition), enrollment in the student health insurance plan, and reduced tuition for the spouse. +

    +The assistantship is considered a half time position which requires the assistantship recipient to work approximately +20 hours a week (performing the responsibilities associated with the award), maintain a minimum of 3.0 grade point +average, and take no more than 12 credits of coursework in each fall and spring semester and no more than 7 credits during +summer sessions. +

    +Graduate Teaching Assistantships +

    +All students admitted to the Computer Science Graduate Program are considered for teaching assistantships in Computer Science +if they have asked to be considered for financial aid when they apply. There is no separate application for for teaching +assistantships (TA). Decisions on award of teaching assistantships is based criteria such as academic merit, research +potential, letters of reference, teaching experience (if any) and English language proficiency. Continued support in the +the form of teaching assistantships is subject to satisfactory performance of the TA duties which normally include grading +assignments, conducting recitation or student help sessions, occasional classroom instruction, and generally assisting +course instructors. +

    +Occasionally, Computer Science graduate students can find teaching assistantships in Computer Science or +other departments on campus after their arrival at ISU. +

    +Graduate Research Assistantships +

    +Exceptionally meritorious applicants admitted to the Computer Science Ph.D. program whose applications offer strong +evidence of research potential are considered for a limited number of graduate college funded research assistantships. +These research assistantships usually support the students in the first year of their graduate study +during which they are expected to participate in and contribute to the research program of a faculty mentor of their choice. Funding in subsequent years is subject to satisfactory academic progress towards a Ph.D. in Computer Science and satisfactory performance of the research assistantship duties which usually include performing research that is jointly agreed upon by the student and the faculty mentor. Continued funding can be in the form of a teaching assistantship offered by the department, a research assistantship offered by the faculty mentor, or a combination of both. +

    +Most students in the graduate program are considered for research assistantships by their faculty mentors (major professors) +as and when funds become available through research projects that are supervised by the professors. In most cases, the award +of such assistantships is based on the student's academic and research performance in the graduate program at ISU under the +supervision of the faculty mentor. +

    +Exceptionally well-qualified students with clearly defined research interests are occasionally able +to obtain research assistantship offers from professors who have funded projects in areas of mutual interest prior to their +arrival on campus. It is highly inadvisable for graduate students to seek or accept research assistantships in areas other +than the ones in which they plan to focus their graduate studies. +

    +Additional Funding Sources for U.S. Citizens and Permanent Residents +

    +Often, U.S. citizens and permanent residents who have been admitted to the graduate program in Computer Science or a +related interdepartmental graduate program may qualify for fellowships or traineeships funded by training grants. +During 1999-2004 there are several graduate traineeships available to applicants interested in research-based graduate +training in Bioinformatics and Computational Molecular Biology. These traineeships are funded by an +Integrative Graduate Education and Research Training (IGERT) award from the National Science Foundation. +These fellowships have a duration of 1-3 years and provide a stipend of $20,000 per year. In addition, tuition, fees, and health insurance are paid for the duration of the fellowship. Funds for textbooks and scientific journals, computer software and hardware, short courses, internships, travel, and related expenses are also available. +

    +Other funding opportunities may be available for qualified female and minority applicants who are U.S. citizens or permanent +residents. The Department of Computer Science will make every effort to forward applications from qualified candidates whole +interests match the focus of such training programs to the respective selection committees at ISU +for evaluation. However, qualified and interested applicants are encouraged to contact the programs directly. A list of current opportunities that the Computer Science Department is aware of are available at http://www.cs.iastate.edu/gradadm/index.html. +

    +ISU Premium for Academic Excellence (PACE) Award +

    +Each year the Graduate College offers the PACE award to 10-12 exceptionally qualified applicants who have been admitted +to the graduate program in Computer Science and have been nominated for the award by the Department of Computer Science. +The award duration can be 1 or 2 years based on the student's credentials and the availability of funds. All students +who have been admitted to the graduate program are considered for nomination for this award by the Department of Computer Science. +

    +Finding Financial Aid After Arrival on Campus +

    +U.S. citizens and permanent residents who are admitted to the graduate program +without financial aid are often able to find part-time employment (e.g., +as programmers) either on campus or off campus in local companies. International students who do not +receive an assistantship offer prior to their arrival on campus are occasionally +able to find an assistantship after their arrival at ISU. However, +under NO circumstances, is it advisable for such students to assume that +they will be able to find financial aid after arriving on campus. +

    +Requirements for Maintaining Funding +

    +In addition to the requirement of satisfactory performance of responsibilities +associated with teaching or research assistantships or fellowships, +continuation of funding of students admitted to the Ph.D. program beyond the +first year is subject to satisfactory academic progress in the Ph.D. program. Similarly, continuation of funding of +students admitted to the M.S. program is subject to satisfactory academic progress in the M.S. program. +

    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. +. Updated 6/21/2002. + diff --git a/hridesh/gradadm/backup/COrequirements.txt b/hridesh/gradadm/backup/COrequirements.txt new file mode 100644 index 0000000..e833120 --- /dev/null +++ b/hridesh/gradadm/backup/COrequirements.txt @@ -0,0 +1,44 @@ +Requirements for the Co-major in Computer Science at the Ph.D. Level + +Some students may wish to earn a co-major in Computer Science and some other discipline. This section defines Computer Science requirements for such a degree. + +1. Course and credit requirements in Computer Science: +a. Core courses (6 credits): 511, 531. +b. Elective courses -- At least 21 credits with one course taken from at least four of the following areas. +1. Programming Languages and Software Engineering: ComS 512, 540, 541, 542, 641. +2. Operating Systems and Communication: ComS 552, 554, 586, 587x, 652. +3. Computer Architecture: ComS 524, 583x, 624. +4. Database Systems: ComS 561, 661. +5. Artificial Intelligence: ComS 572, 576x, 672, 673. +6. Parallel and Distributed Computing: ComS 526x, 625. +7. Theory of Computation: ComS 531, 631, 632, 633. +8. Algorithms and Data Structures: ComS 511, 518, 611, 612. +b. ComS 591 and at least 3 credits of ComS 610. (ComS591 must be taken in the student's first fall semester or be replaced with a 3-credit 600-level course other than 699.) + +The above choices are subject to the following additional restrictions: +a. At least 36 credits, including dissertation research credits, must be earned under the supervision of the POS committee. +b. The course credits (excluding 590, 591, 599, 610, 699) must add up to at least 36 credits. +c. The course credits must include at least 6 credits of ComS 600-level courses, excluding 610 and 699. + +2. Grade requirements for the Ph.D. +No more than two C's (C, C+) and no grade below a C on the POS. + +3. Required examinations +The student must satisfy the proficiency requirements in two areas prior to the Preliminary Examination. (See pags 6-7.) + +4. Selection of Major Professor and POS +The student will normally select a major professor and co-major professor one from each department. Each must be a Graduate Faculty member. The POS Committee will consist of at least two members from each department and one member outside of both departments. At least one of the Computer Science members must be a Graduate Faculty member. + +5. Creative Component for Ph.D. Degree +Research culminating in a Ph.D. dissertation. The research must show involvement in both major fields and normally be a significant contribution to knowledge in both disciplines. + +6. Additional requirement +The results of the Ph.D. research must be presented in a colloquium to the Computer Science faculty and graduate students. + +Special Consideration + +1. Exceptions to regulations may be made with the approval of the Graduate Committee which acts for the department Graduate Faculty. Requests for exception must clearly state the reasons why the student believes an exception should be made and what alternate procedure the student will follow to satisfy the requirements. A request for an exception must be in writing by the student and approved by the student's POS committee. The request is then sent to the department Graduate Committee for approval. Any action on such requests will be published in the minutes of the Graduate Committee and will include the name of the student initiating the request. A reasonable time limit will be specified during which any member of the Graduate Faculty may appeal the action. Such appeals will be reviewed by the Graduate Committee and, in case of dispute, the appeal will be ruled on by the entire body of the Computer Science Graduate Faculty. + +2. The proficiency and Preliminary Examinations will not generally be returned to a student. However, upon request by the student, the examinations may be reviewed to clear up any questions that may have arisen with respect to grading and the recommendation of the examining committee. The examination will be kept in the student's file for future reference. + + diff --git a/hridesh/gradadm/backup/ConcurrTrans.txt b/hridesh/gradadm/backup/ConcurrTrans.txt new file mode 100644 index 0000000..398e937 --- /dev/null +++ b/hridesh/gradadm/backup/ConcurrTrans.txt @@ -0,0 +1,25 @@ +Applying for a Concurrent Degree or +Transferring from Another ISU Department + +Students wishing to study in Computer Science are evaluated along with all other students for the desired application semester. This includes ISU Graduate Students in other departments wishing to transfer or receive a concurrent degree. + +The Graduate College Handbook can give you a definition of the Concurrent or Transfer student. + +Procedure: + +1. Go to your current graduate department and request the form to apply for a transfer or a concurrent degree. Ask the department to complete the form. +2. At this time, also request that these items be copied and sent with the form to Computer Science. +a. Copy of Toefl score. +b. Copy of GRE scores. +c. Copy of the Graduate Admissions Evaluation Sheet. +d. Previous transcripts. +e. Previous letters of recommendation. +3. Get one more, new letter of recommendation regarding your computer skills. +4. Get current transcripts from ISU--these can be official or from Access. +5. Complete and return the Computer Science Course Evaluation Form. +6. Write up a short, simple statement of purpose as to why you wish to get a degree in computer science. +7. Turn all information in to the Graduate Secretary in 226 Atanasoff Hall. + +Applications for January admission are due September 15 and applications for Fall admission are due February 1. Applications received after these deadlines may not be processed until the following semester. You will be notified by email of the application decision. The decision could take up to two months following the due dates. + + diff --git a/hridesh/gradadm/backup/CourseEval.txt b/hridesh/gradadm/backup/CourseEval.txt new file mode 100644 index 0000000..e1676dd --- /dev/null +++ b/hridesh/gradadm/backup/CourseEval.txt @@ -0,0 +1,122 @@ +Computer Science Graduate Admission Course Evaluation Form + +PLEASE COMPLETE THIS FORM AND SUBMIT TO: +Graduate Program Assistant, Department of Computer Science +226 Atanasoff Hall, Iowa State University, Ames, IA 50011 + +You must provide the information requested directly on this form. Failure to fill out this form may result in denial of admission. + +Name (family, first)____________________________________________ Country of Citizenship:________________________ + +Email Address:_________________________________________________ Telephone Number:__________________________ + +Desired Admission Semester: ______________________________________ Degree Sought (PhD or MS)___________________ + +Main Computer Science Area(s) of Interest: ______________________________________________________________________ + +Academic Record: +College or University:________________________________________________________Degree;_________________________ + +Dates: Major:___________________________Minor:_____________________ + +College or University:________________________________________________________Degree;_________________________ + +Dates: Major:___________________________Minor:_____________________ + +Listed below are the titles of seven general areas of coursework. Under each of the headings, please describe your preparation by specifying the formal courses you have taken. For each course, you must list the author and title of the text used, e.g., Aho and Ullman, Foundations of Computer Science. A grade, mark, score, or percentage must be included in the "grade" section. + +Programming Skills Background: + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Discrete Mathematics Background: + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Data Structures and Algorithms: + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + + +Programming Languages and Compilers Background: + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Computer Architecture Background: + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Operating Systems Background: + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Mathematics Background (select the most advanced courses): + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Course Name:__________________________________________________________________ Grade:__________________ + +Text (Author, Title):______________________________________________________________________________________ + +Please describe any relevant employment or other large project experience. Describe the nature of the work, the program-ming languages and tools used, the computer systems involved and the duration of the work or project. +_______________________________________________________________________________________________________ + +_______________________________________________________________________________________________________ + +_______________________________________________________________________________________________________ + +Please describe any experience you may have had in installing, configuring and maintaining work stations and/or personal computers in a network environment. Please indicate any interest you may have in working with a systems support group: +_______________________________________________________________________________________________________ + +_______________________________________________________________________________________________________ + +Previous honors, scholarships, research activities, publications, outstanding extracurricular work (please be concise): +_______________________________________________________________________________________________________ + +_______________________________________________________________________________________________________ + +_______________________________________________________________________________________________________ + + admit/CourseEval.doc (7/99) diff --git a/hridesh/gradadm/backup/History.txt b/hridesh/gradadm/backup/History.txt new file mode 100644 index 0000000..f30d443 --- /dev/null +++ b/hridesh/gradadm/backup/History.txt @@ -0,0 +1,15 @@ +ISU Computer Science Department +General Information + +Computing activities began at Iowa State in the late 1930's when John Vincent Atanasoff, a professor of physics and mathematics, built a computer on campus that is now recognized as the first electronic digital computer. + +The Department of Computer Science was established as a formal discipline in 1969, offering from the outset the B.S., M.S., and Ph.D. degrees. The department now has approximately 3,000 alumni. + +At present, there are 18 tenured and tenure-track faculty, three adjunct faculty, eight instructors, and two industrial affiliates. Support staff includes an administrative specialist, three departmental secretaries, 104 Master's students and nine Ph.D. students. Each year, most of the graduate students are supported by either a teaching assistant positions in the department or by research assistant positions in the department and other university laboratories. + +The atmosphere of the department is such that research, interaction with students, and teaching are all considered to be important activities. Development and continued maintenance of active research programs involving graduate students and faculty are basic objectives. New research programs receive substantial departmental support. Research interests cover a broad spectrum of areas and, in addition, there exist close ties with faculty in several other departments and centers. + +In support of its research and instruction, the department owns and operates a LAN consisting of numerous HP workstations and terminals. The computers run under variants of the UNIX operating system and networking is made uniform through the TCP/IP protocol and the Network File System standard. Other LANs, consisting of more than 60 HP Vectra PCs running under Windows '95/98 and Windows NT, are bridged to the main LAN and provides additional instructional support. Connected to a campus-wide fiber optics network, departmental facilities have access to high-speed global Internet communication. + +Additional university facilities include the Scalable Computing Laboratory, which has several parallel computers including both SIMD and MIMD machines, and the Computation Center which supports a university-wide Athena-like network of file servers, workstations, and PCs. + diff --git a/hridesh/gradadm/backup/MSMINOR.txt b/hridesh/gradadm/backup/MSMINOR.txt new file mode 100644 index 0000000..fa810d6 --- /dev/null +++ b/hridesh/gradadm/backup/MSMINOR.txt @@ -0,0 +1,80 @@ +Graduate Minor Requirements + +Computer Science courses have restricted enrollment. The courses are available only to undergraduate major, graduate major, and graduate minor students. Students from other disciplines of graduate study may wish to earn a graduate minor in Computer Science. Following are the requirements and approved course work for a graduate minor. + +A graduate minor in Computer Science consists of at least 12 credits chosen from ComS 309, 311, 321, 330, 331, 342, 352, 361, 401, 425, 430, 454, 461, 472, 474, 484, and ComS courses numbered 511 or above (excluding 590, 599, 610 and 699). The course descriptions can be found at http://www.iastate.edu/~catalog/9799/coms.html. The course selection must also satisfy the following two conditions: + +1. Only one of the following may be included in the 12-credit minimum: ComS 321, 330, 361. +2. At least 3 credits must be chosen from courses at or above the 400 level. + +Any exceptions must be petitioned by the Student's Program of Study (POS) Committee and approved by the Graduate Committee in Computer Science. + +When a student chooses to do a graduate minor in computer science, one member of his or her POS committee must be a faculty member from the Computer Science Department. Faculty members follow this information. MS Word templates for the committee appointment, POS, and modifications can be downloaded from the Graduate College homepage. + +The student must complete their POS with the desired courses. After the POS is completed, courses are added with an add slip signed by the Department Chair. Courses should be added as soon as the student is able to register for their courses each semester. If the courses are full, the student may have to wait until the next semester to take the desired course. The department does not guarantee a student will be able to get the desired courses and the minor may need to be dropped so the student can graduate. Substitutions may be approved by the Department Chair, if necessary. Any course changes must be made with the "Modifications to the Program of Study" form and must be signed by all committee members and department officers and approved by the Graduate College. + + + +Computer Science Graduate Faculty for Minor Committees + + + +Albert L. Baker - Associate Professor. Major Interests: Software Engineering (Specification Languages, CASE Tools), Natural Language Processing (Text Analysis). On leave for Fall 1999 and Spring 2000 semesters. +Internet: baker@cs.iastate.edu + +John Peter Boysen - Adjunct Assistant Professor and Computer Science and Systems Analyst, Computation Center. Major Interests: Instructional Use of Computers, Programming Languages, Object-Oriented Programming. +Internet: pboysen@iastate.edu + +Soma Chaudhuri - Associate Professor. Major Interests: Theory of Distributed Computing, Parallel Algorithms and Complexity Theory. +Internet: chaudhur@cs.iastate.edu + +Hui-Hsien Chou - Assistant Professor of Zoology & Genetics and Computer Science. Major Interests: Bioinformatics, Computational Biology, Cellular Automata, Self-organization Phenomena. +Internet: hhchou@iastate.edu + +David F. Fernandez-Baca - Professor. Major Interests: Design and Analysis of Algorithms, Combinatorial Optimization, Computational Biology. +Internet: fernande@cs.iastate.edu + +Shashi K. Gadia - Associate Professor. Major Interests: Object-Oriented, Temporal, Spatial and Multilevel Security Databases, Access Methods. +Internet: gadia@cs.iastate.edu + +Don E. Heller - Adjunct Associate Professor. Major Interests: Programming and Debugging Support Tools for Distributed Memory Systems, Performance Evaluation and Analysis, Parallel Algorithms. +Internet: heller@ameslab.gov + +Vasant Honavar - Associate Professor. Research and Teaching Interests: Artificial Intelligence; Artificial Neural Networks; Autonomous Robots; Automata Induction; Biological Computation; Bioinformatics and Computational Biology; Cognitive Science; Complex Adaptive Systems; Computational Learning Theory; Computational Neuroscience; Data Mining, Knowledge Discovery, and Visualization; Decision Support Systems; Distributed Knowledge Networks; Distributed Databases, Mediators, and Data Warehouses; Evolutionary Computation; Intelligent Agents, Mobile Agents, and Multi-Agent Systems; Intelligent Design and Manufacturing Systems; Internet-Based Information Systems; Knowledge Representation, Automated Inference, and Knowledge-Based Systems; Machine Learning; Machine Perception; Parallel and Distributed Artificial Intelligence. +Internet: honavar@cs.iastate.edu, http://www.cs.iastate.edu/~honavar/ + +Jan-Bin Jia - Assistant Professor. Major Interests: Robotics, computational geometry, artificial intelligence, planning, information requirements and retrieval, geometric modeling, nonlinear control and observation, robot sensing, manipulator kinematics and dynamics. +Internet: jia@cs.iastate.edu + +Steven M. LaValle - Assistant Professor of Computer Science and Adjunct Assistant Professor of Electrical Engineering. Major Interests: Robotics, virtual prototyping, graphical simulation and animation, motion strategy problems, geometric reasoning, computer vision, artificial intelligence, applied optimal control and game theory, computational geometry, computational chemistry and drug design, +networked mobile robotics. +Internet: lavalle@cs.iastate.edu; http://janowiec.cs.iastate.edu/~lavalle + +Gary T. Leavens - Associate Professor. Major Interests: Programming and specification language design and semantics, formal methods (program specification and verification), object-oriented programming, functional programming, type theory, distributed programming languages. +Internet: leavens@cs.iastate.edu + +Jack H. Lutz - Professor. Major Interests: Computational Complexity, including structure of complexity classes, resource-bounded measure, and probabilistic complexity. Algorithmic Information and Randomness, including +computational randomness, Kolmogorov complexity, computational depth, and games and prediction. +Internet: lutz@cs.iastate.edu + +Robyn Lutz - Affiliate Assistant Professor. Major Interests: Software safety, fault detection and recovery, requirements engineering, formal methods, software engineering for spacecraft. +Internet: rlutz@cs.iastate.edu + +Leslie L. Miller - Professor and Interim Chair. Major Interests: Object-Oriented Databases, Organizational Decision Support Systems, Knowledge Management, Computational Biology, Data Warehouses. +Internet: lmiller@iastate.edu + +Simanta Mitra - Assistant Adjunct Professor. Major Interests: Programming Languages, Compilers, Operating Systems, Parallelizing Tools, Embedded and Real-Time Computing, Performance Evaluation of Computer Systems, and Software Engineering. +Internet: smitra@cs.iastate.edu + +G.M. Prabhu - Associate Professor. Major Interests: Parallel Processing, Computer Architecture, Business Process Modeling and Analysis. +Internet: prabhu@cs.iastate.edu + +Giora Slutzki - Professor. Major Interests: Algorithms and Complexity, Game Theory and Computational Economics, Formal Languages, Automata Theory. +Internet: slutzki@cs.iastate.edu + +Wallapak Tavanapong, Assistant Professor of Computer Science. Major Interests: Multimedia Systems, Parallel and Distributed Databases, Multimedia and Communications, Distributed Systems, Web Performance, Semi-Structure Data. +Internet: tavanapo@cs.iastate.edu + +Johnny S. K. Wong - Associate Professor. Major Interests: Broadband Integrated Services Digital Networks (BISDN), Distributed Computing Environment (DCE), Distributed Operating Systems, Intelligent Mobile Agents, Intrusion Detection, Communication Protocols, Object-Oriented Systems and Databases, Common Object Request Broker Architecture (CORBA), Hypermedia Systems, Multimedia Information Systems. +Internet: wong@cs.iastate.edu + diff --git a/hridesh/gradadm/backup/MSrequirements.txt b/hridesh/gradadm/backup/MSrequirements.txt new file mode 100644 index 0000000..e5c571c --- /dev/null +++ b/hridesh/gradadm/backup/MSrequirements.txt @@ -0,0 +1,34 @@ +Requirements for the M.S. Degree in Computer Science + +These requirements are for preparing the program of study (POS) which must be approved by the POS committee and the Graduate College. Departure from these requirements can be made provided appropriate approval is obtained from the departmental Graduate Committee. + +1. Course and credit requirements for M.S. degree (a minimum of 31 credits) including: +a. 15 credits: Core courses 511, 531, and 3 courses from the following set: +512, 524, 526, 541, 542, 552, 561, 572, 586. +b. A breadth requirement to include two of the following areas (as long as the courses have not been used to satisfy the requirements in part a and at least one of the two is a 600 level course): +512, 518x, 524 (or 624), 526, 540 (or 542), 541 (or 641), 552 (or 652), 554 (or 586), 561 or (661), 572 (or 672 or 673), 576x, 582, 587x, 594x, 611 (or 612), 625, 631 (or 632 or 633) +c. ComS 591 (1 credit) must be taken in the student's first fall semester or be replaced with 3 credits of ComS 610. +d. 3 credits of 599 (creative component) or 6 credits of 699 (thesis). +e. 1 to 6 elective credits (depending on c and d). Elective credits in Computer Science (500 level or above excluding 599 and 699) or other fields (must be available for graduate minor credit). ComS 610 fits here unless used to fulfill item 1c above. +2. Grade requirements for M.S. degree +a. A grade of B- or better in each course in 1a. +b. An average grade point of 3.0 or above over all the courses in 1a and 1b. +c. A maximum of 2 C's (C, C+) and no grade below a C on the POS. +3. Creative Component of the M.S. degree +a. Non-thesis option: 3 credits identified as ComS 599 culminating in the preparation of a formal paper. +b. Thesis option: 6 credits of research identified as ComS 699 culminating in the preparation of a thesis. +Regardless of the option, a final oral examination is required. The emphasis is on the creative component or thesis. +4. Guidelines for writing the M.S. creative component or thesis + +M.S. Creative Component: + +a. Creative effort is reflected in 3 credits earned through ComS 599 (Graduate College requirement.) +b. The topic should be chosen in consultation with the Major Professor. It should be developed in terms of the current literature and written so as to exhibit the student's understanding of the issues. +c. The paper should be in a form suitable for submission for publication. Emphasis is placed upon clear writing, logical development, and significance of understanding. +d. One copy of the paper should be submitted to each member of the POS committee two weeks before the final M.S. examination, and the student's examination will include questions on the paper. A bound copy of the paper must be filed with the department's graduate secretary before approval for graduation will be granted. + +M.S. Thesis: + +a. Effort involved should approximate 6 credit hours (ComS 699). +b. A research topic should be chosen in consultation with the Major Professor. The result of the research is to be an original contribution to the field of Computer Science. The thesis will include a thorough literature search and review. +c. The thesis must be written in the form prescribed by the Graduate College Thesis Manual. A first deposit needs to be submitted to the Graduate College Thesis Office five to six weeks (set date will be posted) before the last date for final oral exam. Two weeks prior to the final examination, one copy is submitted to each member of the POS Committee. Two final copies need to be submitted to the Graduate College Thesis Office, and one copy to the department's graduate secretary before graduation is approved. diff --git a/hridesh/gradadm/backup/WWWcoursedes.txt b/hridesh/gradadm/backup/WWWcoursedes.txt new file mode 100644 index 0000000..b9dbaa1 --- /dev/null +++ b/hridesh/gradadm/backup/WWWcoursedes.txt @@ -0,0 +1,82 @@ +COMPUTER SCIENCE GRADUATE +COURSE DESCRIPTIONS + +Each course states the number of semester credits assigned to the course, preceded in parentheses by the number of hours in class (contact hours) expected of the student. The first of the two contact-hour numbers indicates the number of lecture or recitation class hours per week for the semester. The second is the number of laboratory or studio hours required per week. + +Within each course description may be found one or more of the following letters: F. S. SS., indicating which term -- fall, spring, summer session -- of the academic year the course is offered. All 600 level Com S courses (excluding Com S 610) will be offered on an alternate year basis. A course number followed by a "DL" means the course is dual listed with the indicated course. + +Com S 507 Numerical Solution of Ordinary Differential Equations. (Math 507) (3-0) Cr. 3 F.SS. Prereq. 415, 465, or 481; knowledge of FORTRAN or C. One step methods for initial value problems, one-step methods for systems, multi-step methods, boundary-value problems. Examples using university computers. + +Com S 509 Computational Methods of Linear Algebra. (Math 509). (3-0) Cr. 3. F. Prereq: 307 or 317; knowledge of FORTRAN or C. Numerical methods for solving linear systems of equations and linear least squares problems, and for computing eigenvalues and eigenvectors of matrices, symmetric or not. Matrix factorizations, iteration methods. Analysis of well- and ill-conditioning of computational problems, and stability of methods. Practical computing exercises. + +Com S 511 Design and Analysis of Algorithms. (3-0) Cr. 3. F. Prereq: 311 or 330. A study of basic algorithm design and analysis techniques. Advanced data structures, amortized analysis, and randomized algorithms. Applications to sorting, graphs, and geometry. NP-completeness and approximation algorithms. + +Com S 512 Formal Methods in Software Engineering. (3-0) Cr. 3. S. Prereq: 311, 330. A survey of formal topics relevant to the software life-cycle process including requirements, specifications, design, implementation, testing and maintenance. Implications of formal results for software prototyping and automated testing. + +Com S 518x Introduction to Computational Geometry (3-0) Cr. 3. (418x DL). Alt. F, offered 1998. Prereq: 311 or equivalent. Introduction to data structures, algorithms, and analysis techniques for computational problems that involve geometry. Line segment intersection, polygon triangulation and art gallery problems, orthogonal range querie, point location, geometric data structures, arrangements and duality, delaunay triangulation, convex hulls, binary space partitions, quad trees, visibility graphs, simplex range searching. + +Com S 524 Computer System Architecture. (3-0) Cr. 3. F. Prereq: 352 or CprE 305. Fundamentals of computer design, performance and cost, Instruction set design, basic processor implementation techniques, pipelining, memory design, caches, I/O systems, multiprocessor systems, interconnection networks. + +Com S 525 Numerical Analysis of High Performance Computing. (3-0) Cr. 3. S. (Cpr E 525 or Math 525). Prereq: Cpr E 308, or one of Math 471, 473 or 481; experience in scientific programming; knowledge of FORTRAN or C. Development, analysis, and testing of efficient numerical methods for use on current state-of-the-art high performance computers. Applications of the methods to the students' areas of research. + +Com S 526x Practical Introduction to Parallel Programming. (3-1) Cr. 3. F. Prereq: 321 and 311 or equivalent. Fundamentals of parallel programming, design and analysis of parallel programs, survey of parallel programming environments for developing large-scale applications. The course will have a laboratory component to provide practical experience on different types of parallel computing platforms. + +Com S 531 Theory of Computation. (3-0) Cr. 3. S. Prereq: 331. A systematic study of the fundamental models and analytical methods of theoretical computer science. Computability, the Church-Turing thesis, decidable and undecidable problems, and the elements of recursive function theory. Time complexity, logic, Boolean circuits, and NP-completeness. Finite-state and pushdown computation. + +Com S 540 Principles of Compiling (3-1) Cr. 3. S. (440 DL). Prereq: 342. Techniques of lexical analysis, top-down and bottom-up parsing, semantic analysis and code generation. Principles are reinforced through a number of programming projects. Different projects will be assigned to students depending on whether they have enrolled for 440 or 540. + +Com S 541 Programming Languages I. (3-1) Cr. 3. F. Prereq: 342 or 440. Survey of the goals and problems of language design. Formal and informal studies of a wide array of programming language features including type systems, naming, state, and control. Creative use of functional, object-oriented, declarative, concurrent and other programming paradigms. + +Com S 542 Programming Languages II. (3-0) Cr. 3. Alt. F., offered 1999. Prereq: 440. + Compilation theory and techniques, emphasis on high-level software tools to facilitate compiler construction. Lexical analysis, parsing, attribute grammars, code generation and optimization for traditional and non-traditional languages and architectures. + +Com S 552 Principles of Operating Systems. (3-0) Cr. 3. S. Prereq: 352. A comparative study of high-level language facilities for process synchronization and communication. Formal analysis of deadlock, concurrency control and recovery, and system performance. Protection issues including capability-based systems, access and flow control, encryption, and authentication. + +Com S 554 Implementation of Operating System and Distributed Computing Environment. (3-1) Cr. 3. (454 DL) Prereq: 311, 352. Laboratory course dealing with practical issues of design and implementation of operating systems and distributed computing environments. These include process management, device drivers, file systems, interrupts and signal handlers, RPC and Multithreading. Graduate credit requires additional in-depth study of advanced operating systems. + +Com S 561 Principles of Database Systems (3-0) Cr. 3. S. Prereq: 311and 352. Introduction to database system concepts. Physical data organization. The network model and the DBTG proposal. The hierarchical model. The relational model. Relational query languages. Functional dependencies. Multivalued dependencies. Decomposition of relation schemes. Normal forms. Query systems. Query optimization. Concurrence control. Distributed database systems. + +Com S 572 Principles of Artificial Intelligence. (3-1) Cr. 3. F. (472 DL). Prereq: 330, 342, CprE 310 or comparable programming experience. Foundations, scope, and problems of artificial intelligence (AI) and cognitive science. State-space search techniques for problem solving. Knowledge representation and automated inference. Machine learning. Neural and evolutionary approaches to AI. Artificial life. Selected applications in planning, machine perception, analysis, design, intelligent agent architectures. AI programming using Common LISP. Graduate credit requires a research project and a written report. + +Com S 576 Motion Strategy: Algorithms and Applications. (3-1) Cr. 3. (476 DL) Alt. S., offered 2000. Prereq: Engl 105, Sp Cm 212, Com S 311 or ME 519, or consent of instructor. Recent techniques for developing algorithms that automatically generate continuous motions while satisfying geometric constraints. Applications in areas such as robotics and graphical animation. Basic path planning. Kinematics, configuration space, and topological issues. Collision detection. Randomized planning. Nonholonomic systems. Optimal decisions and motion strategies. Coordination of Multiple Bodies. Representing and overcoming uncertainties. Visibility-based motion strategies. Implementation of software that computes motion strategies. Written reports. Nonmajor graduate credit. + +Com S 583X Adaptive Computing Systems. (3-0) Cr. 3. F. (Cross listed with CpreE 583X). Prereq: ComS 524 or CprE 585, or consent of instructor. Introduction to Adaptive/Recongifurable Computing, FPGA technology and architectures, spatial computing architectures, systolic and bit serial architectures, adaptive network architectures, bus-based and static and dynamic rearrangeable interconnection structure architectures, reconfigurable computing Architectures for Processors, Pipeline, and Caches. + +Com S 586 Computer Network Architectures. (3-0) Cr. 3. F. Prereq: 511, 552 or CprE 489. Design and development of advanced computer communication networks: distributed and failsafe routing in large and dynamic networks, gateways and interconnection of heterogeneous networks, flow control and congestion avoidance techniques, network architectures, communication protocol standards, formal specification and verification of protocols, implementation and conformance testing of protocol standards, network partitioning and intelligent reconfiguration of networks. + +Com S 587x Principles of Distributed and Network Programming. (3-0) Cr. 3. F. Prereq: 352 or CprE 489 or equivalent. Programming paradigms for building modern distributed applications, including multithreaded client-server programming, distributed object frameworks and programming languages. Web-based computing. Directory services. Mobile computing. Network multimedia applications. Reliability and manageability of networked systems, including aspects of distributed system security, verification of concurrent systems, and network management. + +Com S 590 Special Topics. Cr. arr. Prereq: Permission of instructor. Offered on a satisfactory-fail basis only. + +Com S 591 Graduate Orientation Seminar. (1-0) Cr. 1. F. Prereq: Graduate classification. Topics include an introduction to ISU computing facilities; M.S. and Ph.D. degree requirements, career choices, ethics, literature searching, technical presentations, technical writing, ethics in writing, and discussion of research interests and projects by members of the graduate faculty. Required by the M.S. Degree and is taken during the first semester of a normal M.S. program. Offered on a satisfactory-fail basis only. + +Com S 599 Creative Component. Cr. arr. Offered on a satisfactory-fail basis only. + +Com S 610 Seminar. Cr. arr. Offered on a satisfactory-fail basis only. + +Com S 611 Advanced Topics in Analysis of Algorithms. (3-0) Cr. 3. Alt. S, offered 1999. +Prereq: 511, 531. Advanced algorithm analysis and design techniques. Graph algorithms, algebraic algorithms, NP-completeness, probabilistic and parallel algorithms, intractable problems. + +Com S 612 Parallel and Distributed Algorithms. (3-0) Cr. 3. Alt. S, offered 2000. Prereq: 511 or 531. An advanced course in the theory of parallel and distributed computation. Models of computation, Algorithm paradigms and analysis, Lower Bounds and Impossibility results. Parallel Sorting, Graph, Geometric, Algebraic, and Number-theoretic Algorithms. The Parallel Computation Thesis. P-Complete Problems and the class NC. Synchronous, asynchronous, and Partially Timed Distributed Systems. Consensus, Mutual Exclusion, and Resource Allocation. Wait-free Register Implementations. Shared Memory and Network models. Fault-tolerance. Randomized Computation. + +Com S 624 Advanced Topics in Computer Architecture. (3-0) Cr. 3. Alt. S, offered 2000. Prereq: 524. Current topics in computer architecture design and implementation. Advanced pipelining, cache and memory design techniques. Interaction of algorithms with architecture models and implementations. Tradeoffs in architecture models and implementations. + +Com S 625 Issues in Parallel Programming and Performance. (3-0) Cr. 3. Alt. S, offered 1999. Prereq: 511, 524. Parallel solutions of numerical and non-numerical problems, implementation of parallel programs on parallel machines, performance and other computational issues in parallel programming. + +Com S 631 Computational Complexity. (3-0) Cr. 3. Alt. F., offered 1998. Prereq: 531. Advanced study in the quantitative theory of computation. Time and space complexity of algorithmic problems. The structure of P, NP, PH, PSPACE, and other complexity classes, especially with respect to resource-bounded reducibilities and complete problems. Complexity relative to auxiliary information, including oracle computation and relativized classes, randomized algorithms, advice machines, Boolean circuits. Kolmogorov complexity and randomness. + +Com S 632 Circuit Complexity and Parallel Complexity. (3-0) Cr. 3 Alt. S., offered 1999. Prereq: 531. An advanced course in the complexity of Boolean functions and parallel computation. General circuits, bounded-depth circuits, threshold circuits, and monotone circuits. Parallel complexity, including uniform circuits, alternating Turing machines, and parallel RAMs. Additional topics chosen from communication and sorting networks, communication complexity, VLSI complexity, cellular automata, neural networks, and general purpose parallel architectures. + +Com S 633 Randomness in Computation. (3-0) Cr. 3. Alt. S., offered 2000. Prereq: 531. Advanced study of the role of randomness in computation. Randomized algorithms, random oracles, and probabilistic complexity classes. One-way functions and pseudorandom generators. Kolmolgorov complexity, algorithmic information theory, and algorithmic randomness. Applications chosen from cryptography, interactive proof systems, computational learning, lower bound arguments, mathematical logic, and the organization of complex systems. + +Com S 641 Semantic Models for Programming Languages. (3-0) Cr. 3. Alt. S., offered 2000. Prereq: 531, 541. Interpretive, denotational, and logically based models of semantics; application of semantics to program correctness, language specification, and translation. + +Com S 652 Topics in Distributed Operating Systems. (3-0) Cr. 3. Alt. F., offered 1999. Prereq: 552. Concepts and techniques for network operating systems: high-level languages and communication protocols, name and object management, concurrency control for consistent distributed data, design of reliable software, protection, performance analysis. + +Com S 661 Advanced Topics in Database Systems. (3.0) Cr. 3. Alt. F., offered 1998. Prereq: 561. Advanced topics chosen from the following list: Data dependencies. Data models. Query systems. Query optimization. Null values, partial information and database semantics. Acyclic database schemes. Concurrency control mechanisms. Distributed database systems. Logic and databases. + +Com S 672 Computational (Neural, Statistical, and Algorithmic) Models of Learning. (3-0) Cr. 3. Alt. S., offered 2000. Prereq: ComS 572 or 472 or 474. Advanced study of artificial intelligence, neural, statistical, syntactic, evolutionary models and algorithms for machine learning. Inductive learning, classification, grammar induction, function approximation, program induction, inductive logic programming. Computational learning theory (PAC, maximum likelihood, minimum description length and related frameworks). Deductive learning, reinforcement learning, discovery and data mining. Selected applications. + +Com S 673 Advanced Topics in Artificial Intelligence and Cognitive Modeling. (3-0) Cr. 3. Alt. S., offered 1999. Prereq: 572 or 472 or 474. Advanced study of selected topics from among the following: machine learning; neural networks; genetic algorithms, genetic programming, artificial life; intelligent agent architectures and robotics; cognitive modeling; computational learning theory; parallel and distributed architectures and algorithms for artificial intelligence. + +Com S 699 Research. Cr. arr. Satisfactory/Fail only. diff --git a/hridesh/gradadm/backup/appprocess.txt b/hridesh/gradadm/backup/appprocess.txt new file mode 100644 index 0000000..00d41af --- /dev/null +++ b/hridesh/gradadm/backup/appprocess.txt @@ -0,0 +1,31 @@ +GRADUATE ADMISSION PROCEDURES + +The department deadline for completed applications is September 15 for Spring entry and February 1 for Fall entry. There is no departmental application fee. + +Admission to the Computer Science Department is a two-step process. You will also need to submit the Graduate College Admissions Office application (which will be sent to you soon) to be formally admitted to the University and the Graduate College. Admission to BOTH the Department and the University is required before registration in classes or your stipend commences. + +The following materials are to be submitted to the Computer Science Department if you wish to be considered for admission to the graduate program, and become eligible for teaching assistantships, research assistantships, and fellowships. + +Computer Science Course Evaluation Form: This is a departmental form. The form must be complete and include the grade, mark, score, or percentage received in the coursework listed. Without a complete form, your application will not be reviewed. It can be printed, completed by hand, and mailed with your application materials. It can also be downloaded, completed, and returned as an email attachment, as HTML, or scanned and sent to grad_adm@cs.iastate.edu. + +Letters of Recommendation: Three (3) persons who can estimate your scientific potential (preferably faculty with whom you have worked) should write recommendation letters on the recommended forms available at www.grad-college.iastate.edu/formsf/ltrrec.doc (MS Word 6.0 is required for this form). Should your recommendation authors prefer not to use this form, please request the recommendation be on university/company letterhead and be accompanied by the form. Please note that you should circle and sign the section indicating whether you waive or do not waive your rights under the 1974 Family Education Rights and Privacy Act. + +GRE: GRE scores are required for all applicants. You are not required to take the 'subject' test in Computer Science but it is recommended. Results from the GRE exams are necessary to determine whether you have an adequate knowledge in computer science to be successful in the CS program. These scores are also required for various scholarship, fellowship, and award nominations. Applications can be evaluated with a photocopy but originals must be received before admission in the fall. Testing information can be found at www.gre.org. + +The following materials must be received by Graduate Admissions before the designated departmental deadline. The Graduate College Admissions application form and graduate admissions information may be found at: http://www.grad-college.iastate.edu/. + +Application for Admission to the Graduate College/Admissions Office: You may request the application for university admission from the Graduate Admissions Office. (The downloadable form requires MS Word 6.0). However, it will be much quicker if you download or print the forms. It may take several weeks to receive the forms in hard copy by postal mail. The application must be received with the appropriate application fee. The application is not reviewed without the application fee. There are no application fee waivers granted by the university. + +Official transcripts (and correct certified English translations from any foreign institution): Transcripts signed and stamped with school seal are required. + +TOEFL Score: The Computer Science Department requires a minimum total score of 550 (paper test) or 213 (computer test). We require all students from countries where English is not the only official language, and who have not received a college/university degree from ISU, to provide a TOEFL score. If you have also taken the TSE (Test of Spoken English) exam, we encourage you to submit those results as well. More testing information can be found at www.toefl.org. + +Since it takes approximately 4-6 weeks for the official copy of your GRE and TOEFL scores to reach ISU, please take your test early enough to allow the scores to reach ISU by the due dates. When the testing institutions do send the official score it automatically goes to the Graduate Admissions Office of whichever college/university you have designated. Applications can be evaluated with a photocopy but originals must be received before admission in the fall. + +Form 1A: Request the Registrar of the college where you received (or will receive) your BS/BE/MS degree to fill out and forward this form (usually with your official transcript). Note that MS Word 6.0 is required for the downloadable form available at ____________________. + +If the materials required by Graduate Admissions are sent to Computer Science, we will forward the originals to Graduate Admissions. + +Note that you must be admitted by the Computer Science Department before you are admitted to the University. If your application is complete by the due date, it may take 2-3 months to receive admission, scholarship, and assistantship information. Remember that the housing application is not sent (and the processing of the IAP-66 or I-20 form cannot be started) until you have been formally admitted by the Graduate College Admissions Office. + +However, if you request that our department send you application materials we will forward your request to Graduate Admissions. You do not need to do this. diff --git a/hridesh/gradadm/backup/assistantships.txt b/hridesh/gradadm/backup/assistantships.txt new file mode 100644 index 0000000..b2d8017 --- /dev/null +++ b/hridesh/gradadm/backup/assistantships.txt @@ -0,0 +1,17 @@ +Graduate Funding + +Graduate Assistantships +The Computer Science Department does have a limited number of assistantships available (the number will vary from year to year). The assistantship qualifies you as a C-base employee which gives you resident tuition. Other benefits include scholarship credit towards your tuition (one half reduction of resident tuition), enrollment in the student health insurance plan, reduced and tuition for your spouse. The assistantship is considered to be a one-half time position and you are required to work at least 20 hours a week, maintain a 3.0 grade point average, and take no more than 12 credits in both the fall and spring semesters and 7 in the summer session. + +Teaching Assistantships +All students admitted to the Computer Science Graduate Program are evaluated for teaching assistantships after all applications have been finalized. Students do not need to apply for teaching assistantship (TA) positions. These positions are given on academic merit, graduate research potential, letters of reference, and TOEFL score. Teaching assistantships are generally continued throughout the duration of the program if the student is performing well in their TA duties, their academic performance is satisfactory, and there is continued funding available. Teaching assistantships are also available from other departments and the student is usually able to secure these positions after arriving at ISU. + +Research Assistantships +Most students who receive research assistantships are chosen by the faculty member when there is an opening in his/her research program and there is available funding. Many students are supported by research grants from their major professor. Sometimes this will be arranged between the student and the professor prior to arrival here at ISU. Generally, they are arranged after the student has been in the department for a period of time. Occasionally, the department is given funding to bring highly qualified students to ISU, and these are chosen by the Graduate Admissions Committee from the admitted students. Research assistantships are continued if the student performs well in his research duties and funding is continued for the research. + +Research assistantships are generally available from other departments on campus as well. They will be found before or during the first two weeks of classes. Sometimes the department is aware of the position and will give you the information. However, there are several openings each semester that the department does not know about. If a student searches for a position, they are generally able to find funding within the first semester. + +PACE Scholarship Award +Each year the Graduate College awards 20-30 incoming Computer Science students with this tuition scholarship. The scholarship is based on academic performance, research experience, GRE and TOEFL test scores. The student may receive the award for one or two years and the duration is determined during the scholarship review. The department nominates students for this award. + + diff --git a/hridesh/gradadm/backup/facinterests.txt b/hridesh/gradadm/backup/facinterests.txt new file mode 100644 index 0000000..7d32bac --- /dev/null +++ b/hridesh/gradadm/backup/facinterests.txt @@ -0,0 +1,747 @@ +Faculty Research & Interests +Department of Computer Science +Iowa State University + +Following is information about each faculty member. More information can be obtained from the individual faculty member's homepage. + + +ALBERT L. BAKER, Associate Professor of Computer Science + + B.A. 1974, Mathematics, Drake University + M.S. 1976, Computer Science, The Ohio State University + Ph.D. 1979, Computer Science, The Ohio State University + +Major Interests: +Software Engineering (Specification Languages, Software Testing, CASE Tools), Natural Language Text Analysis. + +Current Research: +Dr. Baker's recent work in Software Engineering is focused on formal specification languages. He has developed a model-based, formal specification language for C++ classes - SPECS++. This is a typical model-based specification language in that class values are modeled as discrete mathematical structures and operations are specified using first order pre-condition and post-condition assertions over the data models. SPECS++ handles inheritance, templates and objects. Dr. Baker has also, along with Dr. Leavens, developed a similar model-based specification language for Java called JML (Java Modeling Language). JML retains the expression syntax of Java and includes expressively convenient features like specification examples and redundant assertions. Drs. Baker and Leavens are currently enhancing and extending JML to support the specification of Java threads, events and are developing a formal semantics for JML. + +A compiler for an executable subset of SPECS-C++ has been implemented. The more difficult challenge in this endeavor is the "execution" of post-condition assertions, since these assertions are written to define post-state values and may not directly express an approach to constructing these values. The SPECS-C++ compiler handles "constructive assertions," which are simply those assertions which can be executed using constraint resolution technique developed for this purpose (in collaboration with Dr. Tim Wahls). Thus, while SPECS-C++ retains the precision and level of abstraction achieved by other model-based specification languages, it has the added advantage of yielding an executable prototype directly from a class specification. Drs. Baker and Leavens are currently extending this assertion evaluation technology to the newer JML specification language for Java. + +Dr. Baker, along with his Ph.D. student, Marybeth Gurski, is enhancing the SPECS-C++ compiler and incorporating this technology in a prototype CASE tool that supports: +* the testing of a specification of a C++ class through the automated generation of abstract test cases and use of the SPECS-C++ compiler to "execute" the specification, +* the automated generation of implementation-level test cases, the automated execution of an implementation of the specified class using the generated implementation-level test cases, and +* the automated use of the class specification as a test oracle to determine the correctness of each implementation-level test case. +This Test Validation System integrates the use of formal, model-based specifications with with white-box testing techniques. + +Dr. Baker's research in Natural Language Text Analysis has led to software systems that support the analysis of verbatim responses to open-ended questions (as might be used in population survey research). These systems allow for the efficient identification, coding and recognition of the significant concepts in verbatim responses. His recent results support the identification of relations between concepts, and can be used as the basis of natural language database systems with natural language interfaces to large volumes of natural language text. + +Representative Publications: +"Preliminary Design of JML: A Behavioral Interface Specification Language for Java", Baker, A.L., Leavens, G.T., & Ruby, C., Iowa State University Department of Computer Science Technical Report #TR98-06d, April 1999. + +"Formal Semantics for Structured Analysis Style Data Flow Diagram Specification Languages", G. T. Leavens, T. Wahls, and A. L. Baker, ACM SAC'99 -- 1999 ACM Symposium on Applied Computing. + +"Enhancing the Pre- and Postcondition Technique for More Expressive Specifications", Leavens, G.T., and Baker, A.L., to appear. Proceedings of the World Congress on Formal Methods in Development of Computing Systems (FM99), Toulouse, France, September 1999. + +"Programming is Writing: Why Programs need to be Carefully Read", G. T. Leavens, A. L. Baker, V. Honavar, S. M. LaValle and G. Prabhu, Mathematics and Computer Education, 32(3):284-295, Fall 1998. + +"Testing SPECS-C++: A First Step in Validating Distributed Systems Specification," Baker, A.L., & Gurski, M. Proceedings of the ISMM International Conference on Intelligent Information Management Systems, Washington, D.C., June 1997, pp. 105-108. + +"Modelling and Simulating Computer Networks Using Formalized Data flow Diagrams," Baker, A.L., and Haverdink, M. IASTED International Conference on Modelling and Simulation, May 1997. + +"Synthesizing Structured Analysis and Object-Based Formal Specifications," Baker, A.L., & Coleman, D.L. (1997). Annals of Software Engineering, 3: 221-254. + +"Content Analysis and Natural Language Data Base Systems," Baker, A.L., (1997). Invited chapter in Text Analysis for the Social Sciences: Methods for Drawing Statistical Inferences from Texts and Transcripts, C. Roberts ed., Lawrence Ehrlbaum and Associates. + +"Timed Data Flow Diagrams," Baker, A.L., & Symanzik, J., Iowa State University Department of Computer Science Technical Report #TR96-23. + + +PETE BOYSEN, Senior Systems Analyst, Computation Center and Adjunct Assistant Professor, Computer Science. + +B.S. 1969, Physics, University of Florida +M.S. 1976, Computer Science, Iowa State University +Ph.D. 1979, Computer Science, Iowa State University + +Major Interests: +Instructional use of computers, programming languages, object-oriented programming. + +Current Research: +Current research involves the development of instructional applications for the Internet. Projects include Java Instructional simulations in meterology and mathematics and the ClassNet system which is a database system for the management of Web-based instructional classes. + +Representative Publications: +"ClassNet: Managing the Virtual Classroom" Boysen, P., & Van Gorp, M., (1997). International Journal of Educational Telecommunications, 3(2/3):279-292. + +"Reducing Object Storage Requirements in a Multi-user Environment," Boysen, P., & Shah, P., Software-Practice and Experience, 23(3):255-241, March 1993. + + "Using Simulations to Fill Instructional Gaps," Boysen, P., & Thomas, R. EDU, 40:8-11, Winter 1986. + +"A Taxonomy for the Instructional Use of Computers," Boysen, P., & Thomas, R., AEDS Monitor, 22(11):12, May/June 1984. + +"An Evaluation of the Instructional Effectiveness of a Computer Lesson in Biomechanics," Boysen, P., & Francis, P. (1982). Research Quarterly for Exercise and Sport, 53(3):232-235. + +"Them Bones: The Use of Computer-Assisted Instructional Techniques in the Teaching of Human Anatomy," Boysen, P., Francis, P., Ciskey, M., & Seastrand, P. The Computing Teacher, 9(3):11-16, November 1981. + +"Measuring Computer Program Comprehension," Boysen, P., & Keller, R. ACM SIGCSE Bulletin, 12:92-102, February 1980. + +"A Cost-Effective Method for the Reduction and Analysis of Film Data Using the PLATO System" Boysen, P., & Francis, P. (1978). Journal of Biomechanics, 11:343-345. + +"Interactive Computer Graphics in the Study of Human Body Planar Motion Under Free Fall Conditions," Boysen, P., Francis, P., & Thomas, R. (1997). Journal of Biomechanics, 10:783-788. + + + +SOMA CHAUDHURI, Associate Professor of Computer Science + +B.S. 1984, Mathematics, Massachusetts Institute of Technology, Cambridge +B.S. 1984, Computer Science, Massachusetts Institute of Technology, Cambridge +M.S. 1987, Computer Science, University of Washington, Seattle +Ph.D. 1990, Computer Science, University of Washington, Seattle + +Major Interests: +Theory of Distributed Computing, Parallel Algorithms and Complexity Theory + +Current Research: +Dr. Chaudhuri's research in distributed computing has focused on understanding the power of asynchronous distributed systems subject to various kinds of failures. A persistent question has been to determine the problems that are solvable in the presence of uncertainty due to processor asynchrony and failures. She used combinatorial techniques to prove that certain problems are impossible to solve in these systems. The current focus of her research has shifted to the study of systems that are semi-synchronous, i.e., that have partial but inexact information about timing. These systems are much more realistic and deserve further study. Dr. Chaudhuri is using similar combinatorial techniques with the goal of obtaining time and space complexity characterizations for problems in semi-synchronous systems analogous to the fault-resiliency characterization obtained for problems in asynchronous systems. The ultimate objective would be to understand in a formal sense the advantage that can be gained by considering timing-based models for distributed computing over asynchronous models, and the disadvantage they represent in relation to fully synchronous models. + +Dr. Chaudhuri has also been recently interested in the area of distributed ad hoc networks. In particular, it would be useful to develop algorithms that are specifically suited to solving problems in these networks. These networks are unpredictable due to frequent link failures when nodes drift apart and link formations when nodes drift closer to each other. Existing distributed algorithms that rely on static communication links cannot run in such networks. Instead, efficient algorithms would have to be designed that adjusts to the mobility of the network. + +Representative Publications: +"Wait-Free Implementations in Message Passing Systems." Chaudhuri, S., Herlihy, M., & Tuttle, M. (1998). To appear in Theoretical Computer Science. + +"A Tight Lower Bound for "k"-Set Agreement." Chaudhuri, S., Herlihy, M., Lynch, N., & Tuttle, M. (1998). To appear in SIAM Journal on Computing. + +"One-Write Algorithms for Multi-Valued Regular and Atomic Registers," Chaudhuri, S., Kosa, M., & Welch, J.L. (1998). To appear in Acta Informatica. + +"Shared Memory Consistency Conditions for Non-Sequential Execution: Definitions and Programming Strategies," Chaudhuri, S., Attiya, H., Friedman, R., & Welch, J.L. SIAM Journal on Computing, 27(1):65-89, February 1998. + +"Understanding the Set Consensus Partial order Using the Borowsky-Gafni Simulation," Chaudhuri, S., & Reiners, P. Proceedings of the Tenth International Workshop on Distributed Algorithms, 1996. Lecture notes in Computer Science 1151, Springer-Verlag, pp. 362-379. + +"Using Adaptive Timeouts to Achieve At-Most-Once Message Delivery," Chaudhuri, S., Coan, B., & Welch, J. Distributed Computing, 9(3):109-117, September 1995. + +"Bounds on the Costs of Multi-Valued Register Implementations," Chaudhuri, S., & Welch, J. SIAM Journal on Computing, 23(2):335-354, April 1994. + +"Designing Algorithms for Distributed Systems with Partially Synchronized Clocks," Chaudhuri, S., Gawlick, R., & Lynch, N. Proceedings of the Twelfth Annual ACM Symposium on Principles of Distributed Computing, August 1993. + +"More Choices Allow More Faults: Set Consensus Problems in Totally Asynchronous Systems," Chaudhuri, S. Information and Computation, 105(1):132-158, July 1993. + +"Safety and Liveness of Context-Free Languages," Chaudhuri, S., & Ladner, R.E. Information Processing Letters, 37(10):13-20, January 1991. + + + +HUI-HSIEN CHOU, Assistant Professor of Computer Science & Zoology and Genetics + +1996 Ph.D., Computer Science University of Maryland at College Park +1989 BS, Computer Science National Taiwan University, Taipei, Taiwan +1984 BS, Chemical Engineering Ming-Chih Institute of Technology, Taipei, Taiwan + +203 Science II, Iowa State University, Ames, IA 50011; email: hhchou@iastate.edu + +Major Interests: +Bioinformatics, computational biology, cellular automata, and self-organization phenomena. + +Current Research +Dr. Chou works on two front ends. For computational biology research, he has done a program (lucy) which processes DNA data before assembly. He has also done a protein alignment program (yasat) that is based on information distance measurement, unlike the tradition dynamic programming approaches. He is now planning to write a third generation sequence assembly program which will be based on delayed-decision making and graph algorithms, to come up with the best possible assembly consensus out of a set of DNA shotgun fragments. + +Dr. Chou also works on cellular automata self-replication research. Cellular automata are computer-theoretical models for self-organization and/or self-replication systems. They are used to grasp the idea of life, but in an information processing context without touching the details of implementation such as DNA and proteins. Research in this field may possibly shed some light in the future to questions such as "what is life?", "how does life emerge?", and "how does life evolve?". + +Representative Publications +Hui-Hsien Chou, Granger G. Sutton, Anna Glodek, and John Scott. Lucy - A Sequence Cleanup Program. Proceedings of the Tenth Annual Genome Sequencing and Annotation Conference (GSAC X), Miami, Florida, September 1998. + +Hui-Hsien Chou and James A. Reggia. Problem Solving During Artificial Selection of Self-Replicating Loops. Physica, D 115, pp. 293-312, 1998. + +Hui-Hsien Chou and James A. Reggia. Emergency of Self-Replicating Structures in a Cellular Automata Space. Physica D 100, pp. 2520276, 1997. + +Hui-Hsien Chou, James A. Reggia, Rafael Navarro-Gonza lez, and Jayoung Wu. An Extended Cellular space Method for Simulating Autocatalytica Oligonucleotides. Computers and Chemistry, 18:1, pp. 33-43, 1994. + +James A. Reggia, Steven L. Armentrout, Hui-Hsien Chou, and Yun Peng. Simple Systems That Exhibit Self-Directed Replication. Science, 259, pp. 1282-1288, Feb. 26, 1993. + + +DAVID FERNANDEZ-BACA, Professor of Computer Science + + B.S. 1980, Electrical & Computer Engineering, National University of Mexico, Mexico City + M.S. 1983, Electrical & Computer Engineering, University of California, Davis + Ph.D. 1986, Computer Science, University of California, Davis + +Major Interests: +Design and analysis of algorithms, combinatorial optimization, graph algorithms, computational geometry, computational biology. + +Current Research: +Dr. Fernandez-Baca conducts research in the design and analysis of combinatorial algorithms. One of his main areas of activity is parametric optimization, where his goal is to design efficient algorithms to analyze the sensitivity of the optimum solution to changes in the input data. Computational biology is another field to which Dr. Fernandez-Baca has devoted his attention. In particular he has studied some of the combinatorial problems arising in the comparison of sequences and the reconstruction of evolutionary trees for sets of species. + +Representative Publications: +"Bounds for Parametric Sequence Comparison," Fernandez-Baca, D., Seppalainen, T., & Slutzki, G. (1999) Proceedings of the Conference on String Processing and Information Retrieval (SPIRE 99). + +"On the Approximability of the Steiner Tree Problem in Phylogeny," Fernandez-Baca, D., & Lagergren, J. (1998). Discrete Applied Mathematics 88:129-145. (Special issue on Computational Biology.) + +"Faster Nonlinear Parametric Search, with Applications to Optimization and Dynamic Geometry," Fernandez-Baca, D. (1998) Proc. 3rd Latin American Conference on Theoretical Informatics, Springer-Verlag LNCS, Vol. 1380, 1998. To appear in Algorithmica. + +"Linear-time Algorithms for Parametric Minimum Spanning Tree Problems on Planar Graphs," Fernandez-Baca, D., and Slutzki, G. (1997). Theoretical Computer Science, 181:57--74. +"Optimal Parametric Search in Graphs of Bounded Tree-width," Fernandez-Baca, D., and Slutzki, G. (1997). Journal of Algorithms, 22:212-240. + +"Using Sparsification for Parametric Minimum Spanning Tree Problems," Fernandez-Baca, D., Slutzki, G., and Eppstein, D. (1996). Nordic Journal of Computing, 3(4):352--366. (Special issue devoted to selected papers from the 5th Scandinavian Workshop on Algorithm Theory.) + +"Simple Algorithms for Perfect Phylogeny and Triangulating Colored Graphs," Fernandez-Baca, D., and Agarwala, R. International Journal of Foundations of Computer Science (invited paper to special issue on Computational Biology), 7(1):11-21, March 1996. + +"A Polynomial-Time Algorithm for Near-Perfect Phylogeny," Fernandez-Baca, D., and Lagergren, J. (1996). Proceedings of the 23rd International Colloquium on Automata, Languages, and Programming, pp. 670-680, Springer-Verlag Lecture Notes in Computer Science. + +"Weighted Multidimensional Search and its Application to Convex Optimization," Fernandez-Baca, D., and Agarwala, R. (1996). SIAM Journal on Computing, 25:83-99. + +"Fast Algorithms for Computing Evolutionary Trees," Fernandez-Baca, Agarwala, R., and Slutzki, G. (1995). Journal of Computational Biology, 2(3):397-408. + +"A Polynomial-Time Algorithm for the Perfect Phylogeny Problem when the Number of Character States is Fixed," Fernandez-Baca, D., and Agarwala, R. (1994). SIAM J. Computing, 23:1216-1224. + + +SHASHI K. GADIA, Associate Professor of Computer Science + + B.S. (Hons), 1969, Mathematics, Birla Inst. of Tech. & Science + M.Sc. 1970, Mathematics, Birla Inst. of Tech. & Science + Ph.D. 1977, Mathematics, University of Illinois + M.S. 1980, Computer Science, Ohio State University + +Major Interests: +Temporal, spatial, belief, security, statistical and incomplete data; database models, type hierarchy, languages, user interfaces, optimization, implementation and access methods; pattern matching in spatio-temporal data. + +Current Research: +The term dimensional data covers databases for data over a dimensional space such as time, space and user beliefs. A uniform approach for dimensional data assures upward compatibility. Thus when one migrates from lower forms of dimensional data to higher forms, e.g. ordinary data to spatio-temporal data, the existing application software would not need to be redeveloped. Such a framework necessitates careful study of pragmatic issues such as database optimization. + +Representative Publications: +"A Pattern Matching Language for Spatio-Temporal Databases," Gadia, S., & Cheng, T. (1994). Proceedings of the Third International Conference on Information and Knowledge Management, pp. 288-295. + +"Object Identity and Dimension Alignment in Parametric Databases," Gadia, S., Cheng, T. & Nair, S. (1993). Proceedings of the Second International Conference on Information and Knowledge Management, pp. 615-624. + +"Relational Database Systems With Zero Information-Loss," Gadia, S., & Bhargava, G. (1993). IEEE Transactions on Knowledge and Data Engineering, 5:76-87. + +"Incomplete Information in Relational Temporal Databases," Gadia, S., Nair, S., & Poon, Y. (1992). Proceedings of the 18th International Conference on Very Large Databases, pp. 395-406. + +"Algebraic Optimization in a Relational Model for Temporal Databases," Gadia, S., & Nair, S. (1992). Proceedings of the First International Conference on Information and Knowledge Management, pp 169-176. +"A Generalized Model for a Relational Temporal Database," Gadia, S., & Yeung, C. (1988). ACM SIGMOD Conference on Management of Data, pp. 251-259. + +"A Homogeneous Relational Model and Query Languages for Temporal Databases," Gadia, S. (1988). ACM Transactions on Database Systems, 14:418-448. + +"A Query Language for a Homogeneous Temporal Database," Gadia, S., & Vaishnav, J. (1985). Proc. Fourth Annual ACM SIGACT-SIGMOD Symposium on Principles of Database Systems, pp 51-56. + + +DON E. HELLER, Adjunct Associate Professor of Computer Science + + B.S. 1971, Mathematics, Carnegie Mellon University + Ph.D. 1977, Computer Science, Carnegie Mellon University + +Major Interests: +Numerical Analysis, Parallel Computation, Computer Architecture (technology-oriented algorithm design and analysis). Programming and debugging support tools for distributed memory systems, performance evaluation and analysis. + +Representative Publications: +"A Communication Library Using Active Messages to Improve Performance of PVM," Subramaniam, K.R., Kothari, S.C., & Heller, D. (1996). Journal of Parallel and Distributed Computing, 39:146-152. + +"Issues of Running Code on Very Large Parallel Processing Systems," Heller, D. (1996). Debugging and Performance Tuning for Parallel Computer Systems, M.L. Simmons et al., eds., IEEE Computer Society. + +"Gordon Bell Prize Lectures 1993," Heller, D. Proc. Supercomputing '93, pp. 514-515. Summary articles in IEEE Computer, Jan. 1994, pp. 69-75, and Jan. 1995, pp. 68-74. + +"Ten Steps for Managing Parallel Computing Projects," Heller, D. IEEE Parallel and Distributed Technology, Spring 1994, pp. 6-8. + +"Performance Measurements of the nCUBE/ten Multiprocessor," Heller, D. Shell Development Co., Houston, December 1988. + +"Partitioning Big Matrices for Small Systolic Arrays," Heller, D. (1985). VLSI and Modern Signal Processing" S.Y. Kung et al., eds., Prentice-Hall, pp. 185-199. + +"Mathematical Hardware - Design Issues and Responsibilities," Heller, D. (1985). Algorithmically Specialized Parallel Computers, L. Snyder et al., eds., Academic Press, pp. 233-241. + +"Systolic Networks for Orthogonal Decompositions," Heller, D., & Ipsen, I.C.F., (1983). SIAM J. Sci. Stat. Computing, 4:261-269. + "Minimal Parallelism for Associative Computations Under Time Constraints," Heller, D. (1979). Computing, 22:101-118. + +"A Survey of Parallel Algorithms in Numerical Linear Algebra," Heller, D. (1978). SIAM Review, 20:740-777. + + +VASANT HONAVAR, Associate Professor of Computer Science and Neuroscience + +B.E. 1982, Electronics Engineering, Bangalore University, India. +M.S. 1984, Electrical and Computer Engineering, Drexel University +M.S. 1989, Computer Science, University of Wisconsin at Madison +Ph.D. 1990, Computer Science and Cognitive Science, University of Wisconsin at Madison + +www: http://www.cs.iastate.edu/~honavar/ + +Current Affiliations: +Associate Professor, Department of Computer Science +Project Director, Bioinformatics, Computational Molecular Biology Training Group +Faculty Member, Iowa Computational Biology Laboratory +Faculty Member, Neuroscience Graduate Program +Faculty Member, Bioinformatics and Computational Biology Graduate Program +Faculty Member, Complex Adaptive Systems Program +Professor in Charge, Artificial Intelligence Research Laboratory +Editor-in-Chief, Cognitive Systems Research. + +Research and Teaching Interests: +Artificial Intelligence; Artificial Neural Networks; Autonomous Robots; Automata Induction; Biological Computation; Bioinformatics and Computational Biology; Cognitive Science; Complex Adaptive Systems; Computational Learning Theory; Computational Neuroscience; Data Mining, Knowledge Discovery, and Visualization; Decision Support Systems; Distributed Knowledge Networks; Distributed Databases, Mediators, and Data Warehouses; Evolutionary Computation; Intelligent Agents, Mobile Agents,and Multi-Agent Systems; Intelligent Design and Manufacturing Systems; Internet-Based Information Systems; Knowledge Representation, Automated Inference, and Knowledge-Based Systems; Machine Learning; Machine Perception; Parallel and Distributed Artificial Intelligence. + +Current Research: +Examples of current projects in Honavar's laboratory on Intelligent Agents, Mobile Agents, and Multi-Agent Systems include Distributed Knowledge Networks for information retrieval, extraction, organization and visualization; and data-driven knowledge discovery and theory refinement using heterogeneous, distributed knowledge and data sources with emphasis on Bioinformatics and Situation Assessment and Decision Support applications. In related work, topics in mobile agents, inter-agent negotiation protocols, rapid design and prototyping of intelligent agents, distributed problem solving, and coordination and control structures for multi-agent systems are being investigated. + +Current research in Honavar's lab in machine learning emphasizes the design, analysis, and implementation of algor-ithms for incremental data driven knowledge acquisition and theory refinement from distributed, dynamic data and knowledge sources, efficient and scalable algorithms for grammar induction, feature subset selection, induction of neural networks and other forms of classifiers for pattern recognition, spatial and temporal knowledge acquisition, and multi-task learning with emphasis on applications in bioinformatics, domain-specific automated program synthesis, decision support, customizable digital information assistants, diagnosis, monitoring and control of complex distributed systems (e.g., computer systems, power systems) and related areas. + +Current research in Computational Neuroscience is focused on algorithmic models of memory and learning across multiple modalities, tasks, and timescales in biological systems (including interactions with motivational and reward systems) and computational models of acquisition and use of spatial, temporal, spatio-temporal cognitive maps. + +Current research in Computational Biology and Bioinformatics emphasizes novel algorithms for information retrieval and organization, machine learning approaches to gene discovery, sub-secondary, secondary, and tertiary protein structure prediction, characterization of molecular structure-function relationships, scalable DNA chip design, +information theoretic and grammatical analysis of DNA and protein sequences. + +Honavar's research is partially supported by grants from the National Science Foundation, the John Deere Foundation, IBM, Carver Foundation, Department of Energy, and the ISU Graduate College. + +Recent Representative Publications: +"Machine Learning." Honavar, V., Parekh, R., & Yang, J. (1999). Invited article. In: Encyclopedia of Electrical and Electronics Engineering. Webster, J.G. (Ed.) New York: Wiley. + +"Simple DFA are Polynomially Probably Exactly Learnable from Simple Examples." Parekh, R. & Honavar, V. (1999). In: Proceedings of the Sixteenth International Conference on Machine Learning. Bled, Slovenia. + +"Data-Driven Theory Refinement Algorithms for Bioinformatics." Yang, J., Parekh, R., Honavar, V. & Dobbs, D. (1999). In: Proceedings of the International Joint Conference on Neural Networks. Washington, D.C. + +"Some Experiments in the Evolution of Robot Sensors". Balakrishnan, K. & Honavar, V. (1999). Invited chapter. In: Evolutionary Computing Techniques in System Design. Jain, L. (Ed.) New York: CRC Press. In press. + +"A Hybrid Computational Model of Place Learning and Localization." Bhatt, R., Balakrishnan, K., & Honavar, V. (1999). In: Proceedings of the International Joint Conference on Neural Networks. Washington, D.C. + +"Spatial Learning and Localization in Animals: A Computational Model and its Implications for Mobile Robots," Balakrishnan, K., Bousquet, O. & Honavar, V. (1999). Adaptive Behavior. In press. + +"A Neural Architecture for Syntax Analysis." Chen, C.-H., & Honavar, V. (1999). IEEE Transactions on Neural Networks. 10:11, pp. 94-114. + +"Constructive Learning / Structural Learning." Honavar, V., Yang, J. & Parekh, R. (1999). Invited article. In: Encyclopedia of Electrical and Electronics Engineering. Webster, J.G. (Ed.) Vol. 4. pp. 226-231. New York: Wiley. + +"Automata Induction, Grammar Inference, and Language Acquisition," Parekh, R. & Honavar, V. (1999). Invited chapter in Handbook of Natural Language Processing, Dale, Moisl and Somers (Ed). New York: Marcel Dekker. In press. + +"DistAl: An Inter-Pattern Distance Based Constructive Neural Network Learning Algorithm," Yang, J. & Honavar, V. (1999). Intelligent Data Analysis. In press. + +"Neural Architecture for Information Retrieval and Query Processing," Chen, C-H., & Honavar, V. (1999) Invited Chapter in: Handbook of Natural Language Processing. Dale, Moisl and Somers (Ed). New York: Marcel Dekker. In press. + +"Intelligent Agents," Honavar, V. (1999). Invited chapter in Encyclopedia of Information Technology. Williams, J.G. and Sochats, K. (ed). New York: Marcel Dekker. To appear. + +"Performance Comparison of Variants of Single-Layer Perceptron Algorithms on Non-Separable Data." Yang, J., Parekh, R. & Honavar, V. (1999). Neural, Parallel, and Scientific Computations. In press. + + +YAN-BIN JIA, Assistant Professor of Computer Science + +B.S. 1988, Computer Science, University of Science and Technology of China +M.S. 1993, Robotics (and Computer Science), Carnegie Mellon University +Ph.D. 1997, Robotics (and Computer Science), Carnegie Mellon University + +Major Research Interests: +Robotics, computational geometry, artificial intelligence, planning, information requirements and retrieval, geometric modeling, nonlinear control and observation, robot sensing, manipulator kinematics and dynamics. + +Current Research: +"The hand is the cutting edge of the mind", and "The world can only be grasped by action, not by contemplation" says Bronowski in his book "The Ascent of Man". Dr. Jia's main research objective is to make the robot execute real world tasks intelligently and skillfully. He has endeavored to understand action and intelligence as they interact with each other, using techniques from computer science, artificial intelligence, geometry (computational and differential), mechanics, and control. + +Inspired by the versatility and complexity of human perception, Dr. Jia's recent Ph.D. work focused on the design and analysis of robot sensing strategies that are efficient, reliable, easy to be integrated into manipulation, and yet simple in terms of hardware. A large part of this effort was on understanding the evolution and encoding of information in robot tasks subject to their geometry and mechanics so that their (minimum) information requirements for physical sensors can be determined. + +While continuing his computational study of information structure and mechanical intelligence in robotics, Dr. Jia is also interested in applying machine learning techniques to tackle tasks that would be computationally expensive or intractable otherwise. The human hand learns skills through practice, so should the robot. He would like to program the robot so that it will be able to give performances that approach the human level. A long term goal will be to seek a clear understanding of the shares of load between purely computational methods and learning methods in the context of intelligent task execution. + +Dr. Jia's other interests span areas including computational geometry, geometric modeling, physics-based animation, graphics, and human computer interaction. + +Representative Publications: +"Pose and Motion from Contact," Yan-Bin Jia and Michael Erdmann, International Journal of Robotics Research, 18(5):466-490, 1999. + +"Local Observability of Rolling," Yan-Bin Jia and Michael Erdmann, In Robotics: The Algorithmic Perspective, P.K. Agarwal et al. (eds.), pp. 251-263, A. K. Peters, Boston, 1998. Also Proc. 3rd Int'l Workshop on the Algorithmic Foundations of Robotics, Houston, TX, March 1998. + +"Geometric and Dynamic Sensing: Observation of Pose and Motion through Contact," Yan-Bin Jia, Ph.D. thesis, CMU-RI-TR-97-50, The Robotics Institute, Carnegie Mellon University, December 1997. + +"Geometric Sensing of Known Planar Shapes," Yan-Bin Jia and Michael Erdmann, International Journal of Robotics Research, 15(4): 365-392, 1996. + +"On Computing Optimal Planar Grasps," Yan-Bin Jia. In Proceedings of the 1995 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 3:427-434, Pittsburgh, PA, August 1995. + +"The Complexity of Sensing by Point Sampling," Yan-Bin Jia and Michael Erdmann, In Algorithmic Foundations of Robotics, Ken Goldberg et al. (eds.), pp. 283-300, A. K. Peters, Boston, 1995. Also Proc. 1st Int'l Workshop on the Algorithmic Foundations of Robotics, San Francisco, CA, February 1994. + + +STEVEN M. LAVALLE, Assistant Professor of Computer Science + + B.S. 1990, Computer Engineering, University of Illinois at Urbana-Champaign + M.S. 1993, Electrical Engineering, University of Illinois at Urbana-Champaign + Ph.D. 1995, Electrical Engineering, University of Illinois at Urbana-Champaign + +Web Page: http://janowiec.cs.iastate.edu/~lavalle + +Major Interests: +Robotics, virtual prototyping, graphical simulation and animation, motion strategy problems, geometric reasoning, computer vision, artificial intelligence, applied optimal control and game theory, computational geometry, computational chemistry and drug design, networked mobile robotics. + +Current Research: +These are exciting times as computer science and related engineering areas are rapidly advancing, leading to many new modeling challenges, paradigms for analysis, and opportunities to make contributions in emerging applications. My current interests lie in the algorithmic, modeling, and analysis issues involved at the intersections of geometric reasoning, modern planning and control, and uncertainty, and my background is built on combinations of subjects from computer science (e.g., algorithms, computational geometry), electrical engineering (e.g., control, image processing), and applied math (e.g., analysis, topology, optimization). + +We are currently most excited about our development of Rapidly-exploring Random Trees (RRTs) for searching high-dimensional spaces tha arise from geometrically-complicated motion strategy problems. With partial support from an NSF CAREER award, we are developing and analyzing planning algorithms that apply RRTs to a number of applications, such as evaluating vehicle performance in a graphical simulator, determining how to fire thrusters to navigate a spacecraft through a cluttered environment, and generating automatic motions for a digital actor in a movie or video game. + +Most of our research is conducted in the Algorithmic Robotics and Motion Strategy Lab, which contains several workstations and a Nomad XR4000 mobile robot base. This state-of-the-art robotics platform enables the group to perform a wide array of experiments such as target location and tracking, and network-based tele-embodiment. We also collaborate with researchers at Stanford University, Rice University, and the University of Tokyo. + +Representative Publications: +"Rapidly-Exploring Random Trees: A New Tool for Path Planning," by S. M. LaValle (available at http://janowiec.cs.iastate.edu/~lavalle) + +"Randomized Kinodynamic Planning," by S. M. LaValle and J. J. Kuffner, Jr., Proc. 1999 International Conference on Robotics and Automation, 1999. + +"Visibility-Based Pursuit-Evasion: The Case of Curved Environments," by S. M. LaValle and J. Hinrichnsen, Proc. IEEE International Conference on Robotics and Automation, 1999. + +"A Probabilistic Roadmap Approach for Systems with Closed Kinematic Chains," by S. M. LaValle, J. H. Yakey, and L. E. Kavraki, 1999 IEEE International Conference on Robotics and Automation + +"Efficient Database Screening for Rational Drug Design Using Pharmacophore-Constrained Conformational Search" by S. M. LaValle, P. W. Finn, L. E. Kavraki, and J.-C. Latombe, Proc. Third International Conference on Computational Molecular Biology (RECOMB), 1999. +"Efficient Computation of Optimal Navigation Functions for Nonholonomic Planning," by P. Konkimalla and S. M. LaValle, Proc. IEEE International Symposium on Robot Motion and Control, 1999. + +"Visibility-Based Pursuit-Evasion in a Polygonal Environment," S. M. LaValle, L. J. Guibas, J.-C. Latombe, D. Lin, & R. Motwani, International Journal of Computational Geometry and Applications. +"An Objective-Based Framework for Motion Planning under Sensing and Control Uncertainties," S. M. LaValle, & S. A. Hutchinson, International Journal of Robotics Research, 17(1):19-42, January 1998. + +"Optimal Motion Planning of Multiple Robots Having Independent Goals." LaValle, S., & Hutchinson, S. A., IEEE Trans. on Robotics and Automation, December, 1998. + +"Motion Strategies for Maintaining Visibility of a Moving Target." S. M. LaValle, H. H.Gonzalez-Banos, C. Becker, & J.-C. Latombe, in Proc. 1997 IEEE International Conference on Robotics and Automation. + +"Robot Motion Planning: A Game-Theoretic Framework," LaValle, S. (1997). Algorithms for Robotic Motion and Manipulation, J.P. Laumond and M. Overmars, Eds., A.K. Peters, Boston, MA. + +"On Motion Planning in Changing, Partially-Predictable Environments," LaValle, S., & Sharma, R., International Journal of Robotics Research, 16(6), 775-805, December 1997. + +"Methods for Numerical Integration of High-Dimensional Probability Densities with Application to Statistical Image Models," S. M. LaValle, K. J. Moroney, & S. A. Hutchinson, IEEE Transactions on Image Processing, 6(12), 1659-1672, December 1997. + + +GARY T. LEAVENS, Associate Professor of Computer Science. + + B.S. 1978, Computer & Communication Sciences, The University of Michigan + M.S. 1980, Computer Science, The University of Southern California + Ph.D. 1989, Computer Science, Massachusetts Institute of Technology + +Major Interests: +Programming and specification language design and semantics, formal methods (program specification and verification), object-oriented programming, functional programming, type theory, distributed programming languages. + +Current Research: +The long term goal of my research is to understand better how to solve programming problems: how to specify such problems, methods for thinking about such problems, notations for expressing solutions, and ways to check that the solutions are correct. In pursuing this goal, I have worked in two main areas: formal methods and programming languages. + +Formal Methods: My work in formal methods has been focused on ways to specify and verify object-oriented (OO) soft-ware components. This specification work involves the design and formal description of a behavioral interface specifica-tion language (BISL) for C++ program modules, called Larch/C++, and, more recently, a BISL for Java program modules, called JML. From this work a key problem has emerged: how to make specification languages that are expressive enough for documenting existing code in ways that people will find helpful for reuse. We have made some progress with Larch/ C++ and JML towards solving this problem, but there is a lot of information that it cannot (yet) record. Examples include information about performance constraints, and details needed for deriving subclasses by inheritance. Our current work on JML funded by Rockwell and the National Science Foundation (NSF) tries to address some of these issues, as well as issues of practicality and how to deal with multimethods (see below). This recent work is joint with Professor Al Baker. + +An advantage of OO languages, such as C++ and Java, is that their message passing mechanism allows one to easily extend programs by adding new types whose objects behave like the objects of existing types; the existing types are supertypes of the new types which are called subtypes. A long term research interest has been to understand how to reason about programs that use subtyping and message passing. A criteria for judging specification and verification methods is that they should be modular in the sense that when subtypes are added to a program, unchanged modules would not have to be respecified or reverified. Modular reasoning is guaranteed by the technique of supertype abstraction. In this technique, one specifies and verifies code in terms of the static types of expressions written in a program (as usual), uses a type checker to ensure that the static types are supertypes of the run-time types, and then must prove that subtypes obey the specifications of their supertypes. + +Krishna Kishore Dhara, a recently graduated Ph.D. student, has extended the formal theory of behavioral subtyping to types whose instances have time-varying state. Professor Don Pigozzi (of the Mathematics Department at ISU) and I have found an exact algebraic characterization of behavioral subtyping for immutable types. Our joint research on the above topics has been funded by the National Science Foundation (NSF). A former Ph.D. student, Yoonsik Cheon, has also designed a specification language Larch/Smalltalk and its informal semantics to explore some of these ideas. I have also been working with Professor Al Baker and a former Ph.D. student, Tim Wahls, on executable specifications and improving syntax and semantics of data-flow diagrams. + +The potential impact of the work in formal methods is possibly great; it might lead to the engineering of software, instead of hacking. It also seems necessary for high quality software components and reuse. But more realistically, I view my research as trying to formally understand what one needs to think about when documenting and reasoning about a program or program component. This can be of great value for teaching and for the construction of tools, even if people do not use the formalism directly or on a daily basis. + +Programming Language Design and Semantics: The other main aspect of my work in the last few years has been on the design and semantics of object-oriented languages with generic functions. Such languages are known as multimethod programming languages, because method calls can dispatch a message send on all arguments, unlike a single-dispatching OO language, such as Smalltalk, C++, or Java. Multimethod languages are interesting because they can more easily express solutions to certain problems in OO programming (binary methods). + +My work on multimethod languages is joint with Craig Chambers of the University of Washington, his student Todd D. Millstein as well as Sevtap Karakoy, Jianbing Chen, and Professors Al Baker and Don Pigozzi of ISU. It focuses on the semantics and type systems for variants of the Cecil language. To date we have published papers about an algorithm for type checking such languages with very expressive features (orthogonal inheritance and subtyping), and about how to add multimethods to existing languages. One big problem is to get a language with both a (sound) static type system and a sensible module system. We have designed a langauge allows one to program abstract data types in two styles, one of which is easier to extend (as in standard OO languages) and the other of which is easier to reason about. Programmers can use both styles in the same program. The potential impact might be large if this leads to more flexible ways of supporting abstract data types in programming languages, as they are at the heart of modular, reusable coding practices. A recent NSF is starting to fund research on formal methods for such languages. + +See http://www.cs.iastate.edu/~leavens/ for details. + +Representative Publications +Gary T. Leavens and Todd D. Millstein. Multiple Dispatch as Dispatch on Tuples. In OOPSLA '98 Conference Proceedings, pages 374-387, 33:10 of ACM SIGPLAN Notices, October 1998. + +Gary T. Leavens and Jeannette M. Wing. Protective Interface Specifications. Formal Aspects of Computing, 10:59-75, 1998. + +Gary T. Leavens and Don Pigozzi. The Behavior-Realization Adjunction and Generalized Homomorphic Relations. Theoretical Computer Science, 177:183-216, 1997. + +Gary T. Leavens. An Overview of Larch/C++: Behavioral Specifications for C++ Modules. In Haim Kilov and William Harvey (editors), Specification of Behavioral Semantics in Object-Oriented Information Modeling (Kluwer Academic Publishers, 1996), Chapter 8, pp. 121-142. + +Krishna Kishore Dhara and Gary T. Leavens. Forcing Behavioral Subtyping Through Specification Inheritance. In Proceedings 18th International Conference on Software Engineering, Berlin, Germany, pp. 258-267. IEEE, 1996. + +Gary T. Leavens and William E. Weihl. Specification and Verification of Object-Oriented Programs Using Supertype Abstraction. Acta Informatica, 32(8):705-778, November 1995. + +Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, The Hopkins Objects Group, Gary T. Leavens, and Benjamin Pierce. On Binary Methods. Theory and Practice of Object Systems 1(3):221-242, 1995. + +Craig Chambers and Gary T. Leavens. Typechecking and Modules for Multimethods. ACM Transactions on Programming Languages and Systems, 17(6):805-843, November 1995. + +Yoonsik Cheon and Gary T. Leavens. The Larch/Smalltalk Interface Specification Language. ACM Transactions on Software Engineering and Methodology, 3(3):221-253, July 1994. + + +JACK H. LUTZ, Professor of Computer Science. + + B.G.S. 1976, Mathematics, University of Kansas + M.A. 1979, Mathematics, University of Kansas + M.S. 1981, Computer Science, University of Kansas + Ph.D. 1987, Mathematics, California Institute of Technology + +Major Interests: +Computational Complexity, including structure of complexity classes, resource-bounded measure, and probabilistic complexity. Algorithmic Information and Randomness, including computational randomness, Kolmogorov complexity, computational depth, and games and prediction. + +Current Research: +Dr. Lutz does most of his research in two areas: computational complexity theory and algorithmic information theory. In computational complexity, he and his students are investigating the structure of complexity classes (deterministic, nondeterministic, probabilistic, and quantum) using resource-bounded measure, a complexity-theoretic generalization of Lebesgue measure that he has developed. Current work focuses on weak completeness, circuit-size complexity, natural proofs, genericity, interactions between randomization and nondeterminisim, strong hypotheses, real-valued functions, and the foundations of resource-bounded measure. In algorithmic information, he and his students are investigating randomness, resource-bounded randomness, Kolmogorov complexity, algorithmic prediction, feasible martingales, games, and computational depth. + +Representative Publications: +"The Density of Weakly Complete Problems under Adaptive Reductions," Lutz, J., & Zhao, Y. SIAM Journal on Computing, to appear. +"Equivalence of Measures of Complexity Classes," Breutzmann, J., & Lutz, J. SIAM Journal on Computing, to appear. + +"Query Order and NP-Completeness," Dai, J., & Lutz, J. (1999). Proceedings of the Fourteenth Annual IEEE Conference on Computational Complexity, IEEE Computer Society Press, pp. 142--148. + +"Genericity and Randomness over Feasible Probability Measures," Lorentz, A., & Lutz, J. (1998). Theoretical Computer Science, 207:245-259. + +"Observations on Measure and Lowness for Delta-P-2," Lutz, J. (1997). Theory of Computing Systems (formerly named Mathematical Systems Theory), 30:429-442. +"The Quantitative Structure of Exponential Time," Lutz, J. (1997). In Complexity Theory Retrospective II (Hemaspaandra, L.A., & Selman, A.L., eds.), Springer-Verlag, pp. 225-254. + +"Completeness and Weak Completeness under Polynomial-Size Circuits," Juedes, D., & Lutz, J. (1996). Information and Computation, 125:13-31. + +"The Complexity and Distribution of Hard Problems," Juedes, D., & Lutz, J. (1995). SIAM Journal on Computing 24:279-295. + +"Weakly Hard Problems," Lutz, J. (1995). SIAM Journal on Computing, 24:1170-1189. +"Computational Depth and Reducibility," Juedes, D., Lathrop, J., & Lutz, J. (1994). Theoretical Computer Science, 132:37-70. + +"Measure, Stochasticity, and the Density of Hard Languages," Lutz, J., & Mayordomo, E. (1994). SIAM Journal on Computing, 23:762-779. + + +ROBYN LUTZ, Affiliate Assistant Professor of Computer Science + +B.A. 1974, English, University of Kansas +M.A. 1976, Spanish, University of Kansas +Ph.D. 1980, Spanish, University of Kansas +M.S. 1990, Computer Science, Iowa State University + +Major Interests: +Software safety, fault detection and recovery, requirements engineering, formal methods, product lines, software engineering for spacecraft. + +Current Research: +Current research involves integration of software and system safety techniques, safety analysis of product lines, and formal specification and verification of fault-handling software on spacecraft. + +Representative Publications: +"Extending the Product Family Approach to Support Safe Reuse," The Journal of Systems and Software, to appear. + +"Using Immersive Virtual Environments for Certification," with C. Cruz-Neira, IEEE Software, to appear. + +"Experiences Using Lightweight Formal Methods for Requirements Modeling," with S. Easterbrook, R. Covington, J. Kelly, Y. Ampo, and D. Hamilton, IEEE Transactions on Software Engineering, 24(1):4-14, January 1998. + +"Failure Modes and Effects Analysis," with R. Woodhouse, Encyclopedia of Electrical and Electronics Engineering, ed. J. Webster, John Wiley and Sons Publishers, Vol. 7, 1999,p. 253-257. + +"Requirements Analysis Using Forward and Backward Search" with R. Woodhouse, Annals of Software Engineering, 3:459-475, 1997. + +"Targeting Safety-Related Errors During Software Requirements Analysis," The Journal of Systems and Software, 34:223-230, September 1996. + +"Detecting Unsafe Error Recovery Schedules" with J. Wong, IEEE Transactions on Software Engineering, 18(8):749-760, August 1992. + +"Toward Safe Reuse of Product Family Specifications,'' Proceedings of the Symposium on Software Reusability (SSR'99), May 21-23, 1999, Los Angeles, CA, 17-26. + +"Panel: Issues in Software Engineering for Survivable Systems,'' with N. Mead, J. Knight, R. Linger, and J. Voas, Proceedings of the 21st International Conference on Software Engineering (ICSE '99), May 16-22, 1999, 592-593. + +"Bi-directional Analysis for Certification of Safety-Critical Software," with R. Woodhouse, Proceedings of the First International Software Assurance Certification Conference (ISACC'99), March 1-3, 1999, Washington, D.C. + +"Safety Analysis of Requirements for a Product Family,'' with G.Helmer, M. Moseman, D. Statezni, and S. Tockey, Proceedings of the Third IEEE International Conference on Requirements Engineering (ICRE '98), April 6-10, 1998, Colorado Springs, CO, 24-31. + +"Panel: Issues in Requirements Definition for Survivabile Systems,'' with R. Linger, D. Fisher, J.Knight, and J. Voas, Proceedings of the Third IEEE International Conference on Requirements Engineering (ICRE '98), April 6-10, 1998, 198-199. + +"Reuse of a Formal Model for Requirements Validation,''Proceedings of the Fourth NASA Langley Formal Methods Workshop, 10-12 September, 1997, Hampton, VA, 75-85. + +"Experience Report: Contributions of SFMEA to Requirements Analysis,'' with R. Woodhouse, Proceedings of the Second IEEE International Conference on Requirements Engineering, Apr 15-18, 1996, 44-51. + + +LES MILLER, Professor and Chair of Computer Science + + B.A. 1967, Mathematics, University of South Dakota + M.A. 1974, Mathematics, University of South Dakota + Ph.D. 1980, Computer Science, Southern Methodist University + +Major Interests: +Object oriented databases, Organizational decision support systems, Multi-agent systems, Knowledge management systems, Data warehouses, Computational Biology. + +Current Research: +We are currently looking at multi-agent systems to provide the infrastructure for integrating heterogeneous data sources. In addition to the agent systems, we have developed an object-oriented data warehouse to serve as part of the integration infrastructure. We have also been looking at tools for generating and populating data warehouse designs. We are also concerned with applying database and machine learning techniques to problems in computational biology. + +Representative Publications: +"Populating a data warehouse with mobile agents," Dandu, R., L. Miller, S. Nilakanta, and V. Honavar. (1999). To appear in The Tenth International Conference of the Information Resources Management Association. + +"Distributed Knowledge Networks," Honavar, V., L.L. Miller, and J. Wong. (1998). IEEE Information Technology Conference, pp. 87-90. + +"Object-oriented data warehouse for information fusion from heterogeneous distributed data and knowledge sources," Miller, L.L., V. Honavar, J. Wong, and S. Nilakanta. (1998). IEEE Information Technology Conference, pp. 27-31. + +"Data Warehouse Modeler: A Case Tool for Warehouse Design," Miller, L.L., & Nilakanta, S.. (1998). Hawaiian International Conference on Systems Science, pp. 42-48. + +"Extending the Object-Relational Interface to Support an Extensible View System for Multidatabase Integration and Interoperation," Miller, L.L., Yen, D., Sirjani, A., & Tenner, J. (1998). International Journal of Computer Systems Science and Engineering. 13:4, pp. 227-240. + +"A Dynamic Approach for Finding the Join Sequence in a Universal Relation Interface," Miller, L.L., & Owrang, M. M. (1998). To appear in the Journal of Integrated Computer-Aided Engineering, 4:310-318. + +"Warehousing Structured and Unstructured Data for Data Mining." Miller, L.L., Honavar, V., & Barta, T. (1997). ASIS '97, pp. 215-224. + + +SIMANTA MITRA, Adjunct Assistant Professor of Computer Science + +Ph.D 1997, Computer Science, Iowa State University +M.S. 1991, Computer Science, Iowa State University +B.E. 1987, Computer Science & Technology, Calcutta University, India + +Major Interests: +Programming Languages, Compilers, Operating Systems, Parallelizing Tools, Embedded and Real-Time computing, Performance Evaluation of computer systems, and Software Engineering. + +Representative Work: +U.S. Patent for "An apparatus and method for parallelizing legacy computer codes". Patent approved 04/14/99. + +U.S. Patent pending for "An incrementally copying, mark-and-sweep, garbage-collector". + +"A new approach to parallelization of scientific and engineering codes based on the use of high-level knowledge", PhD thesis. + +"A Scalable 2D Parallel Sparse Solver" (with Dr. S.C. Kothari), Proceedings of the 7th SIAM Conference on Parallel Processing for Scientific Computing, 1995. + + +WAYNE O. OSTENDORF, Associate Professor of Computer Science, Director of the Administrative Data Processing Center. + + B.S. 1960, Statistics, Iowa State University + +Major Interests: +Applied systems technology; computer based information systems; data center management, large data bases, interactive systems; hardware/software and people synergism. + +Representative Publications: +"Iowa State University's Purchasing System: New Platform Leads to More Services, More Success," Ostendorf, W.O., Moats, L., & Diana, R. Proceedings of the 39th Annual College and University Computer Users Conference, pp. 61-76, Ohio State University, May 1994. + +"Electronic Information - Image Processing: A Step Toward an Electronic Information Environment at Iowa State University," Ostendorf, W.O., & Newhouse, L. Proceedings of the 38th Annual College and University Computer Users Conference, May 1993, pp. 377-392. + +"Customized Tools, CAAD System (Computer Aided Application Development)," Ostendorf, W.O., & Maly, F. Proceedings of the 1990 CAUSE National Conference, November 1990, pp. 481-485. + + +GURPUR PRABHU, Associate Professor of Computer Science + + B.Tech. 1975, Electrical Engineering, I.I.T., Madras, India + M.Tech. 1978, Computer Science, I.I.T., Kanpur, India + Ph.D. 1983, Computer Science, Washington State University, Pullman + +Major Interests: +Parallel processing, computer architecture, business process modeling and analysis. + +Current Research: +Dr. Prabhu's current research focuses on performance issues of parallel programs and methods for business transformation. + +Representative Publications: +"Programming is Writing: Why Programs must be Carefully Evaluated," Journal of Mathematics and Computer Education, 32:3, Fall 1998, pp. 284-295 (with Gary Leavens, Albert Baker, Vasant Honavar, and Steve LaValle). + +"Parallelizing a very high resolution climate model using clusters of workstations with PVM and performance and load balance analyses," (with Hao Wang and Eugene Takle), Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, 1998, pp. 1762-1765, CSREA Press. + +"Distribution-Independent Hierarchical Algorithms for the N-body problem," Journal of Supercomputing, 12, 1998, pp. 303-323 (with Srinivas Aluru, John Gustafson, and Fatih Sevilgen). + +"A Framework for Business Transformation," Journal of Microcomputer Applications, 17:1, 1998, pp. 1-7 (with Sree Nilakanta and Ashok Subramanian). + +"Enterprise Integration: Art or Science?" Summer Conference of the Society for Enterprise Engineering, June 1995. + +"Truly Distribution-Independent Algorithms for the N-Body Problem," Prabhu, G., Aluru, S., & Gustafson, J. Supercomputing '94, pp. 420-428. + +"A Methodology for Business Transformation," Prabhu, G., Nilakanta, S., & Subramanian, A. (1994). Proceedings of the Third International Conference on Systems Integration, Brazil, pp. 403-411. + +"The Use of Microcontrollers in Mechatronics Education," Prabhu, G., & Wright, C. (1994). Proceedings of the Workshop on Mechatronics Education, Stanford, pp. 72-77. + + +GIORA SLUTZKI, Professor of Computer Science + + B.S. 1970, Mathematics & Physics, Hebrew University of Jerusalem, Israel + M.S. 1973, Computer Science, Weizmann Institute of Science, Rehovot, Israel + Ph.D. 1977, Computer Science, Tel-Aviv University, Tel-Aviv, Israel + +Major Interests: +Algorithms and Complexity, Game Theory and Computational Economics, Formal Languages, Automata Theory. + +Current Research: +Dr. Slutzki is currently working on complexity of some problems in abstract algebra and graph theory. He also works on parametric string alignment and problems in pursuit-evasion in polygons. + +Representative Publications: +"Computational Complexity of Term-Equivalence," Slutzki, G., Bergman, C., & Juedes, D.; International Journal of Algebra and Computation, 9(1) (1999), pp. ???-???. + +"Using Sparsification for Parametric Minimum Spanning Tree Problems," Slutzki, G., Fernandez-Baca, D., & Eppstein, D. Special SWAT Issue of the Nordic Journal of Computing, 3(4):352-366, Winter 1996. Invited Paper. + +"Complexity of Some Problems in Universal Algebra," Slutzki, G., Bergman, C. 16th Symposium on Theoretical Aspects in Computer Science (SWAT '99), March 1999, Trier, Germany. Springer Verlag, LNCS 1563, pp. 163-172. + +"Duality Theory for Bilattices," Slutzki, G., Mobasher, B., Pigozzi, D., & Voutsadakis, G. to appear in Algebra Universalis. + +"Lower Bounds for Parametric Sequence Comparison," Slutzki, G., Fernandez-Baca, D., & Seppalainen, T. to be presented at the Symposium on String Processing and Information Retrieval (SPIRE '99), September 1999, Cancun, Mexico. + +"Optimal Parametric Search on Graphs of Bounded Tree-width," Slutzki, G., & Fernandez-Baca, D. (1997). Journal of Algorithms, 22:212-240. + +"Multi-valued Logic Programming Semantics: An Algebraic Approach," Slutzki, G., Mobasher, B., & Pigozzi, D. (1997). Theoretical Computer Science, 171:77-109. + +"A Hierarchy of Deterministic Top-down Tree Transformations," Slutzki, G., & Vagvolgyi, S. (1996). Mathematical Systems Theory, 29:169-188. + + +WALLAPAK TAVANAPONG, Assistant Professor of Computer Science + +B.S. 1992, Computer Science, Thammasat University, Thailand +M.S. 1995, Computer Science, University of Central Florida +Ph.D. 1999, Computer Science, University of Central Florida + +Major Interests: +Multimedia Systems, Parallel and Distributed Databases, Multimedia and Communications, Distributed Systems, Web Performance, Semi-Structure Data. + +Current Research: +The information superhighway will consist of a collection of heterogeneous high-speed networks, offering a variety of services. Due to these infrastructures, multimedia data such as videos and audio will greatly increase its presence and significance far beyond those seen on the Internet today. Examples of the services are instructional management systems, digital libraries, tele-immersion, and virtual laboratories. + +The following traits of multimedia data pose a great challenge to several research communities. Video and audio data demand both large storage space and high communication bandwidth. Furthermore, the data must be presented in a timely manner without interruptions or large jitters. In addition, compression techniques introduce self-similarity patterns in encoded media streams and further complicate the design of storage, retrieval, and transport of the media data. +Dr. Tavanapong's research addresses three critical aspects of multimedia computing: multimedia server design, media delivery techniques, and multimedia databases. Her research in the server design involves developing novel algorithms for a high performance server or a cluster of workstations so that the system can serve a large number of concurrent users efficiently. Her interest in the media transmission includes efficient unicast and multicast of visual and audio data to various users equipped with different communication devices and a novel distributed interactive cache to reduce network traffics. Lastly, her research in multimedia databases concentrates on content-based search for desire video segments from a large video database. + +Representative Publications: +"2PSM: An Efficient Framework for Searching Video Information in a Limited-Bandwidth Environment," Hua, K.A., Tavanapong, W., & Wang, J.Z. To appear in ACM Multimedia Systems. + +"Performance of Load Balancing Techniques for Join Operations in Shared-Nothing Database Management Systems," Hua, K.A., Tavanapong, W., & Lo, Y. Journal of Parallel and Distributed Computing, 56, 17-46, 1999. + +"Reducing Web Browsing Delay using Profiled-Based Prefetching," Tavanapong, W., Hua, K.A., & Sheu, S. In Proc. of WebNet 98 - World Conference of the WWW, Internet & Intranet, pp. 879-884, Orlando, FL, November, 1998. + +"A Framework for Supporting Previewing and VCR Operations in a Low Bandwidth Environment," Tavanapong, W., Hua, K.A., & Wang, J.Z. In Proc. of ACM Multimedia '97, pp. 303-312, Seattle, WA, November, 1997. + +"Pre-admission control for Movie-on-Demand," Tavanapong, W., Hua, K.A., & Sheu, S. In Proc. of Int'l Conference on Multimedia Information Systems, pp. 151-158, Schaumburg, IL, April, 1997. + +"Dynamic Grouping: An Efficient Buffer Management Scheme for Video-on-Demand Servers," Sheu, S., Hua, K.A., & Tavanapong, W. In Proc. of Int'l Conference on Multimedia Information Systems, pp. 135-142, Schaumburg, IL, April, 1997. + +"Chaining: A Generalized Batching Technique for Video-on-Demand Systems," Sheu, S., Hua, K.A., & Tavanapong, W. In Proc. of IEEE Int'l Conference on Multimedia Computing and Systems, pp. 110-117, Ottawa, Canada, June 1997. + +"Scheduling Queries for Parallel Execution on Multicomputer Database Management Systems," Lo, Y., Hua, K.A., & Tavanapong, W. In Proc. of Int'l Conference on Database and Expert Systems Applications, Zurich, Switzerland, 1996. + +"A Performance Evaluation of Load Balancing Techniques for Join Operations on Multicomputer Database Systems," Hua, K.A., Tavanapong, W., & Young H.C. In Proc. of IEEE Int'l Conference on Data Engineering, pp. 44-51, Taipei, Taiwan, 1995. + + +AKHILESH TYAGI, Associate Professor (Major Appointment in Computer Engineering) + + B.Tech. 1981, Electrical Engineering, Birla Institute of Technology & Science, Pilani, India. + M.Tech. 1983, Computer Engineering, Indian Institute of Technology, New Delhi, India. + Ph.D. 1988, Computer Science, University of Washington + +Major Interests: +Computer Architecture, VLSI: Complexity Theory, Low Energy VLSI Design Synthesis. + +Current Research: +My architecture research interests are in exploiting instruction-level-parallelism (ILP) both with the microarchitecture and compiler. One of the current projects uses branch decoupling to achieve that. In another thread, we are employing reconfigurable caches that can work both as on-chip memory and function units to speed up the processor. + +In VLSI research, we are developing a function-level model of energy consumption. We are also researching low power VLSI design issues particularly when applied to processor design. + +Representative Publications: +"Dynamic Branch Decoupled Architecture'', {\it with} H.C. Ng and P. Mohapatra, {\it Proceedings of IEEE International Conference on Computer Design (ICCD)}, October 1999. + +"Hybrid Data/Configuration Caching for Striped FPGAs'', {\it with} D. Deshpande and A. Somani, in {\it Proceedings of +IEEE International Symposium on Field Programmable Custom Computing Machines}, April 1999. + +"On Reconfiguring Cache for Computing'', {\it with} H-S. Kim and A. Somani, in {\it Proceedings of IEEE International Symposium on Field Programmable Custom Computing Machines}, April 1999. + +"Configuration Caching Vs Data Caching for Striped FPGAs'', {\it with} D. Deshpande and A. Somani, in {\it Proceedings of ACM International Symposium on FPGAs}, pp 206-214, ACM Press, February 1999. + +"Reduced Address Bus Switching with Gray PC," with F. Jensen, in {\it Proceedings of Power Driven Microarchitecture Workshop at International Symposium on Computer Architecture}, ACM Press, June 1998. + + "Entropic Limitations on Finite State Machine Switching'," Tyagi, A., IEEE Transactions on VLSI Systems, 5:4, pp. 456-464, December 1997. + +"Efficient Parallel Algorithms for Optical Computing with the DFT Primitive'," with J. Reif, in {\it Applied Optics}, 36:29, pp. 7327-9340, Optical Society of America, October 1997. + +"Branch Decoupled Architectures," Tyagi, A. Proceedings of Workshop on Interaction Between Compilers and Computer Architectures at IEEE High Performance Computer Architecture Symposium. A summary to appear in IEEE TC on Computer Architecture Newsletter, pp. 13-15, June 1997. + +"Statistical Module Level Area and Delay Estimation," VLSI Design, 5:2, pp. 141-153, April 1997, Gordon & Breach Publishers. + +"Configurable memory Queues/Computing Units Architecture," Tyagi, A., in Proceedings of Reconfigurable Architectures Workshop at International Parallel Processing Symposium, April 1997. + +"Minimizing Interconnect Energy through Integrated Low-Power Placement and Combinational Logic Synthesis," with Tyagi, A., & Holt, G., in Proceedings of ACM International Symposium on Physical Design, ACM Press, April 1997. + +"Low-Power FSM Design using Huffman-Style Encoding," Tyagi, A., Surthi, P., & Chao, L.F., in Proceedings of European Design and Test Conference, IEEE Computer Society Press, March 1997. + + +JOHNNY S. K. WONG, Professor of Computer Science + + B.S. 1977, Mathematics & Computer Science, The University of Hong Kong + M.S. 1982, Mathematics, The University of Sydney, NSW, Australia + Ph.D. 1987, Computer Science, The University of Sydney, NSW, Australia + +Major Interests: +Distributed Computing Environment (DCE), Distributed Operating Systems, Communication Protocols, Object-Oriented Systems and Databases, Common Object Request Broker Architecture (CORBA), Hypermedia Systems, Multimedia Information Systems, Intelligent Mobile Agents, Intrusion Detection. + +Current Research: +Dr. Wong's research interests include design and implementation issues in operating systems, distributed systems and multimedia communications. Current activities center around hypermedia, distributed multi-media database systems, and intelligent mobile agents, coordinated multimedia communications, distributed computing environment (DCE), and Common Object Request Broker Architecture (CORBA). + +The current research projects are funded by the Department of Defense on Intrusion Detection and Countermeasures (with Drs. Miller and Honavar) and by the Mayo Foundation on Database Generating and X-Ray Displaying using the +World Wide Web. + +Representative Publications: +"A Framework for a World Wide Web Based Data Mining System," Journal of Network and Computer Applications, Vol. 21, July 1998, pp.163-185. + +"A Multimedia Presentation Toolkit for the World Wide Web" Wong,J., Rao, S., & Ramaiah, N., Software: Practice and Experience, 27(4):425-446. April 1997. + +"Remote Access to Multimedia Databases: An object-Oriented Approach" Wong, J., & Parthasarathy, D., Software: Practice & Experience, 26(6):677-704, June 1996. + +"Design and Implementation of Heterogeneous Distributed Multimedia System using Mosaic GSQL," Wong, J., Magavi, S., & Bodla, P., Software: Practice & Experience, 25(11):1223-1242, November 1995. + +"Design and Implementation of National Engineering Education Delivery System (NEEDS)," Wong, J., Schmitz, D., & Nelson, R. Software: Practice & Experience, 24(11):1051-1076, November 1994. + +"Remote Database Access in Distributed Computing Environment," Wong, J., Marshall, W., & Goodman, R. Software: Practice & Experience, 24(4):421-434, April 1994. + +"Transaction Management in an Object-Oriented Database System," Wong, J., & Shah, P. The Journal of Systems and Software, 24(2):115-124, February 1994. + +"Transaction Management In Design Databases," Wong, J., & Kumar, M. The Journal of Systems and Software, 22(1):3-15, July 1993. + +"Detecting Unsafe Error Recovery Schedules," Wong, J., & Lutz, R. IEEE Transactions on Software Engineering, August 1992, pp. 749-760. + +"An Efficient Process Migration Algorithm in Distributed Systems," Wong, J., & Suen, T. IEEE Transactions on Parallel and Distributed Systems, July 1992, pp. 488-499. + + + + + + + + +11 + + diff --git a/hridesh/gradadm/backup/index.html b/hridesh/gradadm/backup/index.html new file mode 100644 index 0000000..66b0047 --- /dev/null +++ b/hridesh/gradadm/backup/index.html @@ -0,0 +1,67 @@ + +Graduate Program in Computer Science + + + + +
    +Graduate Program in Computer Science
    +Department of Computer Science
    +Iowa State University
    +
    + +
    + +
    + +

    + + +General Information and +Announcements
    + +

    + +Application Process
    + +

    + +

    + +Graduate Student +Funding
    + +

    + +Computer Science Faculty +Interests
    + +

    + +Computer Science Graduate Degree +Requirements
    + +

    + +

    + +

    + +Computer Science +Graduate Course Listing + +
    + + +


    diff --git a/hridesh/gradadm/backup/minimums.txt b/hridesh/gradadm/backup/minimums.txt new file mode 100644 index 0000000..43fee9d --- /dev/null +++ b/hridesh/gradadm/backup/minimums.txt @@ -0,0 +1,34 @@ +Minimum Guidelines for Application + + +Thank you for your interest in Iowa State University. We recognize the time and expense students must invest when they decide to apply for graduate study at a foreign university, and we would like to assist prospective students in determining whether it is worth their effort to apply to Iowa State University. Please keep in mind that these are MINIMUM guidelines only. Applicants who meet these guidelines are not guaranteed admission, but their application will be competitive and given serious consideration. Those who cannot meet these standards are discouraged from applying. Applicants to the Department of Computer Science should present the following qualifications: + +Undergraduate background: A bachelor's degree in computer science or computer engineering is recommended. A complete background is very beneficial. You should be able to fully complete the Computer Science Course Evaluation. + +Academic Performance: A cumulative grade point average (GPA) comparable to a "B+" average or 3.30 out of a possible 4.00, and a rank of top quartile (25%) in undergraduate graduating class. + +Standardized tests: Scores placing in the 90th percentile (%) on the Quantitative section and 85% on the Analytical section of the Graduate Records Examination (GRE). + +A score of 550 (paper test) or 213 (computer test) on the Test of English as a Foreign Language (TOEFL). + + The Test of Spoken English (TSE) is not required but is recommended. + +Each year a large numbers of applications are received from India, Korea, Taiwan, and China. Specific guidelines for applicants from India, Korea and Taiwan are given below. Guidelines for China are listed on a separate sheet included in the application packet. + +India: 4-year bachelor's degree (3-year degrees are not acceptable) or master's degree with a First Class degree classification, showing an overall average of 60%. + +Korea: 4-year bachelor's degree with a cumulative GPA of 85% or 3.30 out of 4.00, and top quartile rank. + +Taiwan: 4-year bachelor's degree (3- or 5-year diplomas not acceptable) with a cumulative GPA of 85%, and top quartile rank. + +Additional information about the graduate program can be obtained by sending electronic mail to our departmental Internet mail server, almanac@cs.iastate.edu with the following lines in the message: + +send gi pamphlet +send gi faculty_interests +send gi evaluation +send gi catalog + +Electronic reply messages will contain the requested documents. These documents can also be retrieved at www.cs.iastate.edu. + + + diff --git a/hridesh/gradadm/backup/phdrequirements.txt b/hridesh/gradadm/backup/phdrequirements.txt new file mode 100644 index 0000000..c2ec3aa --- /dev/null +++ b/hridesh/gradadm/backup/phdrequirements.txt @@ -0,0 +1,83 @@ +Requirements for the Ph.D. in Computer Science + +The purpose of the Ph.D. program is to train students to do original research in computer science. Each student is also required to attain knowledge and proficiency commensurate with a leadership role in computer science. The specific degree requirements are as follows: + +1. Course and Credit Requirement. +Each student's POS must total at least 72 credits, including the following. +a. Core courses 511 and 531 (6 credits). +b. A breadth requirement that includes at least one course from each of four of the following areas (12 credits; see [3] below for a list of courses in each area). +1. Programming Languages and Software Engineering. +2. Operating Systems and Communications. +3. Computer Architecture. +4. Database Systems. +5. Artificial Intelligence +6. Parallel and Distributed Systems. +c. Non-Computer Science graduate courses (9-15 credits). These courses must be offered by another department, but may be cross-listed with Computer Science. In general, these courses should be at the 500 level or above, but the student's POS committee may, for the purpose of strengthening the POS, approve up to 6 credits of specific 400-level non-CS courses (available for graduate credit and not cross-listed with Computer Science) to be substituted for 500-level courses in satisfying this requirement. +d. ComS 591 and at least 3 credits of ComS 610. (ComS 591 must be taken in the student's first fall semester or be replaced with a 3-credit 600-level course other than 699.) + +The above choices are subject to the following additional restrictions: +a. At least 36 credits, including dissertation research credits, must be earned under the supervision of the POS committee. +b. The course credits (excluding 590, 591, 599, 610, 699) must add up to at least 36 credits. +c. The course credits must include at least 6 credits of ComS 600-level courses, excluding 610 and 699. + +2. Grade Requirement. +The POS must include no more than two C's (C, C+) and no grade below a C. + +3. Area Proficiency Requirement. +Each student must demonstrate an especially high level of proficiency in three areas of computer science, to be chosen from the following list: +a. Programming Languages and Software Engineering: ComS 512, 540, 541, 542, 641. +b. Operating Systems and Communication: ComS 552, 554, 586, 587x, 652. +c. Computer Architecture: ComS 524, 583x, 624. +d. Database Systems: ComS 561, 661. +e. Artificial Intelligence: ComS 572, 576, 672, 673. +f. Parallel and Distributed Computing: ComS 526x, 625. +g. Theory of Computation: ComS 531, 631, 632, 633. +h. Algorithms and Data Structures: ComS 511, 518, 611, 612. + +The three areas are to be chosen by the student. In each area, proficiency may be demonstrated in either of the following two manners. +Option A Pass a written proficiency examination in the area. +Option B Achieve a 3.5 grade-point average in two designated graduate courses in the area. + +Each area is supervised by an Area Committee consisting of two or more members of the Graduate Faculty. The Area Committee administers and grades the proficiency examinations for Option A and determines which courses may be used for Option B. The Option A examinations are normally offered once each year, early in the Spring Semester. Current examination syllabi for Option A and course requirements for Option B may be found in Appendix B. It should be noted that passing an Option A examination does not satisfy any portion of the Course and Credit Requirement. Completion of the Area Proficiency Requirement is certified by written memos from each of the three Area Committees to the student. + +Because research is the most important component of the Ph.D. program, students are strongly encouraged to satisfy the Area Proficiency Requirement as early as possible. Courses and/or Option A examinations may be retaken in order to satisfy this requirement, but every Ph.D. student must satisfy the Area Proficiency Requirement by the end of the sixth semester of his or her graduate program. + +4. Research Skills Requirement. +A Ph.D. student is expected to demonstrate a high degree of proficiency in reading, writing, and speaking skills (above that normally demonstrated by an undergraduate student) in order to read results of other researchers and to report results of personal research. To insure such skills, the student should do one of the following, within three years prior to the Preliminary Examination: +a. Demonstrated proficiency in foreign language by either earning a score equal to or better than the 50th percentile level score on the GSFLT foreign language examination or by one academic year of formal study in a foreign language at a grade of B or better. The choice of language should be deemed relevant to the student's area of research by the student and his/her POS Committee. English may be considered as a foreign language only for those students whose native tongue (other than English) is deemed an acceptable language for research. +b. Demonstrated proficiency in communication skills with a grade of B or better by taking a 2-semester sequence. The sequence will consist of English 314 and a 500-level course in either English or Journalism carrying graduate minor credit. The 500-level course must be approved by the graduate committee. These credits must be taken in addition to the 72 credit total. +c. Demonstrate proficiency in communication skills by publishing a paper in English, as the sole or major author, in a reputable computer journal or conference proceedings, with written reports from the referees. The student is encouraged to present a colloquium on this material to the Computer Science faculty and graduate students. + + On the basis of the publication, the student's POS committee will decide if the research communication skills of the candidate are adequate or if the candidate would be well-served by further development of these skills. In the former case, the manner in which the research communication skills have been satisfied are to be documented by the POS committee in the form of copies of: 1) the article, and 2) the referee reviews and letter of acceptance. This document is to be placed in the student's file. + +5. Timely Formation of POS Committee. +The formation of a Program of Study (POS) committee is an essential phase of the Ph.D. program. In order to advance to candidacy, the Ph.D. student must form a committee of graduate faculty members willing to supervise the POS. (Regulations regarding the composition and approval of this committee appear in the Graduate Catalog.) It is the responsibility of each Ph.D. student to find members (especially the chair or co-chairs) for the POS committee and to complete the POS paperwork as soon as possible, but in no case later than the end of the sixth semester of graduate study. + +6. Preliminary Examination +The purpose of the Preliminary Examination is to ensure that the student is prepared to pursue a significant, enduring program of original research in computer science. The examination consists of two phases. + +Phase 1 of the Preliminary Examination is written. Ordinarily this portion of the examination contains the following two components. + (a) A completed, original research paper that is, in the judgment of the POS committee, publishable in a refereed computer science journal. + (b) A comprehensive written examination on areas of computer science pertinent to the student's primary area of research. + +The student must be a sole or major author of any paper used for component (a). Papers that have already been published or that have been used to satisfy other requirements (e.g., M.S. research) are permissible, provided that they meet the criteria stated in (a) above. The component (b) is administered and graded by the POS committee. + +If the student has not completed an original, publishable research paper, the POS committee may either defer the Preliminary Examination or use a longer, more thorough written examination for component (b). Similarly, if the student has more than one paper as in component (a), or a paper of unusual magnitude and significance, the POS committee may shorten the component (b) examination. + +Phase 2 of the Preliminary Examination is an oral presentation of the student's proposed Ph.D. research, including a description of relevant existing literature and the student's progress to date. This phase may also, at the discretion of the POS committee, include oral examination of Phase 1 material. + +Prior to scheduling the Preliminary Examination, each Ph.D. student must satisfy the Area Proficiency Requirement, form a POS Committee, and satisfy the Research Skills Requirement. In general, a student who has not satisfied the Area Proficiency Requirement and formed a POS Committee, both by the end of his or her sixth semester in the graduate program in computer science at Iowa State University, will not be allowed to take the Preliminary Examination or advance to candidacy for the Ph.D. in Computer Science. + +Two weeks prior to Phase 2 of the Preliminary Examination, the student must request permission for the Preliminary Examination from the Graduate College (forms are available from the departmental graduate secretary) and provide the members of the POS committee with any papers to be used for component (a) of Phase 1. The component (b) written examination must take place at least ten days before the Phase 2 oral examination. + +The Preliminary Examination may, with the approval of the POS committee, be retaken at most once. Upon successful completion of the Preliminary Examination, the student is admitted to candidacy for the Ph.D. degree. + +7. Research Requirement +The most important component of the Ph.D. program is original research, culminating in the preparation of a Ph.D. dissertation. (Consult the Graduate College Thesis Manual for preparation guidelines.) It is expected that each Ph.D. student's research will also lead to publications in refereed computer science journals. + +8. Colloquium Requirement. +The results of the Ph.D. research must be presented in a colloquium to the Computer Science faculty and graduate students. + +9. Final Oral Examination. +This examination consists of a defense of the dissertation. + diff --git a/hridesh/gradadm/backup/prerequisites.txt b/hridesh/gradadm/backup/prerequisites.txt new file mode 100644 index 0000000..77a10a7 --- /dev/null +++ b/hridesh/gradadm/backup/prerequisites.txt @@ -0,0 +1,32 @@ +ISU Computer Science Graduate Program +Background Prerequisites + + +Successful completion of the courses listed below (or their equivalent) is generally needed for entry into many of the graduate courses in our department. Please note, however, that highly qualified students may be admitted into our graduate program even if they have not completed all of the prescribed background. Satisfactory completion of these courses does not guarantee admission into the Computer Science graduate program. + + +1. Programming and Data Structures +ISU equivalent is Com Sci 227 and 228 + +2. Discrete Structures +ISU equivalent is Com Sci 330 + +3. Analysis of Algorithms +ISU equivalent is Com Sci 311 + +4. Computer Architecture and Assembly Language Programming +ISU equivalent is Com Sci 321 + +5. Programming Languages Concepts +ISU equivalent is Com Sci 342 + +6. Operating Systems Concept +ISU equivalent is Com Sci 352 + +7. Mathematics including differential and integral calculus and linear systems. + + + + + + diff --git a/hridesh/gradadm/chairsearch.html b/hridesh/gradadm/chairsearch.html new file mode 100755 index 0000000..24c38db --- /dev/null +++ b/hridesh/gradadm/chairsearch.html @@ -0,0 +1,71 @@ + +Department of Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +
    +

    Computer Science Department Chair Search

    +
    +

    Campus Visits

    + +

    While the search process for department chair remains open we have +invited several candidates for campus visits. Schedules for these +visits are available here.

    + +

    Position Announcements

    +

    +The Department of Computer Science +at Iowa State University invites +applications and nominations for the position of Department Chair and +Professor, with a proposed starting date of July 1, 2001. Candidates are +expected to have a Ph.D. in computer science or a related field, a strong +commitment to excellence in undergraduate and graduate education, a +distinguished and ongoing program of funded research in computer science, +and demonstrable leadership skills. +

    +The department currently consists of 21 tenure-track faculty and offers +B.S., M.S., and Ph.D. programs to approximately 750 undergraduate majors +and 110 graduate students. The faculty has successful, funded research +programs in several theoretical, experimental, and interdisciplinary areas +of computer science. Further information about the department is available +here +

    +The department has hired four tenure-track faculty in the past year, and +continued growth is a high priority of the college and university. The +successful candidate will have the opportunity to lead a dynamic and +growing department with strong ties to other science and engineering +departments and laboratories on campus. Salary will be competitive and +commensurate with qualifications. +

    +Applicants should send their curriculum vitae and the names, addresses, +e-mail addresses, and telephone numbers of at least four references to DEO +Search Committee, Department of Computer Science, 226 Atanasoff Hall, Iowa +State University, Ames, IA 50011-1040. Review of applications will begin on +October 15, 2000 and continue until the position is filled. +

    +Iowa State University is an Equal Opportunity/Affirmative Action employer. +Women and minorities are particularly encouraged to apply. +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + + + + + + diff --git a/hridesh/gradadm/computing.html b/hridesh/gradadm/computing.html new file mode 100755 index 0000000..270487a --- /dev/null +++ b/hridesh/gradadm/computing.html @@ -0,0 +1,36 @@ + +Computing Facilities + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Research and Instructional Computing Facilities

    + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/cscomputing.html b/hridesh/gradadm/cscomputing.html new file mode 100755 index 0000000..59586b3 --- /dev/null +++ b/hridesh/gradadm/cscomputing.html @@ -0,0 +1,46 @@ + +Computing Facilities + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Departmental Computing Facilities

    + + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/cshome.html b/hridesh/gradadm/cshome.html new file mode 100755 index 0000000..649bb66 --- /dev/null +++ b/hridesh/gradadm/cshome.html @@ -0,0 +1,126 @@ + +Department of Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    + + +

    Introduction
    +    + Welcome   + Birth of the Computer   + Department History   + Newsletters   + Annual Reports   +

    + +

    People
    +    + Faculty & Staff   + Graduate Students   + Graduate Alumni   + Undergraduate Students   + + Open Positions   +

    + +

    Research
    +    + Research Areas   + Labs and Groups   + Faculty Research Overview   + Technical Reports   + Colloquium   +

    + +

    Degree Programs
    +    + University Admissions   + B.S.   + M.S.   + Ph.D.   + Interdisciplinary Programs   +

    + +

    Courses
    +    + Graduate   + Undergraduate   + Schedule   + Home Pages   + Room Assignments   + Textbooks   +

    + +

    Organizations
    + +    + + Graduate Advisory Committee   + ComSci Club   + Systems Support Group   +

    + +

    Facilities
    +    + Computing Facilities   +Library   +Departmental Labs and Groups   + Centers and Interdepartmental Groups   +

    + +

    Other Information
    +    + Departmental Events   + University Events   + Phone Directory   + Campus Maps   + Visiting Ames   + University Calendar   + University Information   +

    + + + + + +
    + +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + + + + + diff --git a/hridesh/gradadm/daily b/hridesh/gradadm/daily new file mode 100644 index 0000000..2351160 --- /dev/null +++ b/hridesh/gradadm/daily @@ -0,0 +1,19 @@ +February 23, 2010 + + +Welcome to Iowa State University and the Dept. of Computer Science + +We look forward to seeing your completed application materials and +assisting you as you progress towards your future academic goals. + +Offical applications are processed by admissions and sent to departments when complete. +Please be sure to send documents to the appropriate office. Misdirecting your materials +will delay your application processing. Until we receive the official application packet from admissions, +and match this with the departmental required documents, your status will show up as not complete. + +The CSID number you received is the one you will need to reference when checking your application status +at http://www.cs.iastate.edu/~gradadm/f10status.html + +Please email any questions regarding application materials to the following address: grad_adm@cs.iastate.edu + +We look forward to seeing you at Iowa State University. diff --git a/hridesh/gradadm/daily.txt b/hridesh/gradadm/daily.txt new file mode 100644 index 0000000..b96aedf --- /dev/null +++ b/hridesh/gradadm/daily.txt @@ -0,0 +1,19 @@ +Fall 2010 + + +Welcome to Iowa State University and the Dept. of Computer Science + +We look forward to seeing your completed application materials and +assisting you as you progress towards your future academic goals. + +Offical applications are processed by admissions and sent to departments when complete. +Please be sure to send documents to the appropriate office. Misdirecting your materials +will delay your application processing. Until we receive the official application packet from admissions, +and match this with the departmental required documents, your status will show up as not complete. + +The CSID number you received is the one you will need to reference when checking your application status +at http://www.cs.iastate.edu/~gradadm/f10status.html + +Please email any questions regarding application materials to the following address: grad_adm@cs.iastate.edu + +We look forward to seeing you at Iowa State University. diff --git a/hridesh/gradadm/events.html b/hridesh/gradadm/events.html new file mode 100755 index 0000000..9709223 --- /dev/null +++ b/hridesh/gradadm/events.html @@ -0,0 +1,69 @@ + +Events of Interest to Computer Science Students and Faculty + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Events of Interest to Computer Science Students and Faculty

    + + + + + + +
    + +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + +
    +Additions and Changes to this page should be directed to: webmaster@cs.iastate.edu + + diff --git a/hridesh/gradadm/f01pace.html b/hridesh/gradadm/f01pace.html new file mode 100755 index 0000000..fd06c37 --- /dev/null +++ b/hridesh/gradadm/f01pace.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDPaceLengthAcceptPace?
    18251No
    18621No
    19142No
    19371No
    19481
    19531Yes
    19631Yes
    19971No
    20112No
    21091No
    21181
    21301Yes
    21431No
    21481No
    21681Yes
    21841No
    21851Yes
    22011Yes
    22411No
    22441No
    23012Yes
    23291Yes
    23751Yes
    diff --git a/hridesh/gradadm/f01status.html b/hridesh/gradadm/f01status.html new file mode 100755 index 0000000..4910db5 --- /dev/null +++ b/hridesh/gradadm/f01status.html @@ -0,0 +1,2831 @@ +August 16, 2001

    + +Fall 2001 Application Status Information

    + +

    +NOTE: We cannot send email to the "sina.com" domain. Please provide an alternate address or we cannot correspond with you.

    + +Application Status:
    +Please locate your CS ID tracking number in the following table. The Status Box will match one of the criteria listed below. +

    +Incomplete -- Materials are missing and application will not be evaluated until all materials are present. Applications received after February 1 may not be evaluated. If the application will not be reviewed, you will receive email and be asked if you want to withdraw your application or if you want to have your materials reviewed for a future semester. +

    +In Evaluation -- Application is complete and has been sent for evaluation. The review process may take up to two weeks. Admit status will be entered on this page. +

    +Denied -- Application has been denied. Due to the large number of applications received, we are unable to give individual reasons for denial. Email requests for reason for denial will not be answered. Some reasons for denial may include low GRE scores, low GPA, weak letters of recommendation, or incomplete coursework background in Computer Science. +

    +Deactivated -- Application is incomplete and student has not responded to email requests to provide missing materials. Admissions evaluation has been returned to Graduate Admissions and they will send a letter to student. Graduate Admissions also deactivates student application if they are not completed within a reasonable amount of time. +

    +Admit -- Student has been admitted to our graduate program. Students admitted provisionally need to complete some undergraduate coursework during their first semester. This information will be included in the formal admissions letter. Students are not considered for funding until they have been formally admitted. ALL admitted students are considered for assistantship offers and tuition scholarships. There is no application process. Formal letters of admission will be sent by postal mail but it may take 2-4 weeks for you to receive. +

    +Funding -- Funding offers have been made for Fall 2001 entry. However, it is possible more openings will be available at a later date. +If a student is offered funding or a scholarship, email will be sent immediately with details. +

    +Admitted students can find more information about assistantships, scholarships and faculty contact information at http://www.cs.iastate.edu/gradadm/admitted.html.

    + +Please keep checking your online status for further information. Due to the large number of applications being processed, some information received is not input immediately and may take a few days to appear. +

    +Thank you for your patience.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDStatusMissing Materials
    1776Deactivated
    1807WithdrewNo Additional Materials Needed
    1818DeniedNo Missing Materials
    1825Declined Admission/OfferNo Missing Materials
    1827DeniedNo Missing Materials
    1849DeniedNo Missing Materials
    1850DeactivatedEverything except Course Evaluation Form
    1851DeniedNo Missing Materials
    1852DeactivatedEverything except Course Evaluation Form
    1853DeniedNo Missing Materials
    1854DeniedNo Missing Materials
    1855DeniedNo Missing Materials
    1856DeactivatedCourse Evaluation Form, Letters of Recommendation, GRE
    1857DeactivatedTOEFL above 213, Course Evaluation Form, GRE
    1858DeniedNo Missing Materials
    1859DeniedNo Missing Materials
    1860DeactivatedGraduate Application Form, Letters of Recommendation
    1861DeactivatedCourse Evaluation Form, TOEFL, Letters of Recommendation, Admissions Evaluation
    1862Declined Admission/OfferNo Missing Materials
    1863DeactivatedEverything except Course Evaluation Form
    1864DeniedNo Missing Materials
    1865DeactivatedEverything but Course Evaluation Form
    1866DeactivatedEverything but Course Evaluation Form
    1867DeniedNo Missing Materials
    1868DeniedNo Missing Materials
    1869DeniedNo Missing Materials
    1870DeniedNo Missing Materials
    1871DeactivatedEverything but Course Evaluation Form
    1872DeniedNo Missing Materials
    1873DeniedNo Missing Materials
    1874DeniedNo Missing Materials
    1875DeniedNo Missing Materials
    1876DeniedApplication Form
    1877DeniedNo Missing Materials
    1878DeniedNo Missing Materials
    1879DeniedNo Missing Materials
    1880DeniedNo Missing Materials
    1881DeniedNo Missing Materials
    1882Declined Admission/OfferApplication Fee, Original TOEFL, Original Transcripts, Admissions Evaluation
    1883DeniedNo Missing Materials
    1884Declined Admission/OfferApplication Fee, Admissions Evaluation, Original TOEFL
    1885DeniedNo Missing Materials
    1886DeniedNo Missing Materials
    1887DeniedNo Missing Materials
    1888DeniedNo Missing Materials
    1889Deactivated
    1890DeniedNo Missing Materials
    1891Full AdmitNo Missing Materials
    1892DeniedNo Missing Materials
    1893DeniedNo Missing Materials
    1894DeniedNo Missing Materials
    1895DeactivatedEverything except Course Evaluation Form
    1896DeniedNo Missing Materials
    1897DeniedNo Missing Materials
    1898DeniedNo Missing Materials
    1899DeniedNo Missing Materials
    1900DeniedNo Missing Materials
    1901Declined Admission/OfferApplication Fee
    1902DeniedNo Missing Materials
    1903DeniedNo Missing Materials
    1904DeniedNo Missing Materials
    1905DeniedNo Missing Materials
    1906DeniedNo Missing Materials
    1907DeniedNo Missing Materials
    1908DeniedNo Missing Materials
    1909DeniedNo Missing Materials
    1910Declined Admission/OfferNo Missing Materials
    1911DeniedNo Missing Materials
    1912DeniedNo Missing Materials
    1913DeniedNo Missing Materials
    1914Declined Admission/OfferNo Missing Materials
    1915DeniedOfficial TOEFL if admitted
    1916DeniedNo Missing Materials
    1917DeniedNo Missing Materials
    1918DeniedNo Missing Materials
    1919DeniedNo Missing Materials
    1920DeactivatedEverything except course evaluation form
    1921DeniedNo Missing Materials
    1922Full AdmitNo Missing Materials
    1923DeniedNo Missing Materials
    1924DeniedNo Missing Materials
    1925DeniedNo Missing Materials
    1926DeniedNo Missing Materials
    1927Full AdmitApplication Fee, Official TOEFL
    1928Full Admit, TANo Missing Materials
    1929DeniedNo Missing Materials
    1930DeniedNo Missing Materials
    1931DeniedNo Missing Materials
    1932DeniedNo Missing Materials
    1933DeniedNo Missing Materials
    1934DeniedNo Missing Materials
    1935DeniedNo Missing Materials
    1936DeniedNo Missing Materials
    1937Declined Admission/OfferNo Missing Materials
    1938DeniedNo Missing Materials
    1939DeniedNo Missing Materials
    1940DeniedNo Missing Materials
    1941DeniedNo Missing Materials
    1942DeniedNo Missing Materials
    1943WithdrewNo Missing Materials
    1944Full AdmitOriginal TOEFL, Admissions Evaluation
    1945Declined Admission/OfferNo Missing Materials
    1946DeniedNo Missing Materials
    1947DeniedNo Missing Materials
    1948Declined Admission/OfferApplication Fee, Original TOEFL
    1949DeniedNo Missing Materials
    1950DeniedNo Missing Materials
    1951DeactivatedCourse Evaluation Form, Transcripts, TOEFL, Application Fee
    1952DeniedNo Missing Materials
    1953Full Admit, PACEOfficial GRE Scores
    1954DeniedNo Missing Materials
    1955DeniedNo Missing Materials
    1956DeniedNo Missing Materials
    1957DeniedNo Missing Materials
    1958DeactivatedLetters of Recommendation
    1959DeniedNo Missing Materials
    1960DeniedNo Missing Materials
    1961DeniedNo Missing Materials
    1962Full AdmitAdmission Evaluation
    1963Deferred Admission to Spring 2002Admissions Evaluation
    1964DeniedNo Missing Materials
    1965Deactivatedeverything but Course Evaluation Form
    1966DeniedNo Missing Materials
    1967DeniedNo Missing Materials
    1968DeniedAdmissions Evaluation
    1969Declined Admission/OfferOriginal TOEFL, Admissions Evaluation
    1970DeniedNo Missing Materials
    1971DeniedNo Missing Materials
    1972DeniedNo Missing Materials
    1973DeniedNo Missing Materials
    1974Full AdmitUndergraduate Transcripts, Application Fee, Original TOEFL
    1975Full AdmitApplication Fee, Original TOEFL
    1976DeniedNo Missing Materials
    1977DeniedNo Missing Materials
    1978DeactivatedGRE, Transcripts
    1979DeniedNo Missing Materials
    1980Full AdmitNo Missing Materials
    1981Declined Admission/OfferNo Missing Materials
    1982Full AdmitNo Missing Materials
    1983DeniedNo Missing Materials
    1984DeniedAdmissions Evaluation
    1985DeactivatedCourse Evaluation Form, GRE, Letters of Recommendation
    1986DeniedNo Missing Materials
    1987DeniedNo Missing Materials
    1988DeniedNo Missing Materials
    1989Full AdmitNo Missing Materials
    1990DeniedNo Missing Materials
    1991DeniedNo Missing Materials
    1992DeniedNo Missing Materials
    1993DeniedNo Missing Materials
    1994DeniedNo Missing Materials
    1995DeactivatedEverything except Course Evaluation Form
    1996Provisional Admit, TANo Missing Materials
    1997Declined Admission/OfferNo Missing Materials
    1998Full Admit, TANo Missing Materials
    1999Full AdmitNo Missing Materials
    2000Full Admit, FellowshipNo Missing Materials
    2001DeniedNo Missing Materials
    2002DeniedNo Missing Materials
    2003Declined Admission/OfferNo Missing Materials
    2004DeniedNo Missing Materials
    2005Declined Admission/OfferApplication Fee, Admissions Evaluation, Original TOEFL
    2006DeniedNo Missing Materials
    2007DeniedNo Missing Materials
    2008DeniedTranscripts
    2009Deactivated by GABC Transcripts, Admissions Evaluation
    2010DeniedNo Missing Materials
    2011Declined Admission/OfferAdmissions Evaluation, Original TOEFL
    2012Declined Admission/OfferNo Missing Materials
    2013DeactivatedCourse Evaluation Form, Letters of Recommendation
    2014DeniedNo Missing Materials
    2015Declined Admission/OfferApplication Fee, Original TOEFL, Original GRE, Admissions Evaluation
    2016Full AdmitNo Missing Materials
    2017DeniedNo Missing Materials
    2018DeniedNo Missing Materials
    2020DeniedNo Missing Materials
    2021DeniedNo Missing Materials
    2022DeactivatedEverything except Course Evaluation Form
    2023DeniedNo Missing Materials
    2024DeniedNo Missing Materials
    2025DeniedNo Missing Materials
    2026DeniedNo Missing Materials
    2027DeniedTOEFL
    2028DeactivatedCourse Evaluation Form, GRE, TOEFL, transcripts, Statement of Purpose
    2029DeniedNo Missing Materials
    2030DeactivatedEverything except Course Evaluation Form
    2031DeniedNo Missing Materials
    2032DeniedNo Missing Materials
    2033Full AdmitNo Missing Materials
    2034DeniedNo Missing Materials
    2035DeniedNo Missing Materials
    2036Full AdmitAdmissions Evaluation, Original TOEFL
    2037DeniedAdmissions Evaluation
    2038DeniedNo Missing Materials
    2039Declined Admission/OfferNo Missing Materials
    2040Full AdmitNo Missing Materials
    2041DeactivatedCourse Evaluation Form, Transcripts, TOEFL, Statement of Purpose
    2042DeniedNo Missing Materials
    2043Declined Admission/OfferNo Missing Materials
    2044DeniedNo Missing Materials
    2045Full AdmitAdmissions Evaluation, Original TOEFL, Updated financial statement
    2046Deferred Admission to Spring 2002No Missing Materials
    2047DeniedNo Missing Materials
    2048DeniedNo Missing Materials
    2049DeniedNo Missing Materials
    2050DeniedNo Missing Materials
    2051DeniedNo Missing Materials
    2052DeniedNo Missing Materials
    2053DeniedNo Missing Materials
    2054DeniedNo Missing Materials
    2055DeniedNo Missing Materials
    2056DeniedNo Missing Materials
    2057DeniedOfficial GRE if admitted
    2058DeniedNo Missing Materials
    2059DeactivatedEverything but Course Evaluation Form
    2060DeniedNo Missing Materials
    2061DeniedNo Missing Materials
    2062DeniedNo Missing Materials
    2063DeniedAdmissions Evaluation
    2064DeniedNo Missing Materials
    2065DeniedNo Missing Materials
    2066DeniedNo Missing Materials
    2067Full AdmitNo Missing Materials
    2068DeniedNo Missing Materials
    2069DeniedNo Missing Materials
    2070DeniedNo Missing Materials
    2071DeniedNo Missing Materials
    2072DeniedNo Missing Materials
    2073DeniedNo Missing Materials
    2074DeniedNo Missing Materials
    2075DeniedNo Missing Materials
    2076DeniedNo Missing Materials
    2077DeniedNo Missing Materials
    2078DeniedNo Missing Materials
    2079Full AdmitNo Missing Materials
    2080DeniedNo Missing Materials
    2081DeniedNo Missing Materials
    2082DeniedOriginal TOEFL if admitted
    2083Full AdmitAdmissions Evaluation
    2084DeniedNo Missing Materials
    2085DeniedNo Missing Materials
    2086DeniedNo Missing Materials
    2087Incomplete at CSCourse Evaluation Form, Letter of Recommendation, GRE, TOEFL
    2088DeniedOfficial GRE if admitted
    2089DeniedNo Missing Materials
    2090DeniedNo Missing Materials
    2091DeniedNo Missing Materials
    2092DeniedNo Missing Materials
    2093Declined Admission/OfferNo Missing Materials
    2094DeniedNo Missing Materials
    2095DeniedNo Missing Materials
    2096DeniedNo Missing Materials
    2097DeniedNo Missing Materials
    2098DeniedNo Missing Materials
    2099DeniedNo Missing Materials
    2100Declined Admission/OfferNo Missing Materials
    2101DeniedNo Missing Materials
    2102Full AdmitNo Missing Materials
    2103Full AdmitNo Missing Materials
    2104Full AdmitApplication Fee, Original TOEFL, Admissions Evaluation
    2105DeniedOfficial TOEFL if admitted
    2106DeniedNo Missing Materials
    2107DeniedAdmissions Evaluation
    2108DeactivatedCourse Evaluation Form, GRE, Transcripts, TOEFL
    2109Declined Admission/OfferOriginal TOEFL
    2110Declined Admission/OfferNo Missing Materials
    2111DeniedNo Missing Materials
    2112Declined Admission/OfferNo Missing Materials
    2113Incomplete at CSOfficial TOEFL, Admissions Evaluation
    2114Deactivated by GALetter of Recommendation, TOEFL, Sasketchwan transcripts
    2115DeniedNo Missing Materials
    2116DeniedOfficial TOEFL if admitted
    2117Full AdmitNo Missing Materials
    2118Declined Admission/OfferApplication Fee, Original TOEFL
    2119DeniedNo Missing Materials
    2120Declined Admission/OfferNo Missing Materials
    2121DeniedNo Missing Materials
    2122Full AdmitNo Missing Materials
    2123Full AdmitNo Missing Materials
    2124WithdrewAdmission Evaluation, Original TOEFL
    2125DeniedNo Missing Materials
    2127Declined Admission/OfferApplication Fee
    2128DeniedNo Missing Materials
    2129DeniedNo Missing Materials
    2130Full Admit, TA, PACENo Missing Materials
    2131DeniedNo Missing Materials
    2132DeniedNo Missing Materials
    2133DeniedNo Missing Materials
    2134Declined Admission/OfferNo Missing Materials
    2135DeniedNo Missing Materials
    2136DeniedOriginal GRE if admitted
    2137DeniedNo Missing Materials
    2138Full AdmitNo Missing Materials
    2139Full AdmitOriginal TOEFL, Admissions Evaluation
    2140DeniedNo Missing Materials
    2141DeniedNo Missing Materials
    2142DeniedNo Missing Materials
    2143Declined Admission/OfferNo Missing Materials
    2144DeniedNo Missing Materials
    2145DeniedNo Missing Materials
    2146DeniedNo Missing Materials
    2147DeniedNo Missing Materials
    2148Declined Admission/OfferAdmissions Evaluation, Original TOEFL
    2149DeniedNo Missing Materials
    2150DeniedNo Missing Materials
    2151DeniedNo Missing Materials
    2152DeniedAdmissions Evaluation
    2153DeniedNo Missing Materials
    2154DeniedNo Missing Materials
    2155Full Admit, RANo Missing Materials
    2156Deferred Admission to Spring 2002Application Fee, Admissions Evaluation, Original TOEFL
    2157DeniedNo Missing Materials
    2158Full AdmitNo Missing Materials
    2159DeniedNo Missing Materials
    2160DeniedNo Missing Materials
    2161DeniedNo Missing Materials
    2162DeniedNo Missing Materials
    2163Declined Admission/OfferNo Missing Materials
    2164Declined Admission/OfferApplication Fee, Original TOEFL
    2165DeniedNo Missing Materials
    2166Declined Admission/OfferApplication Fee, Original TOEFL
    2167DeniedNo Missing Materials
    2168Full Admit, RA, PACENo Missing Materials
    2169Full AdmitApplication Fee, Original TOEFL
    2170DeniedNo Missing Materials
    2171Declined Admission/OfferNottingham Transcripts if admitted; Admissions Evaluation
    2172DeniedNo Missing Materials
    2173DeniedNo Missing Materials
    2174Full AdmitNo Missing Materials
    2175DeniedNo Missing Materials
    2176DeniedNo Missing Materials
    2177Full AdmitNo Missing Materials
    2178Provision Admit, TANo Missing Materials
    2179DeniedNo Missing Materials
    2180DeniedNo Missing Materials
    2181DeniedNo Missing Materials
    2182DeniedNo Missing Materials
    2183DeniedNo Missing Materials
    2184Declined Admission/OfferNo Missing Materials
    2185Full Admit, TA, PACENo Missing Materials
    2186DeactivatedCourse Evaluation Form
    2187DeniedNo Missing Materials
    2188Declined Admission/OfferNew TOEFL if admitted.
    2189DeniedNo Missing Materials
    2190DeniedOriginal TOEFL if admitted
    2191DeniedCourse Evaluation Form
    2192DeniedNo Missing Materials
    2193DeniedNew TOEFL if admitted
    2194Full AdmitNo Missing Materials
    2195Deactivated
    2196DeniedOfficial TOEFL if admitted
    2197DeniedNo Missing Materials
    2198DeniedNo Missing Materials
    2199DeniedNo Missing Materials
    2200DeniedNo Missing Materials
    2201Full Admit, TA, PACENo Missing Materials
    2202DeniedNo Missing Materials
    2203DeniedCourse Evaluation Form
    2204DeniedNo Missing Materials
    2205DeniedNo Missing Materials
    2206DeniedNo Missing Materials
    2207DeniedNo Missing Materials
    2208Full AdmitNo Missing Materials
    2209DeniedNo Missing Materials
    2210Incomplete at CSTOEFL, Transcripts, Admissions Evaluation, Course Evaluation
    2211DeniedNo Missing Materials
    2212Full AdmitLetter of Recommendation, Original TOEFL, Admissions Evaluation
    2213Full AdmitNo Missing Materials
    2214DeniedNo Missing Materials
    2215Deactivated
    2216DeniedCourse Evaluation Form
    2217DeniedNo Missing Materials
    2218Full AdmitNo Missing Materials
    2219DeniedNo Missing Materials
    2220DeniedNo Missing Materials
    2221DeactivatedTranscripts, Letters of Recommendation, GRE, Statement of Purpose
    2222DeactivatedEverything except Course Evaluation
    2223Deactivated at GAOriginal TOEFL, Admissions Evaluation
    2224DeniedNo Missing Materials
    2225DeniedNo Missing Materials
    2226DeactivatedGRE, Transcrips, TOEFL, Statement of Purpose
    2227Declined Admission/OfferNo Missing Materials
    2228DeactivatedLetters of Recommendation, Transcripts, Statement of Purpose
    2229DeniedNo Missing Materials
    2230DeniedNo Missing Materials
    2231DeniedNo Missing Materials
    2232Declined Admission/OfferNo Missing Materials
    2233DeniedNo Missing Materials
    2234DeniedNo Missing Materials
    2235Denied
    2236DeniedNo Missing Materials
    2237DeniedNo Missing Materials
    2238DeniedNo Missing Materials
    2239DeniedNo Missing Materials
    2240DeniedNo Missing Materials
    2241Declined Admission/OfferNo Missing Materials
    2242DeniedNo Missing Materials
    2243Full AdmitNo Missing Materials
    2244Declined Admission/OfferApplication Fee, Original TOEFL
    2245DeniedNo Missing Materials
    2246DeniedCourse Evaluation Form, TOEFL
    2247DeniedNo Missing Materials
    2248DeactivatedAdmissions Evaluation
    2249DeniedNo Missing Materials
    2250DeniedNo Missing Materials
    2251DeniedNo Missing Materials
    2252DeniedNo Missing Materials
    2253DeniedCourse Evaluation Form
    2254DeactivatedLetters of Recommendation, Transcripts, Application, Course Evaluation Form
    2255DeniedNo Missing Materials
    2256DeniedNo Missing Materials
    2257DeniedNo Missing Materials
    2258DeniedNo Missing Materials
    2259DeniedNo Missing Materials
    2260DeniedNo Missing Materials
    2261Declined Admission/OfferNo Missing Materials
    2262Full Admit, TANo Missing Materials
    2263DeniedOriginal GRE if admitted
    2264DeniedNo Missing Materials
    2265DeniedNo Missing Materials
    2266DeniedUniv of CT transcript, Admissions Evaluation
    2267DeniedNo Missing Materials
    2268Deactivated by GAOriginal TOEFL, Admissions Evaluation
    2269DeniedAdmissions Evaluation
    2270Deferred Admission to Spring 2002No Missing Materials
    2271DeniedNo Missing Materials
    2272DeniedNo Missing Materials
    2273DeniedNo Missing Materials
    2274DeniedGRE if admitted
    2275Full AdmitNo Missing Materials
    2276DeniedNo Missing Materials
    2277DeniedNo Missing Materials
    2278DeniedNo Missing Materials
    2279DeniedNo Missing Materials
    2280Full AdmitApplication Fee, Original TOEFL
    2281DeniedNo Missing Materials
    2282DeniedNo Missing Materials
    2283DeniedNo Missing Materials
    2284DeniedCourse Evaluation Form
    2285Deferred to Spring 2002GRE
    2286DeniedNo Missing Materials
    2287DeniedNo Missing Materials
    2288DeniedNo Missing Materials
    2289DeniedTOEFL if admitted
    2290DeactivatedTOEFL above 550; Admissions Evaluation, Course Evaluation
    2291DeactivatedCourse Evaluation Form, TOEFL, Transcripts, Letters of Recommendation
    2292DeniedNo Missing Materials
    2293Deferred to Spring 2002Course Evaluation, GRE, TOEFL, Transcripts, Letter of Recommendation
    2294DeniedCourse Evaluation Form
    2295DeniedNo Missing Materials
    2296DeniedNo Missing Materials
    2297Incomplete at CSCourse Evaluation Form, Letter of Recommendation, GRE, Admissions Evaluation
    2298Full AdmitNo Missing Materials
    2299DeniedNo Missing Materials
    2300DeniedNo Missing Materials
    2301Full Admit, RA, PACENo Missing Materials
    2302DeniedNo Missing Materials
    2303DeniedNo Missing Materials
    2304Full Admit, RANo Missing Materials
    2305DeniedOriginal TOEFL
    2306DeniedNo Missing Materials
    2308DeniedNo Missing Materials
    2309DeniedNo Missing Materials
    2310DeniedNo Missing Materials
    2311DeniedNo Missing Materials
    2312DeactivatedCourse Evaluation Form
    2313DeniedNo Missing Materials
    2314DeactivatedOriginal TOEFL, Admissions Evaluation
    2315DeniedNo Missing Materials
    2316DeniedNo Missing Materials
    2317DeniedNo Missing Materials
    2318DeniedNo Missing Materials
    2319Full Admit, RANo Missing Materials
    2320DeniedNo Missing Materials
    2321DeniedNo Missing Materials
    2322DeniedNo Missing Materials
    2323DeniedNo Missing Materials
    2324DeactivatedCourse Evaluation Form
    2325DeniedNo Missing Materials
    2326DeactivatedEngr Mgmt Transcript, Letter of Recommendation
    2327DeniedNo Missing Materials
    2328DeniedLetters of Recommendation, GRE
    2329Declined Admission/OfferNo Missing Materials
    2330DeactivatedGRE, Transcripts, TOEFL, Letters of Recommendation, Statement of Purpose
    2331DeniedAdmissions Evaluation, Original TOEFL
    2332DeactivatedTranscripts, GRE, TOEFL, Statement of Purpose
    2333DeactivatedLetters of Recommendation
    2334DeniedNo Missing Materials
    2335Full AdmitApplication Fee, Original TOEFL
    2336Full AdmitGRE if admitted to CS
    2337DeniedNo Missing Materials
    2338DeniedNo Missing Materials
    2339DeniedNo Missing Materials
    2340DeactivatedCourse Evaluation Form, TOEFL, Letters of Recommendation, GRE
    2341DeactivatedCourse Evaluation Form, 2 Letters of Recommendation, Transcripts, TOEFL, Statement of Purpose
    2342DeniedNo Missing Materials
    2343Deactivated by GAOriginal TOEFL, Admissions Evaluation
    2344Deactivated by Grad AdmissionsNICE transcripts
    2345DeactivatedCourse Evaluation Form, Application Fee, Transcripts, Letters of Recommendation, Statement of Purpose
    2346DeactivatedEverything except Letters of Recommendation
    2347DeactivatedAll materials missing except application
    2348DeniedNo Missing Materials
    2349DeniedNo Missing Materials
    2350DeniedNo Missing Materials
    2351DeniedNo Missing Materials
    2352Incomplete at CSAdmissions Evaluation
    2353DeactivatedCourse Evaluation Form, Letters of Recommendation, Transcripts, TOEFL
    2354DeniedNo Missing Materials
    2355DeniedAdmissions Evaluation
    2356DeniedNo Missing Materials
    2357DeactivatedCourse Evaluation Form, Transcripts
    2358DeactivatedCourse Evaluation Form
    2359DeactivatedEverything but application form.
    2360Incomplete at CSTranscripts, GRE, TOEFL, Letters of Recommendation, Statement of Purpose, Application Fee
    2361DeniedNo Missing Materials
    2362Full AdmitApplication Fee, Original TOEFL, Admissions Evaluation
    2363DeniedOriginal TOEFL if admitted
    2365DeniedOriginal TOEFL if admitted
    2366DeactivatedApplication Fee, Course Evaluation Form, Transcripts, Letters of Recommendation, GRE
    2367DeactivatedApplication Fee, Transcripts, Course Evaluation Form, Letters of Recommendation
    2368DeactivatedCourse Evaluation, 2 Letters of Recommendation
    2369DeniedNo Missing Materials
    2370DeniedNo Missing Materials
    2371DeniedAdmissions Evaluation
    2372Deactivated by GAOriginal TOEFL, Admissions Evaluation
    2374DeniedNo Missing Materials
    2375Full Admit, RA, PACENo Missing Materials
    2376DeniedNo Missing Materials
    2377DeactivatedCourse Evaluation Form, Letters of Recommendation, GRE
    2379Denied1 Letter of Recommendation
    2380DeniedNo Missing Materials
    2381Declined Admission/OfferNo Missing Materials
    2382WithdrewNo Missing Materials
    2383DeniedNo Missing Materials
    2384Deactivated by GAAdmissions Evaluation
    2385DeniedNo Missing Materials
    2386Deactivated by GACourse Evaluation Form, Nanyang transcript
    2387Incomplete at CSCourse Evaluation Form, Xinjiang transcript, GRE, Letter of Recommendation
    2388DeniedNo Missing Materials
    2389DeactivatedCourse Evaluation Form, Letters of Recommendation, GRE
    2390Deactivated by Grad AdmissionsCourse Evaluation Form, Original TOEFL over 550/213, GRE
    2391DeniedNo Missing Materials
    2392DeniedNo Missing Materials
    2393Deactivated
    2394Deactivated
    2395DeniedNo Missing Materials
    2396DeactivatedEverything but application form
    2397Incomplete MaterialsCourse Evaluation Form, GRE, Transcripts, Original TOEFL, Letters of Recommendation
    2398Deactivated
    2399Incomplete MaterialsCourse Evaluation Form, Letters of Recommendation, GRE, Statement of Purpose
    2400Incomplete MaterialsCourse Evaluation Form
    2401Deferred to Spring 2002
    2402Deferred to Spring 2002
    2403Restricted AdmissionNo Missing Materials
    2404Deactivated by Graduate Admissions
    2405Full AdmitNo Missing Materials
    2406In EvaluationNo Missing Materials
    2407Full AdmitNo Missing Materials
    2408Incomplete Materials
    diff --git a/hridesh/gradadm/f08blurb.txt b/hridesh/gradadm/f08blurb.txt new file mode 100644 index 0000000..82e0321 --- /dev/null +++ b/hridesh/gradadm/f08blurb.txt @@ -0,0 +1,68 @@ + + + + + + + + Spring 2007 Application Status Information + + + +January 16, 2008

    +Fall 2008 Application Status Information

    +

    +NOTE: Please read ALL information on this page and in the Daily Notes. +

    +Click here for +DAILY NOTES.

    + +Application Status:
    +Please locate your CS ID tracking number in the table below. +

    +Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

    + +

    +Official GRE scores are required for full admittance. +

    +In Evaluation -- Application is complete and sent to the +review committee. Fall application review will not start until +after February 1. +

    +Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

    +Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

    +Hold -- Application has passed a +first review and is awaiting an additional review. +

    +Admit -- Student has been admitted to our graduate program. +

    +Funding -- TA position availability for Fall will not be known until April.

    + +Please keep checking your online status for further information. +

    +Thank you for your patience.

    + + diff --git a/hridesh/gradadm/f08status.html b/hridesh/gradadm/f08status.html new file mode 100644 index 0000000..634229e --- /dev/null +++ b/hridesh/gradadm/f08status.html @@ -0,0 +1,1673 @@ + + + + + + + + Spring 2008 Application Status Information + + + +April 21, 2008

    +Fall 2008 Application Status Information

    +

    +NOTE: Please read ALL information on this page and in the Daily Notes. +

    +Click here for +DAILY NOTES.

    + +Application Status:
    +Please locate your CS ID tracking number in the table below. +

    +Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

    + +

    +Official GRE scores are required for full admittance. +

    +In Evaluation -- Application is complete and sent to the +review committee. Fall application review will not start until +after February 1. +

    +Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

    +Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

    +Hold -- Application has passed a +first review and is awaiting an additional review. +

    +Admit -- Student has been admitted to our graduate program. +

    +Funding -- TA position availability for Fall will not be known until April.

    + +Please keep checking your online status for further information. +

    +Thank you for your patience.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDApplication Status
    1728Admit, Full
    1729Admit, Full
    1933Admit, Full
    2183Admit, Full
    2216Admit, Full
    2217Admit, Full
    2256Admit, Full
    2312Admit, Full
    2335Admit, Full
    2337Admit, Full
    2422Admit, Full
    2451Admit, Full
    2458Denied
    2490Admit, Full
    2493Admit, Full
    2512Denied
    2571Admit, Full
    2574Admit, Full
    2575Denied
    2576Admit, Full
    2577Admit, Full
    2578Admit, Full
    2579Incomplete
    2580Denied
    2581Denied
    2582Admit, Full
    2583Admit, Full
    2584Admit, Full
    2585Incomplete
    2587Admit, Full
    2588Admit, Full
    2589Denied
    2590Denied
    2591Admit, Full
    2592Denied
    2593Denied
    2595Denied
    2597Admit, Full
    2598Incomplete
    2599Denied
    2600Denied
    2602Denied
    2604Denied
    2605Admit, Full
    2606Admit, Full
    2607Admit, Full
    2608Denied
    2609Admit, Full
    2610Denied
    2611Denied
    2612Denied
    2614Incomplete
    2615Admit, Full
    2616Admit, Full
    2617Denied
    2618Admit, Full
    2619Admit, Full
    2620Admit, Full
    2621Admit, Full
    2622Denied
    2623Denied
    2624Admit, Full
    2625Denied
    2626Admit, Full
    2627Admit, Full
    2629Admit, Full
    2630Denied
    2631Denied
    2632Denied
    2633Admit, Full
    2634Denied
    2635Admit, Full
    2636Admit, Full
    2640Admit, Full
    2641Withdrew
    2642Admit, Full
    2643Admit, Full
    2644Denied
    2645Denied
    2646Denied
    2647Withdrew
    2649Admit, Full
    2650Denied
    2651Admit, Full
    2652Denied
    2653Denied
    2654Denied
    2655Denied
    2656Denied
    2657Denied
    2658Admit, Full
    2659Admit, Full
    2660Admit, Full
    2661Admit, Full
    2662Admit, Full
    2663Denied
    2664Denied
    2665Denied
    2666Denied
    2668Denied
    2669Admit, Full
    2670Denied
    2671Denied
    2672Denied
    2673Denied
    2674Withdrew
    2677Denied
    2678Admit, Full
    2679Admit, Full
    2680Denied
    2681Denied
    2682Denied
    2683Admit, Full
    2684Admit, Full
    2685Admit, Full
    2686Admit, Full
    2687Admit, Full
    2688Admit, Full
    2689Incomplete
    2690Hold Further Review
    2691Denied
    2692Denied
    2693Admit, Full
    2694Admit, Full
    2695Admit, Full
    2697Denied
    2698Admit, Full
    2699Denied
    2700Admit, Full
    2701Admit, Full
    2702Admit, Full
    2703Admit, Full
    2704Admit, Full
    2705Admit, Full
    2706Denied
    2707Admit, Full
    2708Denied
    2709Denied
    2710Withdrew
    2711Denied
    2712Denied
    2713Admit, Full
    2714Admit, Full
    2715Admit, Full
    2716Denied
    2717Denied
    2718Denied
    2719Denied
    2720Admit, Full
    2721Incomplete
    2722Denied
    2723Admit, Full
    2724Admit, Full
    2725Admit, Full
    2726Admit, Full
    2727Admit, Full
    2728Admit, Full
    2729Denied
    2730Withdrew
    2731Denied
    2732Admit, Full
    2733Admit, Full
    2734Admit, Full
    2735Denied
    2736Admit, Full
    2737Admit, Full
    2739Denied
    2740Denied
    2742Denied
    2743Admit, Full
    2745Admit, Full
    2746Incomplete
    2747Admit, Full
    2748Denied
    2749Admit, Full
    2750Admit, Full
    2751Denied
    2752Denied
    2754Denied
    2755Denied
    2756Admit, Full
    2757Denied
    2758Denied
    2759Denied
    2760Denied
    2761Denied
    2762Admit, Full
    2763Denied
    2764Admit, Full
    2765Admit, Full
    2766Admit, Full
    2767Denied
    2768Incomplete
    2769Denied
    2770Denied
    2771Denied
    2772Admit, Full
    2773Denied
    2774Incomplete
    2775Denied
    2776Denied
    2777Denied
    2778Denied
    2779Denied
    2780Incomplete
    2781Admit, Full
    2782Admit, Full
    2783Denied
    2784Admit, Full
    2785Denied
    2786Denied
    2787Denied
    2788Denied
    2789Admit, Full
    2790Admit, Full
    2792Admit, Full
    2793Denied
    2794Withdrew
    2795Denied
    2796Denied
    2797Admit, Full
    2798Admit, Full
    2799Denied
    2800Admit, Full
    2801Incomplete
    2802Admit, Full
    2803Denied
    2804Denied
    2805Denied
    2806Admit, Full
    2807Admit, Full
    2808Admit, Full
    2809Denied
    2810Admit, Full
    2811Admit, Full
    2812Denied
    2813Denied
    2814Denied
    2815Denied
    2817Denied
    2818Denied
    2819Denied
    2820Denied
    2821Admit, Full
    2822Admit, Full
    2823Denied
    2824Denied
    2825Denied
    2826Admit, Full
    2827Admit, Full
    2828Admit, Full
    2829Admit, Full
    2830Denied
    2831Admit, Full
    2832Denied
    2833Admit, Full
    2834Denied
    2835Denied
    2836Denied
    2837Denied
    2838Denied
    2839Admit, Full
    2840Denied
    2841Admit, Full
    2842Denied
    2843Denied
    2844Denied
    2845Denied
    2846Admit, Full
    2847Denied
    2848Denied
    2849Denied
    2850Denied
    2852Admit, Full
    2853Denied
    2854Denied
    2855Denied
    2856Denied
    2857Admit, Full
    2858Admit, Full
    2859Admit, Full
    2860Admit, Full
    2861Denied
    2862Denied
    2863Denied
    2864Denied
    2865Incomplete
    2866Denied
    2867Admit, Full
    2868Denied
    2869Denied
    2870Denied
    2871Denied
    2872Denied
    2873Admit, Full
    2874Admit, Full
    2875Denied
    2876Denied
    2877Denied
    2878Incomplete
    2880Denied
    2881Denied
    2882Denied
    2883Admit, Full
    2884Admit, Full
    2885Denied
    2886Denied
    2887Denied
    2890Denied
    2891Denied
    2892Admit, Full
    2893Denied
    2894Admit, Full
    2895Incomplete
    2896Admit, Full
    2897Incomplete
    2898Admit, Full
    2899Admit, Full
    2900Denied
    2901Admit, Full
    2902Denied
    2903Denied
    2904Admit, Full
    2905Denied
    2906Admit, Full
    2907Denied
    2908Incomplete
    2909Denied
    2910Denied
    2911Denied
    2912Denied
    2913Admit, Full
    2914Admit, Full
    2915Denied
    2916Admit, Full
    2917Denied
    2918Denied
    2919Admit, Full
    2920Denied
    2921Admit, Full
    2922Admit, Full
    2925Denied
    2926Admit, Full
    2928Denied
    2929Denied
    2930Denied
    2931Denied
    2932Denied
    2934Admit, Full
    2935Admit, Full
    2936Admit, Full
    2937Denied
    2938Admit, Full
    2939Incomplete
    2940Denied
    2941Denied
    2942Admit, Full
    2943Admit, Full
    2945Admit, Full
    2946Admit, Full
    2947Incomplete
    2948Admit, Full
    2950Denied
    2951Admit, Full
    2952Denied
    2953Denied
    2954Denied
    2956Incomplete
    2957Denied
    2961Admit, Full
    2962Incomplete
    2963Denied
    2965Admit, Full
    2966Denied
    2967Admit, Full
    2968Admit, Full
    2971Denied
    2972Denied
    2973Admit, Full
    2975Incomplete
    2977Denied
    2978Denied
    2980Denied
    2981Denied
    2982Denied
    2984Withdrew
    2985Incomplete
    2986Denied
    2987Denied
    2990Denied
    2991Denied
    2993Denied
    2994Incomplete
    2995Denied
    2995Incomplete
    2998Denied
    2999Denied
    3000In Evaluation
    3002Incomplete
    3500Admit, Full
    diff --git a/hridesh/gradadm/f09blurb.txt b/hridesh/gradadm/f09blurb.txt new file mode 100644 index 0000000..df1a167 --- /dev/null +++ b/hridesh/gradadm/f09blurb.txt @@ -0,0 +1,67 @@ + + + + + + + + Spring 2007 Application Status Information + + + +Fall 2009 Application Status Information

    +

    +NOTE: Please read ALL information on this page and in the Daily Notes. +

    +Click here for +DAILY NOTES.

    + +Application Status:
    +Please locate your CS ID tracking number in the table below. +

    +Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

    + +

    +Official GRE scores are required for full admittance. +

    +In Evaluation -- Application is complete and sent to the +review committee. Fall application review will not start until +after February 1. +

    +Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

    +Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

    +Hold -- Application has passed a +first review and is awaiting an additional review. +

    +Admit -- Student has been admitted to our graduate program. +

    +Funding -- TA position availability for Fall will not be known until April.

    + +Please keep checking your online status for further information. +

    +Thank you for your patience.

    + + diff --git a/hridesh/gradadm/f09status.html b/hridesh/gradadm/f09status.html new file mode 100644 index 0000000..f4c540d --- /dev/null +++ b/hridesh/gradadm/f09status.html @@ -0,0 +1,1529 @@ + + + + + + + + Fall 2009 Application Status Information + + + +April 6, 2009

    +Fall 2009 Application Status Information

    +

    +NOTE: Please read ALL information on this page and in the Daily Notes. +

    +Click here for +DAILY NOTES.

    + +Application Status:
    +Please locate your CS ID tracking number in the table below. +

    +Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

    + +

    +Official GRE scores are required for full admittance. +

    +In Evaluation -- Application is complete and sent to the +review committee. Fall application review will not start until +after February 1. +

    +Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

    +Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

    +Hold -- Application has passed a +first review and is awaiting an additional review. +

    +Admit -- Student has been admitted to our graduate program. +

    +Funding -- TA position availability for Fall will not be known until April.

    + +Please keep checking your online status for further information. +

    +Thank you for your patience.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDApplication Status
    1729Admit, Full
    2642Admit, Full
    2651Admit, Full
    2995Denied
    3002Denied
    3002Denied
    3003Denied
    3004Admit, Full
    3005Denied
    3006Denied
    3007Denied
    3008Denied
    3010Denied
    3011Admit, Full
    3012Admit, Full
    3013Denied
    3014Denied
    3015Admit, Full
    3016Withdrew
    3017Admit, Full
    3018Denied
    3019Denied
    3020Denied
    3021Admit, Full
    3021Denied
    3022Admit, Full
    3023Denied
    3024Denied
    3025Denied
    3026Admit, Full
    3027Admit, Full
    3028Denied
    3029Denied
    3030Denied
    3031Denied
    3032Admit, Full
    3033Denied
    3034Admit, Full
    3035Admit, Full
    3036Denied
    3037Denied
    3038Admit, Full
    3038Admit, Full
    3039Denied
    3040Admit, Full
    3041Denied
    3041Denied
    3042Admit, Full
    3043Denied
    3045Admit, Full
    3047Denied
    3056Denied
    3057Admit, Full
    3058Denied
    3069Admit, Full
    3070Admit, Full
    3071Admit, Full
    3072Denied
    3073Admit, Full
    3074Denied
    3075Denied
    3077Denied
    3078Denied
    3079Denied
    3080Denied
    3082Denied
    3083Admit, Full
    3084Admit, Full
    3085Denied
    3087Denied
    3088Denied
    3089Denied
    3090Denied
    3092Denied
    3093Denied
    3094Admit, Full
    3096Admit, Full
    3097Admit, Full
    3098Denied
    3099Denied
    3100Denied
    3101Admit, Full
    3102Admit, Full
    3103Denied
    3104Admit, Full
    3105Admit, Full
    3106Denied
    3107Admit, Full
    3108Denied
    3109Denied
    3110Denied
    3111Admit, Full
    3112Admit, Full
    3113Denied
    3114Admit, Full
    3115Denied
    3116Admit, Full
    3117Admit, Full
    3118Denied
    3119Denied
    3120Admit, Full
    3122Denied
    3123Admit, Full
    3124Denied
    3125Denied
    3126Admit, Full
    3127Denied
    3128Denied
    3131Admit, Full
    3132Denied
    3134Denied
    3135Denied
    3136Denied
    3137Admit, Full
    3138Denied
    3139Admit, Full
    3140Denied
    3141Denied
    3142Admit, Full
    3143Denied
    3144Denied
    3145Denied
    3146Denied
    3148Denied
    3149Admit, Full
    3150Admit, Full
    3151Denied
    3152Denied
    3153Admit, Full
    3154Denied
    3155Denied
    3156Denied
    3157Admit, Full
    3158Denied
    3159Denied
    3160Admit, Full
    3162Denied
    3163Admit, Full
    3164Admit, Full
    3165Denied
    3166Denied
    3167Admit, Full
    3168Denied
    3169Admit, Full
    3170Admit, Full
    3171Admit, Full
    3172Denied
    3173Admit, Full
    3174Denied
    3175Denied
    3176Denied
    3177Admit, Full
    3178Denied
    3179Denied
    3180Admit, Full
    3181Denied
    3182Admit, Full
    3183Denied
    3184Admit, Full
    3185Denied
    3186Admit, Full
    3187Denied
    3188Admit, Full
    3189Admit, Full
    3190Denied
    3191Denied
    3192Denied
    3194Admit, Full
    3196Denied
    3197Denied
    3198Admit, Full
    3199Denied
    3200Denied
    3201Denied
    3202Denied
    3203Denied
    3204Admit, Full
    3205Denied
    3206Denied
    3207Denied
    3209Denied
    3210Admit, Full
    3211Admit, Full
    3214Denied
    3215Admit, Full
    3216Denied
    3217Admit, Full
    3218Denied
    3219Denied
    3221Denied
    3222Admit, Full
    3223Denied
    3224Denied
    3228Admit, Full
    3229Denied
    3230Denied
    3231Admit, Full
    3232Denied
    3233Denied
    3234Denied
    3235Denied
    3236Denied
    3237Denied
    3238Denied
    3239Denied
    3240Admit, Full
    3241Admit, Full
    3242Denied
    3243Denied
    3244Denied
    3245Denied
    3246Admit, Full
    3247Admit, Full
    3249Admit, Full
    3250Denied
    3252Denied
    3253Denied
    3254Denied
    3255Denied
    3256Denied
    3257Denied
    3259Denied
    3260Denied
    3261Denied
    3262Denied
    3263Denied
    3264Admit, Full
    3265Admit, Full
    3266Denied
    3267Denied
    3268Denied
    3269Denied
    3270Denied
    3271Admit, Full
    3272Admit, Full
    3273Denied
    3274Denied
    3275Denied
    3277Denied
    3278Admit, Full
    3279Admit, Full
    3281Denied
    3282Denied
    3283Denied
    3284Denied
    3285Denied
    3286Denied
    3287Admit, Full
    3288Admit, Full
    3289Denied
    3290Denied
    3291Admit, Full
    3292Denied
    3293Denied
    3295Admit, Full
    3296Denied
    3297Denied
    3298Denied
    3300Denied
    3302Denied
    3303Admit, Full
    3304Denied
    3305Denied
    3306Denied
    3308Denied
    3309Admit, Full
    3310Denied
    3311Denied
    3312Admit, Full
    3313Denied
    3314Denied
    3315Admit, Full
    3316Denied
    3317Denied
    3318Denied
    3319Denied
    3320Denied
    3321Denied
    3322Admit, Full
    3323Denied
    3324Admit, Full
    3325Denied
    3326Denied
    3327Denied
    3328Denied
    3329Denied
    3330Denied
    3331Denied
    3332Admit, Full
    3333Admit, Full
    3334Denied
    3335Admit, Full
    3336Admit, Full
    3337Denied
    3338Denied
    3339Denied
    3340Admit, Full
    3341Denied
    3342Denied
    3344Admit, Full
    3345Denied
    3346Denied
    3347Denied
    3349Denied
    3350Denied
    3351Admit, Full
    3352Denied
    3353Denied
    3354Denied
    3356Denied
    3357Denied
    3358Denied
    3359Denied
    3360Denied
    3361Denied
    3362Denied
    3363Denied
    3364Denied
    3365Denied
    3366Admit, Full
    3367Admit, Full
    3368Denied
    3370Denied
    3372Denied
    3373Denied
    3374Denied
    3375Denied
    3376Denied
    3377Denied
    3378Admit, Full
    3379Denied
    3380Denied
    3381Denied
    3382Denied
    3383Denied
    3386Denied
    3387Denied
    3388Denied
    3389Denied
    3390Denied
    3391Denied
    3392Admit, Full
    3393Denied
    3394Denied
    3395Admit, Full
    3396Denied
    3397Denied
    3398Denied
    3399Denied
    3400Admit, Full
    3401Denied
    3403Admit, Full
    3404Denied
    3405Denied
    3408Denied
    3409Denied
    3410Denied
    3411Not Complete
    3412Not Complete
    3413Not Complete
    3414Not Complete
    3415Not Complete
    3416Denied
    4000Admit, Full
    diff --git a/hridesh/gradadm/f10blurb.txt b/hridesh/gradadm/f10blurb.txt new file mode 100644 index 0000000..e494e47 --- /dev/null +++ b/hridesh/gradadm/f10blurb.txt @@ -0,0 +1,65 @@ + + + + + + + + Spring 2007 Application Status Information + + + +Fall 2010 Application Status Information

    +

    +NOTE: Please read ALL information on this page and in the Daily Notes. +

    +Click here for +DAILY NOTES.

    + +Application Status:
    +Please locate your CS ID tracking number in the table below. +

    +Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

    + +

    +Official GRE scores are required for full admittance. +

    +In Evaluation -- Application is complete and sent to the +review committee. +

    +Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

    +Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. +

    +Hold -- Application has passed a +first review and is awaiting an additional review. +

    +Admit -- Student has been admitted to our graduate program. +

    +Funding -- TA position availability for Spring will not be known until October.

    + +Please keep checking your online status for further information. +

    +Thank you for your patience.

    + + diff --git a/hridesh/gradadm/f10status.htm b/hridesh/gradadm/f10status.htm new file mode 100644 index 0000000..81e00a5 --- /dev/null +++ b/hridesh/gradadm/f10status.htm @@ -0,0 +1,1815 @@ + + + + + + + + Fall 2010 Application Status Information + + + +March 5, 2010

    +Fall 2010 Application Status Information

    +

    +NOTE: Please read ALL information on this page and in the Daily Notes. +

    +Click here for +DAILY NOTES.

    + +Application Status:
    +Please locate your CS ID tracking number in the table below. +

    +Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

    + +

    +Official GRE scores are required for full admittance. +

    +In Evaluation -- Application is complete and sent to the +review committee. +

    +Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

    +Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. +

    +Hold -- Application has passed a +first review and is awaiting an additional review. +

    +Admit -- Student has been admitted to our graduate program. +

    +Funding -- TA position availability for Spring will not be known until October.

    + +Please keep checking your online status for further information. +

    +Thank you for your patience.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDApplication Status
    3410Denied
    3411Denied
    3414Denied
    3452Denied
    3415Denied
    3416Admit, Full
    3417Denied
    3418Admit, Full
    3419Admit, Full
    3420Denied
    3421Denied
    3422Denied
    3423Denied
    3424Admit, Full
    3425Denied
    3426Denied
    3427Denied
    3428Denied
    3429Denied
    3430Denied
    3431Denied
    3432Denied
    3433Admit, Full
    3434Denied
    3435Denied
    3436Admit, Full
    3437Admit, Full
    3438Admit, Full
    3439Admit, Full
    3441Admit, Full
    3442Denied
    3443Denied
    3444Denied
    3445Denied
    3446Denied
    3447Denied
    3448Denied
    3449Denied
    3450Denied
    3451Denied
    3452Denied
    3453Admit, Full
    3454Denied
    3455Denied
    3456Denied
    3457Denied
    3458Denied
    3459Admit, Full
    3460Admit, Full
    3461Admit, Full
    3462Denied
    3463Denied
    3464Denied
    3465Denied
    3466Denied
    3467Denied
    3468Admit, Full
    3469Denied
    3470Admit, Full
    3471Denied
    3472Denied
    3473Denied
    3474Admit, Full
    3471Denied
    3475Admit, Full
    3476Denied
    3477Denied
    3478Admit, Full
    3479Denied
    3480Denied
    3481Denied
    3484Denied
    3485Denied
    3486Denied
    3488Denied
    3489Denied
    3490Denied
    3491Denied
    3492Admit, Full
    3493Denied
    3494Admit, Full
    3496Denied
    3498Denied
    3499Denied
    3501Admit, Full
    3502Denied
    3505Denied
    3506Denied
    3507Admit, Full
    3508Denied
    3509Admit, Full
    3511Denied
    3512Denied
    3513Denied
    3514Denied
    3515Denied
    3516Denied
    3517Denied
    3519Denied
    3520Admit, Full
    3521Denied
    3524Denied
    3527Admit, Full
    3528Denied
    3529Denied
    3530Denied
    3531Admit, Full
    3532Denied
    3533Denied
    3534Denied
    3535Denied
    3536Denied
    3537Denied
    3538Denied
    3539Admit, Full
    3543Denied
    3544Denied
    3550Denied
    3552Denied
    3553Admit, Full
    3554Denied
    3556Denied
    3557Admit, Full
    3558Denied
    3559Admit, Full
    3561Denied
    3562Denied
    3563Denied
    3564Admit, Full
    3565Denied
    3566Denied
    3568Denied
    3569Denied
    3571Denied
    3573Denied
    3574Admit, Full
    3575Denied
    3576Denied
    3577Denied
    3578Denied
    3579Admit, Full
    3580Denied
    3581Denied
    3582Admit, Full
    3583Denied
    3584Denied
    3585Denied
    3586Denied
    3587Admit, Full
    3588Admit, Full
    3589Denied
    3590Denied
    3591Denied
    3592Admit, Full
    3593Denied
    3594Denied
    3595Denied
    3596Denied
    3598Denied
    3599Denied
    3600Denied
    3603Denied
    3604Admit, Full
    3605Denied
    3607Denied
    3608Denied
    3609Denied
    3610Denied
    3611Denied
    3612Denied
    3613Denied
    3614Denied
    3615Denied
    3616Denied
    3617Denied
    3618Admit, Full
    3619Denied
    3621Denied
    3622Denied
    3623Admit, Full
    3624Admit, Full
    3625Denied
    3626Denied
    3627Denied
    3628Denied
    3629Denied
    3630Withdrew
    3631Denied
    3634Admit, Full
    3635Denied
    3636Admit, Full
    3637Denied
    3638Admit, Full
    3639Denied
    3640Admit, Full
    3641Admit, Full
    3642Denied
    3643Denied
    3644Admit, Full
    3645Admit, Full
    3646Denied
    3647Denied
    3648Denied
    3649Denied
    3650Denied
    3651Denied
    3652Denied
    3654Admit, Full
    3655Admit, Full
    3656Admit, Full
    3657Denied
    3658Denied
    3661Denied
    3662Denied
    3663Denied
    3664Denied
    3665Denied
    3666Denied
    3667Admit, Full
    3668Denied
    3669Admit, Full
    3670Denied
    3672Denied
    3673Admit, Full
    3674Denied
    3675Denied
    3676Admit, Full
    3677Denied
    3678Admit, Full
    3679Denied
    3680Admit, Full
    3681Denied
    3682Admit, Full
    3683Denied
    3684Admit, Full
    3685Admit, Full
    3686Admit, Full
    3687Denied
    3688Denied
    3689Admit, Full
    3690Denied
    3691Denied
    3692Denied
    3694Denied
    3695Denied
    3696Denied
    3697Denied
    3698Denied
    3699Denied
    3700Denied
    3701Denied
    3702Denied
    3703Denied
    3704Denied
    3705Admit, Full
    3706Admit, Full
    3708Denied
    3709Denied
    3711Denied
    3712Admit, Full
    3713Denied
    3714Denied
    3716Denied
    3717Admit, Full
    3718Denied
    3719Denied
    3720Denied
    3721Denied
    3722Denied
    3723Admit, Full
    3724Denied
    3726Denied
    3727Denied
    3728Denied
    3729Denied
    3730Admit, Full
    3731Denied
    3732Denied
    3733Denied
    3734Denied
    3735Admit, Full
    3736Denied
    3737Denied
    3738Denied
    3739Admit, Full
    3740Denied
    3741Denied
    3742Denied
    3743Denied
    3744Denied
    3745Admit, Full
    3746Denied
    3747Denied
    3748Denied
    3749Denied
    3750Denied
    3751Denied
    3752Denied
    3753Denied
    3754Denied
    3755Admit, Full
    3756Denied
    3757Denied
    3758Denied
    3759Admit, Full
    3760Denied
    3762Admit, Full
    3763Denied
    3764Denied
    3765Denied
    3766Denied
    3767Denied
    3768Denied
    3769Denied
    3770Denied
    3771Admit, Full
    3772Denied
    3773Denied
    3774Denied
    3775Denied
    3776Denied
    3777Denied
    3778Denied
    3780Admit, Full
    3781Denied
    3782Denied
    3784Denied
    3786Denied
    3787Denied
    3789Denied
    3790Denied
    3791Denied
    3792Denied
    3794Denied
    3795Denied
    3797Denied
    3798Denied
    3799Denied
    3800Denied
    3801Admit, Full
    3802Denied
    3803Denied
    3804Denied
    3806Denied
    3807Denied
    3808Admit, Full
    3809Denied
    3810Denied
    3811Admit, Full
    3812Denied
    3813Admit, Full
    3814Denied
    3816Denied
    3817Denied
    3818Admit, Full
    3820Denied
    3821Denied
    3822Denied
    3823Admit, Full
    3824Denied
    3825Denied
    3826Denied
    3827Denied
    3828Denied
    3829Denied
    3830Admit, Full
    3832Denied
    3833Denied
    3834Denied
    3835Denied
    3836Denied
    3837Admit, Full
    3841Denied
    3842Denied
    3844Admit, Full
    3845Denied
    3846Denied
    3847Admit, Full
    3848Admit, Full
    3849Admit, Full
    3850Denied
    3852Denied
    3853Denied
    3854Denied
    3855Denied
    3856Denied
    3857Denied
    3858Denied
    3859Denied
    3860Admit, Full
    3861Denied
    3865In Evaluation
    3866Denied
    3869Admit, Full
    3870Denied
    3871Denied
    3872Denied
    3873Denied
    3874Denied
    3876Denied
    3877Denied
    3879Denied
    3880Denied
    3875Denied
    3653Denied
    3659Denied
    3660Not Complete
    3881Denied
    3693Denied
    3707Denied
    3710Not Complete
    3715Not Complete
    3725Admit, Full
    3633Denied
    3632Not Complete
    3560Denied
    3783Denied
    3793Not Complete
    3796Not Complete
    3883Denied
    3819Not Complete
    3838Denied
    3839Not Complete
    3831Denied
    3862Not Complete
    3843Denied
    3878Not Complete
    3851Denied
    3883Denied
    3884Denied
    3071Admit, Full
    3102Admit, Full
    3200Admit, Full
    3324Admit, Full
    3395Admit, Full
    3885Not Complete
    diff --git a/hridesh/gradadm/facinterests.html b/hridesh/gradadm/facinterests.html new file mode 100755 index 0000000..e060bbd --- /dev/null +++ b/hridesh/gradadm/facinterests.html @@ -0,0 +1,5927 @@ + +Overview of Faculty Research Interests + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Overview of Computer Science Faculty Research Interests

    + +The Department of Computer Science has strong research programs in several +areas of Computer Science. Faculty and graduate students routinely collaborate +on research projects that cut across multiple areas of computer +science. The department also nurtures interdisciplinary work +advances the state of the art in +the theoretical foundations as well as applications of computer science while +contributing to advances in other disciplines (e.g., biological sciences, +engineering). +Computer Science faculty have received numerous research grants from +the National Science Foundation, Department of Defense, as well as several +Industrial Organizations. Some of the faculty members serve on Editorial +Boards of leading journals. Many of the faculty members regularly +serve on the Program Committees of top national and international +research conferences. +Dynamic faculty, State-of-the-art research laboratories, +a well-funded research program, opportunities provided by the +Center for Bioinformatics and Biostatitics, DOE Ames Laboratory, +Virtual Reality Applications Center, provide +a stimulating academic environment for leading edge research in several +areas. This document summarizes the current research interests of our faculty. +Additional information can be found on our research page. + +
    + + + + + + + + + +faculty research interests + + + + + + +
    + +

     

    + +

     

    + +

    PAVAN +ADURI, Assistant Professor of Computer Science

    + +

     

    + +

    Ph.D. 2001, +Computer Science, University at Buffalo, Buffalo

    + +

    M. Tech. 1995, +Computer Science, Indian Institute of Technology, Kanpur

    + +

    B. Tech, 1993, +Computer Science, JNT University, Hyderabad

    + +

     

    + +

    Major +Interests:

    + +

    Computational +Complexity: Average-case complexity, Connections between average-case +complexity and worst-case complexity, Structural complexity of function +classes.

    + +

     

    + +

    Current +Research:

    + +

    Part of my work is motivated by the +following questions:

    + +

    1. What is a +hard problem? What are the properties of hard problems?

    + +

    2. What are +the relationships among various notions of hardness?

    + +

    3. For +problems in NP, what is the relationship between search and decision ?

    + +

    There are several ways to define a +satisfactory notion of hardness such as worst-case hardness, average-case +hardness, and almost-everywhere hardness. Part of the work concerns with a +variation of average-case hardness known as distributional hardness. This +involves understanding various properties of distributionally-hard languages +and investigate the question of whether such languages exist in NP.

    + +

    Some problems +such as Permanent have the fascinating property that if they are easy on +average, then they are easy in worst-case. Thus, the worst-case hardness of the +problem is the same as the average-case hardness of the problem. Can we find +such problems in NP? A slightly related question is given a problem in NP that +is mildly hard can we construct a much harder problem in NP?

    + +

    The last +question deals with the complexity of function classes. Is computing a witness +for a NP problem more difficult than decision? Can we compute some non trivial +partial information about NP-complete problems? These questions lead to a study +of concepts such as selectivity and membership comparable.

    + +

     

    + +

    Representative +Publications:

    + +

    "Separation of NP-completeness +notions", A. Pavan and A. Selman. 16th Annual IEEE Conference +on Computational Complexity, 1999, pp 78-89.

    + +

     

    + +

    "Complete distributional problems, +hard languages, and resource-bounded measure", A. Pavan and A. Selman. +Theoretical Computer Science. 234:273-286 (2000).

    + +

     

    + +

    "On the hardness of permanent", +J. Cai, A. Pavan and D. Sivakumar. Proceedings of the 16th Annual Symposium on +Theoretical Aspects of Computer Science LNCS 1563: 90-99, 1999.

    +

     

    + +

     

    + +
    +
    + +

    SAMIK BASU, Assistant Professor of Computer Science +

    + +

     

    + +

    Ph.D. +2003, Computer Science, State University of New York at Stony Brook

    + +

    M.S. 2000, +Computer Science, State University of New York at Stony Brook

    + +

    B.E. 1998, +Computer Science & Engineering, Jadavpur University, Calcutta

    + +

     

    + +

    Major Interests:

    + +

    Model Checking, Software Safety & Security Analysis

    + +

     

    + +

    Current Research:

    + +

    The main thrust of my +research is to develop techniques for verification +of infinite-state systems and use them to ensure the reliability and +security of software systems. Two major activities of my research include +(a) developing efficient techniques to detect system flaws and (b) +enhancing debugging capabilities by building effective justification of +the cause of these flaws. +

    +

     

    + +

    Representative Publications:

    + +

    Model-Carrying Code: A Practical Approach for Secure Execution of +Untrusted Applications. R. Sekar, V.N. Venkatakrishnan, Samik Basu, +Sandeep Bhatkar and Daniel C. DuVarney. Nineteenth ACM Symposium on +Operating Systems Principles (SOSP-2003) +

    + +

     

    + +

    Generation of All Counter-Examples for Push-Down Systems. Samik Basu, +Diptikalyan Saha, Yow-Jian Lin and Scott A. Smolka. Application of Formal +Description Techniques in Internet and Communication Domains (FORTE-2003) +

    + +

     

    + +

    Compositional Analysis for Verification of Parameterized Systems. Samik +Basu and C.R. Ramakrishnan. Ninth International Conference on Tools and +Algorithms for the Construction and Analysis of Systems (TACAS-2003). +

    + +

     

    + +

    Resource Constrained Model Checking for Push-down Systems. Samik Basu, K. +Narayan Kumar, Robert L. Pokorny and C.R. Ramakrishan. Eighth +International Conference on Tools and Algorithms for the Construction and +Analysis of Systems (TACAS-2002). +

    + +

     

    + +

    Local and Symbolic Bisimulation using Tabled Constraint Logic Programming. +Samik Basu, C.R. Ramakrishan, I.V. Ramakrishnan, M. Mukund and R.M. Verma. +International Conference on Logic Programming (ICLP-2001). +

    + +

     

    + +

    Model Checking the Java Meta-locking Algorithm. Samik Basu, Scott A. +Smolka and Orson R. Ward. Seventh IEEE Conference and Workshops on +Engineering of Computer-Based Systems (ECBS-2000). +

    + + +

     

    + +

     

    + +
    +
    + +

    CARL K. CHANG, Professor and Chair of +Computer Science

    + +

     

    + +

    B.S. +1974, Mathematics, National Central University, Taiwan

    + +

    M.S. 1978, Computer +Science, Northern Illinois University

    + +

    Ph.D. +1982, Computer Science, Northwestern University

    + +

     

    + +

    Major Interests:

    + +

    Software +engineering, net-centric computing.

    + +

     

    + +

    Current Research:

    + +

    Professor Changs research +in software engineering includes two major activities: software architecture +based requirements engineering (SABRE) and project management with genetic +algorithms (PROMGA). His research in net-centric computing currently focuses on +rule-mitigated collaboration technology to support formal electronic meetings. +He also studies distributed requirements engineering using mobile agents.

    + +

     

    + +

    Representative Publications (1994-)

    + +

    Refereed +Journal Papers:

    + +

    Carl K. Chang, Jane +Cleland-Huang, Shiyan Hua and Annie Combelles, On Function-Class +Decomposition, IEEE Computer, Dec. 2001, pp. 87-93.

    + +

     

    + +

    Carl K. Chang, Tao Zhang +and Mark Christensen, Genetic Algorithms for Project Management, Annals of +Software Engineering, Kluwer Academic Publishers, 11:107-139, Nov. 2001.

    + +

     

    + +

    Carl K. Chang, Yong Liu, +Thribhuvana Murthy, James Kenevan and Pattanasak Mongkolwat, Simulation of +UICCELL II'', SIMULATION, The Society for Computer Simulation International, +75(3):128-140, Sept. 2000.

    + +

     

    + +

    Carl K. Chang and +Chiao-Chuan Shih, A Circular Skip-Cluster Scheme to Support Video-on-Demand +Services'', ACM Multimedia Systems, Springer-Verlag, 7(2):107-118, 1999.

    + +

     

    + +

    Carl +K. Chang, Gerald Engel, Willis King, Eric Roberts, Russ Shackelford, Robert H. +Sloan, and Pradip K. Srimani, Curricula 2001: Bringing the Future to the +Classroom, IEEE Computer, 32(9):85-88, September 1999.

    + +

     

    + +

    Carl K. Chang and Mark +Christensen, Net Practice in Software Project Management, IEEE Software, +16(6):80-88, Nov/Dec 1999.

    + +

     

    + +

    Luqi, Carl K. Chang and +Hong Zhu, Specifications in Software Prototyping'', The Journal of Systems and +Software, 42:125-140, 1998.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare: A Distributed Multimedia Environment with +Interoperability.'' Computers in Industry, 29(1-2):71-78, July 1996, Elsevier +Science B.V., Netherlands, 1995.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare : On Distributed Multimedia Temporal Relations and +Synchronization Agents.'' IEEE Multimedia, June 1996, pp. 30-39.

    + +

     

    + +

    Carl K. Chang and +Chiao-Chuan Shih, Challenges and Trends of Multimedia Services'', 1994-1995 +Annual Review of Communications, National Engineering Consortium, 1995, pp. +683-686.

    + +

     

    + +

    C. K. Chang and Yahya +Al-Salqan, Performance Study of CSMA/CD with Connected Direct Data +Link--Simulation Study'', Int'l Journal in Computer Simulation, +4(3):343-371, 1994.

    + +

     

    + +

    Refereed Conference +Papers:

    + +

    Carl K. Chang, Jia Zhang, and Tsang Ming Jiang, Formalization of +Computer Supported Cooperative Work Applications, Prof. of 2001 IEEE Workshop on Future Trends of +Distributed Computing Systems, Bologna, Italy, October 31-November 2, 2001, pp. +185-191.

    + +

     

    + +

     

    + +

    Chia-Song Ma*, Carl K. Chang, Jane Cleland-Huang, Measuring the +Intensity of Object Coupling in C++ Programs, to be published in Proc. of IEEE +COMPSAC 2001, Lisle, Illinois, October 8-12, 2001.

    + +

     

    + +

    Jane +Cleland-Huang, Carl K. Chang, Hosung Kim and Arun Balakrishnan, +Requirements-Based Dynamic Metrics on Object-Oriented Systems, to be +published in Proc. ff IEEE International Symposium on Requirements Engineering, +Toronto, Canada, August, 2001.

    + +

     

    + +

    Carl K. Chang and Lie +Cai, Agent Based Requirements Evolution Over the Internet, Proc. of IEEE +Workshop on Software Engineering on the Internet, The IEEE-CS/IPSJ 2001 +Symposium on Applications and the Internet (SAINT 2001), Jan. 8-12, 2001, pp. +83-88.

    + +

     

    + +

    Jane L. Huang and Carl +K. Chang, Supporting the Partitioning of Distributed Systems with Function +Class Decomposition, Proc. of IEEE COMPSAC 2000, Taipei, Taiwan, Oct. 25-27, +2000, pp. 351-356

    + +

     

    + +

    Carl K. Chang, Alexei +Vorontsov, Jia Zhang and Francis Quek, Rule-Mitigated Collaboration Technology, +Proc. of 1999 IEEE Workshop on Future Trends of Distributed Computing Systems, +Dec. 20-22, Cape Town, South Africa, pp. 137-142.

    + +

     

    + +

    Carl K. Chang and +Seongwoon Kim, I3:A Petri-net based Specification Method for +Architectural Component, Proc. of IEEE COMPSAC99, Oct. 27-29, Phoenix, +Arizona, pp. 396-402.

    + +

     

    + +

    Carl +K. Chang, Lie Cai and Francis Quek, On Formal Meetings for Net-centric +Web-based Computing, Proc. of The International Symposium on Internet +Technology, Taipei, April 29-May 1, 1998, pp. 35-40.

    + +

     

    + +

    Carl K. Chang, Francis +Quek, Lie Cai, Seongwoon Kim and Annie Kunzmann-Combelles, "A Research on +Collaboration Net", Proc. of 1997 IEEE Workshop on Future Trends of +Distributed Computing Systems, Tunis, Tunisia, October 1997, pp. 228-233.

    + +

     

    + +

    Carl K. Chang, Yi-Te +Tseng, and Ugo Buy, "Compiling Process Algebraic Specifications Into Timed +Automata", Proc. of IEEE COMPSAC'97, Washington, DC, August 1997, pp. +338-343.

    + +

     

    + +

    Carl K. Chang, +Chiao-Chuan Shih, Thinh T. Nguyen and Pattanasak Mongkolwat, A Popularity-based +Data Allocation Scheme for a Cluster-based VOD Server'', Proc. of IEEE +COMPSAC'96, Seoul, Korea, August 1996, pp. 62-67.

    + +

     

    + +

    Carl K. Chang and +Chiao-Chuan Shih, "Reducing the System Response Time of a Large-scale VOD +Server by Disk Grouping", Proc. of IEEE ICCASS '96 (International +Conference on Circuits and Systems Symposium), Shanghai, China, June 1996.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare: On Distributed Multimedi a Synchronization'', Proc. of +The second IEEE International Conference on Multimedia Computing and Systems, +Washington, DC, May 1995, pp. 150-158.

    + +

     

    + +

    Yahya Al-Salqan and Carl +K. Chang, MediaWare: A Distributed Multimedia Environment with +Interoperability'', Proc. of The Fourth IEEE International Workshop on Enabling +Technology: Infrastructure for Collaborative Environment, Berkely Springs, WV, +April 1995, pp. 128-137.

    + +

     

    + +

    Carl K. Chang, Jamsheed +Bugwadia and Pattanasak Mongkolwat, An Message-Oriented Discrete Event +Simulation Model of the Cellular Telephone System", Proc. of 1995 Summer +Computer Simulation Conference, Ottawa, Ontario, Canada, 1995, pp. 858-862.

    + +

     

    + +

    Carl K. Chang, +Pattanasak Mongkolwat and Bashir Haswarey, Creating a Distributed Environment +Using Object-Oriented Technology'', Proc. of IEEE COMPSAC' 95, Pheonix, +Arizona, August 1995, pp. 262-267.

    + +

     

    + +

    Carl K. Chang, Yong Liu +and Thribhuvana Murthy, Study of Performance Engineering with Emphasis on +Simulation of UICCELL II", Proc. of IASTED International Conference: +MODELLING AND SIMULATION, Pittsburgh, Pennsylvania. April 27-29, 1995, pp. +403-406.

    + +

     

    + +

     

    + +

    SOMA CHAUDHURI, Associate Professor of Computer +Science

    + +

     

    + +

    B.S. 1984, Mathematics, Massachusetts Institute of +Technology, Cambridge

    + +

    B.S. 1984, Computer Science & Engineering, +Massachusetts Institute of Technology, Cambridge

    + +

    M.S. 1987, Computer Science & Engineering, +University of Washington, Seattle

    + +

    Ph.D. 1990, Computer Science & Engineering, +University of Washington, Seattle

    + +

     

    + +

    Major Interests:

    + +

    Theory of Distributed Computing, Parallel Algorithms and Parallel +Complexity.

    + +

     

    + +

    Current Research:

    + +

    Dr. Chaudhuri's research in distributed computing has focused on +understanding the power of asynchronous distributed systems subject to various +kinds of failures. A persistent question has been to determine the problems +that are solvable in the presence of uncertainty due to processor asynchrony +and failures. She used combinatorial techniques to prove that certain problems +are impossible to solve in these systems. The current focus of her research has +shifted to the study of systems that are semi-synchronous, i.e., that have +partial but inexact information about timing. These systems are much more +realistic and deserve further study. +Dr. Chaudhuri is using similar combinatorial techniques with the goal of +obtaining time and space complexity characterizations for problems in +semi-synchronous systems analogous to the fault-resiliency character-ization +obtained for problems in asynchronous systems. +The ultimate objective would be to understand in a formal sense the +advantage that can be gained by considering timing-based models for distributed +computing over asynchronous models, and the disadvantage they represent in +relation to fully synchronous models.

    + +

    Dr. +Chaudhuri has also been recently interested in the area of distributed ad hoc +networks. In particular, it would be useful to develop algorithms that are +specifically suited to solving problems in these networks. These networks are +unpredictable due to frequent link failures when nodes drift apart and link +formations when nodes drift closer to each other. Existing distributed +algorithms that rely on static communication links cannot run in such networks. +Instead, efficient algorithms would have to be designed that adjusts to the +mobility of the network.

    + +

     

    + +

    Representative Publications:

    + +

    "Tight Bounds for "k"-Set Agreement." Chaudhuri, S., +Herlihy, M., Lynch, N., & Tuttle, M. (2000). To appear in Journal of the +ACM.

    + +

     

    + +

    "One-Write Algorithms for Multi-Valued Regular and Atomic +Registers," Chaudhuri, S., Kosa, M., & Welch, J.L. Acta Informatica, +37:161-192, 2000.

    + +

     

    + +

    "Wait-Free Implementations in Message Passing Systems." Chaudhuri, S., Herlihy, M., & Tuttle, M. +Theoretical Computer Science (2000). Theoretical Computer Science, +220(1):211-245, June 1999.

    + +

     

    + +

    "Shared Memory Consistency Conditions for Non-Sequential Execution: +Definitions and Programming Strategies," Chaudhuri, S., Attiya, H., +Friedman, R., & Welch, J.L. SIAM +Journal on Computing, 27(1):65-89, February 1998.

    + +

     

    + +

    "Understanding the Set Consensus Partial order Using the +Borowsky-Gafni Simulation," Chaudhuri, S., & Reiners, P. Proceedings of the Tenth International +Workshop on Distributed Algorithms, 1996. +Lecture notes in Computer Science 1151, Springer-Verlag, pp. 362-379.

    + +

     

    + +

    "Using Adaptive Timeouts to Achieve At-Most-Once Message +Delivery," Chaudhuri, S., Coan, B., & Welch, J. Distributed Computing, +9(3):109-117, September 1995.

    + +

     

    + +

    "Bounds on the Costs of Multi-Valued Register Implementations," +Chaudhuri, S., & Welch, J. SIAM Journal on Computing, 23(2):335-354, April +1994.

    + +

     

    + +

    "Designing Algorithms for Distributed Systems with Partially +Synchronized Clocks," Chaudhuri, S., Gawlick, R., & Lynch, N. +Proceedings of the Twelfth Annual ACM Symposium on Principles of Distributed +Computing, August 1993.

    + +

     

    + +

    "More Choices Allow More Faults: Set Consensus Problems in Totally +Asynchronous Systems," Chaudhuri, S. Information and Computation, +105(1):132-158, July 1993.

    + +

     

    + +

     

    + +

    HUI-HSIEN CHOU, Assistant Professor of Computer +Science & Zoology and Genetics

    + +

     

    + +

    B.S, 1984, Chemical Engineering, Ming-Chih Institute of +Technology, Taipei, Taiwan

    + +

    B.S, 1989, Computer Science, National Taiwan University, +Taipei, Taiwan

    + +

    Ph.D., 1996, Computer Science, University of Maryland at +College Park

    + +

     

    + +

    203 Science II, Iowa State University, Ames, IA 50011;

    + +

    Email: hhchou@iastate.edu

    + +

     

    + +

    Major +Interests:

    + +

    Bioinformatics, computational biology, +cellular automata, programming language design and compiling.

    + +

     

    + +

    Current +Research:

    + +

    Dr. Chou's research centers around two +complementary scientific front-ends: computational biology and artificial life. +In computational biology, he studies how to best analyze the vast amount of +biological data generated because of recent advances in high-throughput +molecular biology research, such as genomics, transcriptomics and +proteomics. These advances allow us to +gather explosively more biological data about species, but then only computers +can efficiently analyze these huge quantity of data. Dr. Chou has designed an +automatic DNA sequence quality assurance program (Lucy) that is in use by many +research centers to turn raw DNA sequences into high quality data for +subsequent genomic data processing. Dr. Chou is currently working on an +integrated approach of biological data analysis that handles sequence, +structure, microarray and pathway data altogether based on specialized coding +methods developed by him.

    + +

    One can view +computational biology as an analytical approach to understanding life. An +alternative, the synthetic approach taken in the artificial life research, aims +at simulating life phenomena within computers. It is an attempt to grasp the +principles of life in an information processing context without touching the +difficult details of implementation such as DNA or proteins. Dr. Chou has been +working on the cellular automata modeling of self-replication processes. +Cellular automata are massively parallel computer-theoretical models which +closely resemble the information restrictions in living cells. As in cells, +where no single molecule is the commander-in-chief, in cellular automata, there +is no centralized control. All global behaviors must be the collaborative +results of each automaton making up the models. Yet, complex and very +interesting behaviors such as information self-replication can be observed with +such models, promoting one to computationally study the principles of life.

    + +

    On more +practical aspects, Dr. Chou is also involved in programming language design and +compiling. He has developed the Trend cellular automata programming language to +facilitate the cellular automata studies mentioned above. He is currently +working on a visual programming tool that can automatically generate working +Perl programs for biologists who may not know how to program in Perl directly.

    + +

     

    + +

    Representative +Publications:

    + +

    Hui-Hsien Chou, Wei Huang and James A. +Reggia. "The Trend Cellular Automata Programming Environment." To by +published by SIMULATION: Transactions of The Society for Modeling and +Simulation International.

    + +

     

    + +

    Hui-Hsien Chou and Michael H. +Holmes. "DNA Sequences Quality +Trimming and Vector Removal." +Bioinformatics, 17(12):1093-1104, Dec. 2001.

    + +

     

    + +

    Eugene W. Myers, et al. "A +Whole-Genome Assembly of Drosophila." Science, 287:2196-2204, March 24, +2000.

    + +

     

    + +

    Hui-Hsien Chou and James A. Reggia. +"Problem Solving During Artificial Selection of Self-Replicating +Loops." Physica, D 115:293-312, 1998.

    + +

     

    + +

    Hui-Hsien Chou and James A. Reggia. +"Emergent of Self-Replicating Structures in a Cellular Automata +Space." Physica, D 100:252-276, +1997.

    + +

     

    + +

    Hui-Hsien Chou, James A. Reggia, Rafael +Navarro-Gonzalez, and Jayoung Wu. "An Extended Cellular Space Method for +Simulating Autocatalytic Oligonucleotides." Computers and Chemistry, +18(1):33-43, 1994.

    + +

     

    + +

    James A. Reggia, Steven L. Armentrout, +Hui-Hsien Chou, and Yun Peng. "Simple Systems that Exhibit Self-Directed +Replication." Science, 259:1282-1288, Feb. 26, 1993.

    + +

     

    + +

     

    + +

    OLIVER EULENSTEIN, Assistant Professor of Computer Science

    + +

     

    + +

    Dr.rer.nat. +1998, Computer Science, University of Bonn

    + +

    Diplom-Informatiker +1991, Computer Science, University of Paderborn (the US-equivalent for +Dr.rer.nat. is Ph.D. and for Diplom-Informatiker is M.S )

    + +

     

    + +

    Web Page: http://www.cs.iastate.edu/~oeulenst

    + +

     

    + +

    Major +Research Interests:

    + +

    Computational +Biology, Combinatorial Optimization in Science and Engineering, and Design and +Analysis of Discrete Algorithms.

    + +

     

    + +

    Current +Research:

    + +

    Introducing +Computational Biology: In July 1995 the first organism, {\Haemo\-philius +influenzae} was entirely sequenced and its 1 830 137 DNA base pairs were +published. Soon after this other organisms were completely sequenced and, most +likely, the human genome will be completely sequenced by the end of this +decade.

    + +

    Given +an organism's sequence information, the biologists task is now to reveal function and interference of these +sequences. As a metaphor, the biologist wants +to understand the function of a complex spacecraft engine only by +looking at its parts.

    + +

    Computational +Biology offers algorithms to support biologists in their effort to retrieve +information out of an organism's enormous set of sequence information. Design +and analysis of these algorithms is based on models that reflect the biologists +needs as best as possible. A model must also allow the design of an algorithm +that actually solves the problem in practice in a reasonable time. Thus, a +basic problem in Computational Biology is to develop good models. Most of the +time biologists and computer scientists collaborate to set up an initial model +and then refine it stepwise according to practical results. Thus, Computational +Biology is an interdisciplinary science where Biology and Computer Science are +intertwined.

    + +

    Current +Research in Computational Biology: Reconstructing the ancestral relations of +biological sequences can give insights into the function of biological +sequences, and thus helps to reveal unknown functions of genes. The ancestral +relations of a set of biological sequences can be represented by a rooted tree, +where any two sequences are related through their least common ancestor.

    + +

    Most +of my current research is in constructing phylogenetic trees, which is a +sub-area of Computational Biology. For convenience I will describe one of my +research topics, phylogenetic super-trees in more detail.

    + +

    Computational +Biology offers a huge set of different methods for phylogenetic tree +construction that are available through program packages like PAUP, McClade and +Component, which are widely used by systematic biologists. Already +reconstructed phylogenetic trees can be found in phylogenetic tree databases +like TreeBase. Some of these databases have grown enormously and now contain +sets of trees that overlap in some of their sequences. My goal is to construct +a super-tree from such a set of overlapping phylogenetic trees. A super-tree +would give a much broader picture of how sequences evolve. Unfortunately, +combining trees into a super-tree is not an easy task. For example one of the +arising problems is that phylogenetic trees have for their shared sequences +often different ancient relationships.\medskip

    + +

    Together +with the biologist Mike Sanderson from the University of California Davis, I +developed a model to construct super-trees. In collaboration with David +Fernandez-Baca and the help of the student Duhong Chen we are designing +algorithms based on this model. In our new computational biology lab (CBL), we +are implementing own ideas and analyze algorithms. We are also refining the +underlying model. Recently Mike Sanderson, the biologist Olaf +Biminda-Edmondson, and I received an NSF grand that will support our research +on super-trees for the coming three years.

    + +

    Other +topics of my current research in Computational Biology are the prediction of gene-duplications +and reconstructing phylogenetic trees from incomplete information. The above +should not led to the impression that my interests are exclusively in +phylogenetic tree construction. In fact I am interested in many algorithmic +problems of biology and actively look for potential interdisciplinary +collaborations.

    + +

     

    + +

    Grants:
    +
    $  398,170,  +funding period 2000-2003, +"Algorithms and Software for Phylogenetic Supertrees"  +(NSF-1053164),
    +O. Eulenstein (co-PI), D. Gusfield (co-PI), M.J. Sanderson (PI).

    + +

     

    + +

    Representative +Publications:

    + +

    D. Chen, L. +Diao, O. Eulenstein, D. Fernndez-Baca, M. J. Sanderson, Flipping: A Supertree Construction Method to appear +in DIMACS Series in Discrete Mathematics and Theoretical Computer Sciences, AMS +(2003).

    + +

     

    + +

    D. Chen, O. +Eulenstein, D. Fernndez-Baca, and M.J. Sanderson; Supertrees by Flipping; +Computing & Combinatorics Conference (COCOON) 2002.
    +
    +D. Chen, L. Diao, O. Eulenstein, D. Fernndez-Baca, and M.J. Sanderson; +Flipping: A Supertree Construction Method; Ed. F.B.M. Morris et al., +DIMACS Series in Discrete Mathematics and Theoretical Computer Sciences, AMS +(2002).
    +
    +J. Schonfeld, O. Eulenstein, K. +VanderVelden, and G.J.P. Naylor; Investigating Evolutionary Lines of Least +Resistance Using the Inverse Protein-Folding Problem; Pacific Symposium on +Biocomputing (PSB) 2002.

    + +

     

    + +

    Oliver +Eulenstein and Martin Vingron, "On the equivalence of two tree mapping +measures", Discrete Applied Mathematics, 88:103-128, 1998.

    + +

     

    + +

    Oliver +Eulenstein, Boris Mirkin and Martin Vingron. "Duplication-Based Measures +of Difference Between Gene- and Species Trees", Journal of Computational +Biology, 5:135-148, 1998.

    + +

     

    + +

    Yan P. Yuan, +Oliver Eulenstein, Martin Vingron and Per Bork, "Towards detection of orthologues in sequence +databases", Bioinformatics, 14(3):285-289, 1998.

    + +

     

    + +

    Oliver +Eulenstein, Boris Mirkin and Martin Vingron, "Comparison of Annotation +Duplication, Tree Mapping, and Copying as Methods to Compare Gene Trees with +Species Trees, DIMACS Series in Discrete Mathematics and Theoretical Computer +Sciences AMS, 1997.

    + +

     

    + +

     

    + +

    DAVID FERNANDEZ-BACA, Professor +of Computer Science

    + +

     

    + +

    B.S. 1980, Electrical & Computer +Engineering, National University of Mexico, Mexico City

    + +

    M.S. +1983, Electrical & Computer Engineering, University of California, Davis

    + +

    Ph.D. +1986, Computer Science, University of California, Davis

    + +

     

    + +

    Major Interests:

    + +

    Design and analysis of algorithms, +combinatorial optimization, graph algorithms, computational biology.

    + +

     

    + +

    Current Research:

    + +

    Dr. Fernandez-Baca's research is in the +design and analysis of combinatorial algorithms. His main area is parametric optimization, where his goal is to +design efficient algorithms to analyze the sensitivity of the optimum solution +to changes in the input data. Dr. Fernandez-Baca also studies combinatorial +problems arising in sequence comparison and construction of evolutionary trees +for sets of species.

    + +

     

    + +

    Representative +Publications:

    + +

    D. Chen, L. +Diao, O. Eulenstein, D. Fernndez-Baca, and M. Sanderson. Flipping: A supertree +construction method. To appear in the Bioconsensus volume of the DIMACS +Series in Discrete Mathematics and Theoretical Computer Science, F. +McMorris et al. (eds), American Mathematical Society, 2002.

    + +

     

    + +

    D. +Fernndez-Baca, T. Sepplinen, and G. Slutzki. Bounds for parametric sequence +comparison. Discrete Applied Mathematics, 118:181-198, 2002.

    + +

     

    + +

    D. Chen, O. +Eulenstein, D. Fernndez-Baca, and M. Sanderson. Supertrees by flipping. To +appear in Proceedings of COCOON 2002, Springer-Verlag LNCS.

    + +

     

    + +

    F. Sun, D. +Fernndez-Baca, and W. Yu. Inverse parametric sequence alignment. To appear in Proceedings +of COCOON 2002, Springer-Verlag LNCS.

    + +

     

    + +

    D. +Fernndez-Baca. Multiparameter matroidal knapsack problems. To appear in Theoretical +Computer Science, 2002.

    + +

     

    + +

    D. +Fernndez-Baca. The perfect phylogeny problem. In Steiner Trees in Industry, +X. Cheng and D.-Z. Du (eds.), pp. 203-234, Kluwer, 2001.

    + +

     

    + +

    D. +Fernndez-Baca. On nonlinear parametric search. Algorithmica, 30:1-11, +2001.

    + +

     

    + +

    D. +Fernndez-Baca, T. Sepplinen, and G. Slutzki. Parametric multiple sequence +alignment and phylogeny construction. Proc. Combinatorial Pattern Matching +2000, Springer-Verlag LNCS, Vol. 1848, pp. 69--83.

    + +

    D. +Fernndez-Baca and J. Lagergren. On the approximability of the Steiner tree +problem in phylogeny. Discrete Applied Mathematics 88:129-145, 1998.

    + +

     

    + +

    D. +Fernndez-Baca and G. Slutzki. Linear-time algorithms for parametric minimum +spanning tree problems on planar graphs. Theoretical Computer Science, +181:57-74, 1997 .

    + +

     

    + +

    D. +Fernndez-Baca and G. Slutzki. Optimal parametric search on graphs of bounded +tree-width. Journal of Algorithms 22:212-240, 1997.

    + +

     

    + +

    D. +Fernndez-Baca and J. Lagergren. A polynomial-time algorithm for near-perfect +phylogeny. In proceedings of 23rd International Conference on Automata, +Languages, and Programming, pp. 670-680, Springer Verlag Lecture Notes in +Computer Science, 1996.

    + +

     

    + +

     

    + +

    SHASHI K. +GADIA, Associate Professor of +Computer Science

    + +

     

    + +

    B.S. (Hons), 1969, Mathematics, Birla Inst. of Tech. & +Science

    + +

    M.Sc. 1970, Mathematics, Birla Inst. of Tech. & Science

    + +

    Ph.D. 1977, Mathematics, University of Illinois

    + +

    M.S. 1980, Computer Science, Ohio State University

    + +

     

    + +

    Major Interests:

    + +

    Temporal, spatial, belief, security, +statistical and incomplete data; database models, type hierarchy, languages, +user interfaces, optimization, implementation and access methods; pattern +matching in spatio-temporal data.

    + +

     

    + +

    Current Research:

    + +

    Models, query languages, incomplete +information, implementation, index structures, and query optimization for +dimensional (temporal, spatial, and belief), genetic, and other forms of data, +in relational, object-oriented, and semistructured (XML) database paradigms. +The goal of the research in dimensional data is to unify different forms of +dimensional data seamlessly in a scalable, efficient, easy to use, and coherent +framework. An object-oriented model and query language for dimensional data +that is consistent with the ODMG (Object Data Management Group) standard is of +interest. Database models for semistructured data are rapidly advancing under +the banner of XML (Extensible Markup Language). The February 16, 2001 +announcements of the XMLs Query Group of the W3 (World Wide Web) Consortium represent a major +milestone that extends the established classic database style wisdom of +powerful and declarative algebraic querying to XML by treating XML documents as +databases. This will advance the frontiers of databases in revolutionary ways +to applications such as e-business, software engineering, and genetic data +where representation and/or exchange of heterogeneous and evolutionary +information is required.

    + +

     

    + +

    Representative Publications:

    + +

    A linguistic framework for multidimensional +data, Elisa Bertino, Tsz S. Cheng, Shashi K Gadia, and Giovanna +Guerrini. Submitted for publication, February, 2001.

    + +

     

    + +

    Querying +multiple temporal granularity data. Isabella Merlo, Elisa +Bertino, Elena Ferrari, Shashi K Gadia, and Giovanna Guerrini. Proceedings Seventh International Workshop +on Temporal Representation and Reasoning of TIME-2000, Nova Scotia, Canada, +July 7-9, 2000

    + +

    + +

    Algebraic identities and query optimization in the parametric +model for relational temporal databases, IEEE Transactions on Knowledge and +Data Engineering. Vol 10(5), pp 793-807, 1998.

    + +

    + +

    Applicability of Temporal Data Models to Query Multilevel +Security Databases: A Case Study, Shashi K. Gadia. Research and Practice; +Etzion, Jajodia, and Sripada, eds.; Lecture Notes in Computer Science, 1399: +238-256, Springer Verlag, Berlin, 1998.

    + +

     

    + +

    Relational Database Systems With Zero Information-Loss, +Gadia, S., & Bhargava, G. (1993). +IEEE Transactions on Knowledge and Data Engineering, 5:76-87.

    + +

     

    + +

    "Incomplete Information in Relational Temporal +Databases, Gadia, S., Nair, S., & Poon, Y. (1992). Proceedings of the 18th International +Conference on Very Large Databases, pp. 395-406.

    + +

     

    + +

    "A Generalized Model for a Relational Temporal +Database, Gadia, S., & Yeung, C. +(1988). ACM SIGMOD Conference on +Management of Data, pp. 251-259.

    + +

     

    + +

    A Homogeneous Relational Model and Query Languages for +Temporal Databases, Gadia, S. (1988). +ACM Transactions on Database Systems, 14:418-448.

    + +

     

    + +

    A Query Language for a Homogeneous Temporal Database, +Gadia, S., & Vaishnav, J. (1985). +Proc. Fourth Annual ACM SIGACT-SIGMOD Symposium on Principles of Database +Systems, pp 51-56.

    + +

     

    + +

    The concept of an error in a database: an application of +temporal databases, Gautam Bhargava and Shashi K. Gadia. Appeared in +Proceedings of INSDOC COMAD90 International Conference on Management of Data, +December 1990.

    + +

     

    + +

    VASANT HONAVAR, Professor of Computer Science

    + +

     

    + +

    B.E. 1982, +Electronics Engineering, Bangalore University, India

    + +

    M.S. 1984, +Electrical and Computer Engineering, Drexel University

    + +

    M.S. 1989, +Computer Science, University of Wisconsin at Madison

    + +

    Ph.D. 1990, +Computer Science and Cognitive Science, University of Wisconsin at Madison

    + +

     

    + +

    www: http://www.cs.iastate.edu/~honavar/

    + +

     

    + +

    Current +Affiliations:

    + +

    Professor, Department of Computer Science

    + +

    Director, Artificial Intelligence +Research Laboratory

    + +

    Editor-in-Chief, Cognitive Systems +Research

    + +

    Project Director, Bioinformatics, +Computational Molecular Biology Training Group

    + +

    Associate Chair, Bioinformatics and +Computational Biology Graduate Program

    + +

    Faculty Member, Bioinformatics and +Computational Biology Graduate Program

    + +

    Faculty Member, Laurence H. Baker Center +for Bioinformatics and Biological Statistics

    + +

    Faculty Member, Virtual Reality +Applications Center

    + +

    Faculty Member, Information Security +Graduate Program

    + +

    Faculty Member, Neuroscience Graduate +Program

    + +

     

    + +

    Research +and Teaching Interests:

    + +

    Artificial Intelligence (Autonomous +Agents; Automata Induction; Computational Learning Theory; Computational +Organizational Theory; Data Mining, Knowledge Discovery and Visualization; +Distributed Knowledge Networks; Cumulative Distributed Learning; Incremental +Learning; Intelligent Agents and Multi-Agent Systems; Multi-Agent Coordination, +Communication, and Negotiation; Knowledge Representation and Inference; +Probabilistic Models and Bayesian Inference; Machine Learning; Neural +Networks); Bioinformatics (Distributed Information Networks for for Data +Integration, Information Extraction, Data Mining, and Knowledge Discovery; +Knowledge Representation and Automated Inference); Computational Molecular +Biology (Genetic Networks; Computational Characterization of Protein +Sequence-Structure-Function Relationships and and Protein-Protein Interactions; +Computational Genomics; Metabolic Pathways; Gene Expression Analysis; +Computational Neuroscience; Evolutionary, Cellular, and Neural Computation); +Distributed Information Networks (Distributed Knowledge Networks; Distributed +Databases, Mediators, and Data Warehouses; Intelligent Agents, Mobile Agents, +and Multi-Agent Systems); Applied Artificial Intelligence.

    + +

    Examples of +current projects in Honavar's laboratory on Distributed Intelligent Information +Systems focuses on the design, analysis, and implementation of algorithms and +software for information extraction, integration, organization, and +visualization; and learning from from heterogeneous, distributed, dynamic, and +autonomous data, information, and knowledge sources. In particular, we are +developing ontology-driven information integration that enable analysis of data +from multiple perspectives, algorithms with provable performance guarantees for +distributed, incremental, and cumulative learning tasks; algorithms for +learning from data and knowledge (including alternative ontologies), algorithms +for learning from alternately structured (e.g. relational, graph, etc.) data; +and algorithms for multi-agent learning. +This work is driven by large-scale applications of machine learning and +automated inference for scientific discovery in Computational Molecular Biology +and other data-rich domains.

    + +

    In related +work, topics in mobile agent infrastructures, inter-agent negotiation +protocols, distributed problem solving, coordination and control structures for +multi-agent systems, and agent-oriented software engineering are being +investigated.

    + +

    Current research in Computational Molecular +Biology emphasizes machine learning approaches to gene discovery, +characterization of protein sequence-structure-function relationships, +protein-protein interactions, discovery of genetic networks from expression +data, and information theoretic, and grammatical analysis of DNA and protein +sequences, and computational geometric analysis of protein structures.

    + +

    Honavar's +research is supported in part by grants from the National Science Foundation, +Department of Defense, John Deere Foundation, Carver Foundation, Pioneer +Hi-Bred, Inc., Department of Energy, and the ISU Graduate College.

    + +

    + +

    Recent +Representative Publications:

    + +

    Andorf, C., Dobbs, D., and Honavar, V. +(2002). Discovering Protein Function Classification Rules from Reduced Alphabet +Representations of Protein Sequences. In: Proceedings of the Conference on +Computational Biology and Genome

    + +

    Informatics (part of the 2002 Joint +Conference on Information Sciences). Durham, North Carolina.

    + +

     

    + +

    Caragea, D., Silvescu, A., and Honavar, +V. (2002). Invited Chapter. Multi-Agent Decision Tree Learning from Distributed +Autonomous Data Sources. In: Intelligent Agent Software Engineering. +Plekhanova, V. and Wermter, S. (ed.). Idea Group Publisher. In press.

    + +

     

    + +

    Honavar, V., Andorf, C., Caragea, D., +Dobbs, D., Reinoso-Castillo, J., Silvescu, A. (2002). Invited Chapter. +Algorithmic and Systems Solutions for Computer Assisted Knowledge Acquisition +in Bioinformatics and Computational Biology. In: Computational Biology and +Genome Informatics. Wu, C., Wang,P., and Wang, J. (Ed.) World Scientific. In +press.

    + +

     

    + +

    Wang, X., Schroeder, D., Dobbs, D., and +Honavar, V. (2002). Data-Driven Discovery of Protein Function Classifiers: +Decision Trees Based on MEME Motifs Outperform Those Based on PROSITE Patterns +and Profiles on Peptidase Families. In Proceedings of the Conference on +Computational Biology and Genome Informatics (part of the 2002 Joint Conference +on Information Sciences).

    + +

     

    + +

    Balakrishnan, K. and Honavar, V. (2001). +Evolving Neurocontrollers and Sensors for Artificial Agents. In: Advances in +Evolutionary Synthesis of Intelligent Agents. Patel, M., Honavar, V. and +Balakrishnan, K. (Ed). Cambridge, MA: MIT Press. pp. 109-152.

    + +

     

    + +

    Caragea, D., Silvescu, A., and Honavar, +V. (2001). Invited Chapter. Analysis +and Synthesis of Agents that Learn from Distributed, Dynamic Data Sources. +Emergent Neural Computational Architectures. Wermter, S., Austin, J., and +Willshaw, D. Springer-Verlag.

    + +

     

    + +

    Caragea, D., Cook, D., and Honavar, V. +(2001). Gaining Insights into Support Vector Machine Classifiers Using +Projection-Based Tour Methods. In: Proceedings of the Conference on Knowledge +Discovery and Data Mining (KDD-01). AAAI Press.

    + +

     

    + +

    Helmer, G., Wong, J., Slagell, M., +Honavar, V., Miller, L. and Lutz, R. (2001). A Software Fault Tree Approach to +Requirements Analysis of an Intrusion Detection System. In: Proceedings of the +Symposium on Requirements Engineering for Information Security, Indianapolis, +IN, USA.

    + +

     

    + +

    Mikler, A., Honavar, V. and Wong, J. +(2001). Autonomous Agents for Coordinated Distributed Parameterized Heuristic +Routing in Large Dynamic Communication Networks. Journal of Systems and +Software. 56:231-246.

    + +

     

    + +

    Parekh, R. and Honavar, V. (2001). DFA +Learning from Simple Examples. Machine Learning. 44:9-35.

    + +

     

    + +

    Polikar, R., Udpa, L., Udpa, S., and +Honavar, V. (2001). Learn++: An Incremental Learning Algorithm for Multi-Layer +Perceptron Networks. IEEE Transactions on Systems, Man, and Cybernetics. +31(4):497-508.

    + +

     

    + +

     

    + +

    XIAOQIU HUANG, Associate Professor of Computer Science

    + +

     

    + +

    B.S. 1982, Computer Science, Changsha +Institute of Technology

    + +

    M.S. 1989, Computer Science, Pennsylvania +State University

    + +

    Ph.D. 1990, Computer Science, +Pennsylvania State University

    + +

     

    + +

    Major Research +Interests:

    + +

    Computational biology, parallel and +distributed applications.

    + +

     

    + +

    Current Research:

    + +

    Dr. Huang is interested in algorithms and +software for solving computational problems in genome sequencing and +analysis. He has developed a number of +computer programs for analysis of DNA and protein sequences. Dr. Huang's programs have been included in a +number of academic and commercial packages. Most of his programs can be used on +WWW at http://bioinformatics.iastate.edu/aat/sas.html.

    + +

     

    + +

    Dr. Huang is currently working on a DNA +sequence assembly program for a whole-genome data set of 30 million sequences. +The sequence assembly program is used to assemble short DNA sequences into long +sequences in shotgun DNA sequencing projects. He is also working on a computer +program for comparing all the DNA sequences of the human genome with those of the mouse genome. The goal of this +project is to develop a computer program that quickly computes

    + +

    biologically interesting similarities +between the two genomes. In the future, Dr. Huang will continue to work on +computational programs in genome sequencing and analysis.

    + +

     

    + +

    Recent Publications:

    + + +

    Huang, X., Wang, J., Aluru, S., Yang, S.-P. and Hillier, L. (2003). +PCAP: A Whole-Genome Assembly Program, Genome Research, 13: 2164-2170. +

    + +

     

    + +

    Huang, X. and Chao, K.-M. (2003). +A Generalized Global Alignment Algorithm, Bioinformatics, 19: 228-233. +

    + +

     

    + +

    Huang, X, and Madan, A. (1999). CAP3: A DNA Sequence Assembly Program, +Genome Research, 9: 868-877.

    + +

     

    + +

    Huang, X, Adams, M.D., Zhou, H., and +Kerlavage, A.R. (1997). A Tool for +Analyzing and Annotating Genomic Sequences, Genomics, 46(1):37-45.

    + +

     

    + +

    Huang, X., and Zhang, J. (1996). Methods for Comparing a DNA Sequence with a +Protein Sequence, Computer Applications in the Biosciences, 12(6):497-506.

    + +

     

    + +

    Huang, X. (1996). Fast Comparison of a +DNA Sequence with a Protein Sequence Database, Microbial & Comparative +Genomics, 1(4):281-291.

    + +

     

    + +
    +
    + +

    YAN-BIN JIA, Assistant +Professor of Computer Science

    + +

     

    + +

    B.S. 1988, Computer Science, University of Science and +Technology of China

    + +

    M.S. 1993, Robotics (and Computer Science), Carnegie +Mellon University

    + +

    Ph.D. 1997, Robotics (and Computer Science), Carnegie +Mellon University

    + +

     

    + +

    Major Research +Interests:

    + +

    Robotics, shape localization, reconstruction, +and recognition, computational geometry, geometric modeling, curve computation, +robot sensing, dexterous manipulation and control, hacking robot interfaces, +optimization, nonlinear

    + +

    control and observation, kinematics and +dynamics of manipulation.

    + +

    Internet: jia@cs.iastate.edu

    + +

     

    + +

    Current Research:

    + +

    "The hand is the cutting edge of the +mind," and "The world can only be grasped by action, not by +contemplation," says Bronowski in his book "The Ascent of +Man". Dr. Jia's main research +objective is to make the robot execute real world tasks intelligently and +skillfully.

    + +

    His +investigation into robot dexterity has focused on seeking a coordinated +understanding of computational and control issues in manipulation tasks. One +objective of this study is dynamic retrieval of geometric information such +as shape and pose, and of mechanical +information such as motion and force. +Another objective is careful engineering of the above information to +make the robot exhibit skills during its execution of physical tasks. Through +efforts balanced between theoretical inquiry and experimental demonstration, +Dr. Jia hopes to gain in-depth knowledge about action and intelligence as they +interact with each other.

    + +

    For over two +years Dr. Jia has been studying how to program a robotic hand to localize and +recognize an object of curved shape and to execute basic operations as well as +dextrous maneuvers. This investigation +makes primary use of one source of information which is ubiquitous in the +physical world ---{\it contact} between two or more bodies. He hopes to understand basic computational +principles of touch sensing in the context of parts localization, model-based +recognition, and shape reconstruction.

    + +

    The human +learns skills through practice, so should the robot. Dr. Jia is also interested in applying learning techniques to +tackle tasks that would be computationally expensive or intractable otherwise. +He would like to program the robot so that it will be able to give performances +that approach the human level someday.

    + +

     

    + +

    Representative +Publications:

    + +

    "Curvature-Based Computation of +Antipodal Grasps", Yan-Bin Jia. Accepted by the IEEE International +Conference on Robotics and Automation, Washington, D.C., May 11-15, 2002.

    + +

     

    + +

    "Geometry and Computation of +Antipodal Points on Plane Curves", Yan-Bin Jia. submitted to Computational +Geometry: Theory and Applications. +Technical Report ISU-CS-01-04, CS Department, Iowa State University, +Ames, IA, 2001.

    + +

     

    + +

    "Localization on Curved Objects +Using Tactile Information", Yan-Bin Jia. In Proceedings of the IEEE/RSJ +International Conference on Intelligent Robots and Systems, pp. 701-706, Maui, +HI, Oct 29-Nov 3, 2001.

    + +

     

    + +

    "Grasping Curved Objects through +Rolling," Yan-Bin Jia. In Proceedings of the IEEE International Conference +on Robotics and Automation, pp. 377-382, San Francisco, CA, April 2000.

    + +

     

    + +

    "Pose and Motion from Contact," +Yan-Bin Jia and Michael Erdmann. International Journal of Robotics Research, +18(5):466-490, 1999.

    + +

     

    + +

    "Local Observability of +Rolling," Yan-Bin Jia and Michael Erdmann. In Robotics: The Algorithmic +Perspective, P.K. Agarwal et al. (eds.), pp. 251-263, A. K. Peters, Boston, +1998. Also Proc. 3rd Int'l Workshop on the Algorithmic Foundations of Robotics, +Houston, TX, March 1998.

    + +

     

    + +

    "Geometric Sensing of Known Planar +Shapes," Yan-Bin Jia and Michael Erdmann. International Journal of +Robotics Research, 15(4):365-392, 1996.

    + +

     

    + +

    "The Complexity of Sensing by Point +Sampling," Yan-Bin Jia and Michael Erdmann. In Algorithmic Foundations of +Robotics, Ken Goldberg et al. (eds.), pp. 283-300, A. K. Peters, Boston, 1995. +Also Proc. 1st Int'l Workshop on the Algorithmic Foundations of Robotics, San +Francisco, CA, February 1994.

    + +

     

    + +

     

    + +

    GARY T. LEAVENS, Professor of Computer Science
    +

    + +

    B.S. +1978, Computer & Communication Sciences, The University of Michigan

    + +

    M.S. +1980, Computer Science, The University of Southern California

    + +

    Ph.D. +1989, Computer Science, Massachusetts Institute of Technology

    + +

     

    + +

    Major Interests:

    + +

    Programming and specification language design +and semantics, formal methods (program specification and verification), type +theory, object-oriented programming languages, aspect-oriented programming +languages, component-based systems, +information assurance, functional programming, distributed programming +languages.

    + +

     

    + +

    Current Research:

    + +

    The long term goal of Dr. Leavens's research is +to understand better how to solve programming problems: how to specify such +problems, methods for thinking about such problems, notations for expressing +solutions, ways to check that the solutions are correct, and tools for +automating and assisting with these processes. In pursuing this goal, he has +worked in two main areas: formal methods and programming languages.

    + +

     

    + +

    Formal Methods

    + +

    Dr. Leavens's work in formal methods has been +focused on ways to specify and verify object-oriented (OO) software +components. The specification work +involves the design and formal description of behavioral interface +specification languages (BISLs). BISLs +record information about detailed design: the interfaces and functional +behavior of program modules. Dr. +Leavens's group has designed a BISL for Smalltalk, called Larch/Smalltalk, a +BISL for C++, called

    + +

    Larch/C++, and, a BISL for Java called JML (see +www.jmlspecs.org). Work on these BISLs focuses on the problem of how

    + +

    to make them expressive enough for documenting +existing code; this is measured using both theoretical analysis and case +studies. The group has made some +progress towards solving this problem; for example, work reported at OOPSLA +2000 aims to explain needs to be specified to deriving a subclass without +seeing the source code for a superclass. +However, there is a lot of information that cannot (yet) be recorded, +such as performance constraints. The +current work on JML has been funded by the National Science Foundation (NSF), +and tries to address some of these issues, as well as issues of practicality +and how to deal with multimethods (see below). Early work on JML was done +jointly with Professor Al Baker, and Clyde Ruby was and is a major contributor. Yoonsik Cheon, designed Larch/Smalltalk and +is also contributing to the design of JML. Dr. Leavens has also been working +with Baker and a former Ph.D. student, Tim Wahls, on executing such +specifications.

    + +

    A long term interest for Dr. Leavens, in the area of +formal methods for software components, is behavioral subtyping. Behavioral +subtyping allows one to reason about OO programs that use message passing. To +explain this, consider that the message passing mechanism of OO languages, such +as C++ and Java, allows one to easily extend programs by adding new types. This works best if objects of the new types +behave like the objects of the old types; the old types are supertypes of the +new types, which are called subtypes. How should one reason about programs that +use subtyping and message passing? A +reasoning method, formalized by specification and verification techniques, +should be "modular" in the sense that when subtypes are added to a +program, unchanged modules do not have to be respecified or reverified. Modular +reasoning is guaranteed by the technique of supertype abstraction, which relies +on behavioral subtyping. To use supertype +abstraction, one specifies and verifies code in terms of the static types of +expressions written in a program (as usual), uses a type checker to ensure that +the static types are supertypes of the run-time types, and then must prove that +subtypes obey the specifications of their supertypes. This last condition is behavioral subtyping.

    + +

    Krishna Kishore Dhara, a +former Ph.D. student supervised by Leavens, has extended the formal theory of +behavioral subtyping to types whose instances have time-varying state. Professor Don Pigozzi (of the Mathematics +Department at ISU) and Leavens have found an exact algebraic characterization +of behavioral subtyping for immutable types. +They are now working on effective techniques for proving behavioral +subtyping. This joint research has been funded by the NSF.

    + +

    The potential impact of the +work in formal methods is possibly great; it might lead to the engineering of +software, instead of hacking. It also seems necessary for high quality software +components and reuse. But more realistically, Leavens views the research as +trying to formally understand what one needs to think about when documenting +and reasoning about a program or program component. This can be of great value +for teaching and for the construction of tools, even if people do not use the +formalism directly or on a daily basis.

    + +

     

    + +

    Programming Language Design and Semantics

    + +

    The other main aspect of Dr. Leavens's work has +been on the design and semantics of object-oriented languages with generic +functions. Such languages are known as +multimethod programming languages, because method calls can dispatch a message +send on all arguments, unlike a single-dispatching OO language, such as +Smalltalk, C++, or Java. Multimethod languages are interesting because they can +more easily express solutions to certain problems in OO programming (binary

    + +

    methods).

    + +

    Leavens's work on multimethod languages is joint +with Ph.D. student Curtis Clifton, and has been done in collaboration with and +with Craig Chambers of the University of Washington, and Chambers's student +Todd D. Millstein. Former master's +students Jianbing Chen and Sevtap Karakoy also have contributed to this +work. The work focuses on the semantics +and type systems for variants of the Cecil and Java languages. To date they +have published papers about an algorithm for type checking such languages with +very expressive features (orthogonal inheritance and subtyping), about how to +add multimethods to existing languages, and a way to add multimethods to Java. +One big problem is to get a language with both a (sound) static type system and +a sensible module system; however, this problem has been solved by Millstein +and Chambers (as reported in ECOOP '99). +We have applied these ideas to the design of an extension to the Java +programming language called MultiJava (see www.multijava.org). A long term goal +is a language that allows one to program abstract data types in two styles, one +of which is easier to extend (as in standard OO languages) and the other of +which is easier to reason about. Programmers can use both styles in the same +program. Another goal is to extend the kind of modular programming and +reasoning techniques that apply to MultiJava to aspect-oriented programs. The potential impact of these research +directions might be large if this leads to more flexible, modular, and reusable +coding practices. A recent NSF grant has funded research on formal methods for +such languages.

    + +

     

    + +

    See http://www.cs.iastate.edu/~leavens/ for +details.

    + +

     

    + +

    Representative Publications

    + +

    Clyde Ruby and Gary T. Leavens. Safely Creating +Correct Subclasses without Seeing Superclass Code. In OOPSLA 2000 Proceedings, +pp. 208-228 (Volume 35, number 10 of ACM SIGPLAN Notices, October 2000).

    + +

     

    + +

    Curtis Clifton, Gary T. Leavens, Craig +Chambers, and Todd Millstein. MultiJava: Modular Open Classes and Symmetric +Multiple Dispatch for Java. In OOPSLA 2000 Proceedings, pp. 130-145 (Volume 35, +number 10 of ACM

    + +

    SIGPLAN Notices, October 2000).

    + +

     

    + +

    Gary T. Leavens and Don Pigozzi. A complete +algebraic characterization of behavioral subtyping. Acta Informatica, +36:617-663, 2000.

    + +

     

    + +

    Gary T. Leavens and Krishna Kishore Dhara. +Concepts of Behavioral Subtyping and a Sketch of their Extension to +Component-Based Systems. In Gary T. Leavens and Murali Sitaraman (editors), +Foundations of Component-Based Systems, Cambridge University Press, 2000. +Chapter 6, pages 113-135.

    + +

     

    + +

    Gary T. Leavens and Todd D. Millstein. Multiple Dispatch as Dispatch on +Tuples. In OOPSLA '98 Conference +Proceedings, pages 374-387, Volume 33, number 10 of ACM SIGPLAN Notices, +October 1998.

    + +

     

    + +

    Gary T. Leavens and Jeannette M. Wing. Protective Interface Specifications. Formal Aspects of Computing, 10:59-75, 1998.

    + +

     

    + +

    Gary T. Leavens. An Overview of Larch/C++: +Behavioral Specifications for C++ Modules. In Haim Kilov and William Harvey +(editors), Specification of Behavioral Semantics in Object-Oriented Information +Modeling (Kluwer Academic Publishers, 1996), Chapter 8, pages 121-142.

    + +

     

    + +

    Krishna Kishore Dhara and Gary T. Leavens. +Forcing Behavioral Subtyping Through Specification Inheritance. In Proceedings +18th International Conference on Software Engineering, Berlin, +Germany, pages 258-267. IEEE, 1996.

    + +

     

    + +

    Gary T. Leavens and William E. Weihl. Specification +and Verification of Object-Oriented Programs Using Supertype Abstraction. Acta +Informatica, 32(8):705-778, November 1995.

    + +

     

    + +

    Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, +The Hopkins Objects Group, Gary T. Leavens, and Benjamin Pierce. On Binary +Methods. Theory and Practice of Object Systems 1(3):221-242, 1995.

    + +

     

    + +

    Craig Chambers and Gary T. Leavens. +Typechecking and Modules for Multimethods. ACM Transactions on Programming +Languages and Systems, 17(6):805-843, November 1995.

    + +

     

    + +

    Yoonsik Cheon and Gary T. Leavens. The +Larch/Smalltalk Interface Specification Language. ACM Transactions on Software +Engineering and Methodology, 3(3):221-253, July 1994.

    + +

     

    + +

    Gary T. Leavens, Modular Specification and +Verification of Object-Oriented Programs. IEEE Software, 8(4):72-80, July, +1991.

    + +

     

    + +

    Gary T. Leavens and William E. Weihl. Reasoning +about Object-Oriented Programs that use Subtypes (extended abstract). In OOPSLA +ECOOP '90 Proceedings, pages 212-223 (Volume 25, number 10 of ACM SIGPLAN

    + +

    Notices, October 1990).

    + +

     

    + +

     

    + +

    MARKUS LUMPE, Assistant +Professor of Computer Science

    + +

     

    + +

    M.S. 1990, Computer Science, +Dresden University of Technology

    + +

    PhD. 1999, Computer Science, +Institute of Computer Science and Applied Mathematics, University of Berne

    + +

     

    + +

    Major Research Interests:

    + +

    Design +and implementation of object- and component-oriented languages, Type theory for +software composition, Formal semantics, Concurrent programming, Object-oriented +compiler construction techniques.

    + +

    Current Research:

    + +

    My +major research interests are in programming languages, modern compiler +construction, and component technology. Within these areas, I am focusing on +foundations like type systems, behavioral equivalence theories, distribution +and localization of components and processes. In addition, I am very much +interested in applications aspects like the modeling of compositional +abstractions, component repositories, and the specification of functional and +non-functional properties of components. My primary long-term goal is the +development of a robust formal model to specify applications as composition of +distributed components.

    + +

    I +have developed the pL-calculus, a variant of the p-calculus, +which is used as the formal basis for Piccola, a small compo-sition language. +The pL-calculus is a process calculus, in which +agents communicate by passing extensible, labeled records, or so-called +forms'', rather than tuples. This approach makes it much easier to model +compositional abstractions than it is possible in the plain p-calculus, +since the contents of communication are now independent of position; agents are +more naturally polymorphic since communication forms can be easily extended, +and environmental arguments can be passed implicitly.

    + +

    The +next stage will be a higher-order system, which provides also means for +communicating agents agents will become first-class entities. Moreover, the +next stage will employ the unifying concept that everything is a form, that +is, every abstraction is itself a form. Therefore, the distinction between +agents, channels, and forms will disappear, which will hopefully result in a +unique language paradigm for software composition.

    + +

    Additionally, +I have an active interest in the development of modern compiler techniques and +programming languages. My interests focus on (i) the definition of an object- +or component-oriented framework for defining any kind of language processors, +(ii) the definition of framework to map any source language to the Java virtual +machine, and (iii) the definition of new higher-level programming abstractions +and idioms.

    + +

     

    + +

    Representative Publications:

    + +

    Markus Lumpe, Jean-Guy Schneider +and Oscar Nierstrasz, Using Metaobjects to Model Concurrent Objects with +PICT, Proceedings of Languages et Modles Objects, Leysin, October 1996, pp. +1-12.

    + +

     

    + +

    Jean-Guy Schneider and Markus +Lumpe, Synchronizing Concurrent Objects in the Pi-Calculus, Proceedings of +Langages et Modles Objets '97, Roland Ducournau and Serge Garlatti (Eds.), +Hermes, Roscoff, October 1997, pp. 61-76.

    + +

     

    + +

    Markus Lumpe, Jean-Guy +Schneider, Oscar Nierstrasz and Franz Achermann, Towards a formal composition +language, Proceedings of ESEC '97 Workshop on Foundations of Component-Based +Systems, Gary T. Leavens and Murali Sitaraman (Eds.), Zurich, September 1997, +pp. 178-187.

    + +

     

    + +

    Markus Lumpe, A Pi-Calculus +Based Approach for Software Composition, Ph.D. thesis, University of Bern, +Institute of Computer Science and Applied Mathematics, January 1999.

    + +

     

    + +

    Franz Achermann, Markus Lumpe, +Jean-Guy Schneider and Oscar Nierstrasz, Piccola - a Small Composition +Language, Formal Methods for Distributed Processing, an Object Oriented +Approach, Howard Bowman and John Derrick. (Eds.), Cambridge University Press, +2000.

    + +

     

    + +

    Markus Lumpe, Franz Achermann +and Oscar Nierstrasz, A Formal Language for Composition, Foundations of +Component Based System, Gary Leavens and Murali Sitaraman (Eds.), Cambridge +University Press, 2000.

    + +

     

    + +

    Jean-Guy Schneider and Markus +Lumpe, A Metamodel for Concurrent, Object-based Programming, Proceedings of +Langages et Modles Objets '2000, Hermes, Mont Saint-Hilaire, Qubec, January 2000.

    + +

     

    + +

    Markus Lumpe and Jean-Guy +Schneider, Forms - A Flexible Notation for Software Composition, Proceedings +of Third Australian Workshop on Software and System Architectures, John Grundy +and Jun Han (Eds.), Sydney, November 2000, pp. 24-36.

    + +

     

    + +

     

    + +

     

    + +

    JACK H. LUTZ, +Professor of Computer +Science

    + +

     

    + +

    B.G.S. 1976, Mathematics, University of +Kansas

    + +

    M.A. 1979, Mathematics, University of +Kansas

    + +

    M.S. 1981, Computer Science, University +of Kansas

    + +

    Ph.D. 1987, Mathematics, California +Institute of Technology

    + +

     

    + +

    Major Interests:

    + +

    Computational Complexity, including structure of complexity classes, +resource-bounded measure and dimension, and probabilistic complexity. Algorithmic Information and Randomness, +including computational randomness, constructive dimension, Kolmogorov +complexity, prediction, computational depth, and games.

    + +

     

    + +

    Current Research:

    + +

    Professor Lutz does most of his research in two areas: computational +complexity and algorithmic information theory. +In computational complexity he and his students are investigating the +structure of complexity classes (deterministic, non-deterministic, and +probabilistic) using resource-bounded measure and dimension, +complexity-theoretic generalizations of Lebesgue dimension and fractal +dimension that he has developed. +Current work focuses on weak derandomization, weak completeness, +average-case complexity, circuit-size complexity, strong hypotheses, +real-valued functions, and the foundation of resource-bounded measure and +dimension. In algorithmic information, +he and his students are investigating randomness, Kolmogorov complexity, +algorithmic prediction, and computational depth. This work is uncovering a variety of new applications of theory +of computation in information theory, computational learning, fractal geometry, +and games.

    + +

     

    + +

    Representative Publications:

    + +

    Jack J. Dai, James I. Lathrop, Jack H. +Lutz, and Elvira Mayordomo. Finite-State Dimension. Proceedings of the +Twenty-Eighth International Colloquium on Automata, Languages, and Programming, +Crete, Greece, July 8-12, 2001, Springer-Verlag, 2001, pp. 1028-1039.

    + +

     

    + +

    Josef M. Breutzmann, David W. Juedes, and +Jack H. Lutz. Baire Category and Nowhere Differentiability for Feasible Real +Functions. Proceedings of the Twelfth Annual International Symposium on +Algorithms and Computation. Christchurch, New Zealand, December 19-21, +2001, Springer-Verlag, 2001, pp. 219-230.

    + +

     

    + +

    Gales and the Constructive Dimension of +Individual Sequences. Proceedings of the Twenty-Seventh International +Colloquium on Automata, Languages, and Programming. Geneva, Switzerland, July +9-15, 2000, Springer-Verlag, 2000, pp. 902-913.

    + +

     

    + +

    Dimension in Complexity Classes. Proceedings +of the Fifteenth Annual IEEE Conference on Computational Complexity. Florence, +Italy, July 4-7, 2000), IEEE Computer Society Press, 2000, pp. 158-169.

    + +

     

    + +

    Jack H. Lutz, Vikram Mhetre and Sridhar +Srinivasan. Hard Instances of Hard Problems. SIAM Journal on Computing, +to appear.

    + +

     

    + +

    Jack J. Dai and Jack H. Lutz. Query +Order and NP-Completeness. Information and Computation, to appear.

    + +

     

    + +

    Jack H. Lutz and Yong Zhao. The Density +of Weakly Complete Problems under Adaptive Reductions. SIAM Journal on +Computing. 2000, 30:1197-1210.

    + +

     

    + +

    David W. Juedes and Jack H. Lutz. +Modeling Time-Bounded Prefix Kolmogorov Complexity. Theory of Computing +Systems. Mathematical Systems +Theory. 2000, 33:111-123.

    + +

     

    + +

    Josef M. Breutzmann and Jack H. Lutz. +Equivalence of Measures of Complexity Classes. SIAM Journal on Computing. +2000. 29:302-326.

    + +

     

    + +

    Jack H. Lutz and James I. Lathrop. +Recursive Computational Depth. Information and Computation, 1999, +153:139-172.

    + +

     

    + +

     

    + +

    ROBYN +LUTZ, Associate +Professor of Computer Science

    + +

     

    + +

    B.A. 1974, English, University of Kansas

    + +

    M.A. 1976, Spanish, University of Kansas

    + +

    Ph.D. 1980, Spanish, University of Kansas

    + +

    M.S. 1990, Computer Science, Iowa State +University

    + +

     

    + +

    Major +Interests:

    + +

    +Safety-critical product lines, Requirements engineering, Software safety, +Formal methods for specification and analysis, Fault monitoring and recovery, +Software engineering.

    + +

     

    + +

    Current +Research:

    + +

    Dr. Lutz's research interests are in two +overlapping areas of software engineering: (1) how to build safe systems and +(2) how to specify and analyze requirements. + +

    +In the first area, her work focues +on software safety, safety-critical product lines, and defect analysis. +

    + +

    +In the second area, Dr. Lutz is investigating formal modeling and analysis of +requirements, especially for fault detection and recovery. Her research is +supported by the National Science Foundation and by NASA. +

    + + +

     

    + +

    Representative +Publications:

    + +

    "On-Going Requirements Discovery in High-Integrity Systems, " with C. Mikulski, IEEE Software, to appear. +

    + +

     

    + + + +

    "Resolving Requirements Discovery in Testing and Operations," with C. Mikulski, 11th IEEE Requirements Engineering Conference ," Seattle, WA, 2003, pdf +

    + +

     

    + + + +

    +"Requirements Discovery during the Testing of Safety-Critical Software," with C. Mikulski, 25th Int'l Conf on Software Engineering, Portland, OR, 2003, pp. 578-585, + pdf +

    + +

     

    + + + + +

    +"Operational Anomalies as a Cause of Safety-Critical Requirements Evolution," +with C. Mikulski, The Journal of Systems and Software, vol. 65:2, Feb. 2003, pp. 155-61.  +pdf

    + +

     

    + + + +

    +"Analysis of a Software Product Line Architecture:  An Experience +Report," with G. Gannod, Special Issue of The Journal of Systems and +Software, vol. 66: 3, 2003, pp. 253-67. pdf

    + +

     

    + + + +

    +"Fault Contribution Trees for Product Families," with D. Lu, 13th +International Symposium on Software Reliability Engineering," Annapolis, MD, 2002, pp. 231-242.pdf +

    + +

     

    + + + +

    +"DECIMAL:  A Requirements Engineering Tool for Product Families," +with P. Padmanabhan, International Workshop on Requirements Engineering +for Product Lines, Sept. 2002, Essen, Germany, pdf

    + +

     

    + + + +

    +"Evolution of Safety-Critical Requirements Post-Launch," with C. Mikulski, +Fifth +IEEE International Symposium on Requirements Engineering (RE'01), August +27-31, 2001, Toronto, Canada, Postscript.

    + +

     

    + + + +

    +"A Software Fault Tree Approach to Requirements Analysis of an Intrusion +Detection System," with G. Helmer, J. Wong, M. Slagell, V. Honavar, and +L. Miller, Requirements Engineering Journal, Invited Submission, Vol. 7:4, 2002, pp. 207-220. +

    + +

     

    + + + +

    +"Software Engineering for Safety: A Roadmap," in A. Finkelstein, +Ed., The Future of Software Engineering, ACM Press, 2000, Postscript.

    + +

     

    + + + +

    +"An Approach to Architectural Analysis of Product Lines,' with +G. Gannod, 22nd International Conference on Software Engineering (ICSE'00), +June +7-9, 2000, Limerick, Ireland, Postscript.

    + +

     

    + + + +

    +"Extending the Product Family Approach to Support Safe Reuse," +The +Journal of Systems and Software, Vol. 53, 3, Sept., 2000.  Postscript.

    + +

     

    + + + +

    +"Using Immersive Virtual Environments for Certification," with +C. Cruz-Neira, IEEE Software, Vol. 16, 4, July/Aug, 1999. PDF.

    + +

     

    + + + +

    +"Failure Modes and Effects Analysis," with R. Woodhouse, Encyclopedia +of Electrical and Electronics Engineering , ed. J. Webster, John Wiley +and Sons Publishers,  Vol. 7, 1999.

    + +

     

    + + + +

    +"Applying Adaptive Safety Analysis Techniques," with H.-Y. Shaw, 10th +International Symposium on Software Reliability Engineering (ISSRE'99), +Nov +1-4, 1999, Boca Raton, FL.  Postscript.

    + +

     

    + + + +

    +"Toward Safe Reuse of Product Family Specifications," Proceedings +of the 5th Symposium on Software Reusability (SSR'99),  May 21-23, +1999, Los Angeles, CA.  Postscript.

    + +

     

    + + + +

    +"Bi-directional Analysis for Certification of Safety-Critical Software,"  +with R. Woodhouse,  1st  International Software Assurance +Certification Conference (ISACC'99), Feb. 28-March 2, 1999,  Washington, +D. C.   Postscript.

    + +

     

    + + + +

    +"Experiences Using Lightweight Formal Methods for Requirements Modeling," +with S. Easterbrook, R. Covington, J. Kelly, Y. Ampo, and D. Hamilton, +IEEE +Transactions on Software Engineering , Vol. 24, No. 1, January, 1998. +Postscript.

    + +

     

    + + + +

    +"Safety Analysis of Requirements for a Product Family," with G. Helmer, +M. Moseman, D. Statezni, and S. Tockey, Proceedings of the Third IEEE +International Conference on Requirements Engineering (ICRE '98), April +6-10, 1998, Colorado Springs, CO. +Postscript.

    + +

     

    + + + +

    +"Reuse of a Formal Model for Requirements Validation," Fourth NASA +Langley Formal Methods Workshop, Sept. 10-12, 1997, Hampton, VA. +Postscript.

    + +

     

    + + + +

    +"Requirements Analysis Using Forward and Backward Search," with Robert +M. Woodhouse, Annals of Software Engineering, Special Volume on Requirements +Engineering , (3) 1997. +Postscript.

    + +

     

    + + + +

    +"Targeting Safety-Related Errors During Software Requirements Analysis," +The +Journal of Systems and Software, Vol. 34, Sept, 1996, pp. 223-230. +Postscript.

    + +

     

    + + + +

    +"Experience Report: Contributions of SFMEA to Requirements Analysis," +with Robert M. Woodhouse, Second IEEE International Conference on Requirements +Engineering, Apr 15-18, 1996. Postscript.

    + +

     

    + + + +

    +"Evaluation of Software Safety Analysis Using Formal Methods," with Yoko +Ampo, Workshop for Foundations of Software Engineering (FOSE), Hamana-Ko, +Japan, Dec 14-16, 1995.

    + +

     

    + + + +

    +"Experience Report: Using Formal Methods for Requirements Analysis of +Critical Spacecraft Software," with Yoko Ampo, Proceedings of the Nineteenth +Annual Software Engineering Workshop, Nov 30-Dec 1, 1994, Greenbelt, +MD. +Postscript.

    + +

     

    + + + +

    +"Targeting Safety-Related Errors During Software Requirements Analysis," +Proceedings +of the First ACM SIGSOFT Symposium on the Foundations of Software Engineering, +Software Engineering Notes, Vol. 18, No. 5, Dec, 1993. +Postscript.

    + +

     

    + + + +

    +"Analyzing Software Requirements Errors in Safety-Critical, Embedded Systems," +Proceedings +of the IEEE International Symposium on Requirements Engineering. +IEEE +Computer Society Press, Jan, 1993. +Postscript.

    + +

     

    + + + +

    +"Constraint Checking During Error Recovery," with J. Wong, Proceedings +of the NASA Technology 2002 Conference, Dec, 1992. +Postscript.

    + +

     

    + + + +

    +"Detecting Unsafe Error Recovery Schedules," with J. Wong, IEEE Transactions +on Software Engineering, vol. 18, no. 8, Aug, 1992. Postscript.

    + +

     

    + + + +

    +"Validating System-Level Error Recovery for Spacecraft," with J. Wong, +Proceedings of the AIAA Computers in Aerospace VII Conference, Oct, +1991. +Postscript.

    + +

     

    + +

     

    + +

     

    + +

    DIMITRIS MARGARITIS, +Assistant +Professor of Computer +Science

    + +

     

    + +

    B.S. 1992, Physics, University of Athens

    + +

    M.S. 1995, Computer Science, State +University of New York at Stony Brook

    + +

    Ph.D. 2002, Computer Science, Carnegie +Mellon University

    + +

     

    + +

    Major Interests:

    + +

    Probabilistic +modeling, methods for managing and reasoning with uncertainty/indeterminacy in +Artificial Intelligence and other applications, Bayesian networks, Markov +networks, data mining, machine learning, cross-disciplinary applications of +these in bioinformatics, econometrics, very large databases and other domains.

    + +

     

    + +

    Current Research:

    + +

    Dr. +Margaritis recent research is on new algorithms for learning the structure of +Bayesian networks and applying them to real-world application domains where +modeling uncertainty might be beneficial. +For example, it turns out that approximate query answering in very large +databases can be done quickly using a sufficiently complex model of the +database---in this case a Bayesian network.

    + +

     

    + +

    He +would also like to explore capturing and modeling information about influences +by statistical means in bioinformatics domains such as protein structure +prediction.

    + +

     

    + +

    Dr. +Margaritis long-term vision is to develop algorithms and representations that +help researchers learn something about their research domain by presenting them +with an automatically derived model of it. The benefit of this is to help them +focus attention to the relevant portions and possibly provide them with +insights that are difficult to produce otherwise.

    + +

     

    + +

    Representative Publications:

    + +

    D. Margaritis +and S. Thrun. A Bayesian Multiresolution Independence Test for Continuous +Variable. Uncertainty in Artificial Intelligence (UAI), August 2001.

    + +

     

    + +

    D. Margaritis, +C. Faloutsos, and S. Thrun. NetCube: A Scalable Tool for Fast Data Mining and +Compression. International Conference on Very Large Databases (VLDB), September +2001.

    + +

     

    + +

    D. Margaritis +and S. Thrun. Bayesian Network Induction via Local Neighborhoods. Neural Information Processing Systems +(NIPS), December 1999.

    + +

     

    + +

    D. Moghaddam, +H. Biermann and D. Margaritis. Regions-of-Interest and Spatial Layout for +Content-Based Image Retrieval. Journal +of Multimedia Tools and Applications, Kluwer Academic Publishers, Vol. 14, No. +3, July 2001.

    + +

     

    + +

    D. Moghaddam, +H. Biermann, D. Margaritis. Image Retrieval with Local and Spatial Queries. +International Conference on Image Processing (ICIP), Vancouver, Canada, +September 2000.

    + +

     

    + +

    D. Margaritis +and S. Thrun. Learning to Locate and Object in 3D Space from a Sequence of +Camera Images. International Conference in Machine Learning (ICML), July 1998.

    + +

     

    + +

    S. Waldherr, S. +Thrun, R. Romero, and D. Margaritis. Template-Based Recognition of Pose and +Motion Gestures on a Mobile Robot. National Conference on Artificial +Intelligence (AAAI), July 1998.

    + +

     

    + +

    T. C. Chieuh, +D. Margaritis, and S. Varadarajan. Design, Implementation and Evaluation of a +Parallel Image Shape Indexer. Visual Information Systems (Visual p7), 1997.

    + +

     

    + +

    D. Margaritis +and S. Skiena. Reconstructing Strings from Substrings in Rounds. IEEE +Foundations of Computer Science (FOCS), 1995.

    + +

     

    + +

     

    + +

    LES MILLER, Professor +of Computer Science

    + +

     

    + +

    B.A. +1967, Mathematics, University of South Dakota

    + +

    M.A. +1974, Mathematics, University of South Dakota

    + +

    Ph.D. +1980, Computer Science, Southern Methodist University

    + +

     

    + +

    Major Interests:

    + +

    Object oriented +databases, Organizational decision support systems, Multi-agent systems, +Knowledge management systems, Data warehouses, Computational Biology.

    + +

     

    + +

    Current Research:

    + +

    We are currently +looking at multi-agent systems to provide the infrastructure for integrating +heterogeneous data sources. In addition to the agent systems, we have developed +an object-oriented data warehouse to serve as part of the integration +infrastructure. We have also been +looking at tools for generating and populating data warehouse designs. We are also concerned with applying database +and machine learning techniques to problems in computational biology.

    + +

     

    + +

    Representative +Publications:

    + +

    "Populating a data warehouse with +mobile agents," Dandu, R., L. Miller, S. Nilakanta, and V. Honavar. +(1999). To appear in The Tenth International Conference of the Information +Resources Management Association.

    + +

     

    + +

    "Distributed Knowledge +Networks," Honavar, V., L.L. Miller, and J. Wong. (1998). IEEE Information +Technology Conference, pp. 87-90.

    + +

     

    + +

    "Object-oriented data warehouse for +information fusion from heterogeneous distributed data and knowledge +sources," Miller, L.L., V. Honavar, J. Wong, and S. Nilakanta. +(1998). IEEE Information Technology +Conference, pp. 27-31.

    + +

     

    + +

    "Data +Warehouse Modeler: A Case Tool for Warehouse Design," Miller, L.L., & +Nilakanta, S. (1998). Hawaiian International Conference on Systems Science, pp. +42-48.

    + +

     

    + +

    "Extending the +Object-Relational Interface to Support an Extensible View System for +Multidatabase Integration and Interoperation," Miller, L.L., Yen, D., +Sirjani, A., & Tenner, J. (1998). International Journal of Computer Systems +Science and Engineering. 13:4, pp. 227-240.

    + +

     

    + +

    "A Dynamic +Approach for Finding the Join Sequence in a Universal Relation Interface," +Miller, L.L., & Owrang, M. M. +(1998). To appear in the Journal of Integrated Computer-Aided Engineering, +4:310-318.

    + +

     

    + +

    "Warehousing +Structured and Unstructured Data for Data Mining." Miller, L.L., Honavar, +V., & Barta, T. (1997). ASIS '97, +pp. 215-224.

    + +

     

    + +

     

    + +

    ANDREW S. MINER, Assistant Professor of +Computer Science

    + +

     

    + +

    B.S. 1993, Physics and Computer Science, +Randolph-Macon College

    + +

    M.S. 1995, Computer Science, College of +William and Mary

    + +

    Ph.D. 2000, Computer Science, College of +William and Mary

    + +

     

    + +

    Major Interests:

    + +

    Performance reliability and +logical analysis of systems, Petri nets and stochastic modeling; state space +generation techniques, binary and multi-valued decision diagrams; compositional +approaches, distributed algorithms for solution techniques.

    + +

     

    + +

    Current Research:

    + +

    Technology advancements yield increasingly complex systems. +Dr. Miner's research focuses on +techniques for analyzing such systems, especially during their design stage. In +particular, he considers techniques that use some high-level modeling +formalism, such as stochastic Petri nets, to capture the desired behavior of +the system. Using a well-defined mathematical formalism allows certain types of +logical analysis, in which all +the possible states of the model are examined, or performance or reliability +analysis, in which the underlying stochastic process of the model (usually a +Markov chain) is considered. Logical analysis is typically used to verify the +correctness or robustness of a system against a set of criteria, and is +especially applicable to software and hardware verification. Performance and +reliability analyses are instead used to determine how well a system performs +or the expected lifetime of a system, and are applied to a variety of systems, +including communications systems, web servers, distributed systems, and +mission-critical systems.

    + +

     

    + +

    The main difficulty in these types of analyses is that even +a simple model can contain an extremely large number of possible states, +leading to excessive storage and CPU requirements. Indeed, the number of +reachable states of a model usually determines the tractability of its +analysis. Dr. Miner's work addresses this problem by developing techniques that +can handle a large number of states.

    + +

     

    + +

    Representative Publications:

    + +

    A.S. Miner, G. Ciardo, and S. Donatelli. "Using the exact state space of a large +structured Markov model to computer approximate stationary measures." In Proc. ACM +SIGMETRICS 2000, International Conference on Measurement and Modeling of +Computer Systems, Santa Clara, CA, pages 207-216. June 2000.

    + +

     

    + +

    G. Ciardo and A.S. Miner, "Structural +approaches for SPN analysis." High +Performance Computing Symposium, Washington, DC, USA, April 2000, pp. 345-356.

    + +

     

    + +

     

    + +

    G. Ciardo and A.S. Miner. "A data structure for the efficient +Kronecker solution of GSPN's." In +P. Buchholz, editor, Proc. 8th International Workshop on Petri Nets and +Performance Models (PNPM'99), Zaragoza, Spain, IEEE Computer Society Press, +pages 22-31, September 1999.

    + +

     

    + +

    A.S. Miner and G. Ciardo. "Efficient reachability set generation +and storage using decision diagrams." +In H. Kleijn and S. Donatelli, editors, Application and Theory of Petri +Nets 1999, LNCS 1639 (Proc. 20th International Conference on Applications and +Theory of Petri Nets, Williamsburg, VA, USA), pages 6-25. June 1999. Springer-Verlag.

    + +

     

    + +

    G. Ciardo and A.S. Miner. "Storage +alternatives for large structured state spaces." In R. Marie, B. Plateau, M. Calzarossa, and G. Rubino, editors, +Proc. 9th International Conference on Modelling Techniques and Tools for +Computer Performance Evaluation, LNCS 1245, pages 44-57, St. Malo, France, June +1997. Springer-Verlag.

    + +

     

    + +

     

    + +

    GURPUR PRABHU, Associate Professor of Computer Science

    + +

     

    + +

    B.Tech. 1975, Electrical Engineering, +IIT, Madras, India

    + +

    M.Tech. 1978, Computer Science, IIT, +Kanpur, India

    + +

    Ph.D. 1983, Computer Science, Washington +State University, Pullman

    + +

     

    + +

    Major Interests:

    + +

    Parallel processing, computer architecture, business process modeling and +analysis.

    + +

     

    + +

    Current Research:

    + +

    Dr. Prabhu's current research focuses on performance issues of parallel +programs and methods for business transformation.

    + +

     

    + +

    Representative Publications:

    + +

    "Programming is Writing: Why Programs must be Carefully +Evaluated," Journal of Mathematics and Computer Education, 32:3, Fall +1998, pp. 284-295 (with Gary Leavens, Albert Baker, Vasant Honavar, and Steve +LaValle).

    + +

     

    + +

    "Parallelizing a very high resolution climate model using clusters +of workstations with PVM and performance and load balance analyses," (with +Hao Wang and Eugene Takle), Proceedings of the International Conference on +Parallel and Distributed Processing Techniques and Applications, 1998, pp. +1762-1765, CSREA Press.

    + +

     

    + +

    "Distribution-Independent Hierarchical Algorithms for the N-body +problem," Journal of Supercomputing, 12, 1998, pp. 303-323 (with Srinivas +Aluru, John Gustafson, and Fatih Sevilgen).

    + +

     

    + +

    "A Framework for Business Transformation," Journal of +Microcomputer Applications, 17:1, 1998, pp. 1-7 (with Sree Nilakanta and Ashok +Subramanian).

    + +

     

    + +

    "Enterprise Integration: Art or Science?" Summer Conference of the Society for +Enterprise Engineering, June 1995.

    + +

    + +

    "Truly Distribution-Independent Algorithms for the N-Body +Problem," Prabhu, G., Aluru, S., & Gustafson, J. Supercomputing '94, pp. 420-428.

    + +

    + +

    "A Methodology for Business Transformation," Prabhu, G., +Nilakanta, S., & Subramanian, A. +(1994). Proceedings of the Third International Conference on Systems +Integration, Brazil, pp. 403-411.

    + +

     

    + +

    "The Use of Microcontrollers in Mechatronics Education," +Prabhu, G., & Wright, C. (1994). Proceedings of the Workshop on +Mechatronics Education, Stanford, pp. 72-77.

    + +

     

    + +
    +
    + + + + +

    DIRK REINERS, Assistant Professor of Computer Science +

    + +

     

    + +

    +Dr.ing. (equiv PhD) 2002, Computer Science, Technical University of Darmstadt

    + +

    +Diplom-Informatiker (equiv MS) 1994, Computer Science, University of Darmstadt

    + +

    +Web Page: http://www.vrac.iastate.edu/~dreiners

    + +

    +Mail: dreiners@iastate.edu

    + +

     

    + +

    Major Interests:

    + +

    +Computer Graphics, Virtual Reality, Visualizing Large Datasets, +Interaction across paradigms and with large datasets, Software Systems +Engineering for all of these +

    + +

     

    + +

    Current Research:

    + +

    +Some special areas I'm currently working on: +

    + +

    +Methods to profile interactive 3D graphics applications. This is +harder than profiling normal applications, because there are multiple +processors involved (CPU and GPU), and there is very little if any +feedback available from the GPU. +

    + +

    +Efficient and Effective Display of Text in Virtual Environments. +When visualizing abstract information, the elements need to be labeled +to be distinguishable. This is especially true for many problems in +bio-computing, which generate very complex datasets of abstract +elements. Text display hasn't been a focus of VR before, but is a +central component for these kinds of applications +

    + +

    +In general I'm interested in a wide variety of problems in Interactive +Computer Graphics, talk to me if there's something that would be +interesting but is not listed. +

    + +

     

    + +

    Representative Publications:

    + +

    +Roth, Marcus ; Voss, Gerrit; Reiners, Dirk;: +Multi-Threading and Clustering for Scene Graph Systems +In: Notes of the Lake Tahoe Workshop on Collaborative Virtual Reality +and Visualization 2003 +

     

    + +

    +Kresse, Wolfram; Reiners, Dirk; Knoepfle, Christian: +Color-Consistency in Multi-Projector Display Systems +In: Proceedings of IPT/EGVE 2003, ACM Press, pp. 271-279 (IPT/EGVE 2003, +Zurich, May 22-23, 2003) +

     

    + +

    +Kresse, Wolfram; Reiners, Dirk: +Can we trust that Image? Photometric Attributes of Current Projection +Systems. +In: IEEE Computer Society e.a.: Sixth International Immersive Projection +Technology Symposium 2002. CD-ROM. 2002 +

     

    + +

    +Voss, Gerrit; Behr, Johannes; Reiners, Dirk; Roth, Marcus: +A Multi-thread Safe Foundation for Scene Graphs and its Extension to +Clusters. +In: Bartz, Dirk (ed.) e.a.; European Association for Computer Graphics +(Eurographics): Fourth Eurographics Workshop on Parallel Graphics and +Visualization 2002. Proceedings: In cooperation with ACM Siggraph. New +York: ACM Press, 2002, pp.33-37 +

     

    + +

    +Reiners, Dirk: +A Flexible and Extensible Traversal Framework for Scenegraph Systems. +In: OpenSG 2002 Workshop, Darmstadt, Online +

     

    + +

    +Reiners, Dirk; Voss, Gerrit; Behr, Johannes: +OpenSG: Basic Concepts. +In: OpenSG 2002 Workshop, Darmstadt, Online at +http://www.opensg.org/OpenSGPLUS/symposium/Papers2002/index.EN.html +

     

    + +

    +Behr, Johannes; Fr??hlich, Torsten; Kn??pfle, Christian; Kresse, Wolfram; +Lutz, Bernd; Reiners, Dirk; Sch??ffel, Frank: +The Digital Cathedral of Siena - Innovative Concepts for Interactive and +Immersive Presentation of Cultural Heritage Sites. +In: Bearman, David (Ed.) e.a.: International Cultural Heritage +Informatics Meeting. Proceedings: Cultural Heritage and Technologies in +the Third Millennium. Mailand, 2001, pp.57-71 +

     

    + +

    +Reiners, Dirk; Stricker, Didier; Klinker, Gudrun; M??ller, Stefan: +Augmented Reality for Construction Tasks: Doorlock Assembly. +In: Behringer, Reinhold (ed.) e.a.: Augmented Reality : Placing +artificial objects in real scenes. Natick, MA, USA : A K Peters, Ltd., +1999, pp.31-46 +

     

    + +

    +Stricker, Didier; Klinker, Gudrun; Reiners, Dirk: +A Fast and Robust Line-based Optical Tracker for Augmented Reality +Applications. +In: Behringer, Reinhold (ed.) e.a.: Augmented Reality : Placing +artificial objects in real scenes. Natick, MA, USA: A K Peters, Ltd., +1999, pp. 129-145 +

     

    + +

    +Reiners, Dirk: +High-Quality High-Performance Rendering for Multi-Screen Projection +Displays. +In: Warnecke, Hans J??rgen e.a.; Fraunhofer-Gesellschaft e.a.: 3. +International Immersive Projection Technology Workshop. Berlin e.a.: +Springer-Verlag, 1999, pp.191-200 (Forschung und Praxis. IPA/IAO FhG T +52). +

     

    + +

    +Klinker, Gudrun; Stricker, Didier; Reiners, Dirk: +An Optically Based Direct Manipulation Interface for Human-Computer +Interaction in an Augmented World. +In: Hildebrand, Axel (Ed.) e.a.; European Association for Computer +Graphics (Eurographics) e.a.: Virtual Environments '99. Proceedings. +Wien, New York : Springer International, 1999, pp.53-62 +

     

    + +

    +Stricker, Didier; Klinker, Gudrun; Reiners, Dirk: +The Use of Reality Models in Augmented Reality Applications. +In: Koch, R. (Ed.) e.a.: 3D Structure from Multiple Images of +Large-Scale Environments : European Workshop, SMILE'98. Proceedings. +Berlin; Heidelberg : Springer, 1998, pp.275-289 (Lecture Notes in +Computer Science 1506). +

     

    + +

    +Dai, Fan; Felger, Wolfgang; Fr??hauf, Thomas; G??bel, Martin; Reiners, +Dirk; Zachmann, Gabriel: +Virtual Prototyping Examples for Automotive Industries. +In: Fraunhofer-Institut f??r Arbeitswissenschaft und Organisation: +Virtual Reality World '96. Conference Documentation. Muenchen +

     

    + +

    +Klinker, Gudrun; Stricker, Didier; Reiners, Dirk: +Augmented Reality for Exterior Construction Applications. +In: Barfield, W. (Ed.) e.a.: Augmented Reality and Wearable Computers. +Lawrence Erlbaum Press, 2000, pp. 379-427 +

     

    + +

    +Klinker, Gudrun; Stricker, Didier; Reiners, Dirk: +Optically based direct manipulation for augmented reality. +In: Computers & Graphics 23 (1999), pp.827-830 +

     

    + +

    +Reiners, Dirk: +Current Trends In Display Hardware And Their Effects On Scenegraph +Systems +In: 2. Paderborn Workshop for Augmented & Virtual Reality in Product +Development, 2003 +

     

    + +

    +M??ller, Stefan; Reiners, Dirk: +Die Mensch-Maschine-Schnittstelle: Von der Signaldarstellung zur +virtuellen Realit?t. +In: VDE-Kongre?? '98. GMA-Fachtagung. Tagungsband. Stuttgart, 1998 +

     

    + +

    +Fels, Sidney; Reiners, Dirk; Mase, Kenji: +Iamascope: An Interactive Kaleidoscope. +In Visual Proceedings of SIGGRAPH '97: The Electric Garden, pages 76-77, +1997. +

     

    + +

     

    + +
    +
    + + +

    LU RUAN, Assistant +Professor of Computer Science

    + +

     

    + +

    B.E. 1996, Computer Science, +Tsinghua University, China

    + +

    M.S. 1999, Computer Science, +University of Minnesota - Twin Cities

    + +

    Ph.D. 2001, Computer Science, +University of Minnesota - Twin Cities

    + +

     

    + +

    Major +Interests:

    + +

    Computer Networks, Optical Networks, Approximation Algorithms. +

    + +

     

    + +

    Current +Research:

    + +

    IP over WDM is being envisioned as the architecture for the next generation Internet. In this architecture, high-speed IP routers are interconnected by intelligent optical core networks. Survivability in these networks is essential since the networks carry a high volume of traffic and a single link/node failure will cause tremendous service loss. Dr. Ruans current +research focuses on the design of fast and capacity efficient protection/restoration schemes in both the IP layer and the WDM layer to recover from link/node failures. In addition, she is interested in developing techniques to integrate the recovery schemes in the two layers seamlessly and efficiently. +

    + +

     

    + +

    Representative +Publications:

    + +

    +X. Jia, X. Hu, L. Ruan and J. Sun, "Multicast Routing, Load Balancing and Wavelength Assignment on Tree of Rings, IEEE Communications Letters, vol. 6, no. 2, pages 79-81, Feb 2002. +

     

    + +

    +L. Ruan, D-Z. Du, X. Hu, X. Jia, D. Li and Z. Sun, Converter Placement Supporting Broadcast in WDM Optical Networks, IEEE Transactions on Computers, vol. 50, no. 7, pages 750-758, July 2001. +

     

    + +

    +B. Lu and L. Ruan, "Polynomial Time Approximation Scheme for the Rectilinear Steiner Arborescence Problem", Journal of Combinatorial Optimization, vol. 4, pages 357-363, Sept. 2000. +

     

    + +

    +D. Li, X. Du, X. Hu, L. Ruan and X. Jia, "Minimizing Number of Wavelengths in Multicast Routing Trees in WDM Networks", Networks, vol. 35, pages 260-265, July 2000 +

     

    + +

    +L. Ruan and H. Luo, Dynamic Routing of Restorable Lightpaths: A Tradeoff Between Capacity Efficiency and Resource Information Requirement, Proceedings of the 7th IFIP Working Conference on Optical Network Design and Modeling, pages 537-548, Budapest, Hungary, February 2003. +

     

    + +

    +H. Luo and L. Ruan, Load Balancing Heuristics for Dynamic Establishment of Restorable Lightpaths, Proceedings of the Eleventh International Conference on Computer Communications and Networks (ICCCN), pages 472-477, Miami, Florida, October 2002. +

     

    + +

    +X. Jia, X. Hu, L. Ruan and J. Sun, "Multicast Routing, Load Balancing and Wavelength Assignment on Tree of Rings", Proc of IASTED Int'l Conf on Wireless and Optical Communications, pages 239-244, Banff, Canada, Jun 2001. +

     

    + +

    +L. Ruan and D-Z. Du (eds.), Optical Networks-Recent Advances, Kluwer Academic Publishers, 2001. +

     

    + +
    +
    + +

    GIORA SLUTZKI, +Professor of Computer +Science

    + +

     

    + +

    B.S. 1970, Mathematics & Physics, +Hebrew University of Jerusalem, Israel

    + +

    M.S. 1973, Computer Science, Weizmann +Institute of Science, Rehovot, Israel

    + +

    Ph.D. 1977, Computer Science, Tel-Aviv University, +Tel-Aviv, Israel

    + +

     

    + +

    Major +Interests:

    + +

    Algorithms and Complexity, Game Theory +and Computational Economics, Formal Languages, Automata Theory, Logic.

    + +

     

    + +

    Current +Research:

    + +

    Dr. Slutzki is currently working on +complexity of some problems in abstract algebra and graph theory. He also works +on parametric string alignment, problems in pursuit-evasion in polygons, and +problems related to agreement and common knowledge.

    + +

     

    + +

    Representative +Publications:

    + +

    "A Complete Pursuit-Evasion Algorithm for Two +Pursuers Using Beam Detection" (with B. Simov and S. LaValle). 2002 IEEE +International Conference on Robotics and Automation (ICRA '02), May 2002, +Washington, DC, USA. Proceedings.

    + +

     

    + +

    "Computational Complexity of Some Problems +Involving Congruences on Algebras" (with C. Bergman). Theoretical Computer +Science, 270 (2002), pp. 591-608. Extended Abstract appeared in LICS '00.

    + +

     

    + +

    "Lower Bounds for Parametric Sequence +Comparison" (with D. Fernandez-Baca and T. Seppalainen). Special Issue of Discrete +Applied Mathematics (DAM), 118(3)(2002), pp. 181-199. Extended Abstract +appeared in SPIRE '99.

    + +

     

    + +

    "Computational Complexity of Generators and +Nongenerators in Algebra" (with C. Bergman). To appear in International +Journal of Algebra and Computation.

    + +

     

    + +

    "A Duality Theory for Bilattices" (with B. Mobasher, D. +Pigozzi, and G. Voutsadakis). Algebra Universalis, 43 (2000), pp. 109-125.

    + +

     

    + +

    "An Algorithm for Searching a Polygonal Region +with a Flashlight" (with B. Simov and S. LaValle). 16-th ACM Symposium on Computational +Geometry (SoCG '00), June 2000, Hong Kong. Proceedings, pp. 260-269. To appear +in a Special Issue of the International Journal of Computational Geometry and +Applications (IJCGA).

    + +

     

    + +

    "Parametric multiple sequence alignment and +phylogeny construction" (with D. Fernandez-Baca and T. Seppalainen). 11-th +Annual Symposium on Combinatorial Pattern Matching (CPM '00), June 2000, +Montreal, Canada. Springer Verlag, LNCS 1848, pp. 69-83. To appear in Journal +of Discrete Algorithms.

    + +

     

    + +

    "Complexity of Some Problems Concerning +Varieties and Quasi-Varieties of Algebras" (with C. Bergman). SIAM +Journal on Computing, 30 (2) (2000), pp. 359-382. Extended Abstract appeared in +16-th STACS (1999).

    + +

     

    + +

    "Computational Complexity of +Term-Equivalence" (with C. Bergman and D. Juedes). International Journal of Algebra and +Computation 9 (1) (1999), pp. 113-128.

    + +

     

    + +

    "Multi-valued Logic Programming Semantics: An +Algebraic Approach" (with B. Mobasher and D. Pigozzi). Theoretical Computer Science, 171 +(1997), pp. 77-109.

    + +

     

    + +

    "Optimal Parametric Search on Graphs of Bounded +Tree-width" (with D. Fernandez-Baca). Journal of Algorithms 22 (1997), pp. +212-240.

    + +

     

    + +

    "A Hierarchy of Deterministic Top-down Tree +Transformations" (with S. Vagvolgyi). Mathematical Systems Theory 29 (1996), pp. +169-188.

    + +

     

    + +

    "Using Sparsification for Parametric Minimum +Spanning Tree Problems" (with D. Fernandez-Baca and D. Eppstein). Special +SWAT issue of the Nordic Journal of Computing, 3 (4)(Winter 1996), pp. 352-366. +

    + +

     

    + +

     

    + +

    WALLAPAK TAVANAPONG, Assistant Professor of Computer Science

    + +

     

    + +

    B.S. 1992, Computer Science, Thammasat University, +Thailand

    + +

    M.S. 1995, Computer Science, University of Central +Florida

    + +

    Ph.D. 1999, Computer Science, University of Central +Florida

    + +

     

    + +

    Major +Interests:

    + +

    Distributed Multimedia +Systems, Multimedia and Communications, Multimedia Databases, Parallel and +Distributed Databases, Web Performance.

    + +

     

    + +

    Current +Research:

    + +

    The information +superhighway will consist of a collection of heterogeneous high-speed networks, +offering a wide variety of services. Due to these infrastructures, affordable +high performance computers and peripherals, and the World Wide Web, multimedia +data such as videos and audio will greatly increase its presence and +significance far beyond those seen on the Internet today. Designing efficient techniques to retrieve +and deliver multimedia data to remote users is very challenging due to the +unique traits of multimedia data. +First, video and audio data demand both large storage space and high +communication bandwidth. Second, the +data must be presented in a timely manner without interruptions or large +jitters. Lastly, the rich and complex +semantics inherent in multimedia data make it necessary to design novel search +techniques.

    + +

     

    + +

    Dr. Tavanapong's +research addresses three critical aspects of multimedia computing: distributed +multimedia caching and delivery techniques, multimedia server design, and +multimedia databases. Her research in +distributed multimedia caching and delivery strategies focuses on designing +innovative distributed and collaborative strategies for caching multimedia data +along distributed systems to reduce service delays and wide-area-network +bandwidth consumption. Her research +contribution in media server design involves novel algorithms for a high +performance media server or a cluster of workstations to support a large number +of concurrent users efficiently. +Lastly, her work in multimedia databases concentrates on content-based +search for desire video segments from a large video database.

    + +

     

    + +

    Grants

    + +

    Strategies for Caching +Information on Distributed Systems. NSF Career Award CCR-0092914, PI, 2001, +$253,930.

    + +

     

    + +

    Representative Publications:

    + +

    Design and +Implementation of a Video Browsing System for the Internet. Tavanapong, W. and Hua, K.A. To appear in Journal of Software Practice +& Experience, 2001.

    + +

     

    + +

    A Noise-Reduction Approach +to Scene Segmentation for Large Video Databases. Tavanapong, W. and Zhou, J. +To appear in Proc. of IEEE Int'l. Conf. on Information Technology: +Coding and Computing (ITCC), 2001 (Invited paper).

    + +

     

    + +

    A Characteristics-Based +Bandwidth Reduction Technique for Pre-recorded Videos. W. Tavanapong and S. Krishnamohan. In Proc of IEEE Int'l Conf. on Multimedia +and Expo, pages 1751-1754, New York City, NY, July 2000.

    + +

     

    + +

    2PSM: An Efficient +Framework for Searching Video Information in a Limited-Bandwidth Environment. Hua, K.A., Tavanapong, W. and, Wang, J.Z. +ACM Multimedia Systems, 7(5), 396-408, September, 1999.

    + +

     

    + +

    Performance of Load +Balancing Techniques for Join Operations in Shared-Nothing Database Management +Systems. Hua, K.A., Tavanapong, W., and +Lo, Y. Journal of Parallel and +Distributed Computing, 56, 17-46, 1999.

    + +

     

    + +

    Reducing Web Browsing +Delay using Profiled-Based Prefetching. Tavanapong, W., Hua, K.A., and Sheu, S. +In Proc. of WebNet 98 - World Conf. of the WWW, Internet & Intranet, pp. +879-884, Orlando, FL, November, 1998.

    + +

     

    + +

    A Framework for +Supporting Previewing and VCR Operations in a Low Bandwidth Environment. +Tavanapong, W., Hua, K.A., and Wang, J.Z. In Proc. of ACM Multimedia '97, pp. +303-312, Seattle, WA, November, 1997.

    + +

     

    + +

    Pre-admission control +for Movie-on-Demand. Tavanapong, W., Hua, K.A., and Sheu, S. In Proc. of Int'l +Conf. on Multimedia Information Systems, pp. 151-158, Schaumburg, IL, April, +1997.

    + +

     

    + +

    Dynamic Grouping: An +Efficient Buffer Management Scheme for Video-on-Demand Servers. Sheu, S., Hua, K.A., and Tavanapong, W. In +Proc. of Int'l Conf. on Multimedia Information Systems, pp. 135-142, +Schaumburg, IL, April, 1997.

    + +

     

    + +

    Chaining: A Generalized +Batching Technique for Video-on-Demand Systems. Sheu, S., Hua, K.A., and +Tavanapong, W. In Proc. of IEEE Int'l Conf. On Multimedia Computing and +Systems, pp. 110-117, Ottawa, Canada, June 1997.

    + +

     

    + +

    Scheduling Queries for +Parallel Execution on Multicomputer Database Management Systems. Lo, Y., Hua, K.A., and Tavanapong, W. In +Proc. of Int'l Conf. on Database and Expert Systems Applications, Zurich, +Switzerland, 1996.

    + +

     

    + +

    A +Performance Evaluation of Load Balancing Techniques for Join Operations on +Multicomputer Database Systems. Hua, +K.A., Tavanapong, W., and Young H.C. In Proc. of IEEE Int'l Conf. on Data +Engineering, pp. 44-51, Taipei, Taiwan, 1995.

    + +

     

    + +

     

    + +

    JIN TIAN, Assistant Professor of Computer Science

    + +

     

    + +

    B.S. 1992, Physics, Tsinghua University, +Beijing

    + +

    M.S. 1997, Physics and Astronomy, UCLA

    + +

    Ph.D. 2002, Computer Science, UCLA

    + +

     

    + +

    Major Interests:

    + +

    Bayesian networks, probabilistic +reasoning, causal reasoning and learning.

    + +

     

    + +

    Current Research:

    + + +

    I am interested in various topics on Bayesian networks. +My recent research is focused on causal reasoning and learning in the +framework of causal Bayesian networks. Some topics that I am working on + include: learning causal structures from data, inferring causal + effects from a combination of data and qualitative causal assumptions, + identifying linear causal relationships in structural equation models. + The long term goal is to provide theoretical foundations that will + facilitate building intelligent systems that can learn about and reason + with causes and effects. +

    + +

     

    + +

    Representative +Publications:

    + +

    J. Tian and J. Pearl, A general +identification condition for causal effects, in Proceedings of the National +Conference on Artificial Intelligence (AAAI), 2002.

    + +

     

    + +

    J. Tian and J. Pearl, On the Testable +Implications of Causal Models with Hidden Variables, in Proceedings of the +Conference on Uncertainty in Artificial Intelligence (UAI), 2002.

    + +

     

    + +

    J. Tian and J. Pearl, Causal Discovery +from Changes, in Proceedings of the Conference on Uncertainty in Artificial Intelligence +(UAI), 2001.

    + +

     

    + +

    J. Tian and J. Pearl, Probabilities of +causation: Bounds and identification, in Annals of Mathematics and Artificial +Intelligence 28: 287-313. 2000.

    + +

     

    + +

    J. Tian, A branch-and-bound algorithm for +MDL learning Bayesian networks, in Proceedings of the Conference on Uncertainty +in Artificial Intelligence (UAI), 2000.

    + +

     

    + +
    +
    + +

    JOHNNY S. K. WONG, Professor of Computer Science

    + +

     

    + +

    B.S. 1977, Mathematics & Computer +Science, The University of Hong Kong

    + +

    M.S. 1982, Mathematics, The University +of Sydney, NSW, Australia

    + +

    Ph.D. 1987, Computer Science, The +University of Sydney, NSW, Australia

    + +

     

    + +

    Major Interests:

    + +

    Distributed +Computing Environment (DCE), Distributed Operating Systems, Communication +Protocols, Object-Oriented Systems and Databases, Common Object Request Broker +Architecture (CORBA), Hypermedia Systems, Multimedia Information Systems, Web +Caching, Intrusion Detection, Information Assurance.

    + +

     

    + +

    Current Research:

    + +

    Dr. +Wong's research interests include design and implementation issues in operating +systems, distributed systems and multimedia communications. Current activities +center around hypermedia, distributed multi-media database systems, and +intelligent mobile agents, intrusion detection and countermeasures, distributed +computing environment (DCE), and Common Object Request Broker Architecture +(CORBA), Web Caching, Information Assurance.

    + +

     

    + +

    The +current research projects are funded by the Department of Defense (DoD) on +Intrusion Detection and Countermeasures (with Drs. Miller and Honavar), by the +Mayo Foundation on Database Generating and X-Ray Displaying using The World +Wide Web, and by NSF on the development of courseware modules on Information +Assurance (IA).

    + +

     

    + +

    Representative Publications:

    + +

    "SMART +Mobile Agent Facility'', Wong, J, Helmer, G., Naganathan, V., Polavarapu, S. +Honavar, V. and Miller, L., The Journal of Systems and Software, accepted.

    + +

     

    + +

    "Anomalous +intrusion detection system for hostile Java Applets", G. Helmer, Wong, J. +and Madaka, S., The Journal of Systems and Software, 55:273-286, January 2001.

    + +

     

    + +

    "Achieving +Non-repudiation of Web-based Transactions", Kalla, M., Wong, J., Albert, +S. and Mikler, A., The Journal of Systems and Software, 48(3):165-175, November +1999.

    + +

     

    + +

    "Intelligent +Mobile Agents in Large Distributed Autonomous Coopertaive Systems", Wong, +J. and Mikler, A.(1999), The Journal of Systems and Software, 47(2):75-87, July +1999.

    + +

     

    + +

    "A +Framework for a World Wide Web Based Data Mining System," R. Nayar, Wong, +J., and Mikler, A., Journal of Network and Computer Applications, 21:163-185, +July 1998.

    + +

     

    + +

    "A +Multimedia Presentation Toolkit for the World Wide Web", Wong, J., Rao, +S., & Ramaiah, N., Software: Practice and Experience, 27(4):425-446, April +1997.

    + +

     

    + +

    "Remote +Access to Multimedia Databases: An object-Oriented Approach", Wong, J., +& Parthasarathy, D., Software: Practice & Experience, 26(6):677-704, +June 1996.

    + +

     

    + +

    "Design +and Implementation of Heterogeneous Distributed Multimedia System using Mosaic +GSQL," Wong, J., Magavi, S., & Bodla, P., Software: Practice & +Experience, 25(11):1223-1242, November 1995.

    + +

     

    + +

    "Design +and Implementation of National Engineering Education Delivery System (NEEDS)," Wong, J., Schmitz, D., & +Nelson, R. Software: Practice & Experience, 24(11):1051-1076, November +1994.

    + +

     

    + +

    "Remote +Database Access in Distributed Computing Environment," Wong, J., Marshall, +W., & Goodman, R. Software: Practice & Experience, 24(4):421-434, April +1994.

    + +

     

    + +

    "Detecting +Unsafe Error Recovery Schedules," Wong, J., & Lutz, R. IEEE +Transactions on Software Engineering, pp. 749-760, August 1992.

    + +

     

    + +

    "An +Efficient Process Migration Algorithm in Distributed Systems," Wong, J., +& Suen, T. IEEE Transactions on Parallel and Distributed Systems, pp. +488-499, July 1992.

    + +
    +
    + +

    Adjunct Faculty

    + +

     

    + +

    SRINIVAS ALURU, Assistant Professor +(Major Appointment in Computer Engineering)

    + +

     

    + +

    B. Tech 1989, Computer Science & Engineering., Indian Institute of +Technology, Madras, India

    + +

    M.S. 1991, Computer Science, Iowa State University

    + +

    Ph.D. 1994, Computer Science, Iowa State University

    + +

     

    + +

    Major +Interests:

    + +

    Parallel models, Algorithms and +Applications, Bioinformatics and Computational Biology, and Scientific +Computing.

    + +

    Internet: aluru@iastate.edu

    + +

     

    + +

    Current +Research:

    + +

    Dr. Aluru is interested in developing +algorithms and software systems for important applications on high-performance +parallel computers and clusters. The primary application areas of target are +computational biology and hierarchical methods in scientific computing. In +computational biology, his research is currently focused on developing parallel +data structures for

    + +

    sequence data, developing intellegent +database schemes for sequence data, parallel algorithms and software for gene +identification using EST data and problems related to structure data. His +scientific computing research is focused on developing distribution-independent +sequential and parallel algorithms based on the hierarchical fast multipole +method, for solving problems in computational electromagnetics. His research is +funded by NSF, ARO and DOE.

    + +

     

    + +

    Representative +Publications:

    + +

    N. Futamura, S. Aluru and D. Ranjan, +"Efficient parallel algorithms for solvent accessible surface area of +proteins, IEEE Transactions on Parallel and Distributed Systems}, to appear.

    + +

     

    + +

    B. Hariharan and S. Aluru, +"Efficient parallel algorithms and software for compressed octrees with +application to hierarchical methods, Proc. 8th IEEE International Conference +on High Performance Computing, Spring Verlag Lecture Notes in Computer Science, +pp. 125-136, 2001.

    + +

     

    + +

    I. Al-furaih, S. Aluru, S. Goil and S. +Ranka, "Parallel construction of multidimensional binary search trees," +IEEE Transactions on Parallel and Distributed Systems, 11(2):136-148, 2000.

    + +

     

    + +

    F. Sevilgen, S. Aluru and N. Futamura, +"A provably optimal, distribution-independent, parallel fast multipole +method," Proc. 14th IEEE International Parallel and Distributed +Processing Symposium, pp. 77-84, 2000.

    + +

     

    + +

    S. Aluru and F. Sevilgen, "Dynamic +compressed hyperoctrees with application to the N-body problem, Proc. 19th +International Conference on Foundations of Software Technology and Theoretical +Computer Science, Springer Verlag Lecture Notes in Computer Science, +1738:21-33, 1999.

    + +

     

    + +

    F. Sevilgen and S. Aluru, "A +unifying data structure for hierarchical methods, Proc. IEEE/ACM +Supercomputing Conference, http://www.sc99.org., 1999.

    + +

     

    + +

    S. Aluru, G.M. Prabhu, J. Gustafson and +F. Sevilgen, "Distribution-independent hierarchical algorithms for the +N-body problem," Journal of Supercomputing, 12:303-323, 1998.

    + +

     

    + +

    S. Aluru, "Lagged Fibonacci random +number generators for distributed memory parallel computers," Journal of +Parallel and Distributed Computing, 45(1):1-12, 1997.

    + +

     

    + +

    I. Al-furaih, S. Aluru, S. Goil and S. +Ranka, "Practical algorithms for selection on coarse-grained parallel +computers," IEEE Transactions on Parallel and Distributed Systems, +8(8):313-324, 1997.

    + +

     

    + +

     

    + +

     

    + +

    JOHN +PETER BOYSEN, Senior Systems Analyst, Academic Information +Technologies, and Adjunct Assistant Professor, Computer Science

    + +

     

    + +

    B.S. 1969, Physics, University of Florida

    + +

    M.S. 1976, Computer Science, Iowa State +University

    + +

    Ph.D. 1979, Computer Science, Iowa State +University

    + +

     

    + +

    Major +Interests:

    + +

    Instructional +use of computers, programming languages, object-oriented programming.

    + +

     

    + +

    Current +Research:

    + +

    Current research +involves the development of instructional applications for the Internet. Projects include Java Instructional simulations +in meterology and mathematics and the +Ecademy system which is a Java-based Instructional Management System used in +the creation and delivery of Web-based instructional classes.

    + +

     

    + +

    Representative +Publications:

    + +

    ClassNet: +Managing the Virtual Classroom Boysen, P., & Van Gorp, M., (1997). +International Journal of Educational Telecommunications, 3(2/3):279-292.

    + +

     

    + +

    "Interactive +Computer Graphics in the Study of Human Body Planar Motion Under Free Fall +Conditions, Boysen, P., Francis, P., & Thomas, R. (1997). +Journal of Biomechanics, 10:783-788.

    + +

     

    + +

    "Reducing +Object Storage Requirements in a Multi-user Environment, Boysen, P., & +Shah, P., Software-Practice and Experience, 23(3):255-241, March 1993.

    + +

     

    + +

    Using Simulations to Fill Instructional +Gaps, Boysen, P., & Thomas, R. +EDU, 40:8-11, Winter 1986.

    + +

     

    + +

    "A +Taxonomy for the Instructional Use of Computers, Boysen, P., & Thomas, R., +AEDS Monitor, 22(11):12, May/June 1984.

    + +

     

    + +

    "An +Evaluation of the Instructional Effectiveness of a Computer Lesson in +Biomechanics, Boysen, P., & Francis, P. (1982). Research Quarterly for Exercise and Sport, 53(3):232-235.

    + +

     

    + +

    "Them +Bones: The Use of Computer-Assisted Instructional Techniques in the Teaching of +Human Anatomy, Boysen, P., Francis, P., Ciskey, M., & Seastrand, P. The +Computing Teacher, 9(3):11-16, November 1981.

    + +

     

    + +

    "Measuring +Computer Program Comprehension, Boysen, P., & Keller, R. ACM SIGCSE Bulletin, 12:92-102, February +1980.

    + +

     

    + +

     

    + +

    MORRIS CHANG, Associate Professor (Major Appointment in Computer Engineering)

    + +

     

    + +

    Ph.D. 1993, Computer Engineering, North Carolina +State University
    +M.S.E.E. 1986, Electrical Engineering, North Carolina State University
    +B.S.E.E. 1983, Electrical Engineering, Tatung Institute of Technology

    + +

     

    + +

    Major Interest:

    + +

    High +performance object-oriented systems, Computer architecture, Hardware +description languages, Internet architecture, Wireless networks.

    + +

     

    + +

    Current Research:

    + +

    Dr. Chang is interested in studying and +improving the performance of Java systems for server and embedded applications. +For the server applications, his research is focused on developing strategies +for memory management in multithreaded multiprocessors environment. For the +emdedded applications, garbage collection algorithms that lead to low-power +consumption and small memory footprint are studied. His current research +interests also include: distributed object systems,

    + +

    Hardware description languages and +wireless networks. His current research projects are funded by the National +Science Foundation.

    + +

     

    + +

    Selected Publications:

    + +

    C. D. Lo, W. Srisa-an and J. M. Chang, +"A Study of Page Replacement Performance in Garbage Collection Heap", +The Journal of Systems and Software, 58:235-245, Elsevier Science, 2001.

    + +

     

    + +

    G. Koutsogiannakis, and J. M. Chang, +"Java Distributed Object Models: An Alternative to Corba?" , IEEE IT +Professional, 4(3):41-47, June 2002.

    + +

     

    + +

    W. Srisa-an, C. D. Lo, and J. M. Chang +"Performance Enhancements to the Active Memory System ", Proceedings +of IEEE International Conference on Computer Design, (ICCD 2002), Freiburg, +Germany, September 16-18, 2002, pp. 249-256.

    + +

     

    + +

     

    + +

     

    + +

    CAROLINA CRUZ-NEIRA, Associate Professor of Industrial & Manufacturing Systems +Engineering and Associate Director of the Virtual Reality Applications Center +(Major Appointment in IMSE)

    + +

     

    + +

    Ph.D. 1995, Electrical Engineering & Computer +Science, Electronic Visualization Laboratory, University of Illinois at Chicago
    +M.S. 1991, Electrical Engineering & Computer Science, Electronic +Visualization Laboratory, University of Illinois at Chicago
    +B.S. 1987, Cum Laude, Systems Engineerng. Universidad Metropolitana de Caracas, +Venezuela
    +
    +

    + +

    Areas of Interest:
    +
    Virtual reality, high-speed networks, software engineering and interactive +computer graphics.
    +
    +Current Research:
    +
    Her research focuses on the development of tools, such as +distributed software , engineering, and artistic virtual reality applications.
    +
    +Selected Publications (* denotes students)
    +
    Bierbaum, A*, Just, C*., Hartling, P*., and Cruz-Neira, C., "VR +Juggler: A vVirtual Platform for Virtual Reality Application Development, IEEE +VR 2000 Conference. Yokohama, Japan, March 2001
    +
    +Cruz-Neira, C., Lindahl, G. "A +Voyage into Virtual Reality: Networking Our VR Lab to Iowa Middle Schools and +High Schools." IEEE Computer +Graphics and Applications. March 2000, pp. 16-19.
    +
    +Cruz-Neira, C., and Lutz, R. "Using +Virtual Environments for Certification." +IEEE Software, July/August 1999. pp.26-30.
    +
    +Nelson, L.*, Cook, D., and Cruz-Neira, C. "XGobi vs. the C2: Results of an +Experiment Comparing Data Visualization in a 3-D Immersive Virtual Reality +Environment with a 2-D Workstation Display." Journal of Computational Statistics. Special Issue on the Use of +Interactive Graphics. January 1999. pp.441-450.
    +
    +

    + +
    +
    + +

    RICKY A. KENDALL, Adjunct +Associate Professor of Computer Science, Scientist Ames Laboratory

    + +

     

    + +

    B.S. 1983, Chemistry, Indiana State University

    + +

    Ph.D. 1988, Theoretical and Computational +Chemistry, University of Utah

    + +

     

    + +

    Major Interests:

    + +

    The encompassing theme of Dr. +Kendall's research is to make the development of high performance applications +on parallel and distributed computing platforms more facile. His interests include asynchronous +communications software, parallel I/O, application domain specific APIs, e.g., +targeted software engineering, and general application of parallel and +distributed algorithms.

    + +

     

    + +

    Current Research:

    + +

    Currently Dr. Kendall and his students +are focused on four main projects that include the development of a +generalized, portable SHMEM library that provides asynchronous one-sided +communication protocols (e.g., put and get operations) to applications across a +wide spectrum of computational resources. +Another area is the development of a parallel I/O mechanisms that are +also asynchronous on cluster based systems so that the disk facilities of +cluster computers can meet the performance requirements of high performance +applications. The third focus area is +the development of a generic compression library that puts state-of-the-art +compression algorithms behind a user friendly API for scientific application developers. It will provide a means of addressing +sparsity in many application domains. +The fourth area is utilizing mixed mode programming models (thread based +algorithms mixed with either message passing or distributed shared memory) to +address the architectural designs of emerging clusters and large MPP +supercomputers.

    + +

     

    + +

    Representative Publications:

    + +

    K. Parzyszek, J. Nieplocha and R. A. +Kendall, "A Generalized Portable SHMEM Library for High Performance +Computing", Proceedings of the IASTED Parallel and Distributed Computing +and Systems 2000, Las Vegas, Nevada, November 2000, (M. Guizani and X. Shen, +Eds.), pp. 401-406. IASTED, Calgary (2000).

    + +

     

    + +

    B. Bode, D.M. Halstead, R. Kendall, Z. +Lei, and D. Jackson, "The Portable Batch Scheduler and the Maui Scheduler +on Linux Clusters," Proceedings from the 4th Annual USENIX Extreme Linux +Conference, pp. 217-224 (2000).

    + +

     

    + +

    R.A. Kendall, E. Apra, D.E. Bernholdt, +E.J. Bylaska, M. Dupuis, G.I. Fann, R.J. Harrison, J. Ju, J.A. Nichols, J. +Nieplocha, T.P. Straatsma, T.L. Windus, and A.T. Wong, "High Performance Computational +Chemistry; an Overview of NWChem a Distributed Parallel Application," +Computer Physics Communications, 128:260-283 (2000).

    + +

     

    + +

    I. Foster, J. Nieplocha, and R.A. +Kendall "ChemIO: High-Performance Parallel I/O for Computational Chemistry +Applications," The International Journal of High Performance Computing +Applications, 12:345-363, (1998).

    + +

     

    + +

    R.A. Kendall "High Performance +Computing in Chemistry and Massively Parallel Computers: A Simple +Transition?," International +Journal of Quantum Chemistry: Quantum Chem. Symposium, 27:769 (1993).

    + + + +

     

    + +
    +
    + +

    SURESH C. KOTHARI, Professor (Major +Appointment in Computer Engineering)

    + +

     

    + +

    B.S. 1970, Mathematics, Poona +University, India

    + +

    M.S. 1972, Mathematics, +Poona University, India

    + +

    Ph.D. 1977, Mathematics, Purdue +University

    + +

     

    + +

    Major Interests:

    + +

    Software +Engineering, Parallel and Distributed Computing, Computational Science, +Bioinformatics.

    + +

     

    + +

    Current Research:

    + +

    Our +research is system oriented. The thrust areas are: (i) knowledge-centric +software engineering environment with applications to development of software +productivity tools and automatic code generation problems such as automatic +parallelization, (ii) distributed computing environments, (iii) computational +biology and computational science.

    + +

     

    + +

    Representative Publications:

    + +

     

    + +

    Kalayanaraman, +S. Aluru, S. C. Kothari, Space and Time Efficient Parallel Algorithms and +Software for EST Clustering, International Parallel and Distributed Processing +Symposium (IPDPS), Workshop on High Performance Computational Biology (HiCOMB), +April 2002 (to appear).

    + +

     

    + +

    Murali +Ravirala, S. Sivasubramanian, S. C. Kothari, Resource-Aware Real-Time CORBA in +Multi-server Distributed Environment, International Parallel and Distributed +Processing Symposium (IPDPS), Workshop on Parallel and Distributed Real-Time +Systems (WPDRTS), April 2002 (to appear).

    + +

     

    + +

    Deng +Y., Kothari S., Namara Y., Program Slice Browser, 9th International Workshop on +Program Comprehension, Toronto, May 2001.

    + +

     

    + +

    Mitra +S., Kothari S., Cho J., Krishnaswamy A., ParAgent: A domain-specific automatic +parallelization tool. Proceedings of High Performance Computing Conference, +India, December 2000.

    + +

     

    + +

    Tandiary +F., Kothari S.C., Dixit A., Anderson W., "Batrun: Utilizing Idle Workstations for Large-Scale +Computing," Kothari, S.C. IEEE +Parallel and Distributed Technology, 4-2:41-49, 1996.

    + +

     

    + +

    Kothari, +S., K. Subramanian, and D. Heller, Active message communication package for +PVM. Journal of Parallel and +Distributed Processing, pp. 146-52, 1996.

    + + + +

     

    + +
    +
    + +

    SIMANTA +MITRA, Adjunct Assistant Professor of Computer +Science

    + +

     

    + +

    Ph.D. 1997, Computer Science, Iowa State University, +Ames

    + +

    M.S. 1991, Computer Science , Iowa State University, +Ames

    + +

    B.E. 1987, Computer Science and Technology, Calcutta +University, India

    + +

     

    + +

    Major +Interests:

    + +

    Software Engineering, Programming +Languages, Compilers, Parallelizing Tools,

    + +

    And Performance Evaluation of Computer +Systems.

    + +

     

    + +

    Representative +Work:

    + +

     

    + +

    Patents

    + +

    U.S. Patent for "An apparatus and +method for parallelizing legacy computer codes". Patent No: 6,339,840 +issued 01/15/2002.

    + +

     

    + +

    U.S. Patent for "An apparatus and +method for parallelizing legacy computer codes". Patent No: 6,243,863 +issued 06/05/2001.

    + +

     

    + +

    U.S. Patent for "Method for +efficient soft real-time execution of portable byte code computer +programs". Patent No: 6,081,665 issued 06/27/2000.

    + +

     

    + +

    Papers

    + +

    S.C. Kothari, J. Cho, Y. Deng, S. Mitra, +et al, Software Tools and Parallel Computing for Numerical Weather Prediction +Models, in proceedings of Workshop on parallel and distributed scientific and +engineering computing with applications at International Conference on Parallel +and Distributed Processing, 2002.

    + +

     

    + +

    Simanta Mitra, Suraj C. Kothari, Jaekyu +Cho, and Aravind Krishnamurthy, "ParAgent: A domain-specific automatic +parallelization tool", Proceedings of the High Performance Computing +Conference, Lecture Notes in Computer Science, 1970:141-149, India, Dec 2000.

    + +

     

    + +

    Yunbo Deng, Suraj Kothari, Lisbeth Meum, +Yogy McNamara, Jaekyu Cho, and Simanta Mitra: ParAgent: A software +reengineering tool for parallel computing, IASTED 12th International Conference +on Parallel and Distributed Computing and Systems, pp. 658-664,Las Vegas, +November 2000.

    + +

     

    + +

    Simanta Mitra, "Real-Time extensions +fill a need", EE Times, Sep 19, 1999.

    + +

     

    + +

    Kelvin Nilsen, Simanta Mitra, S. +Sankaranarayana, and V. Thanuvan, "Asynchronous Java exception handling in +a real-time context", In proceedings of the IEEE workshop on programming +languages for real-time industrial applications, Madrid, Spain, Dec 1998.

    + +

     

    + +

    Simanta Mitra, Suraj C. Kothari, +Parallelization Agent: A new approach to parallelization of legacy codes, +Eighth SIAM conference on Parallel Processing for Scientific Computing, March +1997.

    + +

     

    + +

    Suraj C. Kothari, Simanta Mitra, +"Analysis of Computational Balance of Parallel Numerical Algorithms", +Eighth SIAM conference on Parallel processing for Scientific Computing, March +1997.

    + +

     

    + +

    Suraj C. Kothari, Simanta Mitra, "A +scalable 2D parallel sparse solver", Seventh SIAM conference on parallel +processing for scientific computing, pp. 424-429, Feb 1995.

    + +

     

    + +
    +
    + +

    AKHILESH TYAGI, Associate +Professor (Major Appointment in Computer Engineering)

    + +

     

    + +

    B.Tech. 1981, +Electrical Engineering, Birla Institute of Technology & Science, Pilani, +India.

    + +

    M.Tech. 1983, Computer +Engineering, Indian Institute of Technology, New Delhi, India.

    + +

    Ph.D. 1988, Computer +Science, University of Washington

    + +

     

    + +

    Major Interests:

    + +

    Computer Architecture, VLSI: +Complexity Theory, Low Energy VLSI Design Synthesis.

    + +

     

    + +

    Current Research:

    + +

    My architecture research interests are in exploiting +instruction-level-parallelism (ILP) both with the microarchitecture and +compiler. One of the current projects uses branch decoupling to achieve that. +In another thread, we are employing reconfigurable caches that can work both as +on-chip memory and function units to speed up the processor. We are also +exploring microarchitecture level support for computer security. The current +focus is on protecting the program pointers through a combination of +microarchitecture and compiler actions.

    + +

     

    + +

    In VLSI research, we are developing a function-level model of energy +consumption. We are also researching low power VLSI design issues particularly +when applied to processor design.

    + +

     

    + +

    Representative +Publications:

    + +

    "A Trace Based Evaluation of Speculative Branch Decoupling", +{\it with} A. Nadkarni, {\it Proceedings of IEEE International Conference on +Computer Design} (ICCD) 2000.

    + +

     

    + +

    "Dynamic Branch Decoupled Architecture'', {\it with} H.C. Ng and P. +Mohapatra, {\it Proceedings of IEEE International Conference on Computer Design +(ICCD)}, October 1999.

    + +

     

    + +

    "Hybrid Data/Configuration Caching for Striped FPGAs'', {\it with} +D. Deshpande and A. Somani, in {\it Proceedings of

    + +

    IEEE International Symposium on Field Programmable Custom Computing +Machines}, April 1999.

    + +

     

    + +

    "On Reconfiguring Cache for Computing'', {\it with} H-S. Kim and A. +Somani, in {\it Proceedings of IEEE International Symposium on Field +Programmable Custom Computing Machines}, April 1999.

    + +

     

    + +

    "Configuration Caching Vs Data Caching for Striped FPGAs'', {\it +with} D. Deshpande and A. Somani, in {\it Proceedings of ACM International +Symposium on FPGAs}, pp 206-214, ACM Press, February 1999.

    + +

     

    + +

    Reduced Address +Bus Switching with Gray PC, with F. Jensen, in {\it Proceedings of Power Driven Microarchitecture Workshop at International +Symposium on Computer Architecture}, ACM Press, June 1998.

    + +

     

    + +

    Entropic Limitations on Finite State Machine +Switching', Tyagi, A., IEEE Transactions on VLSI Systems, 5:4, pp. 456-464, +December 1997.

    + +

     

    + +

    Efficient Parallel +Algorithms for Optical Computing with the DFT Primitive', with J. Reif, in +{\it Applied Optics}, 36:29, pp. 7327-9340, Optical Society of America, October +1997.

    + +

     

    + +

    Branch Decoupled Architectures, Tyagi, A. Proceedings of Workshop on Interaction +Between Compilers and Computer Architectures at IEEE High Performance Computer +Architecture Symposium. A summary to +appear in IEEE TC on Computer Architecture Newsletter, pp. 13-15, June 1997.

    + +

     

    + +

     

    + +
    + + + + +

    + + + +


    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/facmentor.html b/hridesh/gradadm/facmentor.html new file mode 100755 index 0000000..f5f610f --- /dev/null +++ b/hridesh/gradadm/facmentor.html @@ -0,0 +1,295 @@ +June 13, 2002 3:00 p.m.

    + +Dear Admitted Student: +

    +Congratulations on your admission to the graduate program in Computer Science at Iowa State University. The Graduate Admissions Committee was especially pleased to see your application among a very strong pool of applications for admission to the Computer Science Graduate Program at Iowa State. +

    +Based on your stated interests, we have determined that certain faculty members would be potential mentors for you during your studies at Iowa State University. To change your interests, please contact Linda at ldutton@cs.iastate.edu with the new information. You can find your mentor(s) on the following table. Your name is being passed on to these faculty members, some of whom may contact you to further explore your interests in working with them. +Once you arrive at ISU, you will be assigned a temporary advisor to help guide you until you have chosen a committee and Major Professor. This may not be the same person listed as your contact below. +

    +We can offer a limited number of teaching and research assistantships to highly qualified applicants who are committed to pursuing a Ph.D. degree in Computer Science. Given the limited number of assistantships that are available, and the nontrivial effort needed on our part to arrange funding for international students, we can offer such assistantships to only those students who have both the ability, as well as the commitment, to pursue a Ph.D. degree. We would urge you to give this serious consideration since our ability to fund international students in the future is closely tied to the outcome of such funding to students with similar backgrounds. Consequently, we strongly discourage applicants who already possess a Master's degree from pursuing the M.S. degree in our graduate program. We expect the students who are admitted to the Ph.D. program, to begin studies and research leading to a Ph.D. upon their arrival at Iowa State University. +

    +If you have specific questions concerning research projects being carried out in the laboratories and research groups of particular faculty members, we encourage you to contact them directly by email. When you write to them, please be sure to mention that you have been admitted to the graduate program in Computer Science. Faculty web pages can be found at http://www.cs.iastate.edu/gradadm/facstaff.html. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDStatusInterests?Contact
    3001Full MS Admitnetworks, AIRuan
    3008Full MS Admitnetworks, DBMS, AIGadia
    3012Full PhD Admit, TA, CWSparallel/distributed compChaudhuri
    3029Full MS Admit, TAAI, SE, BCBEulenstein
    3050Full PhD AdmitOODB, Knowledge Discover in DatabasesGadia
    3086Full PhD Admit, ScholarshipEvolutionary Adaptive Computation, Complex Systems, neural networks, genetic algorithms, artificial lifeEulenstein
    3127Full MS Admit, TA, CWSSE, visualizationRLutz
    3149Full PhD Admit, TA, PACEnetworks, dist systems, OSTavanapong
    3151Full MS Admit, TA, PACEnetworks, dist systems, QoS requirements, mobile computingChaudhuri
    3155Full PhD Admit, TA, PACEnetworks, securityRuan
    3159Full PhD Admit, TASE, DBLumpe
    3176Full INFAS Admit, FellowshipINFASWong
    3180Full PhD Admit, TA
    Miner
    3199Full PhD Admit, TA, PACEAI, ProbabilityJia
    3216Full MS Admitnetworks, SERuan
    3229Full INFAS Admit, FellowshipINFASWong
    3246Full MS Admit, TADB, multiagent systems, multimedia systemsTavanapong
    3263Full PhD Admit, TA, PACEdata miningMiller
    3319Full PhD Admitnetworks, security, data mining, large data setsWong
    3342Full MS Admit, PACE, TA, CWSAIJLutz
    3345Full INFAS AdmitINFASWong
    3368Full PhD AdmitAIJLutz
    3376Full PhD Admit, TAdist system, networksChaudhuri
    3378Full MS AdmitnetworksMiner
    3393Full INFAS Admit, FellowshipINFAS, neuroscienceWong
    3409Full PhD AdmitBCB, algorithms, neuroscienceChaudhuri
    3411Full PhD Admit, TA, PACEnetworks, algorithm theory, dist systems, math, complexity theoryRuan
    3423Full MS Admit
    Miner
    3427Full MS AdmitAIHonavar
    3433Full PhD Admit, TAdist systems & networks, SecurityChaudhuri
    3436Full PhD Admit, TADB, comp mathMiller
    3451Full PhD AdmitAI, cognitive science, philosophyHonavar
    3453Full MS AdmitDB, SE, network, INFASMitra
    3463Full MS Admit, ScholarshipAIHonavar
    3467Full MS Admit, RA
    Jia
    3468Full PhD CoMajor AdmitAI, BCB, networksHonavar
    3476Full PhD Admit, RAalgorithms, DB, graphics, PL & compilers, theoryJia
    3486Provisional PhD Admit
    JLutz
    3499Full PhD AdmitAI, data mining, BCBHonavar
    3520Full PhD Admit, TA, PACEOS, PL, CompilersRuan
    3555Full MS Admit, RADB, data mining, Info retrievalMiller
    3690Full PhD Admit, RAAI, DBChang
    3706Full PhD Admit, RASE, network securityChang
    3736Full PhD Admit, PACEDB, multimedia structuresTavanapong
    3738Full MS AdmitDB, networkTavanapong
    diff --git a/hridesh/gradadm/facstaff.html b/hridesh/gradadm/facstaff.html new file mode 100755 index 0000000..8c46293 --- /dev/null +++ b/hridesh/gradadm/facstaff.html @@ -0,0 +1,185 @@ + +Faculty and staff of Department of Computer Science + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Tenured and Tenure-Track Faculty

    +

    +

    + +

    Adjunct, Temporary, and Affiliate Faculty

    + +

    Retired and Emeritus Faculty

    + + +

    Lecturers

    + + +

    Undergraduate Advisors

    + + +

    +Computing Systems Support Staff

    + + +

    Computer Science Office Staff

    + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + + + + + diff --git a/hridesh/gradadm/facstaff.html.bak b/hridesh/gradadm/facstaff.html.bak new file mode 100755 index 0000000..a627983 --- /dev/null +++ b/hridesh/gradadm/facstaff.html.bak @@ -0,0 +1,169 @@ + +Faculty and staff of Department of Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Tenured and Tenure-Track Faculty

    +

    +

    + +

    Adjunct, Temporary, and Affiliate Faculty

    + +

    Retired and Emeritus Faculty

    + + +

    Instructors

    + + +

    Undergraduate Advisors

    + + +

    +Computing Systems Support Staff

    + + +

    Computer Science Office Staff

    + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + + + + + diff --git a/hridesh/gradadm/g.tar b/hridesh/gradadm/g.tar new file mode 100644 index 0000000..d6830ec Binary files /dev/null and b/hridesh/gradadm/g.tar differ diff --git a/hridesh/gradadm/gacmentor.html b/hridesh/gradadm/gacmentor.html new file mode 100755 index 0000000..49b426a --- /dev/null +++ b/hridesh/gradadm/gacmentor.html @@ -0,0 +1,193 @@ +June 13, 2002

    + Student Mentor List for Fall 2002
    +For students who have indicated they will be attending ISU. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CS IDGACMentor
    3008Ashwin Natarajan, ashwin@cs.iastate.edu
    3012Curt Clifton, cclifton@cs.iastate.edu
    3029Jie Bao, baojie@cs.iastate.edu
    3050Ashwin Natarajan, ashwin@cs.iastate.edu
    3086Facundo Bromberg, bromberg@cs.iastate.edu
    3127Dingding Lu, ddlu@cs.iastate.edu
    3149Jiangyi Pan, pjyi@cs.iastate.edu
    3151Ashwin Natarajan, ashwin@cs.iastate.edu
    3155Zhan Chen, zchen@cs.iastate.edu
    3159
    3176Wei Huang, huangwei@cs.iastate.edu
    3180Curt Clifton, cclifton@cs.iastate.edu
    3199John Hitchcock, jhitchco@cs.iastate.edu
    3216
    3229John Hitchcock, jhitchco@cs.iastate.edu
    3246Ashwin Natarajan, ashwin@cs.iastate.edu
    3263Jiangyi Pan, pjyi@cs.iastate.edu
    3287
    3319Jiangyi Pan, pjyi@cs.iastate.edu
    3342Curt Clifton, cclifton@cs.iastate.edu
    3345Wei Huang, huangwei@cs.iastate.edu
    3368
    3376Ashwin Natarajan, ashwin@cs.iastate.edu
    3378Ashwin Natarajan, ashwin@cs.iastate.edu
    3393
    3409Wei Huang, huangwei@cs.iastate.edu
    3411Jie Bao, baojie@cs.iastate.edu
    3423Curt Clifton, cclifton@cs.iastate.edu
    3427Facundo Bromberg, bromberg@cs.iastate.edu
    3433Wei Huang, huangwei@cs.iastate.edu
    3436John Hitchcock, jhitchco@cs.iastate.edu
    3451Dingding Lu, ddlu@cs.iastate.edu
    3453Zhan Chen, zchen@cs.iastate.edu
    3463Facundo Bromberg, bromberg@cs.iastate.edu
    3467Zhan Chen, zchen@cs.iastate.edu
    3468No Mentor
    3476Hua Ming, hming@cs.iastate.edu
    3486
    3499Dae-Ki Kang, dkkang@cs.iastate.edu
    3520Jiangyi Pan, pjyi@cs.iastate.edu
    3555Jie Bao, baojie@cs.iastate.edu
    3690Dingding Lu, ddlu@cs.iastate.edu
    3706Dingding Lu, ddlu@cs.iastate.edu
    3736Hua Ming, hming@cs.iastate.edu
    3738Hua Ming, hming@cs.iastate.edu
    diff --git a/hridesh/gradadm/grad-directory.html b/hridesh/gradadm/grad-directory.html new file mode 100755 index 0000000..496dfbf --- /dev/null +++ b/hridesh/gradadm/grad-directory.html @@ -0,0 +1,323 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Graduate Students

    +Graduate students in the department pursue Ph.D. or M.S. degrees in Computer Science or one of the interdepartmental graduate programs such as Bioinformatics and Computational Biology, Information Assurance, or Neuroscience, with Computer Science as their home department. +

    Computer Science Ph.D. Students

    +The name(s) of the thesis supervisor(s) is (are) indicated in parenthesis. + +
    +

    +

    Bioinformatics and Computational Biology Ph.D. Students

    +(with Computer Science as their Home Department) + +

    Computer Science M.S. Students

    + + +

    Information Assurance M.S. Students

    +(with Computer Science as their home department) + + +

    Bioinformatics and Computational Biology M.S. Students

    +(with Computer Science as their home department) + + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/grad_ta.html b/hridesh/gradadm/grad_ta.html new file mode 100644 index 0000000..07aee56 --- /dev/null +++ b/hridesh/gradadm/grad_ta.html @@ -0,0 +1,88 @@ + + + Graduate Teaching Assistantship + + +
    +

    +WELCOME + +

    +Computer Science Teaching Assistantship
    +Application Website +
    + +

    +APPLICATIONS ARE RESTRICTED
    +TO
    +COMPUTER SCIENCE MAJORS ONLY
    +
    + +

    +New applications required each semester + + +

    + +Guidelines for obtaining and maintaining a Teaching Assistantship are outlined under the +appropriate Graduate or Undergraduate application site. + +
    + +

    +Application Deadline(s): + + +

    + + + + + + + + + + + + +
    + + Spring + + + November 1 +
    + + Summer + + + March 1 +
    + + Fall + + + April 1 +
    + +

    + +Please complete the appropriate on-line form and submit by the stated semester deadline. Only complete and accurate applications will be considered. + +
    + +

    + +Students required to complete a SPEAK/TEACH exam must obtain a speak/teach level of 1 or 2 to be considered. Speak/teach Testing information may be obtained from the following website: + +
    + +

    http://www.grad-college.iastate.edu/speakteach/ +

    + +
    + + + + \ No newline at end of file diff --git a/hridesh/gradadm/grad_ta_application.html b/hridesh/gradadm/grad_ta_application.html new file mode 100644 index 0000000..a389b37 --- /dev/null +++ b/hridesh/gradadm/grad_ta_application.html @@ -0,0 +1,287 @@ + + + Graduate Teaching Assistantship (TA) Application + + +
    +

    IOWA STATE UNIVERSITY
    +Department of Computer Science

    + +

    Departmental Policy on Teaching Assistantships and
    +Tuition Scholarships for Graduate Students

    +
    + +

    +Effective immediately, the following policy will be applied in regard to +offering teaching assistantships and tuition scholarships to graduate +students. + +

    Part I. Requirements and Conditions for Teaching Assistant Appointment

    +
      +
    1. Only computer science majors will be considered for departmental +funds. Faculty members may pay tuition scholarship for a non-major from +his/her own source of funding* (e.g. grant, contract, etc.) + +
    2. The department will not be responsible for tuition scholarships of +concurrent and dual major (such as ECE, BCB, INFAS, etc.) students. + +
    3. Entering graduate students will be offered tuition scholarships with +their teaching assistantship appointments for one academic year. + +
    4. Entering graduate students will be offered tuition scholarships from +the corresponding grant accounts if they are appointed as research +assistants and their sponsoring faculty member approves. + +
    5. Students with cumulative GPA under 3.0 will not be eligible for +consideration for tuition scholarships. + +
    6. International students must pass the SPEAK/TEACH test with Level 1 or +2 rating. + +
    7. At the end of each semester, and before the beginning of the +following semester, all TAs will be evaluated for teaching performance +and other criteria for continuing appointments. A ranking order for all +current TAs and applicants will be maintained by the department. +Criteria for new or continuing TA appointments include, but are not +limited to, the following (in random order):
        + +
      1. cumulative GPA + +
      2. teaching performance evaluation by both faculty and + students + +
      3. progress towards degree + +
      4. proficiency level in SPEAK test + +
      5. satisfactory performance of other basic duties (see Part + II.) +
      + +
    8. The maximal number of years to receive tuition scholarships for MS +students is 3 and PhD students is 5. + +
    + +

    * All grant proposals must have the tuition scholarship component, +unless the funding agency explicitly prohibits such an option. The +department will not sign a grant proposal unless the tuition for +graduate student research assistants is budgeted into the proposal. + +

    Part II. Office Duty Requirements for Consideration of Subsequent Semester Teaching Assistantship Offers

    +
      +
    1. Office key(s), from current semester, must be returned to Facilities +Planning and Management Key Service office and a receipt returned to the +main office the Tuesday after classes end. + + + +
    2. All personal materials must be removed from current office space and +the room left in a clean, orderly and readily useable condition by the +Tuesday after classes end. + + + +
    3. All books must be returned to the main office by the Tuesday after +classes end. +
    + + +
    + +
    +
    + + + + +

    Iowa State University: Computer Science

    Application For

    Graduate Teaching Assistantship (TA)

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Semester you are applying for?        Spring   Summer   Fall     200
    Current Major?    
    Hours per week you are available?     10 20
    Current GPA?
    Current Speak/Teach Level?
    Specify course preference(s) - if any. Consideration will be given, but not guranteed.
     Preference 1: Preference 2:Preference 3:
     
    Contact Information
    NameFirst Middle Initial 
     Last 
    Phone Number
    E-Mail
    ISU Com S Course History
    Indicate GRADE you received in the following ISU Computer Science courses:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    103 201 227 311 331 361 401 425 440 471 476
    104 207 228 321 342 362 418 426 454 472 481
    107 208 309 330 352 363 421 430 461 474 484
     
    502 512 526 548 552 561 574 587 612 631 652
    503 515 531 549 554 562 576 594 624 633 661
    507 518 540 550 555 572 577 596 625 634 672
    511 525 541 551 556 573 586 611 626 641 673
    + + + + + + + + + + +
    + Personal Assessment - Why you feel you would be successful as a TA! +
    + Please Submit with Updated Resume by Separate Email to ldutton@cs.iastate.edu

    + +
    +
    + + \ No newline at end of file diff --git a/hridesh/gradadm/gradalumni.html b/hridesh/gradadm/gradalumni.html new file mode 100755 index 0000000..47abdbb --- /dev/null +++ b/hridesh/gradadm/gradalumni.html @@ -0,0 +1,29 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Alumni

    +

    Ph.D. Graduates

    +

    M.S. Graduates

    +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections, updates and web or email link additions to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/gradcourses.html b/hridesh/gradadm/gradcourses.html new file mode 100755 index 0000000..07a1091 --- /dev/null +++ b/hridesh/gradadm/gradcourses.html @@ -0,0 +1,43 @@ + +Graduate Courses in Computer Science at Iowa State University + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Graduate Courses in Computer Science at Iowa State University

    +

    +The Department of Computer Science offers a broad range of graduate courses +in several +areas of Computer Science including foundations of computer science, algorithms, artificial intelligence, machine learning, robotics, neural computing, computational learning theory, database and knowledgebase systems, distributed computing, networks, computational biology and bioinformatics, complexity theory, multimedia computing, programming languages, software engineering, software systems, and parallel computing. +

    +In addition to the courses currently listed in the graduate catalog, there are several experimental courses that are taught every semester. Interested students should contact the Department of Computer Science for information about such course offerings. +

    +

    +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall,
    Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +

    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + + + + diff --git a/hridesh/gradadm/gradstudents.html b/hridesh/gradadm/gradstudents.html new file mode 100755 index 0000000..5cc3bdc --- /dev/null +++ b/hridesh/gradadm/gradstudents.html @@ -0,0 +1,204 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Graduate Students

    +

    Ph.D. Students

    +The name(s) of the thesis supervisor(s) is (are) indicated in parenthesis. + + +

    M.S. Students

    + + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/grants.html b/hridesh/gradadm/grants.html new file mode 100755 index 0000000..642b1be --- /dev/null +++ b/hridesh/gradadm/grants.html @@ -0,0 +1,308 @@ + +Department of Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +Current Research and Training Grants +

    +

      +
    1. +Carl Chang (PI), Traceability Based Dynamic Metrics as a Tool for Evaluating Partitioning Decisions in Object-Oriented Architecture. National Science Foundation (2001-2004), $200,000. +

      +

    2. +Soma Chaudhuri (Co-PI) (with Akhilesh Tyagi, Dept of Electrical and Computer +Engg), Program Obfuscation and Watermarking: Use of Distributed +Consensus, Department of Defense (2002-2004). $374,677. +

      +

    3. +Hui-Hsien Chou (PI), Visual Data Extraction and Conversion Programming Tool. National Institute of General Medical Sciences, National Institutes of Health (2002-2006). $720,000. +

      +

    4. +Oliver Eulenstein (Co-PI), (with Michael Sanderson and Dan Gusfield, UC-Davis) Algorithms and Software for Phylogenetic Supertrees, National Science Foundation, (2000-2003). $370,000. +

      +

    5. +Oliver Eulenstein (PI), (with David Fernandez-Baca (Co-PI)) AToL: Collaborative Research: A Phylogenomic Toolbox for Assembling the Tree of +Life Molecular Sequence Databases, National Science Foundation, (2003-2008). $976,520. +

      +

    6. +David Fernandez-Baca, Topics in Parametric Optimization. National Science Foundation(200-2004). $197,360. +

      +

    7. +Vasant Honavar (PI), + +ITR: Algorithms and Software for Knowledge Acquisition from Heterogeneous Distributed Data. National Science Foundation (2002-2005). $210,000. +

      +

    8. +Vasant Honavar (PI), (with Drena Dobbs and Robert Jernigan), +Discovering Protein Sequence-Structure-Function Relationships, Biological Information Science and Technology Initiative, +National Institutes of Health (2003-2007). $1,022,000. +

      +

    9. +Vasant Honavar (Co-PI), (with Heather West-Greenlee and Jan Buss), Gene Expression Analysis in the Developing Retina, +National Institutes of Health (2003-2006). $438,000. +

      +

    10. +Vasant Honavar (Co-PI) (with Volker Brendel, Robert Jernigan, Karin Dorman, and Xun Gu). + +NIH-NSF BBSI Summer Institute in Bioinformatics and Computational Biology - Iowa State University. National Science Foundation (2002-2006). $645,000. +

      +

    11. +Vasant Honavar (Co-PI) (with Dan Voytas (Botany), Susan Carpenter (Biomedical Sciences), Pat Schnable and Jonathan Wendel (Zoology and Genetics)). +IGERT: Computational Biology Training Program. National Science Foundation (1999-2004). $3,860,171 (plus $1,161,010 in matching funds). +

      +

    12. +Vasant Honavar (Co-PI), Les Miller (with Dianne Cook, Statistics). +Interactive and Dynamic Overviews of Large, Multi-Dimensional Datasets. National Science Foundation (1999-2004). $370,000. +

      +

    13. +Vasant Honavar (Co-PI) (with +James McCalley, Electrical Engineering, in collaboration with Mladen Kezunovic, Chanan Singh of Texas A&M). +Automated Integration of Condition Monitoring with an Optimized Maintenance Scheduler for Circuit Breakers and Power Transformers. Power Systems Engineering Research Center (a National Science Foundation Industry-University Research Center). (2002-2005). +$255,000. +

      +

    14. +Vasant Honavar, (with doctoral students Adrian Silvescu and Carson Andorf), Pioneer Hi-Bred Graduate Fellowships in Bioinformatics and Computational Biology. (2002-2004). $80,000. +

      +

    15. +Vasant Honavar (with doctoral student Doina Caragea), IBM Doctoral Research Fellowship. (2003-2004). $25,000. +

      +

    16. +Vasant Honavar (with V. Vittal, S. Venkata, J. McCalley, G. Sheble, and V. Ajjarapu (Electrical Engineering), +Leigh Tesfatsion (Economics), and Wolfgang Kleimann (Mathematics)). +Innovative Technologies for Defense Against Catastrophic Failures of Complex, Interactive Power Networks, +U.S. Department of Defense (DOD) and Electric Power Research Institute (EPRI), $4,500,000. (1999 - 2004) (Collaborative project involving 9 ISU faculty and faculty from 3 other universities). +

      +

    17. +Xiaoqiu Huang (PI), A DNA Sequence Assembly Program, +National Human Genome Research Institute, National Institutes of Health, +$414,003, (2001-2004). +

      +

    18. +Yan-Bin Jia (PI), CAREER: Shape Localization, Recognition, and Reconstruction Through Touch Sensing. National Science Foundation (2002-2007). $349,621. +

      +

    19. +Gary T. Leavens (Co-PI), +ITR/SY: Modular Interface Violation Checking Using Formally-Specified +Contracts. Subcontract on a proposal by Murali Sitaraman of Clemson University, +and Stephen Edwards of Virginia Tech. +National Science Foundation (2001-2004). +$109,383 +

      +

    20. +Gary Leavens (PI), (with Don Pigozzi (Mathematics)). Formal Methods for Extensible Object-Oriented Software, National Science Foundation (2001-2004). $200,000. +

      +

    21. +Jack Lutz (PI), Vasant Honavar (Co-PI), Pavan Aduri (Co-PI), Krishna Athreya (Co-PI) + +SGER: Multidisciplinary Aspects of Computation Theory, National Science Foundation (2003-2004). $74,948. +

      +

    22. +Jack Lutz (PI), + +Measure and Information in Computational Complexity, National Science Foundation (2000-2004). $249,902. +

      +

    23. +Robyn Lutz (with Ann Patterson-Hine and Stacy Nelson, NASA Ames Research Center), +Contingency Software in Autonomous Systems, NASA (2003-2004), $260,000 +

      +

    24. +Robyn Lutz (PI), + +Safety Analysis for Critical Product Lines, National Science Foundation (2002-2005), $279,154 +

      +

    25. +Robyn Lutz (PI), +(with John Knight, University of Virginia), + +ITR: Natural Language in the Development of High-Confidence Software, +National Science Foundation (2002-2005), $201,974 +

      +

    26. +Les Miller (Co-PI) (with Sarah Nusser, George Covert, Vasant Honavar, and Johnny Wong) Subcontract on a multi-university ITR proposal Digital Government: Collecting and Using Geospatial Data in the Field: An Extensible Framework and Testbed, National Science Foundation (2001-2003). $1,497,800 (Estimated). +

      +

    27. +Lu Ruan (PI), +CAREER: Resilience Schemes for Survivable IP over WDM Networks. +National Science Foundation (2003-2008). $447,403. +

      +

    28. +Wallapak Tavanapong (PI), + +CAREER: Strategies for Caching Information on Distributed Systems. +National Science Foundation (2001-2006). $253,930 +

      +

    29. +Johnny Wong (Co-PI), (with J. Davis, D. Jacobson, (Electrical Computer Engineering), +and C. Bergman (Mathematics), A, Ho (Political Science), B. Licklider +(Education)). SFS Fellowships for Information Assurance Students, +National Science Foundation (2001-2005). $2,626,027 (estimated). +

      +

    30. +Johnny Wong (Co-PI), (with J. Davis, D. Jacobson, (Electrical Computer Engineering), +and C. Bergman (Mathematics), Steffen Schmidt (Political Science)) +Information Assurance Educational Support Program, National Science Foundation (2001-2004), 200,000. +

      +

    +

    +Recently Expired Research and Training Grants (1995-2003) +

    +

      +

      +

    1. +Soma Chaudhuri, The Power of Inexact Timing Information in Distributed Systems, National Science Foundation, (1993-1998). $94,598. +

      +

    2. +Hui-Hsien Chou, Preliminary Studies of Cellular Automata Self-Replication Programming. National Science Foundation (2000-2001). $50,948. +

      +

    3. +David Fernandez-Baca, Algorithms in Parametric Optimization. National Science Foundation(1995-2001). $163,965. +

      +

    4. +David Fernandez-Baca, Algorithms in Parametric Optimization. National Science Foundation(1992-1995). $80,403. +

      +

    5. +Vasant Honavar (with doctoral student Doina Caragea), IBM Doctoral Research Fellowship. (2002-2003). $25,000. +

      +

    6. +Vasant Honavar (with James McCalley, Electrical Engineering). Distributed Knowledge Networks to Provide Decision Support for Security-Economy Decisions in Operating Stressed Power Systems. National Science Foundation (2000-2001). $99,999. +

      +

    7. +Vasant Honavar, +Data Mining of Electric Power Usage Data to Develop Customer Profiles. Exploratory Cooperative Research Proposal. Power Domain, Inc. (2001-2002). $43,639. +

      +

    8. +Vasant Honavar (with Drena Dobbs), +An Agent-Based Environment for Integrating and Analyzing Plant Genomic Databases, Pioneer Hi-Bred, (2000-2002). $40,000. +

      +

    9. +Vasant Honavar +Constructive Neural Network Learning Algorithms for Pattern Classification, National Science Foundation, (1994-1999). $121,537

      +

    10. +Vasant Honavar, Distributed Knowledge Networks. John Deere Foundation. (1999-2001). $30,000. +

      +

    11. +Vasant Honavar (with Phil Haydon, Drena Dobbs, and Pat Schnable) +Development of Algorithmic Approaches to Gene Expression Analysis from Microarray Data, Carver Foundation, (2000-2001). $25,000. +

      +

    12. +Vasant Honavar (with Kai-Ming Ho, Amy Andreotti, Drena Dobbs, Gavin Naylor, Les Miller, and James Morris). +Genetic Algorithms for Protein Structure Prediction, DOE Ames Laboratory, (1999-2000). $35,000. +

      +

    13. +Vasant Honavar (with Gavin Naylor). A Gene Specific DNA Chip for Exploring Molecular Evolutionary Change, Carver Foundation, (1998-1999). $17,200. +

      +

    14. +Vasant Honavar (with Drena Dobbs, Kai-Ming Ho, Amy Andreotti, Gavin Naylor, and Les Miller). +Development of Protein Structure Prediction Algorithms. Carver Foundation, (1999-2000). $25,000. +

      +

    15. +Vasant Honavar (with doctoral student Karthik Balakrishnan). +Cooperative Graduate Research Fellowship in Data Mining and Knowledge Discovery. IBM Corporation. (1997-1998). $25,000. +

      +

    16. +Vasant Honavar +Integrated Intelligent Diagnosis and Advisory Systems - Analysis, John Deere Foundation, (1995-1996). $15,000. +

      +

    17. +Vasant Honavar +Integrated Intelligent Diagnosis Systems, John Deere Foundation, (1996-1998). +$15,000. +

      +

    18. +Steve Lavalle. +CAREER: Motion Strategy Algorithms for Geometry-Intensive Applications, National Science Foundation (1998-). $400,001. +

      +

    19. +Gary Leavens +Simultaneous Round-Trip Engineering for UML and Java/EJB. +ETRI Computer and Software Technology Labs (Korea) (2001-2002), $70,000 +

      +

    20. +Gary Leavens, Albert Baker (with Don Pigozzi (Mathematics)). Formal Methods for Multimethod Software Components, National Science Foundation (1998-2000). $210,000. +

      +

    21. +Gary Leavens, +Practical and Effective Interface Specifications. Rockwell International (1998). $40,000. +

      +

    22. +Gary Leavens, (with Don Pigozzi (Mathematics)). A Theoretical and Practical Basis for Applying Formal Methods to Object-Oriented Programming and C++, National Science Foundation (1995-1998). $239,998. +

      +

    23. +Jack Lutz. + +Measure and Randomness in Computational Complexity, National Science Foundation (1997-2000). $183,375. +

      +

    24. +Jack Lutz. +PYI: +The Internal Quantitative Structure of Complexity Classes, National Science Foundation (1991-1997). $266,000. +

      +

    25. +Jack Lutz. Matching Funds for PYI Award, Rockwell International (1991-1996). $100,000. +

      +

    26. +Jack Lutz. Matching Funds for PYI Award, Microware Systems Corporation (1992-1996). $32,000. +

      +

    27. +Jack Lutz. Matching Funds for PYI Award, Amoco Foundation (1993-1995). $9,000. +

      +

    28. +Robyn Lutz (with Carmen Mikulski, Jet Propulsion Laboratory). +Formalized Pilot Study of Safety-Critical Software Anomalies, NASA Office of Safety and Mission Assurance, $435,000 (1999-2002). +

      +

    29. +Johnny Wong, +Vasant Honavar, and Les Miller +Intelligent Multi-Agent Systems for Intrusion Detection, Department of Defense University Research Program (MDA904-98-R-S221) (1998-2000). $199,769. +

      +

    30. +Johnny Wong (Co-PI), (with J. Davis, D. Jacobson, (Electrical Computer Engineering), and C. Bergman (Mathematics)). +CISE Educational Innovation: Integrated Security Curricula Modules, National Science Foundation (1999-2002). $324,999. +

      +

    31. +Johnny Wong, +Optimizing Virtual Reality Environmental Fidelity, +Engineering Animation, Inc. (1996-1997). +$15,000. +

      +

    32. +Johnny Wong, +Instructional Laboratory Grant, Microsoft Corporation, +(1997-1999). $28,442 +

      +

    33. +Johnny Wong, +Distributed Database Support for Image Visualization, +Engineering Animation, Inc. (1997-1998). +$26,408. +

    34. +Johnny Wong, +Database-generating and X-ray Displaying World Wide Web Applications +Mayo Foundation, (1998-2000). $287,056. +
    +

    +In addition to the grants from the National Science Foundation and the +Department of Defense, research in the Computer Science Department has been, and is being, supported by industrial and university sources. +

    +


    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall,
    Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +

    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + diff --git a/hridesh/gradadm/html/labs.html b/hridesh/gradadm/html/labs.html new file mode 100644 index 0000000..e6728ea --- /dev/null +++ b/hridesh/gradadm/html/labs.html @@ -0,0 +1,50 @@ + +Department of Computer Science + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Research Labs and Groups


    + +
    + +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + + + + + + + + diff --git a/hridesh/gradadm/html/mission.shtml b/hridesh/gradadm/html/mission.shtml new file mode 100644 index 0000000..fa69c87 --- /dev/null +++ b/hridesh/gradadm/html/mission.shtml @@ -0,0 +1,195 @@ + + + +Computer Science at Iowa State University + + + +Our Mission +

    +Computer Science + +

    +The emergence of Computer Science or +Informatics is +perhaps one of the most significant intellectual developments of the +twentieth century. Computer Science, broadly defined, is the study of +information processes that underlie the structure, behavior, and interactions +in computational systems. The field encompasses a large body +of knowledge about algorithms, processes, information, communication, +languages, and systems. It offers a new paradigm for representing, processing, +acquiring, and communicating knowledge. +

    +Almost every aspect of everyday life has been transformed by Information Technologies enabled by Computer Science. +There is a growing realization that Information technology is +essential for solving critical problems in areas such as +fundamental science and engineering, education; the environment, +health care, and government operations. The recent explosive growth +in computer power and connectivity is reshaping relationships among +people and organizations, and transforming the processes of +discovery, learning, and communication. As a result of these +technological advances, we have unprecedented opportunities for +providing rapid and efficient access to enormous amounts of +knowledge and information; for studying vastly more complex systems +than was hitherto possible; and for advancing in fundamental ways +our understanding of information processes in natural and +artificial systems. Computer and Information Science plays a central +role in facilitating major advances in human capability to +generate, model, and represent more complex and cross-disciplinary +scientific data from new sources and at enormously varying scales; +to transform this information into knowledge by combining and +analyzing it in new ways; to deepen our understanding of learning +and intelligence in natural and artificial systems; and to +collaborate by sharing knowledge and working together. +

    Computer science is transforming several of the basic and applied sciences +including biological, physical, and cognitive sciences. The language of +algorithms provides to the study of life and mind, what calculus +provided for the study of physics. Without the language of calculus +(which provided the tools for characterizing and quantifying +rates of change), it is hard to conceive of classical physics, +mechanics, and most branches of engineering. +Computer programs embody new theories and dynamic models +of cognitive +phenomena such as memory and learning, perception, language understanding, +and problem solving; physical phenomena such as planetary +motion; biological processes such as evolution; +and social phenomena such as economic behavior. Thus, computer science is fundamentally transforming the way we understand ourselves and the world around us. +

    +

    +Our Mission +

    +The Department of Computer Science embraces its role in research +and education in Computer and Information Sciences. +Excellent faculty, state-of-the-art research laboratories, a +well-funded research program, opportunities provided by the +Center for Bioinformatics and Biostatistics, DOE Ames Laboratory, Virtual Reality Applications Center, provide a stimulating academic environment that nurtures leading edge research and innovative education in Computer Science. +

    +

    +The Department of Computer Science is central to the mission of Iowa State University's research and educational mission. +The +constant flow of students and researchers armed with the concepts and +techniques from Computer Science courses into virtually every discipline, department, and research center at Iowa State University testifies to the department's +pivotal role in the research and education programs across the university. The department offers nationally and internationally recognized research and educational programs in several areas of Computer and Information Sciences and plays a central role in several interdisciplinary programs such as Bioinformatics +and Computational Biology. The constant flow into the department of some of the brightest +students, researchers, and faculty from around the world and the +high demand for our graduates and their success +in leadership positions in both academia and industry bear testimony to the +effectiveness of our research and educational programs. + +

    +References +

    + + + + + diff --git a/hridesh/gradadm/https--www.cs.iastate.edu-internal-.url b/hridesh/gradadm/https--www.cs.iastate.edu-internal-.url new file mode 100644 index 0000000..de90e98 --- /dev/null +++ b/hridesh/gradadm/https--www.cs.iastate.edu-internal-.url @@ -0,0 +1,7 @@ +[DEFAULT] +BASEURL=https://www.cs.iastate.edu/internal/ +[InternetShortcut] +URL=https://www.cs.iastate.edu/internal/ +IDList= +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,11 diff --git a/hridesh/gradadm/images/atan-small.gif b/hridesh/gradadm/images/atan-small.gif new file mode 100644 index 0000000..6fbc956 Binary files /dev/null and b/hridesh/gradadm/images/atan-small.gif differ diff --git a/hridesh/gradadm/images/ataylor.jpg b/hridesh/gradadm/images/ataylor.jpg new file mode 100644 index 0000000..fc2a6f8 Binary files /dev/null and b/hridesh/gradadm/images/ataylor.jpg differ diff --git a/hridesh/gradadm/images/bottom-left.jpg b/hridesh/gradadm/images/bottom-left.jpg new file mode 100644 index 0000000..b5c6bb3 Binary files /dev/null and b/hridesh/gradadm/images/bottom-left.jpg differ diff --git a/hridesh/gradadm/images/bottom-right.jpg b/hridesh/gradadm/images/bottom-right.jpg new file mode 100644 index 0000000..97956e4 Binary files /dev/null and b/hridesh/gradadm/images/bottom-right.jpg differ diff --git a/hridesh/gradadm/images/bottom.jpg b/hridesh/gradadm/images/bottom.jpg new file mode 100644 index 0000000..5634002 Binary files /dev/null and b/hridesh/gradadm/images/bottom.jpg differ diff --git a/hridesh/gradadm/images/cain-0.3.gif b/hridesh/gradadm/images/cain-0.3.gif new file mode 100644 index 0000000..3ada57e Binary files /dev/null and b/hridesh/gradadm/images/cain-0.3.gif differ diff --git a/hridesh/gradadm/images/left.jpg b/hridesh/gradadm/images/left.jpg new file mode 100644 index 0000000..65114b3 Binary files /dev/null and b/hridesh/gradadm/images/left.jpg differ diff --git a/hridesh/gradadm/images/network.gif b/hridesh/gradadm/images/network.gif new file mode 100644 index 0000000..8fadad0 Binary files /dev/null and b/hridesh/gradadm/images/network.gif differ diff --git a/hridesh/gradadm/images/right.jpg b/hridesh/gradadm/images/right.jpg new file mode 100644 index 0000000..968ff86 Binary files /dev/null and b/hridesh/gradadm/images/right.jpg differ diff --git a/hridesh/gradadm/images/top-left.jpg b/hridesh/gradadm/images/top-left.jpg new file mode 100644 index 0000000..96c3a8f Binary files /dev/null and b/hridesh/gradadm/images/top-left.jpg differ diff --git a/hridesh/gradadm/images/top-right.jpg b/hridesh/gradadm/images/top-right.jpg new file mode 100644 index 0000000..0f96e9a Binary files /dev/null and b/hridesh/gradadm/images/top-right.jpg differ diff --git a/hridesh/gradadm/images/top.jpg b/hridesh/gradadm/images/top.jpg new file mode 100644 index 0000000..1b0b496 Binary files /dev/null and b/hridesh/gradadm/images/top.jpg differ diff --git a/hridesh/gradadm/index.htm b/hridesh/gradadm/index.htm new file mode 120000 index 0000000..64233a9 --- /dev/null +++ b/hridesh/gradadm/index.htm @@ -0,0 +1 @@ +index.html \ No newline at end of file diff --git a/hridesh/gradadm/index.html b/hridesh/gradadm/index.html new file mode 100755 index 0000000..bea213f --- /dev/null +++ b/hridesh/gradadm/index.html @@ -0,0 +1,161 @@ + + +Graduate Program in Computer Science + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +Graduate Program in Computer Science at Iowa State University +

    +The Department of Computer Science offers +research-based advanced training leading to a Ph.D. in +Computer Science. The department also offers an M.S. degree. The department has +strong research programs in Algorithms, Artificial Intelligence, Bioinformatics and Computational Biology, Complexity Theory and Complex Systems, Databases, Parallel and Distributed Computing, Programming Languages, Multimedia Systems, Networks, Robotics, Software Engineering, and Theory of Computing. Additional +information about the department (research areas, faculty, research projects, +courses, etc.) +can be found here. In a typical year, approximately 100-125 full-time +students are enrolled in the graduate program. In fall 2003, the Computer Science graduate program had approximately 80 Ph.D. students and 40 M.S. students. +

    +Recipients of Ph.D. and M.S. degrees in Computer Science from Iowa State University have a virtually 100% success rate at obtaining top quality jobs in +either academia or industry. +

    +In addition to Ph.D. and M.S. degrees in Computer Science, interdepartmental +Ph.D. programs in Bioinformatics and Computational Biology (BCB) , Human-Computer Interaction, and Neuroscience offer opportunities for research-based training of Computer Science graduate students. Students interested in pursuing these opportunities should apply for admission to the respective intedepartmental program as well. Computer Science department also participates in an interdepartmental MS degree program in Information Assurance. +

    +Excellent faculty, state-of-the-art research laboratories, a well-funded research program, opportunities provided by the +Center for Bioinformatics and Biostatistics, DOE Ames Laboratory, Information Systems Security Laboratory, Virtual Reality +Applications Center, provide a stimulating academic environment that nurtures leading-edge research and innovative education in Computer Science. +

    +Iowa State University is a major land grant university located in Ames, Iowa. Ames is a pleasant, small yet cosmopolitan city with a population of 50,000 (25,000 students), a vibrant cultural scene, and a secondary school system that ranks one of the best in the United States. +It is within convenient driving distance from the cultural and entertainment +opportunities offered by Kansas City, Minneapolis, and Chicago. +

    +Information for Applicants to Graduate Program in Computer Science +

    + +Information for Applicants to Concurrent Degrees and Graduate Minors + +Graduate Degree Requirements + + +Graduate Research Opportunities in Computer Science + + +Graduate Courses in Computer Science + +

    +Graduate Students and Alumni +

    +

    + +Funding for Graduate Students +

    +

    +Advice on Graduate Studies +

    +

    +Jobs for Graduates +

    +

    +Graduate Program in Computer Science at Iowa State University +

    +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + + diff --git a/hridesh/gradadm/labs.html b/hridesh/gradadm/labs.html new file mode 100755 index 0000000..e6728ea --- /dev/null +++ b/hridesh/gradadm/labs.html @@ -0,0 +1,50 @@ + +Department of Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Research Labs and Groups


    + +
    + +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + + + + + + + + diff --git a/hridesh/gradadm/labs.shtml b/hridesh/gradadm/labs.shtml new file mode 100755 index 0000000..19ca537 --- /dev/null +++ b/hridesh/gradadm/labs.shtml @@ -0,0 +1,34 @@ + +Department of Computer Science + + +

    Research Labs and Groups


    + +

    + + + + + + + + + + + diff --git a/hridesh/gradadm/letrec.gif b/hridesh/gradadm/letrec.gif new file mode 100755 index 0000000..ce5b99a Binary files /dev/null and b/hridesh/gradadm/letrec.gif differ diff --git a/hridesh/gradadm/letrec.pdf b/hridesh/gradadm/letrec.pdf new file mode 100755 index 0000000..1ae297a Binary files /dev/null and b/hridesh/gradadm/letrec.pdf differ diff --git a/hridesh/gradadm/links.html b/hridesh/gradadm/links.html new file mode 100755 index 0000000..3309836 --- /dev/null +++ b/hridesh/gradadm/links.html @@ -0,0 +1,300 @@ + +Useful Links + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    + +

    Useful Links

    + + + + +
    + +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    + + +
    +Changes and additions to this page should be directed to honavar@cs.iastate.edu + + + diff --git a/hridesh/gradadm/meetings.html b/hridesh/gradadm/meetings.html new file mode 100755 index 0000000..c142d75 --- /dev/null +++ b/hridesh/gradadm/meetings.html @@ -0,0 +1,26 @@ +Computer Science Department New Graduate Student Check-in Sessions +

    +225 Atanasoff Hall +

    + +Please attend one of the following group sessions if you arrive during these dates. If you arrive before August 12, you can stop in 226 Atanasoff any time. If you arrive after August 21, please stop in to see Melanie in any time. + +

    +August 12 -- 10:00 a.m.
    +August 13 -- 1:00 p.m.
    +August 14 -- 2:00 p.m.
    +August 15 -- 9:00 a.m.
    +August 15 -- 2:00 p.m.
    +August 16 -- 10:00 a.m.
    +August 16 -- 2:00 p.m.
    +August 19 -- 9:00 a.m.
    +August 19 -- 1:00 p.m.
    +August 20 -- 9:00 a.m.
    +August 20 -- 2:00 p.m.
    +August 21 -- 2:00 p.m.
    + +

    + +Thanks,
    +Melanie + diff --git a/hridesh/gradadm/minimum.html b/hridesh/gradadm/minimum.html new file mode 100755 index 0000000..ed70204 --- /dev/null +++ b/hridesh/gradadm/minimum.html @@ -0,0 +1,101 @@ + +Admission Criteria for Graduate Program in Computer Science + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +
    +

    Admission Criteria for Graduate Program in Computer Science

    +
    +

    +Thank you for your interest in graduate program in Computer Science +at Iowa State University. We recognize the time and expense students must +invest when they decide to apply for graduate study. This document +is intended to assist prospective students in determining whether they meet +the criteria for admission to the graduate program in Computer +Science at Iowa State University. +

    + +A major goal of our graduate program is to provide high quality research-based graduate training in Computer Science leading to a Ph.D. degree. The department also offers an M.S. degree. Each year, we receive a very large number of applications from highly qualified candidates for our Ph.D. program in Computer Science. +Given limited resources, this means that +we can only admit the most outstanding applicants among those who apply. Admission decisions are based on a careful evaluation and ranking of completed applications on the basis of criteria which include academic credentials, quality of undergraduate institution, letters of recommendation, research credentials (or potential), teaching experience (or potential), relevant work experience, aptitude test scores (GRE), written and spoken communication abilities, and any other significant accomplishments. +In 2003, a typical year, only the top 10% of our 800 applicants were admitted. Among the 80 or so applicants that were admitted, approximately 20-25 were offered financial aid in the form of teaching or research assistantships. We expect this to be the same for 2004. + +

    +Applicants who do not satisfy the admission criteria outlined below +are discouraged from applying unless their application presents evidence of otherwise exceptional +credentials (e.g., research experience, outstanding academic performance). +

    +

      +
    • +Undergraduate work: A 4-year university degree is required (see below +for details). A bachelor's degree in Computer Science or a closely-related +discipline is recommended. However, otherwise exceptionally +well-qualified applicants who hold a 4-year bachelor's degree in another discipline but present strong evidence of research potential will be considered for admission. +Candidates should +read and complete the Graduate Applicant Self Evaluation Form +available at http://www.cs.iastate.edu/gradadm/preapp.html to determine whether or not they have the necessary undergraduate background. +
    • +Academic Performance: +A cumulative undergraduate grade point average (GPA) comparable +to a "B+" average or 3.30 out of a possible 4.00, and ranking in the top +quartile (25%) of the graduating class. In the case of international +applicants, this roughly translates to: +
        +
      • +For applicants from United Kingdom, Australia, India, New Zealand, Canada, and +Asian and African countries following the British University model, +a 4-year First Class Bachelor's Degree with +Distinction (3-year degrees are not acceptable) or a First Class +master's degree with a minimum cumulative average marks of 60% or a +cumulative average grade of 7.5 or higher on a 10 point scale. +
      • +For applicants from Japan and Korea, a 4-year bachelor's degree with a cumulative score of 85% or 3.30 GPA on a 4 point scale and ranking in top quartile of graduating class. +
      • +For applicants from Taiwan (ROC), a 4-year bachelor's degree +(3 or 5 year diplomas not acceptable) with a cumulative score of 80%, +and top quartile rank. +
      • +For applicants from China, a 4-year bachelor's degree from a University +with a cumulative score of 85% and ranking in top quartile of the graduating class. +
      • +For applicants from countries in Western Europe, and Latin America, 4 or 5 year University degree and ranking in top quartile of the graduating class. +
      • +For applicants from Eastern Europe and Russia, a 4 or 5 year University degree, with a minimum grade of 7.5 on a 10 point scale and ranking in top quartile of the graduating class. +
      +
    • +Standardized Aptitude Test Scores: Submission Quantitative, Analytical, and Verbal Graduate Record Examination (GRE) scores (i.e., official score sheets from ETS for written or computer based tests or notarized copies of such score sheets) is REQUIRED. Successful applicants typically have GRE scores that place them above the 90th percentile in quantiative and analytical sections (when such percentiles are reported by ETS). +GRE Computer Science Subject Test scores are not required, but recommended. +
    • +English Language Proficiency: +In the case of international applicants, a score of 213 (550 PBT) or higher +on the Test of English as a Foreign Language (TOEFL) is required. +The Test of Written English (TWE) and Test of Spoken English (TSE) are not required but are recommended. +
    +

    +

    +Before applying, potential applicants should read and complete the Graduate +Applicant Self Evaluation Form available at http://www.cs.iastate.edu/gradadm/preapp.html. +

    +Additional information can be obtained from +: www.cs.iastate.edu/gradadm/index.html. +


    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/minimum.shtml b/hridesh/gradadm/minimum.shtml new file mode 100644 index 0000000..0ed604b --- /dev/null +++ b/hridesh/gradadm/minimum.shtml @@ -0,0 +1,50 @@ + +Admission Criteria for Graduate Program in Computer Science + + + + +
    +

    Admission Criteria for Graduate Program in Computer Science

    +
    +

    +Thank you for your interest in graduate study at Iowa State University. This document is intended to assist you in determining criteria for admission. +

    +A primary goal of our graduate program is to provide high quality, research-based graduate training leading to a Ph.D. degree. The department offers an M.S. degree as well. +

    +Given limited resources and a large number of applications, we can admit only the most outstanding applicants. Admission decisions are determined by careful evaluation of criteria which includes, but not limited to, academic credentials, quality of undergraduate institution, letters of recommendation, research and teaching credentials (or potential), relevant work experience, aptitude test scores (GRE), communication competence, and other significant accomplishments. +

    +Applicants not meeting criteria outlined below are discouraged from applying unless the application presents evidence of exceptional credentials regarding research experience or outstanding academic performance. +

    +
    +Undergraduate work: A 4-year university degree is required. A bachelor's degree in Computer Science or a closely-related discipline is recommended. In addition, well-qualified applicants in other disciplines holding a 4-year bachelor's degree and exhibiting evidence of strong research potential will be considered. +

    Candidates should complete the Graduate Applicant Self Evaluation Form available at +

    +

    to assist in determining adequate preparation. This document may be emailed to +grad_adm@cs.iastate.edu and is required by this department. +

    +Academic Performance: A GPA comparable to a "B+" average, or 3.30 out of a possible 4.00, and ranking in the top quartile (25%) of the graduating class. In the case of international applicants, please see below: +

      +

    • United Kingdom, Australia, India, New Zealand, Canada, and Asian and African countries following the British University model: 4-year First Class Bachelor's Degree with Distinction (3-year degrees are not accepted), or a First Class master's degree and minimum cumulative average marks of 60% or a cumulative average grade of 7.5 or higher on a 10 point scale. +
    • Japan and Korea: 4-year bachelor's degree with a cumulative score of 85% or 3.30 GPA on a 4 point scale and ranking in top quartile of graduating class. +
    • Taiwan (ROC): 4-year bachelor's degree (3 or 5 year diplomas not accepted) with a cumulative score of 80%, and ranking in top quartile. +
    • People's Republic of China: 4-year bachelor's degree from a University with a cumulative score of 85% and ranking in top quartile of the graduating class. +
    • Western Europe and Latin America: 4 or 5 year University degree and ranking in top quartile. +
    • Eastern Europe and Russia: 4 or 5 year University degree, minimum grade of 7.5 on a 10 point scale and ranking in top quartile. +
    +

    Standardized Aptitude Test: Official GRE scores from ETS for Submission Quantitative, +Analytical, and Verbal Graduate Record Examination (GRE) scores are required. +Successful candidates are at or above the 90th percentile in quantitative and analytical +sections when percentiles are reported by ETS. However, we occasionally admit applicants with lower GRE scores if they have otherwise exceptional academic records and research experience. Subject Test scores are recommended, +but not required. +

    English Language Proficiency: A score of 213 (550 PBT) or higher on the TOEFL is required. +The Test of Written English (TWE) and Test of Spoken English (TSE) are recommended, but not required. +

    +

    +Additional information can be obtained from +: www.cs.iastate.edu/gradadm/index.html. +

    +Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. + + + diff --git a/hridesh/gradadm/msalumni.html b/hridesh/gradadm/msalumni.html new file mode 100755 index 0000000..19f6c8b --- /dev/null +++ b/hridesh/gradadm/msalumni.html @@ -0,0 +1,328 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Alumni

    +

    M.S. Graduates

    +Graduates are listed alphabetically with their thesis supervisor(s) indicated in parenthesis. +

    +2003 +

    +

    +2002 +

    +

    +2001 +

    +

    +2000 +

    +1999

    +

    +1998

    +

      +
    • +
    +1997 +
      +
    • +
    +1996 + +1995 +
      +
    • +
    +1992 + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections, updates, and web links to this page should be directed to webmaster@cs.iastate.edu. + + diff --git a/hridesh/gradadm/msminor.htm b/hridesh/gradadm/msminor.htm new file mode 100644 index 0000000..fbcdfdf --- /dev/null +++ b/hridesh/gradadm/msminor.htm @@ -0,0 +1,835 @@ + + + + + + + + + +Computer Science Department Graduate Minor Requirements + + + + + + + + + + + + +
    + +

    GRADUATE MINOR REQUIREMENTS

    + +

    Computer +Science Department

    + +

    Iowa State University

    + +

     

    + +

    A graduate minor in Computer +Science consists of a minimum of 12 credits selected from: Com S +309, 311, 321, 330, 331, 342, 352, 362, 363, 401, 425, 430, 454, 461, 472, 474, +and Com S courses numbered 511 or above (excluding 590, 599, 610 and 699). Course descriptions may be found at:

    + +

     

    + +

    http://www.public.iastate.edu/~catalog/.

    + +

     

    + +

    Course selection must satisfy +the following conditions:

    + +

     

    + +

    1. For the 12-credit minimum, +only ONE of the following courses may be +selected: Com S 321, 330, 362.

    + +

     

    + +

    2.     A minimum of 3 credits, from 400 level or +above courses, must be selected.

    + +

     

    + +

    3.     Student must be in graduate student status +when taking courses. Courses completed +while an undergraduate may not be used.

    + +

     

    + +

    Exception requests must be +submitted by the Student's Program of Study (POS) Committee and approved by the +Computer Science Graduate Committee.

    + +

     

    + +

    Program Of Study (POS) +COMMITTEE

    + +

     

    + +

    The POS committee for a +graduate minor must consist of one member of the Computer Science faculty. Form templates for committee appointment, +POS, and modifications can be downloaded from:

    + +

     

    + +

    http://www.grad-college.iastate.edu/deadline/formss.html

    + +

     

    + +

    Courses may be added each +semester by bringing a completed add slip to Linda Dutton for signature. The requested +course must be on your POS form.

    + +

     

    + +

     

    + +

    Graduate + Student + Center

    + +

     

    + +

    Linda +Dutton

    + +

    226 +Atanasoff Hall, 294-8361

    + +

    ldutton@cs.iastate.edu

    + +

    6/2003

    + +
    +
    + +
    + +

     

    + +

    Computer +Science Graduate Faculty to Serve on Minor Committees

    + +

     

    + +
    + +

     

    + +

    Pavan + Aduri Assistant Professor. Major +Interests: Computational Complexity: +Average-case Complexity, Connections between Average-case Complexity and +Worst-case Complexity, Structural Complexity of Function Classes. Internet: +pavan@cs.iastate.edu

    + +

     

    + +

    John +Peter Boysen - Adjunct Assistant +Professor and Computer Science and Systems Analyst, Computation Center. Major +Interests: Instructional Use of Computers, Programming Languages, +Object-Oriented Programming.

    + +

    Internet: pboysen@iastate.edu

    + +

     

    + +

    Carl K. Chang Professor and Chair. Major Interests: Software +Engineering and Net-centric Computing.

    + +

    Internet: +chang@cs.iastate.edu; http://www.cs.iastate.edu/~chang

    + +

     

    + +

    Soma + Chaudhuri - +Associate Professor. Major Interests: +Theory of Distributed Computing, Parallel Algorithms and Parallel Complexity. Internet: +chaudhur@cs.iastate.edu

    + +

     

    + +

    Hui-Hsien + Chou - Assistant Professor of Zoology & +Genetics and Computer Science. Major +Interests: Bioinformatics, Computational +Biology, Cellular Automata, Programming Language Design and Compiling.

    + +

    Internet: hhchou@iastate.edu; http://www.complex.iastate.edu/hhchou/

    + +

     

    + +

    Oliver +Eulenstein - Assistant +Professor. Major Interests: +Computational Biology, Combinatorial Optimization in Science and Engineering, +Design and Analysis of Discrete Algorithms.

    + +

    Internet: oeulenst@cs.iastate.edu; http://www.cs.iastate.edu/~oeulenst

    + +

     

    + +

    David F. Fernandez-Baca Professor. Major Interests: Design and Analysis of +Algorithms, Combinatorial Optimization, Graph Algorithms, Computational +Biology.

    + +

    Internet: fernande@cs.iastate.edu; http://www.cs.iastate.edu/~fernande/

    + +

     

    + +

    Shashi K. +Gadia - Associate Professor. Major Interests: Temporal, Spatial, Belief, +Security, Statistical and Incomplete Data; Database Models, Type Hierarchy, Languages, +User Interfaces, Optimization, Implementation and Access Methods; Pattern +Matching in Spatio-Temporal Data. Internet: gadia@cs.iastate.edu

    + +

     

    + +

    Vasant Honavar - Professor. Research and Teaching Interests: Artificial Intelligence; Bioinformatics and +Computational Biology; Distributed Intelligent Information Networks; +Intelligent Agents and Multi-agent Systems; Machine Learning, Data Mining, and +Knowledge Discovery; Computational Learning Theory; Information Assurance; +Cognitive Science; Complex Adaptive Systems.

    + +

    Internet: honavar@cs.iastate.edu; http://www.cs.iastate.edu/~honavar/

    + +

     

    + +

    Xiaoqiu Huang Associate Professor. +Research and Teaching Interests: Computational Biology, Parallel and +Distributed Applications. Internet: xqhuang@cs.iastate.edu; +http://www.cs.iastate.edu/~xqhuang/

    + +

    + +

    Yan-Bin Jia - Assistant Professor. Major Interests: Robotics, shape +localization, reconstruction, and recognition,

    + +

    computational geometry, geometric modeling, curve computation, robot +sensing, dexterous manipulation and control, hacking robot interfaces, +optimization, nonlinear control and observation, kinematics and dynamics of +manipulation. Internet: jia@cs.iastate.edu; +http://www.cs.iastate.edu/~jia/

    + +

     

    + +

    Ricky Kendall Adjunct Associate Professor; Scientist, Ames Laboratory. +Major Interests: Parallel and Distributed Algorithms and Computing, Software Engineering for +Parallel Applications, Communications Software, Parallel I/O, Computational +Chemistry. Internet: rickyk@cs.iastate.edu, +rickyk@ameslab.gov

    + +

     

    + +

    Gary T. + Leavens - +Professor. Major Interests: Programming +and specification language design and semantics, formal methods (program +specification and verification), object-oriented programming, aspect-oriented +programming, component-based systems, information assurance, functional +programming, type theory, distributed programming languages. Internet: +leavens@cs.iastate.edu; http://www.cs.iastate.edu/~leavens

    + +

     

    + +

    Marcus Lumpe -- Associate Professor. +Interests: Design and Implementation of Object- and Component-Oriented +Languages, Type Theory for Software Composition, Formal Semantics, Concurrent +Programming, Object-oriented Compiler Construction Techniques. Internet: +lumpe@cs.iastate.edu; +http://www.cs.iastate.edu/~lumpe/

    + +

     

    + +

    Jack H. Lutz -- Professor. Major Interests: Computational Complexity, including structure of +complexity classes, resource-bounded measure, and probabilistic +complexity. Algorithmic Information and +Randomness, including computational randomness, Kolmogorov complexity, +computational depth, and games and prediction.

    + +

    Internet: lutz@cs.iastate.edu

    + +

     

    + +

    Robyn Lutz -- Associate Professor. Major Interests: Software +engineering, software safety, requirements engineering, formal methods for +specification and verification, safety-critical product lines, fault monitoring +and recovery for spacecraft autonomy. +Internet: rlutz@cs.iastate.edu; +http://www.cs.iastate.edu/~rlutz/.

    + +

     

    + +

    Dimitris + Margaritis Assistant Professor. Major Interests: Probabilistic modeling, methods for managing and +reasoning with uncertainty/indeterminacy in Artificial Intelligence and other +applications, Bayesian networks, Markov networks, data mining, machine +learning, cross-disciplinary applications of these in bioinformatics, +econometrics, very large databases and other domains. Internet: dmarg@cs.iastate.edu

    + +

     

    + +

    Les +Miller Professor. Major Interests: Object-Oriented Databases, Organizational Decision Support Systems, +Knowledge Management, Computational Biology, Data Warehouses. Internet: +lmiller@iastate.edu

    + +

     

    + +

    Andrew Miner Assistant Professor. Major Interests: Performance reliability and logical analysis of +systems, Petri nets and stochastic modeling; state space generation techniques, +binary and multi-valued decision diagrams; compositional approaches, +distributed algorithms for solution techniques. Internet: asminer@cs.iastate.edu

    + +

     

    + +

    Simanta + Mitra -- +Assistant Adjunct Professor. Major Interests: Software Engineering, Programming +Languages, Compilers, Parallelizing Tools, and Performance Evaluation of +Computer Systems.

    + +

    Internet: smitra@cs.iastate.edu

    + +

     

    + +

    G.M. +Prabhu -- Associate Professor. +Major Interests: Parallel Processing, Computer Architecture, Business Process +Modeling and Analysis. Internet: prabhu@cs.iastate.edu

    + +

     

    + +

    Lu Ruan Assistant Professor. Major Interests: Computer +Networking, Approximation Algorithms.

    + +

    Internet: ruan@cs.iastate.edu, http://www.cs.iastate.edu/~ruan

    + +

     

    + +

    Giora Slutzki -- Professor. +Major Interests: Algorithms and Complexity, Game Theory and +Computational Economics, Formal Languages, Automata Theory.

    + +

    Internet: slutzki@cs.iastate.edu; http://www.cs.iastate.edu/~slutzki/

    + +

     

    + +

    Wallapak Tavanapong -- Assistant Professor. Major Interests: Distributed Multimedia Systems, Multimedia +and Communications, Multimedia Databases, Parallel and Distributed Databases, +Web Performance.

    + +

    Internet: tavanapo@cs.iastate.edu

    + +

     

    + +

    Jin Tian Assistant Professor. Major Interests: Bayesian networks, +probabilistic reasoning, causal reasoning and learning. Internet: jtian@cs.iastate.edu

    + +

     

    + +

    Johnny S. K. Wong - Professor. +Major Interests: Distributed Computing Environment (DCE), Distributed +Operating Systems, Communication Protocols, Object-Oriented Systems and +Databases, Common Object Request Broker Architecture (CORBA), Hypermedia +Systems, Multimedia Information Systems, Web Caching, Intrusion Detection, +Information Assurance. Internet: wong@cs.iastate.edu

    + +
    + + + + diff --git a/hridesh/gradadm/msminor.htm.bak b/hridesh/gradadm/msminor.htm.bak new file mode 100755 index 0000000..1359923 --- /dev/null +++ b/hridesh/gradadm/msminor.htm.bak @@ -0,0 +1,738 @@ + + + + + + + + +Computer Science Department + + + + + + +
    + +

    Computer Science Department Graduate Minor Requirements

    + +

    2002-2003

    + +

     

    + +

    Students from other +disciplines of graduate study at ISU may wish to earn a graduate minor in +Computer Science. Following are the +requirements and approved course work for a graduate minor.

    + +

     

    + +

    A graduate minor in Computer +Science consists of at least 12 credits chosen from Com S 309, 311, 321, 330, +331, 342, 352, 362, 363, 401, 425, 430, 454, 461, 472, 474, and Com S courses +numbered 511 or above (excluding 590, 599, 610 and 699). The course descriptions can be found at http://www.iastate.edu/~catalog/2001-03/courses/coms.html. +The course selection must also satisfy the following conditions:

    + +

     

    + +

    1.     +Only +one of the following may be included in the 12-credit minimum: Com S 321, 330, +362.

    + +

    2.     +At +least 3 credits must be chosen from courses at or above the 400 level.

    + +

    3.     +Courses +must be taken while under graduate student status. Courses taken while an +undergraduate may not be used.

    + +

     

    + +

    Any exceptions must be +petitioned by the Student's Program of Study (POS) Committee and approved by +the Graduate Committee in Computer Science.

    + +

     

    + +

    When a student chooses to +add a graduate minor in computer science, one member of his or her POS +committee must be a faculty member from the Computer Science Department. You can choose faculty members from the +attached listing. MS Word templates for the committee appointment, POS, and +modifications can be downloaded from the Graduate College homepage.

    + +

     

    + +

    The student must complete +their POS with the desired courses. After the POS is completed, courses may be +added each semester by bringing a completed add slip to the Computer Science +Graduate Secretary. It can take up to 24 hours to obtain a signature. If the +course is not listed on the POS, your add slip will not be signed. If the +course is full, the student may have to wait until the next semester to take +the listed course. Any course changes +must be made with the Modifications to the Program of Study form and must be +signed by all committee members and departmental officers.

    + +

     

    + +

     

    + +

    Computer Science Graduate +Secretary

    + +

    Linda L. Dutton

    + +

    226 Atanasoff Hall

    + +

    294-8361

    + +

    ldutton@admin.cs.iastate.edu

    + +

    9/2002

    + +
    +
    + +
    + +

     

    + +
    Computer Science Graduate Faculty to Serve on Minor Committees
    + +

     

    + +
    + +

     

    + +

    Pavan Aduri Assistant Professor. Major Interests: Computational +Complexity: Average-case Complexity, Connections between Average-case +Complexity and Worst-case Complexity, Structural Complexity of Function +Classes.

    + +

    Internet: pavan@cs.iastate.edu

    + +

     

    + +

    John Peter Boysen - Adjunct +Assistant Professor and Computer Science and Systems Analyst, Computation +Center. Major Interests: Instructional +Use of Computers, Programming Languages, Object-Oriented Programming.

    + +

    Internet: pboysen@iastate.edu

    + +

     

    + +

    Carl K. Chang Professor and Chair. Major Interests: Software Engineering and +Net-centric Computing.

    + +

    Internet: chang@cs.iastate.edu; http://www.cs.iastate.edu/~chang

    + +

     

    + +

    Soma Chaudhuri - Associate +Professor. Major Interests: Theory of +Distributed Computing, Parallel Algorithms and Parallel Complexity.

    + +

    Internet: chaudhur@cs.iastate.edu

    + +

     

    + +

    Hui-Hsien Chou - Assistant Professor of Zoology & +Genetics and Computer Science. Major +Interests: Bioinformatics, +Computational Biology, Cellular Automata, Programming Language Design and +Compiling.

    + +

    Internet: hhchou@iastate.edu; +http://www.complex.iastate.edu/hhchou/

    + +

     

    + +

    Oliver Eulenstein - Assistant +Professor. Major Interests: +Computational Biology, Combinatorial Optimization in Science and Engineering, +Design and Analysis of Discrete Algorithms.

    + +

    Internet: oeulenst@cs.iastate.edu; +http://www.cs.iastate.edu/~oeulenst

    + +

     

    + +

    David F. Fernandez-Baca Professor. Major Interests: Design +and Analysis of Algorithms, Combinatorial Optimization, Graph Algorithms, +Computational Biology.

    + +

    Internet: fernande@cs.iastate.edu; http://www.cs.iastate.edu/~fernande/

    + +

     

    + +

    Shashi K. Gadia - Associate +Professor. Major Interests: Temporal, +Spatial, Belief, Security, Statistical and Incomplete Data; Database Models, +Type Hierarchy, Languages, User Interfaces, Optimization, Implementation and +Access Methods; Pattern Matching in Spatio-Temporal Data.

    + +

    Internet: gadia@cs.iastate.edu

    + +

     

    + +

    Vasant +Honavar - Professor. Research and Teaching Interests: Artificial +Intelligence; Bioinformatics and Computational Biology; Distributed Intelligent +Information Networks; Intelligent Agents and Multi-agent Systems; Machine +Learning, Data Mining, and Knowledge Discovery; Computational Learning Theory; +Information Assurance; Cognitive Science; Complex Adaptive Systems.

    + +

    Internet: +honavar@cs.iastate.edu; http://www.cs.iastate.edu/~honavar/

    + +

     

    + +

    Xiaoqiu Huang +Associate Professor. Research and +Teaching Interests: Computational Biology, Parallel and Distributed +Applications.

    + +

    Internet: +xqhuang@cs.iastate.edu; http://www.cs.iastate.edu/~xqhuang/

    + +

    + +

    Yan-Bin Jia - Assistant +Professor. Major Interests: Robotics, +shape localization, reconstruction, and recognition,

    + +

    computational +geometry, geometric modeling, curve computation, robot sensing, dexterous +manipulation and control, hacking robot interfaces, optimization, nonlinear +control and observation, kinematics and dynamics of manipulation.

    + +

    Internet: jia@cs.iastate.edu; +http://www.cs.iastate.edu/~jia/

    + +

     

    + +

    Ricky Kendall +Adjunct Associate Professor; Scientist, Ames Laboratory. Major Interests: Parallel and Distributed Algorithms and Computing, +Software Engineering for Parallel Applications, Communications Software, +Parallel I/O, Computational Chemistry.

    + +

    Internet: rickyk@cs.iastate.edu, rickyk@ameslab.gov

    + +

     

    + +

    Gary T. Leavens - +Professor. Major Interests: Programming +and specification language design and semantics, formal methods (program +specification and verification), object-oriented programming, aspect-oriented +programming, component-based systems, information assurance, functional +programming, type theory, distributed programming languages.

    + +

    Internet: +leavens@cs.iastate.edu; http://www.cs.iastate.edu/~leavens

    + +

     

    + +

    Marcus +Lumpe -- Associate +Professor. Interests: Design and +Implementation of Object- and Component-Oriented Languages, Type Theory for +Software Composition, Formal Semantics, Concurrent Programming, Object-oriented +Compiler Construction Techniques.

    + +

    Internet: lumpe@cs.iastate.edu; +http://www.cs.iastate.edu/~lumpe/

    + +

     

    + +

    Jack H. Lutz +-- Professor. Major Interests: Computational Complexity, including structure of +complexity classes, resource-bounded measure, and probabilistic complexity. Algorithmic Information and Randomness, +including computational randomness, Kolmogorov complexity, computational depth, +and games and prediction.

    + +

    Internet: lutz@cs.iastate.edu

    + +

     

    + +

    Robyn Lutz -- Associate +Professor. Major Interests: Software engineering, software safety, requirements +engineering, formal methods for specification and verification, safety-critical +product lines, fault monitoring and recovery for spacecraft autonomy.

    + +

    Internet: +rlutz@cs.iastate.edu; http://www.cs.iastate.edu/~rlutz/.

    + +

     

    + +

    Dimitris Margaritis Assistant Professor. Major Interests: Probabilistic +modeling, methods for managing and reasoning with uncertainty/indeterminacy in +Artificial Intelligence and other applications, Bayesian networks, Markov +networks, data mining, machine learning, cross-disciplinary applications of +these in bioinformatics, econometrics, very large databases and

    + +

    other +domains.

    + +

    Internet: dmarg@cs.iastate.edu

    + +

     

    + +

    Les Miller Professor. Major Interests: Object-Oriented Databases, Organizational Decision Support Systems, +Knowledge Management, Computational Biology, Data Warehouses.

    + +

    Internet: lmiller@iastate.edu

    + +

     

    + +

    Andrew Miner Assistant Professor. Major Interests: Performance reliability and logical +analysis of systems, Petri nets and stochastic modeling; state space generation +techniques, binary and multi-valued decision diagrams; compositional +approaches, distributed algorithms for solution techniques.

    + +

    Internet: +asminer@cs.iastate.edu

    + +

     

    + +

    Simanta Mitra -- Assistant +Adjunct Professor. Major Interests: Software Engineering, Programming +Languages, Compilers, Parallelizing Tools, and Performance Evaluation of +Computer Systems.

    + +

    Internet: +smitra@cs.iastate.edu

    + +

     

    + +

    G.M. Prabhu -- Associate +Professor. Major Interests: Parallel Processing, Computer Architecture, +Business Process Modeling and Analysis.

    + +

    Internet: prabhu@cs.iastate.edu

    + +

     

    + +

    Lu Ruan Assistant Professor. Major Interests: Computer Networking, Approximation +Algorithms.

    + +

    Internet: ruan@cs.iastate.edu, +http://www.cs.iastate.edu/~ruan

    + +

     

    + +

    Giora Slutzki -- Professor. Major Interests: Algorithms and Complexity, +Game Theory and Computational Economics, Formal Languages, Automata Theory.

    + +

    Internet: slutzki@cs.iastate.edu; +http://www.cs.iastate.edu/~slutzki/

    + +

     

    + +

    Wallapak Tavanapong -- Assistant Professor. Major Interests: Distributed Multimedia Systems, Multimedia and Communications, +Multimedia Databases, Parallel and Distributed Databases, Web Performance.

    + +

    Internet: tavanapo@cs.iastate.edu

    + +

     

    + +

    Jin Tian Assistant Professor. Major Interests: Bayesian networks, +probabilistic reasoning, causal reasoning and learning.

    + +

    Internet: jtian@cs.iastate.edu

    + +

     

    + +

    Johnny S. K. Wong +- Professor. Major Interests: +Distributed Computing Environment (DCE), Distributed Operating Systems, +Communication Protocols, Object-Oriented Systems and Databases, Common Object +Request Broker Architecture (CORBA), Hypermedia Systems, Multimedia Information +Systems, Web Caching, Intrusion Detection, Information Assurance.

    + +

    Internet: wong@cs.iastate.edu

    + +

     

    + +

    11/2002

    + +
    + + + + diff --git a/hridesh/gradadm/multidis.html b/hridesh/gradadm/multidis.html new file mode 100755 index 0000000..71914c6 --- /dev/null +++ b/hridesh/gradadm/multidis.html @@ -0,0 +1,42 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Multidisciplinary Research and Education

    + + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + + diff --git a/hridesh/gradadm/multidisc.html b/hridesh/gradadm/multidisc.html new file mode 100755 index 0000000..71914c6 --- /dev/null +++ b/hridesh/gradadm/multidisc.html @@ -0,0 +1,42 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Multidisciplinary Research and Education

    + + +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall, Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +
    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + + diff --git a/hridesh/gradadm/network.gif b/hridesh/gradadm/network.gif new file mode 100755 index 0000000..8fadad0 Binary files /dev/null and b/hridesh/gradadm/network.gif differ diff --git a/hridesh/gradadm/old b/hridesh/gradadm/old new file mode 100755 index 0000000..7826482 --- /dev/null +++ b/hridesh/gradadm/old @@ -0,0 +1,5 @@ +
  • +Gary Leavens, Albert Baker (with Don Pigozzi (Mathematics)). Formal Methods for Multimethod Software Components, National Science Foundation (1998-2000). $210,000. +

    +

  • +Jack Lutz. diff --git a/hridesh/gradadm/old2 b/hridesh/gradadm/old2 new file mode 100755 index 0000000..7f3e3fe --- /dev/null +++ b/hridesh/gradadm/old2 @@ -0,0 +1,5 @@ +
  • +Johnny Wong, +Vasant Honavar, and Les Miller +Intelligent Multi-Agent Systems for Intrusion Detection, Department of Defense University Research Program (MDA904-98-R-S221) (1998-2000). $199,769. +
diff --git a/hridesh/gradadm/organizations.html b/hridesh/gradadm/organizations.html new file mode 100755 index 0000000..f9b7b65 --- /dev/null +++ b/hridesh/gradadm/organizations.html @@ -0,0 +1,78 @@ + +Computer Science Organizations + + + + +
+ + + +
+CS Homepage +Department of Computer Science
+Iowa State University +
Birthplace of the Electronic Digital Computer
+
+

Computer Science Organizations

+

+Local Organizations +

+National and International Organizations +

+

+ + + + + + + +
+ +

+ Iowa State University
+ Department of Computer Science
+ 226 Atanasoff Hall, Ames, IA 50011-1040 USA
+ phone: +1-515-294-4377, fax: +1-515-294-0258

+ +
+Additions and Changes to this page should be directed to taru@cs.iastate.edu. + + + + diff --git a/hridesh/gradadm/phdalumni.html b/hridesh/gradadm/phdalumni.html new file mode 100755 index 0000000..7507b89 --- /dev/null +++ b/hridesh/gradadm/phdalumni.html @@ -0,0 +1,297 @@ + +Multi-Disciplinary Research and Education in Computer Science + + + + +
+ + + +
+ +Department of Computer +Science
+Iowa State University +
Birthplace of the Electronic Digital +Computer
+
+

Alumni

+

Ph.D. Graduates

+The year of graduation and the name(s) of thesis supervisor(s) are indicated in parenthesis. +

+ + +2001-Present +

+

+ +1991-2000 +

+

+ +1981-1990

+

    +
  • +William A. Baldwin (1983, Keller). +
  • +Gautam Bhargava (1989, Prabhu). +
  • +Rattikorn Boonyavatana Hewett (1986, Slutzki). +
  • +Wei-Ju Chen (1981 Kafura). +
  • +Feng Sheng Cheng (1981, Strawn). +
  • +Kanan Ghose (1988, Stewart). +
  • +Susan Johanna Even (1990, Schmidt). +
  • +Mark R. Harrington (1984, Oldehoeft). +
  • +James W. Howatt (1985, Baker). +
  • +Steven F. Jennings (1981, Oldehoeft). +
  • +Pranava K. Jha (1990, Slutzki). +
  • +Deborah L. Knox (1987, Wright and Pohm). +
  • +Kwai-Ting Lan (1981, Kafura). +
  • +John H. Leuchner (1988, Slutzki). +
  • +Ta Wen Lin (1987, Sidhu). +
  • +Ruth J. Lukat (1985, Schmidt). +
  • +Peter M. Maurer (1982, Oldehoeft). +
  • +Thomas E. O'Neil (1985, Strawn). +
  • +Samir Moukaddam (1990, Oldehoeft). +
  • +Mahmoud Parsian (1982, Strawn). +
  • +Craig A. Rich (1988, Slutzki). +
  • +Annette Schoenberger (1987, Strawn and Oldehoeft). +
  • +Rajshekhar Sunderraman (1988, Liu). +
  • +Teng-amnuay Yunyong (1984, Oldehoeft). +
  • +Mark Allen Williams (1990, Fernandez-Baca). +
+ +1971-1980

+

    +
  • +Stephen J. Allan (1979, Oldehoeft). +
  • +Russell D. Anderson (1979, Stewart). +
  • +Walter E. Brown (1979, Strawn). +
  • +Patricia Ann Carr (1976, Keller and Wright). +
  • +Robert S. Conker (1974, Lambert). +
  • +John H. Crenshaw (1971, Lambert). +
  • +Wayne Dowling (1972, Pohm). +
  • +Denise Eckstein (1977, Alton). +
  • +Donald Elliott (1972, Stewart). +
  • +Jerry J. Hamilton (1974, ). +
  • +Sallie M. Henry (1979, Kafura). +
  • +Perry C. Hutchinson (1976, Richards). +
  • +Kathryn Y. Kwinn (1979, Strawn). +
  • +William Kwinn (1978, Stewart). +
  • +John R. Jordan (1974, Maple). +
  • +Timothy E. Lindquist (1979, Keller). +
  • +Anthony Lucido (1974, Keller). +
  • +Thomas E. Michels (1972, ). +
  • +Long Vo Nguyen (1975, Keller). +
  • +Eldon Jerome Niebaum (1973, Keller). +
  • +Gary K. Oleson (1971, Maple and Sengupta). +
  • +Charles Peterson (1976, Stewart). +
  • +Howard Pyron (1971, Keller). +
  • +C. Retnadhas (1978, Oldehoeft). +
  • +Hamilton Richards, Jr. (1976, Stewart). +
  • +Robert Roeder (1979), Strawn). +
  • +Carol L. Smith (1975, Stewart). +
  • +Dennis Steele (1975, Maple). +
  • +Marty Strasburger (1980, Lambert). +
  • +Alan F. Sweet (1977, Oledhoeft and Stewart). +
  • +Sharilyn Thoreson (1980, Oldehoeft). +
  • +Mok Tokko (1972, Keller). +
  • +James R. Van Doren (1971, ). +
  • +Julio Villaneuva (1975, Oldehoeft). +
  • +Roger L. Wainright (1974, Keller). +
  • +Virgil Wallentine (1972, Keller). +
  • +Ralph K. White (1976, Maple). +
  • +Loretta E. Winstron (1978, Stewart). +
  • +W. James Wittneben (1979, Kafura). +
  • +Fred J. Zamecnik, Jr. (1971, Stewart). +
+ +1969-1970 +
    +
  • +Dennis K. Branstad (1970, Maple). +
  • +Ronald E. Haglund (1969, Stewart). +
  • +George E. Hedrick (1970, Lambert). +
  • +Gerald Ripley (1970, Lambert). +
  • +I-Meng Shen (1970, Keller). +
  • +Rex A. Thomas (1970, Maple). +
  • +Jesus Ocampo Tuazon (1969, Stewart). +
  • +Charles T. Wright (1970, Keller). +
+ +
+

+ Iowa State University
+ Department of Computer Science
+ 226 Atanasoff Hall, Ames, IA 50011-1040 USA
+ phone: +1-515-294-4377, fax: +1-515-294-0258

+
+Corrections, updates and web or email link additions to this page should be directed to webmaster@cs.iastate.edu. + diff --git a/hridesh/gradadm/preapp.html b/hridesh/gradadm/preapp.html new file mode 100755 index 0000000..ed27866 --- /dev/null +++ b/hridesh/gradadm/preapp.html @@ -0,0 +1,233 @@ + +Letter to Prospective Graduate Students in Computer Science + + + + +
+ + + +
+CS Homepage +Department of Computer Science
+Iowa State University +
Birthplace of the Electronic Digital Computer
+
+

+Dear Prospective Computer Science Graduate Program Applicant:

+ +

+The Department of Computer Science welcomes applications for admission to the +graduate program in Computer Science from highly-qualified applicants interested in obtaining research-based advanced training leading to a Ph.D. in Computer Science. The department also offers an M.S. degree in Computer Science. +The Department has +strong research programs in Algorithms, Artificial Intelligence, Bioinformatics +and Computational Biology, Complexity Theory and Complex Systems, Databases, +Parallel and Distributed Computing, Programming Languages, Multimedia Systems, +Networks, Robotics, Software Engineering, and Theory of Computing. Information about the graduate program in Computer Science, faculty research interests, and degree requirements can be found at: http://www.cs.iastate.edu/. +

+In addition to the M.S. and Ph.D. degrees in Computer Science, interdepartmental +Ph.D. programs in Bioinformatics and Computational Biology (BCB) , Human Computer Interaction and Neuroscience and an M.S. program in Information Assurance offer additional opportunities for research-based training of Computer Scientists. Students interested in pursuing these opportunities should apply for admission to +the respective intedepartmental program as well. Information about these programs can be found on the respective websites. +

We would like to bring to your attention the following items that often +prevent students from completing applications or beginning a graduate program +in our department: +

    +

    +

  1. +The required application fee. Payment of the fee must be made in U.S. currency. Applications will not be processed without the necessary fee. +NO FEE WAIVERS ARE POSSIBLE. +
  2. +

    +

  3. +Admission to the graduate program in Computer Science is highly competitive. +The very high admission standards and resource limitations often +prevent the admission of all but the most qualified applicants. Applicants are strongly urged to carefully review the admission criteria before they apply. +Meeting admission criteria does not guarantee admission. +In 2003, a typical year, only the top 10% of our 825 applicants were admitted and of those, fewer than 25 were offered assistantships. +
  4. +

    +

  5. +With the large volume of mail and email we receive, it is impossible for us to +respond to your individual questions and requests for assessment of prospects of admission or financial aid before evaluation of applications has been completed. +Under NO circumstances do we waive the official GRE, TOEFL, and OFFICIAL TRANSCRIPTS, or THREE LETTERS OF RECOMMENDATION. All of these must be received by the deadline (January 1 for Fall; September 1 for Spring) in order for an application to be considered complete. Incomplete applications cannot be evaluated. Consideration of applications that are completed after the prescribed deadlines will be deferred to the following semester. +

    +

  6. +There is a need for some personal funds for living expenses even for those +applicants who are offered financial aid, since the first paycheck is usually +issued by the University in September, roughly one month after the start +of classes (no salary advances are possible). It is inadvisable for students +who do not receive offers of financial aid to ASSUME that they will be +able to secure aid after arriving on campus. +

    +

  7. +Please complete the Graduate Applicant Self-Evaluation form below. If you are unable to fill in a large portion of this form, it is unlikely that your +current background is adequate for pursuing graduate study in Computer Science. +A completed Course Evaluation Form must be sent to the Department of Computer Science at grad_adm@cs.iastate.edu in order for your application to be processed. +PROVISIONAL ADMISSION to the graduate program in Computer Science DESPITE DEFICIENCIES in +certain areas REQUIRES EXCEPTIONAL ACADEMIC CREDENTIALS AND STRONG EVIDENCE OF +RESEARCH POTENTIAL. Students admitted on a provisional basis + should be prepared to take undergraduate courses to remove the deficiencies + prior to taking graduate courses. +
+

+


+Graduate Applicant Self Evaluation/Course Evaluation Form + + + +

Graduate Applicant Self Evaluation/Course Evaluation Form

+
+
+PLEASE COMPLETE THIS FORM AND SUBMIT TO: +

+Graduate Secretary
+Department of Computer Science
+Iowa State University
+Ames, IA 50011-1040
+email: grad_adm@cs.iastate.edu
+FAX: (515) 294 0258 +

+

+

+

You must provide the information requested directly on this form. Failure to fill out this form may result in denial of admission

+

+

Name:_____________________________________________________________ Electronic Mail Address:___________________________
+Postal Mail Address:__________________________________________________________________________________________________________
+Country of Citizenship:_______________________________________ Desired Admission Date:______________________________
+Highest Degree Held:________________ +Highest Degree Sought:_____________________ (Note that an M.S. degree is not a requirement for pursuing a Ph.D.)
+Area of Specialization within Computer Science (be specific if your interests are specific):_____________________________________________________
+Interdisciplinary Interests: ____________________________________________________ +

+Academic Record:

+College and/or University:__________________________________________________________ Degree:_________________
+Dates Attended:_________________________________________Major:_____________________ Minor:_____________________
+Grades (give ratio of GPA or Marks, obtained relative to maximum possible e.g., 3.5/4.0, 85/100, etc. Do not convert grades assigned by your institution on one scale (say 0 to 100) to another (say 0 to 4)):_____________
+Rank in Class (relative to class size) (if known):_____________ +

+College or University:__________________________________________________________ Degree:_________________
+Grades (give ratio of GPA or Marks, obtained relative to maximum possible e.g., 3.5/4.0, 85/100, etc.):_________
+Dates Attended:_________________________________________Major:_____________________ Minor:_____________________
+Rank in Class (relative to class size) (if known):_____________ +

+Standardized Test Scores (if known):
+
GRE (Quantitative):__________ GRE (Analytical):_________ GRE (Verbal):______________
+GRE (Subject Test) ______________________ (indicate subject)_______________________
+TOEFL:___________ TSE:________________ TWE:_________________ +

+Undergraduate Background in Computer Science

+Listed below are the titles of seven general areas of coursework. Under each of the headings, please describe your preparation by specifying the formal courses you have taken. For each course, you must list the author and title of the text used, e.g., Aho and Ullman, Foundations of Computer Science. If using this as the Course Evaluation portion of your application package, you MUST complete the grade section with the grade, mark, score or percentage received in each course. +

+Programming Skills:
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):__________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Discrete Mathematics:
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Data Structures and Algorithms:
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ + +

+Programming Languages and Compilers:
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Computer Architecture:
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Operating Systems:
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Mathematics (list the most advanced courses):
+
Course Name:__________________________________________________________________ Grade________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Other SIGNIFICANT Coursework(list the most advanced courses):
+
Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Course Name:__________________________________________________________________ Grade_________________
+Text (Author, Title):___________________________________________________________________________________ +

+Research Experience: Please describe any relevant research experience. List theses, publications in refereed journals, conferences, and/or workshops (if any). +

+

+Work Experience: Please describe any significant work experience in areas relevant to graduate study in Computer Science. +

+

+Teaching Experience: Please describe any relevant teaching experience. +

+

+Other Significant Accomplishments: Previous honors, scholarships, and outstanding extracurricular work (please be concise): +

+


+The above information is requested from you to ensure rapid and accurate processing +of your application. If you FAIL TO COMPLY, YOUR APPLICATION CANNOT BE +PROCESSED. +

+As of August 2003, we no longer mail out paper copies of applications. All of the application materials should be obtained electronically. Please visit http://www.cs.iastate.edu/gradadm/index.html for details. +For more information about our Department, please check our Web page at: http://www.cs.iastate.edu/ +

+

+____ I HAVE READ THE ABOVE AND UNDERSTAND THE REQUIREMENTS FOR APPLYING +FOR GRADUATE STUDY IN COMPUTER SCIENCE AT IOWA STATE UNIVERSITY. +

+I WOULD LIKE TO APPLY FOR ADMISSION TO THE GRADUATE PROGRAM IN COMPUTER SCIENCE AT ISU +
(PLEASE PRINT) +

+Nationality: __________U.S. Citizen __________U.S. Permanent Resident __________International Applicant
+Gender:__________Male __________ Female +

+NAME:___________________________________________________________________________________________________ +

(LAST)                 +(FIRST)                           +(MIDDLE INITIAL)
+ + +

ADDRESS : +

_______________________________________________________________________ +

________________________________________________________________________ +
  +

DATE: _____________________________ +
  +
  +


+

+ Iowa State University
+ Department of Computer Science
+ 226 Atanasoff Hall,
Ames, IA 50011-1040 USA
+ phone: +1-515-294-4377, fax: +1-515-294-0258

+
+Corrections and updates to this page should be directed to webmaster@cs.iastate.edu. +Page updated 6/21/2002. + diff --git a/hridesh/gradadm/research.html b/hridesh/gradadm/research.html new file mode 100755 index 0000000..8a904d2 --- /dev/null +++ b/hridesh/gradadm/research.html @@ -0,0 +1,221 @@ + +Computer Science Research at Iowa State University + + + + +
+ + + +
+CS Homepage +Department of Computer Science
+Iowa State University +
Birthplace of the Electronic Digital Computer
+
+

Computer Science Research at Iowa State University

+

+The Department of Computer Science has strong research programs in several +areas of Computer Science. Faculty and graduate students routinely collaborate +on research projects that cut across multiple areas of computer +science. The department also nurtures interdisciplinary work +advances the state of the art in +the theoretical foundations as well as applications of computer science while +contributing to advances in other disciplines (e.g., biological sciences, +engineering). +Computer Science faculty have received numerous research grants from +the National Science Foundation, Department of Defense, as well as several +Industrial Organizations. Some of the faculty members serve on Editorial +Boards of leading journals. Many of the faculty members regularly +serve on the Program Committees of top national and international +research conferences. +Dynamic faculty, State-of-the-art research laboratories, +a well-funded research program, opportunities provided by the +Center for Bioinformatics and Biostatitics, DOE Ames Laboratory, +Virtual Reality Applications Center, provide +a stimulating academic environment for leading edge research in several +areas. +

+

Faculty Research Interests

+ +

+

Additional Information on Computer Science Research at ISU

+ +
+

+ Iowa State University
+ Department of Computer Science
+ 226 Atanasoff Hall, Ames, IA 50011-1040 USA
+ phone: +1-515-294-4377, fax: +1-515-294-0258

+
+Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + + diff --git a/hridesh/gradadm/roomassign.html b/hridesh/gradadm/roomassign.html new file mode 100755 index 0000000..c00dfcf --- /dev/null +++ b/hridesh/gradadm/roomassign.html @@ -0,0 +1,4419 @@ + + + + + + + + +Room Assignments + + + + + + +
+ +

FINAL ROOM ASSIGNMENTS

+ +

FALL, 2000

+ +

 

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Course/Section Mtg Time

+
+

Instructors

+
+

Building/Room

+
+

101 A + Lecture R 12:40-2

+
+

Cain

+
+

Lagomarcino E164

+
+

101 B + Lecture T 9:30-11

+
+

Cain

+
+

Lagomarcino E164

+
+

101 C + Lecture T 2-3:30

+
+

Cain

+
+

Sweeney 1134

+
+

101 D + Lecture W 1-2:30

+
+

Cain

+
+

Gilman 1104

+
+

 

+
+

 

+
+

 

+
+

103 10-19; + 50-52 Lec MWF 9

+
+

S. Tomlinson

+
+

LeBaron 1010

+
+

Lab Section 10 R + 12-2

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 11 R 4-6

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 12 F + 12-2

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 13 R + 2-4

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 15 T + 2-4

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 16 M + 6-8 pm

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 19 R + 10-12

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 50 W + 10-12

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 51 W + 12-2

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 52 F + 10-12

+
+

 

+
+

Atanasoff 126

+
+

 

+
+

 

+
+

 

+
+

103 20-29 + Lec MWF 10

+
+

S. Tomlinson

+
+

LeBaron 1010

+
+

Lab Section 20 M + 8-10

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 21 T + 8-10

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 22 M + 12-2

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 23 W + 12-2

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 24 T + 6-8 pm

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 25 W + 6-8 pm

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 26 M + 2-4

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 27 W + 2-4

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 28 F + 8-10

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 29 T + 12-2

+
+

 

+
+

Atanasoff 125

+
+

 

+
+

 

+
+

 

+
+

103 31-38; + 60-62 Lec MWF 11

+
+

M. Morris

+
+

LeBaron 1010

+
+

Lab Section 31 R + 6-8 pm

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 32 T + 4-6

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 33 W + 2-4

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 34 W + 4-6

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 36 + R 8-10

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 37 R 10-12

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 38 R 2-4

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 60 + W 8-10

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 61 + F 12-2

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 62 + W 8-10

+
+

 

+
+

Atanasoff 126

+
+

 

+
+

 

+
+

 

+
+

103 40-49 MWF 12

+
+

C. Hardy

+
+

LeBaron 1010

+
+

Lab Section 40 M + 10-12

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 41 T + 2-4

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 42 R + 12-2

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 43 T + 10-12

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 44 M + 2-4

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 45 T + 4-6

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 46 R + 4-6

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 47 R + 8-10

+
+

 

+
+

Atanasoff 125

+
+

Lab Section 48 T + 12-2

+
+

 

+
+

Atanasoff 126

+
+

Lab Section 49 M + 10-12

+
+

 

+
+

Atanasoff 126

+
+ +
+ +
+
+ +

 

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Course/Section Mtg + Time

+
+

Instructors

+
+

Building/Room

+
+

104 Sec 1-10 + Lec MWF 8

+
+

B. Wemhoff

+
+

LeBaron 1010

+
+

Lab Section 1 M 10-12

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 2 R + 2-4

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 3 M + 2-4

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 4 F + 10-12

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 5 T + 4-6

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 6 W + 2-4

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 7 T + 8-10

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 8 T + 2-4

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 9 R + 4-6

+
+

 

+
+

Atanasoff 116A

+
+

Lab Section 10 R + 6-8 p.m.

+
+

 

+
+

Atanasoff 116A

+
+

 

+
+

 

+
+

 

+
+

201 Sec 3 + and 4 Lec TR 6-7:30 pm

+
+

TBA

+
+

Lagomarcino E0164

+
+

Sec 3 T + 3

+
+

 

+
+

Gilman 1810

+
+

Sec 4 T + 2

+
+

 

+
+

Atanasoff B29

+
+

 

+
+

 

+
+

 

+
+

201 Sec 5 + and 6 Lec MW 6-7:30 pm

+
+

TBA

+
+

Atanasoff B29

+
+

Sec 5 M + 3

+
+

 

+
+

Gilman 1810

+
+

Sec 6 M + 4

+
+

 

+
+

Marston 209

+
+

 

+
+

 

+
+

 

+
+

203 Sec + A R 12:40-2

+
+

A. Taylor

+
+

Lagomarcino E0164

+
+

 

+
+

 

+
+

 

+
+

207 A1 C3 + Lec MWF 12

+
+

R. Tomlinson

+
+

Lagomarcino W 142

+
+

Rec A1- A3 W 8

+
+

 

+
+

Atanasoff B29

+
+

Rec B1- B3 W + 9

+
+

 

+
+

Gilman 1810

+
+

Rec C1- C3 W + 10

+
+

 

+
+

Gilman 1352

+
+

 

+
+

 

+
+

 

+
+

207 D1- + F3 Lec MWF 8

+
+

R. Tomlinson

+
+

Gilman 1352

+
+

Rec D1-D3 M + 4

+
+

 

+
+

Durham 171

+
+

Rec E1-E3 T + 4

+
+

 

+
+

Gilman 1810

+
+

Rec F1-F3 T + 1

+
+

 

+
+

Atanasoff B29

+
+

 

+
+

 

+
+

 

+
+

208 A1-A2 + Lec MWF 3

+
+

R. Tomlinson

+
+

Atanasoff B29

+
+

Rec A1-A2 T + 4

+
+

 

+
+

Gilman 2104

+
+

 

+
+

 

+
+

 

+
+

227 Sec A1-D2 + Lec MWF 10

+
+

B. Wemhoff

+
+

Lagomarcino W 262

+
+

Lab Sec A1-A2 T + 9

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec B1-B2 T + 10

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec C1-C2 T + 11

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec D1-D2 T + 12

+
+

 

+
+

I Ed 2 124

+
+

 

+
+

 

+
+

 

+
+

227 Sec + J1-M2;Z1-Z2; AA-BB MWF 1

+
+

O. Reynolds

+
+

Physics 3

+
+

Lab Sec J1-J2 W + 3

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec K1-K2 W + 4

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec L1-L2 R + 9

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec M1-M2 + R 10

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec Z1-Z2 R 12

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec AA-AB R 1

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec BA-BB + R 11

+
+

 

+
+

I Ed 2 124

+
+ +
+ +
+
+ +

 

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Course/Section Mtg + Time

+
+

Instructors

+
+

Building/Room

+
+

 

+
+

 

+
+

 

+
+

227 Sec + N1-S2; Y1-Y2 MWF 11

+
+

B. Wemhoff

+
+

Science I 102

+
+

Lab Sec N1-N2 R 1 (R5?)(W5?)

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec P1-P2 R + 2

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec Q1-Q2 R + 3

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec R1-R2 R + 4

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec S1-S2 T + 1

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec Y1-Y2 T + 2

+
+

 

+
+

I Ed 2 124

+
+

 

+
+

 

+
+

 

+
+

227 Sec T1-W2; CA-FB MWF 2

+
+

O. Reynolds

+
+

Ross 124

+
+

Lab Sec T1-T2 W + 8

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec U1-U2 W + 9

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec V1-V2 W + 10

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec W1-W2 + W 11

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec CA-CB T + 4

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec DA-DB T + 5

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec EA-EB W + 12

+
+

 

+
+

I Ed 2 124

+
+

Lab Sec FA-FB T + 3

+
+

 

+
+

I Ed 2 124

+
+

 

+
+

 

+
+

 

+
+

228 A1 B2 + Lec MWF 9

+
+

L. Sumpter

+
+

Gilman 1104

+
+

Rec A1-A2 M + 2

+
+

 

+
+

Atanasoff 214

+
+

Rec B1-B2 M3

+
+

 

+
+

Atanasoff 214

+
+

 

+
+

 

+
+

 

+
+

228 E1-H2 + Lec MWF 12

+
+

O. Reynolds

+
+

Food Science 2432

+
+

Rec E1-E2 M + 1

+
+

 

+
+

Atanasoff 214

+
+

Rec F1-F2 T + 8

+
+

 

+
+

Atanasoff 214

+
+

Rec G1-G2 M4

+
+

 

+
+

Atanasoff 214

+
+

Rec H1-H2 M5

+
+

 

+
+

Atanasoff B29

+
+

 

+
+

 

+
+

 

+
+

309 A1-B2 + Lec TR 9:30 - 11

+
+

R. Lutz

+
+

Food Science 2432

+
+

Rec A1-A2 M 9

+
+

 

+
+

Atanasoff B29

+
+

Rec B1-B2 M + 10

+
+

 

+
+

Beyer 104

+
+

 

+
+

 

+
+

 

+
+

309 E1-F2 + Lec TR 11 - 12:20

+
+

S. Mitra

+
+

Pearson 103

+
+

Rec E1-E2 W 1

+
+

 

+
+

Pearson 204

+
+

Rec F1-F2 W + 2

+
+

 

+
+

Pearson 204

+
+

 

+
+

 

+
+

 

+
+

311 B1-D2 Lec MWF 1

+
+

S. Chaudhuri

+
+

Science 0152

+
+

Rec B1-B2 R + 11

+
+

 

+
+

Atanasoff B29

+
+

Rec C1-C2 R + 4

+
+

 

+
+

Pearson 101

+
+

 

+
+

 

+
+

 

+
+

311 D1-E2 + Lec MWF 2

+
+

D. Fernandez-Baca

+
+

Science 0152

+
+

Rec D1-D2 R + 3

+
+

 

+
+

Sweeney 1126

+
+

Rec E1-E2 R 2

+
+

 

+
+

Atanasoff B29

+
+

 

+
+

 

+
+

 

+
+

321 A-D Lec MWF + 2

+
+

D. Heller

+
+

Pearson 205

+
+

Lab A T + 12

+
+

 

+
+

Atanasoff 116

+
+

Lab B T 1

+
+

 

+
+

Atanasoff 116

+
+

Lab C T + 2

+
+

 

+
+

Atanasoff 116

+
+

Lab D T + 3

+
+

 

+
+

Atanasoff 116

+
+

 

+
+

 

+
+

 

+
+

330 A-E + Lec MWF 1

+
+

Y. Jia

+
+

Lagomarcino E0164

+
+

Rec A-B W 9

+
+

 

+
+

Atanasoff B29

+
+

Rec C-D W 10

+
+

 

+
+

Gilman 2104

+
+ +
+ +
+
+ +

 

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Course/Section Mtg Time

+
+

Instructors

+
+

Building/Room

+
+

331 A C + Lec MWF 8

+
+

G. Slutzki

+
+

Pearson 103

+
+

Rec A R 8

+
+

 

+
+

Atanasoff B29

+
+

Rec B, C R 11

+
+

 

+
+

Gilman 0611

+
+

 

+
+

 

+
+

 

+
+

342 A + B Lec TR 2-3:30

+
+

C. Clifton

+
+

Durham 171

+
+

Rec A W + 3

+
+

 

+
+

Atanasoff 214

+
+

Rec B W + 2

+
+

 

+
+

Atanasoff 214

+
+

 

+
+

 

+
+

 

+
+

352 D,E,H,J,K Lec MWF 3

+
+

L. Sumpter

+
+

Durham 171

+
+

Rec D, E, H R 12

+
+

 

+
+

Atanasoff B29

+
+

Rec J,K F 12

+
+

 

+
+

Atanasoff B29

+
+

 

+
+

 

+
+

 

+
+

361 + A1-C2 Lec TR 11-12:15

+
+

S. Gadia

+
+

Food Science 2432

+
+

Rec A1-A2 F + 11

+
+

 

+
+

Atanasoff 214

+
+

Rec B1-B2 F + 10

+
+

 

+
+

Atanasoff 214

+
+

Rec C1-C2 F + 12

+
+

 

+
+

Atanasoff 214

+
+

 

+
+

 

+
+

 

+
+

401 1 3 + Lec TR + 10:00

+
+

W. Ostendorf

+
+

Atanasoff + B29

+
+

Lab 1 T 12-2

+
+

 

+
+

Atanasoff 116A

+
+

Lab 2 W 8-10

+
+

 

+
+

Atanasoff 116A

+
+

Lab 3 F 8-10

+
+

 

+
+

Atanasoff 116A

+
+

 

+
+

 

+
+

 

+
+

418X/518X 1 Lec TR 11-12:15

+
+

S. LaValle

+
+

Atanasoff + 214

+
+

 

+
+

 

+
+

 

+
+

430 C1-D2 + Lec MWF 4

+
+

A. Baker

+
+

Atanasoff + B29

+
+

Rec C1-C2 R4

+
+

 

+
+

Atanasoff 214

+
+

Rec D1-D2 R3

+
+

 

+
+

Coover 1219

+
+

 

+
+

 

+
+

 

+
+

461 1, 4, + 5 Lec MWF 1

+
+

S. Gadia

+
+

Sweeney 1134

+
+

Rec 1, 4, 5 T 4

+
+

 

+
+

Atanasoff B29

+
+

 

+
+

 

+
+

 

+
+

471 Lec TR 2-3:25

+
+

MATH

+
+

Carver 408

+
+

 

+
+

 

+
+

 

+
+

472/572 A B + MWF 10

+
+

V. Honavar

+
+

Atanasoff B + 29

+
+

Rec A R 9

+
+

 

+
+

Coover 1219

+
+

 

+
+

 

+
+

 

+
+

511 A B Lec MWF 11

+
+

D. + Fernandez-Baca

+
+

Gilman 1810

+
+

 

+
+

 

+
+

 

+
+

524 1-2 Lec MWF 4 - 5:30

+
+

S. Mitra

+
+

Marston 304

+
+

526 Lec TR 9:30-11

+
+

CPR E

+
+

Coover 1213

+
+

583 1 Lec TR 12:40-2

+
+

CPR E

+
+

Coover 3126

+
+

586 1-2 + Lec TR 2-3:30

+
+

J. Wong

+
+

Atanasoff + 214

+
+

591 A R 5

+
+

L. Miller

+
+

Atanasoff B + 29

+
+

592X MWF 11

+
+

Bioinformatics + faculty

+
+

Carver 68

+
+

594 TR + 9:30-11

+
+

Bioinformatics + faculty

+
+

Molecular + Biology 1420

+
+

595X Arranged

+
+

Bioinformatics faculty

+
+

Arranged

+
+

631 + Arranged

+
+

J. Lutz

+
+

Arranged

+
+

661 1,2 Lec MWF 11

+
+

W. + Tavanapong

+
+

Atanasoff B + 29

+
+ +
+ +

 

+ +
+ + + + diff --git a/hridesh/gradadm/s09blurb.txt b/hridesh/gradadm/s09blurb.txt new file mode 100644 index 0000000..82e0321 --- /dev/null +++ b/hridesh/gradadm/s09blurb.txt @@ -0,0 +1,68 @@ + + + + + + + + Spring 2007 Application Status Information + + + +January 16, 2008

+Fall 2008 Application Status Information

+

+NOTE: Please read ALL information on this page and in the Daily Notes. +

+Click here for +DAILY NOTES.

+ +Application Status:
+Please locate your CS ID tracking number in the table below. +

+Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

+ +

+Official GRE scores are required for full admittance. +

+In Evaluation -- Application is complete and sent to the +review committee. Fall application review will not start until +after February 1. +

+Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

+Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

+Hold -- Application has passed a +first review and is awaiting an additional review. +

+Admit -- Student has been admitted to our graduate program. +

+Funding -- TA position availability for Fall will not be known until April.

+ +Please keep checking your online status for further information. +

+Thank you for your patience.

+ + diff --git a/hridesh/gradadm/s09status.html b/hridesh/gradadm/s09status.html new file mode 100644 index 0000000..42f47a4 --- /dev/null +++ b/hridesh/gradadm/s09status.html @@ -0,0 +1,254 @@ + + + + + + + + Spring 2009 Application Status Information + + + +September 12, 2008

+Spring 2009 Application Status Information

+

+NOTE: Please read ALL information on this page and in the Daily Notes. +

+Click here for +DAILY NOTES.

+ +Application Status:
+Please locate your CS ID tracking number in the table below. +

+Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

+ +

+Official GRE scores are required for full admittance. +

+In Evaluation -- Application is complete and sent to the +review committee. Spring application review will not start until +after September 1. +

+Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

+Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

+Hold -- Application has passed a +first review and is awaiting an additional review. +

+Admit -- Student has been admitted to our graduate program. +

+Funding -- TA position availability for spring will not be known until October +or November.

+ +Please keep checking your online status for further information. +

+Thank you for your patience.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CS IDApplication Status
2615Admit, Full
2690Incomplete
2768Incomplete
2840Incomplete
2995Incomplete
3000In Evaluation
3001In Evaluation
3003Incomplete
3005Incomplete
3006In Evaluation
3007In Evaluation
3008In Evaluation
3009In Evaluation
3010In Evaluation
3011Incomplete
3012In Evaluation
3013In Evaluation
3014In Evaluation
3015In Evaluation
3016In Evaluation
3017In Evaluation
3018In Evaluation
3020In Evaluation
3021Incomplete
3022In Evaluation
3023In Evaluation
3024Incomplete
3025In Evaluation
3026In Evaluation
3027In Evaluation
3028Incomplete
3029Incomplete
3030In Evaluation
3031In Evaluation
3032In Evaluation
3034In Evaluation
3035Incomplete
3036Incomplete
3037In Evaluation
3039Incomplete
3040Incomplete
3041Incomplete
3042Incomplete
3043In Evaluation
3044In Evaluation
diff --git a/hridesh/gradadm/s10blurb.txt b/hridesh/gradadm/s10blurb.txt new file mode 100644 index 0000000..d45091d --- /dev/null +++ b/hridesh/gradadm/s10blurb.txt @@ -0,0 +1,65 @@ + + + + + + + + Spring 2007 Application Status Information + + + +Spring 2010 Application Status Information

+

+NOTE: Please read ALL information on this page and in the Daily Notes. +

+Click here for +DAILY NOTES.

+ +Application Status:
+Please locate your CS ID tracking number in the table below. +

+Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

+ +

+Official GRE scores are required for full admittance. +

+In Evaluation -- Application is complete and sent to the +review committee. +

+Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

+Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. +

+Hold -- Application has passed a +first review and is awaiting an additional review. +

+Admit -- Student has been admitted to our graduate program. +

+Funding -- TA position availability for Spring will not be known until October.

+ +Please keep checking your online status for further information. +

+Thank you for your patience.

+ + diff --git a/hridesh/gradadm/s10status.html b/hridesh/gradadm/s10status.html new file mode 100644 index 0000000..09ab7b2 --- /dev/null +++ b/hridesh/gradadm/s10status.html @@ -0,0 +1,86 @@ + + + + + + + + Spring 2010 Application Status Information + + + +April 9, 2009

+Spring 2010 Application Status Information

+

+NOTE: Please read ALL information on this page and in the Daily Notes. +

+Click here for +DAILY NOTES.

+ +Application Status:
+Please locate your CS ID tracking number in the table below. +

+Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

+

+Official GRE scores are required for full admittance. +

+In Evaluation -- Application is complete and sent to the +review committee. +

+Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

+Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. +

+Hold -- Application has passed a +first review and is awaiting an additional review. +

+Admit -- Student has been admitted to our graduate program. +

+Funding -- TA position availability for Spring will not be known until October.

+ +Please keep checking your online status for further information. +

+Thank you for your patience.

+ + + + + + + + + + + + + + + + + + + + + + +
CS IDApplication Status
3104Admit, Full
3407Not Complete
3408Not Complete
3409Not Complete
diff --git a/hridesh/gradadm/search2002.html b/hridesh/gradadm/search2002.html new file mode 100755 index 0000000..38cf08b --- /dev/null +++ b/hridesh/gradadm/search2002.html @@ -0,0 +1,271 @@ + + + + + + + + +Iowa State University + + + + + + + + + + + + + + +

+ +

Iowa State University

+ +

Department of Computer +Science

+ +

Tenured and Tenure-track +Positions

+ +

 

+ +

   The Department of Computer Science +has several tenure-track faculty positions open for Fall +2003.  Emphasis will be on hiring +applicants at the assistant professor level, but we invite applicants at all +levels in the areas of Software Engineering, Networks, and Systems.  We are especially interested in +experimentalists that can complement our existing strengths in these areas.  All positions require a Ph.D. in Computer +Science or a closely related field.  +Candidates who are in the final stages of obtaining a Ph.D. will also be +considered.  For an assistant +professor appointment, outstanding potential for research in computer science +and promise of effective teaching at undergraduate through graduate levels is +required.  For an associate +professor or full professor appointment, an outstanding record of research in +computer science and a record of effective teaching at undergraduate through +graduate levels is required.

+ +

 

+ +

   The department currently consists +of 23 full-time tenure-track faculty and offers B.S., M.S., and Ph.D. degrees +in Computer Science.  It also +participates in interdepartmental graduate programs in Bioinformatics and +Computational Biology, and Information Assurance.  Both programs are supported by large +multiyear training grants from the National Science Foundation.  The department has about 600 +undergraduates, 60 M.S. students and 40 Ph.D. students.  The department has strong research and +educational programs in Algorithms and Complexity, Artificial Intelligence, +Bioinformatics and Computational Biology, Databases, Data Mining, Parallel and +Distributed Computing, Information Assurance, Programming Languages, Multimedia +Systems, Operating Systems and Networks, and Software Engineering.

+ +

 

+ +

   A dynamic faculty, moderate +teaching load (typically 3 courses per year with further  reductions for junior faculty), +strong graduate program, and well-funded research program provide an excellent +academic environment.  In addition +interdisciplinary interactions facilitated by the Laurence + H. Baker Center for Bioinformatics and +Biological Statistics, the Information Assurance Center, DOE Ames Laboratory, and +the Virtual Reality Center nurture cutting edge +research and education.

+ +

 

+ +

   Iowa State University is a major land-grant +university located in Ames, Iowa.  It is a pleasant, small, yet +cosmopolitan city with a population of over 50,000 (including about 26,000 +students), a vibrant cultural scene, an excellent medical clinic, and a +secondary school system that ranks among the best in the United States.  In 2002, Ames has been ranked as the 20th +best place to live in North America.

+ +

 

+ +

    Applicants should send a +curriculum vita, including the names and addresses of at least three +references, to

+ +

 

+ +

Chair +of Search Committee                                            Fax:      515-294-0258

+ +

Department +of Computer Science                                   Tel:       515-294-4377

+ +

Iowa State University                                                    E-mail:  faculty-search@cs.iastate.edu

+ +

Ames, Iowa 50011-1041                                                URL:    www.cs.iastate.edu

+ +

 

+ +

   Review of applications will begin +on January 1, 2003 and will continue until the +positions are filled.

+ +

 

+ +

   ISU is an Equal +Opportunity/Affirmative Action Employer.  +Women and minorities are encouraged to apply.

+ +
+ + + + diff --git a/hridesh/gradadm/search2002.html.old b/hridesh/gradadm/search2002.html.old new file mode 100755 index 0000000..31637e8 --- /dev/null +++ b/hridesh/gradadm/search2002.html.old @@ -0,0 +1,33 @@ + +Department of Computer Science + + + + +
+ + + +
+CS Homepage +Department of Computer Science
+Iowa State University +
Birthplace of the Electronic Digital Computer
+
+ +

Faculty Positions in Computer Science

+

+Faculty search for Fall 2002 is now closed. Please check back later. +

+ + + + + + + + + + + + diff --git a/hridesh/gradadm/search2002.html.save b/hridesh/gradadm/search2002.html.save new file mode 100755 index 0000000..1d6a75c --- /dev/null +++ b/hridesh/gradadm/search2002.html.save @@ -0,0 +1,107 @@ + +Department of Computer Science + + + + +


+ + + +
+CS Homepage +Department of Computer Science
+Iowa State University +
Birthplace of the Electronic Digital Computer
+
+ +

Faculty Positions in Computer Science

+

+We seek applications for several tenure-track faculty positions, +primarily for assistant professors in Artificial Intelligence +(especially machine learning and +software agents), Distributed Systems, Information Assurance, Information +Systems (including data mining, multi-media systems, internet-based systems), +and Software Engineering. However, outstanding candidates at other ranks will +also be considered. We are especially interested in candidates who will +complement our existing strengths in these areas. Candidates for senior +positions must have a strong record of research, teaching, and external +funding. All positions require a Ph.D. in Computer Science or a closely +related field, completed or in final stages, and strong evidence of research +and teaching abilities. +

+The department currently consists of 21 full-time tenure-track faculty and +offers B.S., M.S., and Ph.D. degrees in Computer Science. It also +participates in interdepartmental graduate programs in Bioinformatics & Computational Biology, and Information Assurance. Both programs are supported +by large multi-year graduate training grants from the National Science +Foundation. The department has about 700 undergraduates, 60 MS students, +and 40 Ph.D. students, and has research strengths in +Algorithms and Complexity, Artificial Intelligence (machine learning, +intelligent agents), Bioinformatics and Computational Biology, Databases, +Data Mining, Distributed Computing, Information Assurance, Programming +Languages, Multimedia Systems, Networks, and Software Engineering. +

+A dynamic faculty, moderate teaching load (typically 3 courses per year with +further reductions for junior faculty), strong graduate program, and +well-funded research provide an excellent work environment. In addition, +interdisciplinary interactions facilitated by the Lawrence E. Baker Center +for Bioinformatics and Biological Statistics, the Information Assurance +Center, DOE Ames Laboratory, and Virtual Reality Applications Center, nurture +leading edge and innovative research and education. +

+Iowa State University is a major land-grant university located in Ames, Iowa. +It is a pleasant, small, yet cosmopolitan city, with a population of over +50,000 (about 26,000 students), a vibrant cultural scene, and a secondary +school system that is among the best in the U. S. Ames ranks as the 2nd +most livable small city in the U.S. +

+Applicants should send a curriculum vita, including names and addresses of +at least three referees, to: +

+Chair of Search Committee +
+Department of Computer Science +
+Iowa State University +
+Ames, IA 50011-1041 +
+Fax: 515-294-0258 +
+Tel: 515-294-4377 +
+E-mail: faculty-search@cs.iastate.edu +

+Review of applications will begin on October 1, 2001, and continue until the +positions are filled. +

+ISU is an Equal Opportunity/Affirmative Action Employer. Women and minorities +are encouraged to apply. +

+


+

+Other Job Openings +

+

+See the +Iowa State University Job News +

+


+ +

+ Iowa State University
+ Department of Computer Science
+ 226 Atanasoff Hall, Ames, IA 50011-1040 USA
+ phone: +1-515-294-4377, fax: +1-515-294-0258

+ + + + + + + + + + + + diff --git a/hridesh/gradadm/sp02gacmentor.html b/hridesh/gradadm/sp02gacmentor.html new file mode 100755 index 0000000..d0ddab9 --- /dev/null +++ b/hridesh/gradadm/sp02gacmentor.html @@ -0,0 +1,5 @@ +October 4, 2001

+ + +Information will be updated in December following completion of the +Spring 2002 admissions process.

diff --git a/hridesh/gradadm/sp02mentor.html b/hridesh/gradadm/sp02mentor.html new file mode 100755 index 0000000..3a7de8b --- /dev/null +++ b/hridesh/gradadm/sp02mentor.html @@ -0,0 +1,15 @@ +March 9, 2001 5:00 p.m.

+ +Dear Admitted Student: +

+Congratulations on your admission to the Ph.D. program in Computer Science at Iowa State University. The Graduate Admissions Committee was especially pleased to see your application among a very strong pool of applications for admission to the Computer Science Graduate Program at Iowa State. +

+Based on your stated interests, we have determined that certain faculty members would be potential mentors for you during your studies at Iowa State University. You can find your mentor(s) on the following table. Your name is being passed on to these faculty members, some of whom may contact you to further explore your interests in working with them. +

+We can offer a limited number of teaching and research assistantships to highly qualified applicants who are committed to pursuing a Ph.D. degree in Computer Science. Given the limited number of assistantships that are available, and the nontrivial effort needed on our part to arrange funding for international students, we can offer such assistantships to only those students who have both the ability, as well as the commitment, to pursue a Ph.D. degree. We would urge you to give this serious consideration since our ability to fund international students in the future is closely tied to the outcome of such funding to students with similar backgrounds. Consequently, we strongly discourage applicants who already possess a Master's degree from pursuing the M.S. degree in our graduate program. We expect the students who are admitted to the Ph.D. program, to begin studies and research leading to a Ph.D. upon their arrival at Iowa State University. +

+If after reviewing the information on research opportunities in the laboratories of potential mentors listed above, and carefully evaluating your career objectives, you determine that you are interested in seriously pursuing a Ph.D. degree in Computer Science at Iowa State University, please respond to ldutton@admin.cs.iastate.edu as soon as possible. We will make every effort to offer you funding for the duration of the Ph.D. program (subject of course to satisfactory performance on your part after you arrive here), through a combination of teaching and research assistantships. +

+If you have specific questions concerning research projects being carried out in the laboratories and research groups of particular faculty members, we encourage you to contact them directly by email. When you write to them, please be sure to mention that you have been admitted to the Ph.D. program. Faculty web pages can be found at http://www.cs.iastate.edu/gradadm/facstaff.html. +

+Information will be provided for newly admitted students for Spring 2002 at a later date. diff --git a/hridesh/gradadm/sp09blurb.txt b/hridesh/gradadm/sp09blurb.txt new file mode 100644 index 0000000..2c251b5 --- /dev/null +++ b/hridesh/gradadm/sp09blurb.txt @@ -0,0 +1,68 @@ + + + + + + + + Spring 2007 Application Status Information + + + +Spring 2009 Application Status Information

+

+NOTE: Please read ALL information on this page and in the Daily Notes. +

+Click here for +DAILY NOTES.

+ +Application Status:
+Please locate your CS ID tracking number in the table below. +

+Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

+ +

+Official GRE scores are required for full admittance. +

+In Evaluation -- Application is complete and sent to the +review committee. Spring application review will not start until +after September 1. +

+Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

+Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

+Hold -- Application has passed a +first review and is awaiting an additional review. +

+Admit -- Student has been admitted to our graduate program. +

+Funding -- TA position availability for spring will not be known until October +or November.

+ +Please keep checking your online status for further information. +

+Thank you for your patience.

+ + diff --git a/hridesh/gradadm/sp09status.html b/hridesh/gradadm/sp09status.html new file mode 100644 index 0000000..42f47a4 --- /dev/null +++ b/hridesh/gradadm/sp09status.html @@ -0,0 +1,254 @@ + + + + + + + + Spring 2009 Application Status Information + + + +September 12, 2008

+Spring 2009 Application Status Information

+

+NOTE: Please read ALL information on this page and in the Daily Notes. +

+Click here for +DAILY NOTES.

+ +Application Status:
+Please locate your CS ID tracking number in the table below. +

+Incomplete -- Materials are missing and application will not be +evaluated. It may take 4-6 weeks for your official TOEFL +and GRE scores to arrive at ISU after test completion so please allow for this delay. +

+ +

+Official GRE scores are required for full admittance. +

+In Evaluation -- Application is complete and sent to the +review committee. Spring application review will not start until +after September 1. +

+Denied -- Application has been denied. Due to the large number +of applications received, we are unable to give individual reasons for +denial. +Some reasons for denial may include low GRE scores, low GPA, weak letters +of recommendation, or incomplete background in Computer +Science. +

+Deactivated -- Application is incomplete and student has not +responded to requests to provide missing materials. Admissions +evaluation has been returned to Graduate Admissions office. +

+Hold -- Application has passed a +first review and is awaiting an additional review. +

+Admit -- Student has been admitted to our graduate program. +

+Funding -- TA position availability for spring will not be known until October +or November.

+ +Please keep checking your online status for further information. +

+Thank you for your patience.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CS IDApplication Status
2615Admit, Full
2690Incomplete
2768Incomplete
2840Incomplete
2995Incomplete
3000In Evaluation
3001In Evaluation
3003Incomplete
3005Incomplete
3006In Evaluation
3007In Evaluation
3008In Evaluation
3009In Evaluation
3010In Evaluation
3011Incomplete
3012In Evaluation
3013In Evaluation
3014In Evaluation
3015In Evaluation
3016In Evaluation
3017In Evaluation
3018In Evaluation
3020In Evaluation
3021Incomplete
3022In Evaluation
3023In Evaluation
3024Incomplete
3025In Evaluation
3026In Evaluation
3027In Evaluation
3028Incomplete
3029Incomplete
3030In Evaluation
3031In Evaluation
3032In Evaluation
3034In Evaluation
3035Incomplete
3036Incomplete
3037In Evaluation
3039Incomplete
3040Incomplete
3041Incomplete
3042Incomplete
3043In Evaluation
3044In Evaluation
diff --git a/nu/doc/jvm/index.html b/hridesh/gradadm/test old mode 100644 new mode 100755 similarity index 100% rename from nu/doc/jvm/index.html rename to hridesh/gradadm/test diff --git a/hridesh/gradadm/testout.html b/hridesh/gradadm/testout.html new file mode 100755 index 0000000..a87a0f7 --- /dev/null +++ b/hridesh/gradadm/testout.html @@ -0,0 +1,33 @@ + + + + +General Information Computer Science Test Out Exams + + + + +

General Information for Those Attempting Computer Science Test Out Exams

+

The tests out examination are schedule as follows: (Be Prompt, the exams are timed.)

+

Atanasoff

+ +

Com S 104 -- Friday, January 10th, 8:00 a.m. Meet in Room 116A, Atanasoff Hall.

+

Com S 227 Exam -- Friday, January 10th, 2:00 p.m. Meet in room B29 Atanasoff Hall

+

Com S 228 Exam -- Friday, January 10th, 3:00 p.m. Meet in room B29 Atanasoff Hall

+

Com S 103 Exam -- Saturday, January 11th, 9:00 a.m. Meet outside Room 125, Atanasoff Hall.

+ +

Test-out Procedures (Billable) $50.00

+

Student must register for the test-out in 226 Atanasoff Hall at least one day prior to the exam. Once you sign up for the test, you will be billed no matter what occurs -- failure to take the test, failing the test, or passing the test. +

    + +
  1. Arrive several minutes before the scheduled exam time. These are timed tests -- no one will be admitted after the exam begins.
  2. +
  3. Bring photo identification to present for admittance to the testing room.
  4. +
  5. Please bring a sharpened #2 pencil with you. No dictionaries or calculators allowed.
  6. +
  7. Each test may be taken only once.
  8. +
  9. There are no sample or practice exams available. Any college text may be used to prepare for the tests.
  10. +
    + +

     

    +

     

    +

     

    + diff --git a/hridesh/gradadm/textbooksf01.html b/hridesh/gradadm/textbooksf01.html new file mode 100755 index 0000000..e204bc7 --- /dev/null +++ b/hridesh/gradadm/textbooksf01.html @@ -0,0 +1,834 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Fall 2002 Computer Science + Textbook Listing
    CourseInstructorTextbookISBNPublisher 
    ComS 101Gloria CainCourseWorksRequired
    ComS 103Margaret MorrisCourse Kit - 2 books and 1 CD0-131-76693-7Prentice HallRequired
    Course Kit - passwords (get from instructor)
    ComS 104TBAThe Computer Continuum1-308-9813-9Prentice HallRequired
    Visual Basic 6 Programming1-302-6199-8Prentice HallRequired
    ComS 107Suzanne TomlinsonProgramming with Visual Basic + 6.00-7600-1076-5Thomson/Course TechnologyRequired
    ComS 201Suzanne TomlinsonStructured COBOL Programming 9th + Edition
    + The MicroFocus COBOL compiler and accompanying book
    0-471-442-534WileyRequired
    ComS 203Al Taylorno textbook
    ComS 207Ralph TomlinsonStarting Out with C++, 2nd Edition1-57676-034-0Scott/Jones PublishersRequired
    Simple Program Design, 3rd Edition0-619-01590-XCourse TechnologyRequired
    ComS 208Ralph TomlinsonStarting Out With C++, 2nd Edition1-57676-034-0Scott/Jones Publishers
    Data Abstraction and Problem Solving with C++, 3rd0-201-74119-9Addison-Wesley
    ComS 227Owen ReynoldsUsing C++, An Introduction to Programming, 2nd Ed.0-534-37484-0Brooks/Cole PublishingRequired
    ComS 228Andy Miner/Jennifer FreemanData Structures and Other Objects Using C++, 2nd ed.0-201-70297-5Prentice Hall/Pearson LearningRequired
    Practical Debugging in C++0-13-065394-2Prentice HallRecommended
    ComS 309S. MitraSoftware Engineering, 6th ed.0-201-3981-5xAddison-WesleyRequired
    ComS 311Soma ChaudhuriIntroduction to Algorithms, 2nd Edition0-07-0131511McGraw Hill/MIT PressRequired
    ComS 321G. PrabhuComputer Organization and Design1-55860-428-6Morgan KaufmannRequired
    ComS 330Giora SlutzkiDiscrete Mathematics w/Cominatorics0-13-086998-8Prentice HallRequired
    ComS 331Jack LutzAutomata and Compatability0-387949070SpringerRequired
    ComS 342Markus LumpeEssentials of Programming Languages0-262-06217-8MIT PressRequired
    ComS 352Andrew MinerOperating Systems Concepts, 6th Edition0-471-41743-2Wileyrequired
    ComS 362Gary LeavensApplying UML and Patterns: An Introduction, 2nd Ed.0130925691Addison-Wesleyrequired
    UML Distilled, 2nd Ed.020165783XAddison-Wesleyrecomm
    Design Patterns0-201-63361-2Addison-Wesleyrecomm
    Object Oriented Design Heuristics020163385XAddison-Wesleyrecomm
    ComS 363Shashi GadiaA First Course in Database Systems0-13-035300-0Prentice HallRequired
    ComS 401TBAno textbook specified
    ComS 430Markus LumpeMicrosoft .NET for Programmers, 1st Ed.1-930110-19-7Manning PublishersRequired
    ComS 461Leslie MillerDatabase System Concepts, 4th + Edition0-07-228363-7,
    + 0-07-112268-0 (ISE)
    McGraw HillRequired
    ComS 472/572Dimitris MargaritisArtificial Intelligence A Modern Approach0-13-103805-2Prentice Hall
    ComS 477x/577xYan-Bin JiaNumerical Recipes in C++: + The Art of Scientific Computing0521750334Cambridge University PressRequired
    ComS 511David Fernandez-BacaIntroduction to Algorithms, 2nd Edition0-07-013151-1McGraw HillRequired
    ComS 515xRobyn LutzSafeware0-201-11972-2Addison-Wesley
    ComS 541Gary LeavensSmalltalk-80: The Language, Edition - paperback0-201-13688-0Addison-WesleyRequired
    Haskell: The Craft of Functional Programming0-201-34275-8Addison-WesleyRequired
    ComS 550xOliver Eulensteinno textbook
    ComS 551xHuangno textbook
    ComS 562xShashi GadiaDatabase Systems: The + Complete Book, Copyright 20020-13-031995-3Prentice Hall PTRRequired
    ComS 586Lu RuanComputer Networking: A Top-Down Approach
    + Featuring the Internet, 2nd Edition
    0-201-97699-4Addison-WesleyRequired
    ComS 587xGuy HelmerJava Network Prorgramming and Distributed Computing0-201-71037-4Addison-WesleyRequired
    ComS 631Pavan Adurino textbook
    ComS 661Wallapak Tavanapongno textbook
     
    Updated 8/9/02
    + + + + diff --git a/hridesh/gradadm/ugradcourses.html b/hridesh/gradadm/ugradcourses.html new file mode 100755 index 0000000..8241777 --- /dev/null +++ b/hridesh/gradadm/ugradcourses.html @@ -0,0 +1,43 @@ + +Undergraduate Courses in Computer Science at Iowa State University + + + + +
    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Undergraduate Courses in Computer Science at Iowa State University

    +

    +The Department of Computer Science offers a broad range of courses +in several +areas of Computer Science including foundations of computer science, algorithms, artificial intelligence, machine learning, robotics, neural computing, computational learning theory, database and knowledgebase systems, distributed computing, networks, computational biology and bioinformatics, complexity theory, multimedia computing, programming languages, software engineering, software systems, and parallel computing. +

    +In addition to the courses currently listed in the catalog, there are several experimental courses that are taught every semester. Interested students should check the Schedule of Classes for experimental course offerings in a given semester. + +

    +

    +
    +

    + Iowa State University
    + Department of Computer Science
    + 226 Atanasoff Hall,
    Ames, IA 50011-1040 USA
    + phone: +1-515-294-4377, fax: +1-515-294-0258

    +

    +Corrections and updates to this page should be directed to honavar@cs.iastate.edu. + + + + diff --git a/hridesh/gradadm/visitames.html b/hridesh/gradadm/visitames.html new file mode 100755 index 0000000..5459058 --- /dev/null +++ b/hridesh/gradadm/visitames.html @@ -0,0 +1,172 @@ + +Visiting the Department of Computer Science at Iowa State University + + + + +


    + + + +
    +CS Homepage +Department of Computer Science
    +Iowa State University +
    Birthplace of the Electronic Digital Computer
    +
    +

    Visiting Ames

    +


    +Transportation
    +
    +You can reach Ames by flying to Des Moines, Iowa (about 28 miles south of Ames on +Interstate 35). Des Moines is served by most major Midwest carriers, including: Access +Air, America West Express, American Airlines, American Eagle, Chicago Express, Comair, +Mesaba Airlines, Northwest Airlines, TWA, US Air Express, and United Airlines. (See the +Des Moines airport web page at +www.dsmairport.com +for phone numbers and flight information.)

    + +

    After arriving in Des Moines, you can travel to Ames via a rental car (Avis, Budget, Hertz, +and National) at the airport (see the airport web page for details), or you can take the +shuttle bus to Ames. Getting from the airport to I-35 in Des Moines is a little tricky; +see the map at www.external.ameslab.gov/Common/dsmmap.html +for route details. There are also good maps of Des Moines on Iowa State's web page at www.fpm.iastate.edu/maps/admap.html.
    +
    +
    +Driving to Ames +
    +
    +Ames is approximately 28 miles north of Des Moines (where Interstates 80 and 35 connect). +We are about 220 miles south of Minneapolis on I-35, 320 miles west of Chicago on I-80, +and 168 miles east of Omaha on I-80.
    +
    +The Facilities, Planning, and Management department has a fantastic interactive map of +Iowa State University on their web page at www.fpm.iastate.edu/maps/. +It would be easiest if you had a look there first. See also www.external.ameslab.gov/Common/amesmap.html. +Department of Computer Science is Located in Atanasoff Hall. +To get to Atanasoff Hall from Interstate 35 near Ames, exit at Highway 30  +(exit 111B) and head west on 30. Take the third exit (exit 146) and head north on Elwood +Drive.  The Iowa State Center will be to your left (west). Cross Lincoln Way  +(2nd set of lights on Elwood) and continue North (turning to the West) on the Elwood  +Drive extension. This turns into Pammel Drive as you enter campus. There are intersections +at Wallace Road and then at Stange Road. There is a three-way intersection at Bissell +Road; turn left (South) on Bissell road. The visitor parking lot is immediately to your +left (East).  Atanasoff Hall is to the south east of the Armory parking lot.

    +


    + Lodging
    +
    +There are many different type of accommodations available in Ames. The Iowa State Memorial +Union is located on campus and has convenient parking and dining facilities. Their web +page is +www.public.iastate.edu/~mu_info/mu.html +and specific room and rate information can be found at  www.public.iastate.edu/~mu_info/lodging.html +  Other facilities in Ames include:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Baymount Inns & Suites2500 Elwood Drive800-428-3438
    Best Western Starlite VillageI-35 & 13th Street800-528-1234
    Comfort Inn1605 South Dayton 80-221-2222
    + Holiday + Inn-Gateway Centernear Elwood & HWY 30800-HOLIDAY
    Ramada Inn1206 South Duff515-922-7384
    + +

    See www.amesev.net/hotels.htm for more +information on all Ames lodging.

    + +


    + Things +to do in Ames
    +
    +No matter what time of the year you plan to visit Ames, there are always plenty of outdoor +and indoor activities from rock concerts to ballet, there are always fun and unusual +things to do.   Have a look at the links below.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Iowa State University web page + www.iastate.edu
    City of Ames web page + www.city.ames.ia.us
    Ames Net + www.ames.ia.us
    Ames Weather + www.intellicast.com/weather/amw/
    Ames Community School District + www.ames.k12.ia.us
    Des Moines Register (newspaper) + www.dmregister.com
    + +

     

    + +

    Ames Weather + + +Click for Ames, Iowa Forecast + + +

     

    + +

     

    + + + diff --git a/hridesh/gradadm/x b/hridesh/gradadm/x new file mode 100755 index 0000000..40f484a --- /dev/null +++ b/hridesh/gradadm/x @@ -0,0 +1,5 @@ +

    +

  11. +Vasant Honavar (Co-PI), Les Miller (with Dianne Cook, Statistics). +Interactive and Dynamic Overviews of Large, Multi-Dimensional Datasets. National Science Foundation (1999-2003). $370,000. +

    diff --git a/hridesh/gradadm/xz b/hridesh/gradadm/xz new file mode 100755 index 0000000..95d89e0 --- /dev/null +++ b/hridesh/gradadm/xz @@ -0,0 +1 @@ +National Institutes of Health (2003-2007). $1,022,000. diff --git a/hridesh/gradadm/y b/hridesh/gradadm/y new file mode 100644 index 0000000..fecc95b --- /dev/null +++ b/hridesh/gradadm/y @@ -0,0 +1 @@ +ETRI Computer and Software Technology Labs (Korea) (2001-2002), $70,000 diff --git a/hridesh/gradadm/z b/hridesh/gradadm/z new file mode 100755 index 0000000..878a2aa --- /dev/null +++ b/hridesh/gradadm/z @@ -0,0 +1,4 @@ +

    +

  12. +David Fernandez-Baca, Algorithms in Parametric Optimization. National Science Foundation(1995-2001). $163,965. +

    diff --git a/hridesh/images/House-05/DSC00063.JPG b/hridesh/images/House-05/DSC00063.JPG new file mode 100755 index 0000000..f6fdee3 Binary files /dev/null and b/hridesh/images/House-05/DSC00063.JPG differ diff --git a/hridesh/images/House-05/DSC00066.JPG b/hridesh/images/House-05/DSC00066.JPG new file mode 100755 index 0000000..9b37001 Binary files /dev/null and b/hridesh/images/House-05/DSC00066.JPG differ diff --git a/hridesh/images/House-05/DSC00070.JPG b/hridesh/images/House-05/DSC00070.JPG new file mode 100755 index 0000000..f2a929a Binary files /dev/null and b/hridesh/images/House-05/DSC00070.JPG differ diff --git a/hridesh/images/House-05/DSC00071.JPG b/hridesh/images/House-05/DSC00071.JPG new file mode 100755 index 0000000..c0108f4 Binary files /dev/null and b/hridesh/images/House-05/DSC00071.JPG differ diff --git a/hridesh/images/House-05/DSC00073.JPG b/hridesh/images/House-05/DSC00073.JPG new file mode 100755 index 0000000..5087ee6 Binary files /dev/null and b/hridesh/images/House-05/DSC00073.JPG differ diff --git a/hridesh/images/House-05/DSC00074.JPG b/hridesh/images/House-05/DSC00074.JPG new file mode 100755 index 0000000..3ed39a7 Binary files /dev/null and b/hridesh/images/House-05/DSC00074.JPG differ diff --git a/hridesh/images/House-05/DSC00093.JPG b/hridesh/images/House-05/DSC00093.JPG new file mode 100755 index 0000000..500b80d Binary files /dev/null and b/hridesh/images/House-05/DSC00093.JPG differ diff --git a/hridesh/images/House-05/DSC00094.JPG b/hridesh/images/House-05/DSC00094.JPG new file mode 100755 index 0000000..91f0ecf Binary files /dev/null and b/hridesh/images/House-05/DSC00094.JPG differ diff --git a/hridesh/images/House-05/DSC00095.JPG b/hridesh/images/House-05/DSC00095.JPG new file mode 100755 index 0000000..b98f698 Binary files /dev/null and b/hridesh/images/House-05/DSC00095.JPG differ diff --git a/hridesh/images/House-05/DSC00096.JPG b/hridesh/images/House-05/DSC00096.JPG new file mode 100755 index 0000000..5c0f09a Binary files /dev/null and b/hridesh/images/House-05/DSC00096.JPG differ diff --git a/hridesh/images/House-05/DSC00097.JPG b/hridesh/images/House-05/DSC00097.JPG new file mode 100755 index 0000000..bc601e1 Binary files /dev/null and b/hridesh/images/House-05/DSC00097.JPG differ diff --git a/hridesh/images/House-05/DSC00098.JPG b/hridesh/images/House-05/DSC00098.JPG new file mode 100755 index 0000000..fb9cc41 Binary files /dev/null and b/hridesh/images/House-05/DSC00098.JPG differ diff --git a/hridesh/images/House-05/DSC00099.JPG b/hridesh/images/House-05/DSC00099.JPG new file mode 100755 index 0000000..d04dacf Binary files /dev/null and b/hridesh/images/House-05/DSC00099.JPG differ diff --git a/hridesh/images/House-05/DSC00100.JPG b/hridesh/images/House-05/DSC00100.JPG new file mode 100755 index 0000000..865ddee Binary files /dev/null and b/hridesh/images/House-05/DSC00100.JPG differ diff --git a/hridesh/images/House-05/DSC00101.JPG b/hridesh/images/House-05/DSC00101.JPG new file mode 100755 index 0000000..91eb095 Binary files /dev/null and b/hridesh/images/House-05/DSC00101.JPG differ diff --git a/hridesh/images/House-05/index.html b/hridesh/images/House-05/index.html new file mode 100644 index 0000000..2704536 --- /dev/null +++ b/hridesh/images/House-05/index.html @@ -0,0 +1,156 @@ + + + + + Album: House + + + + + + + + + + +
    +

    House

    +
    +

    Up

    +
    +


    + + + + + + + + + + + + + + + + + + + + + +
    + +
    + DSC00063 +

    + + +
    + +
    + DSC00066 +

    + + +
    + +
    + DSC00070 +

    + + +
    + +
    + DSC00071 +

    + + +
    + +
    + DSC00073 +

    + + +
    + +
    + DSC00074 +

    + + +
    + +
    + DSC00093 +

    + + +
    + +
    + DSC00094 +

    + + +
    + +
    + DSC00095 +

    + + +
    + +
    + DSC00096 +

    + + +
    + +
    + DSC00097 +

    + + +
    + +
    + DSC00098 +

    + + +
    + +
    + DSC00099 +

    + + +
    + +
    + DSC00100 +

    + + +
    + +
    + DSC00101 +

    + + +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00063.JPG.index.html b/hridesh/images/House-05/tn/DSC00063.JPG.index.html new file mode 100644 index 0000000..e863d8a --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00063.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00063.JPG + + + + + + + + + + +
    +

    House : DSC00063.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00101

    +
    +

    DSC00066

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00101

    +
    +

    DSC00066

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00063.gif b/hridesh/images/House-05/tn/DSC00063.gif new file mode 100644 index 0000000..fee70bf Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00063.gif differ diff --git a/hridesh/images/House-05/tn/DSC00066.JPG.index.html b/hridesh/images/House-05/tn/DSC00066.JPG.index.html new file mode 100644 index 0000000..1e38e85 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00066.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00066.JPG + + + + + + + + + + +
    +

    House : DSC00066.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00063

    +
    +

    DSC00070

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00063

    +
    +

    DSC00070

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00066.gif b/hridesh/images/House-05/tn/DSC00066.gif new file mode 100644 index 0000000..e0b692f Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00066.gif differ diff --git a/hridesh/images/House-05/tn/DSC00070.JPG.index.html b/hridesh/images/House-05/tn/DSC00070.JPG.index.html new file mode 100644 index 0000000..27ddbb2 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00070.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00070.JPG + + + + + + + + + + +
    +

    House : DSC00070.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00066

    +
    +

    DSC00071

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00066

    +
    +

    DSC00071

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00070.gif b/hridesh/images/House-05/tn/DSC00070.gif new file mode 100644 index 0000000..9089040 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00070.gif differ diff --git a/hridesh/images/House-05/tn/DSC00071.JPG.index.html b/hridesh/images/House-05/tn/DSC00071.JPG.index.html new file mode 100644 index 0000000..e9908e0 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00071.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00071.JPG + + + + + + + + + + +
    +

    House : DSC00071.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00070

    +
    +

    DSC00073

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00070

    +
    +

    DSC00073

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00071.gif b/hridesh/images/House-05/tn/DSC00071.gif new file mode 100644 index 0000000..43a6b54 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00071.gif differ diff --git a/hridesh/images/House-05/tn/DSC00073.JPG.index.html b/hridesh/images/House-05/tn/DSC00073.JPG.index.html new file mode 100644 index 0000000..b2201f5 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00073.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00073.JPG + + + + + + + + + + +
    +

    House : DSC00073.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00071

    +
    +

    DSC00074

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00071

    +
    +

    DSC00074

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00073.gif b/hridesh/images/House-05/tn/DSC00073.gif new file mode 100644 index 0000000..2000433 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00073.gif differ diff --git a/hridesh/images/House-05/tn/DSC00074.JPG.index.html b/hridesh/images/House-05/tn/DSC00074.JPG.index.html new file mode 100644 index 0000000..c015ec4 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00074.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00074.JPG + + + + + + + + + + +
    +

    House : DSC00074.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00073

    +
    +

    DSC00093

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00073

    +
    +

    DSC00093

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00074.gif b/hridesh/images/House-05/tn/DSC00074.gif new file mode 100644 index 0000000..45b8feb Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00074.gif differ diff --git a/hridesh/images/House-05/tn/DSC00093.JPG.index.html b/hridesh/images/House-05/tn/DSC00093.JPG.index.html new file mode 100644 index 0000000..9fd1ab2 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00093.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00093.JPG + + + + + + + + + + +
    +

    House : DSC00093.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00074

    +
    +

    DSC00094

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00074

    +
    +

    DSC00094

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00093.gif b/hridesh/images/House-05/tn/DSC00093.gif new file mode 100644 index 0000000..cfca067 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00093.gif differ diff --git a/hridesh/images/House-05/tn/DSC00094.JPG.index.html b/hridesh/images/House-05/tn/DSC00094.JPG.index.html new file mode 100644 index 0000000..911cfcf --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00094.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00094.JPG + + + + + + + + + + +
    +

    House : DSC00094.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00093

    +
    +

    DSC00095

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00093

    +
    +

    DSC00095

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00094.gif b/hridesh/images/House-05/tn/DSC00094.gif new file mode 100644 index 0000000..56e716f Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00094.gif differ diff --git a/hridesh/images/House-05/tn/DSC00095.JPG.index.html b/hridesh/images/House-05/tn/DSC00095.JPG.index.html new file mode 100644 index 0000000..6144604 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00095.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00095.JPG + + + + + + + + + + +
    +

    House : DSC00095.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00094

    +
    +

    DSC00096

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00094

    +
    +

    DSC00096

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00095.gif b/hridesh/images/House-05/tn/DSC00095.gif new file mode 100644 index 0000000..75c803a Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00095.gif differ diff --git a/hridesh/images/House-05/tn/DSC00096.JPG.index.html b/hridesh/images/House-05/tn/DSC00096.JPG.index.html new file mode 100644 index 0000000..8594cde --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00096.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00096.JPG + + + + + + + + + + +
    +

    House : DSC00096.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00095

    +
    +

    DSC00097

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00095

    +
    +

    DSC00097

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00096.gif b/hridesh/images/House-05/tn/DSC00096.gif new file mode 100644 index 0000000..5c78784 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00096.gif differ diff --git a/hridesh/images/House-05/tn/DSC00097.JPG.index.html b/hridesh/images/House-05/tn/DSC00097.JPG.index.html new file mode 100644 index 0000000..4b0c8f9 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00097.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00097.JPG + + + + + + + + + + +
    +

    House : DSC00097.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00096

    +
    +

    DSC00098

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00096

    +
    +

    DSC00098

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00097.gif b/hridesh/images/House-05/tn/DSC00097.gif new file mode 100644 index 0000000..0e04be1 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00097.gif differ diff --git a/hridesh/images/House-05/tn/DSC00098.JPG.index.html b/hridesh/images/House-05/tn/DSC00098.JPG.index.html new file mode 100644 index 0000000..3621656 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00098.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00098.JPG + + + + + + + + + + +
    +

    House : DSC00098.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00097

    +
    +

    DSC00099

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00097

    +
    +

    DSC00099

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00098.gif b/hridesh/images/House-05/tn/DSC00098.gif new file mode 100644 index 0000000..b6f0804 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00098.gif differ diff --git a/hridesh/images/House-05/tn/DSC00099.JPG.index.html b/hridesh/images/House-05/tn/DSC00099.JPG.index.html new file mode 100644 index 0000000..755013b --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00099.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00099.JPG + + + + + + + + + + +
    +

    House : DSC00099.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00098

    +
    +

    DSC00100

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00098

    +
    +

    DSC00100

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00099.gif b/hridesh/images/House-05/tn/DSC00099.gif new file mode 100644 index 0000000..b5fb2b8 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00099.gif differ diff --git a/hridesh/images/House-05/tn/DSC00100.JPG.index.html b/hridesh/images/House-05/tn/DSC00100.JPG.index.html new file mode 100644 index 0000000..dae1f19 --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00100.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00100.JPG + + + + + + + + + + +
    +

    House : DSC00100.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00099

    +
    +

    DSC00101

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00099

    +
    +

    DSC00101

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00100.gif b/hridesh/images/House-05/tn/DSC00100.gif new file mode 100644 index 0000000..7c4f072 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00100.gif differ diff --git a/hridesh/images/House-05/tn/DSC00101.JPG.index.html b/hridesh/images/House-05/tn/DSC00101.JPG.index.html new file mode 100644 index 0000000..6918a9d --- /dev/null +++ b/hridesh/images/House-05/tn/DSC00101.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSC00101.JPG + + + + + + + + + + +
    +

    House : DSC00101.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSC00100

    +
    +

    DSC00063

    +
    +
    + +
    +
    + + + + + +
    +

    DSC00100

    +
    +

    DSC00063

    +
    +
    + + Photo album generated + on Mon Jan 2 09:16:08 2006 + + + diff --git a/hridesh/images/House-05/tn/DSC00101.gif b/hridesh/images/House-05/tn/DSC00101.gif new file mode 100644 index 0000000..dd61e56 Binary files /dev/null and b/hridesh/images/House-05/tn/DSC00101.gif differ diff --git a/hridesh/images/House-08/DSCF0002.JPG b/hridesh/images/House-08/DSCF0002.JPG new file mode 100644 index 0000000..454a37b Binary files /dev/null and b/hridesh/images/House-08/DSCF0002.JPG differ diff --git a/hridesh/images/House-08/DSCF0003.JPG b/hridesh/images/House-08/DSCF0003.JPG new file mode 100644 index 0000000..f3a257f Binary files /dev/null and b/hridesh/images/House-08/DSCF0003.JPG differ diff --git a/hridesh/images/House-08/DSCF0004.JPG b/hridesh/images/House-08/DSCF0004.JPG new file mode 100644 index 0000000..19b0a6e Binary files /dev/null and b/hridesh/images/House-08/DSCF0004.JPG differ diff --git a/hridesh/images/House-08/DSCF0005.JPG b/hridesh/images/House-08/DSCF0005.JPG new file mode 100644 index 0000000..c50fcf5 Binary files /dev/null and b/hridesh/images/House-08/DSCF0005.JPG differ diff --git a/hridesh/images/House-08/DSCF0006.JPG b/hridesh/images/House-08/DSCF0006.JPG new file mode 100644 index 0000000..422c489 Binary files /dev/null and b/hridesh/images/House-08/DSCF0006.JPG differ diff --git a/hridesh/images/House-08/DSCF0007.JPG b/hridesh/images/House-08/DSCF0007.JPG new file mode 100644 index 0000000..085d757 Binary files /dev/null and b/hridesh/images/House-08/DSCF0007.JPG differ diff --git a/hridesh/images/House-08/DSCF0008.JPG b/hridesh/images/House-08/DSCF0008.JPG new file mode 100644 index 0000000..2f8b543 Binary files /dev/null and b/hridesh/images/House-08/DSCF0008.JPG differ diff --git a/hridesh/images/House-08/DSCF0009.JPG b/hridesh/images/House-08/DSCF0009.JPG new file mode 100644 index 0000000..19e9696 Binary files /dev/null and b/hridesh/images/House-08/DSCF0009.JPG differ diff --git a/hridesh/images/House-08/DSCF0010.JPG b/hridesh/images/House-08/DSCF0010.JPG new file mode 100644 index 0000000..ffdeac6 Binary files /dev/null and b/hridesh/images/House-08/DSCF0010.JPG differ diff --git a/hridesh/images/House-08/DSCF0011.JPG b/hridesh/images/House-08/DSCF0011.JPG new file mode 100644 index 0000000..29b1b2c Binary files /dev/null and b/hridesh/images/House-08/DSCF0011.JPG differ diff --git a/hridesh/images/House-08/DSCF0012.JPG b/hridesh/images/House-08/DSCF0012.JPG new file mode 100644 index 0000000..1040caa Binary files /dev/null and b/hridesh/images/House-08/DSCF0012.JPG differ diff --git a/hridesh/images/House-08/DSCF0013.JPG b/hridesh/images/House-08/DSCF0013.JPG new file mode 100644 index 0000000..d87e35c Binary files /dev/null and b/hridesh/images/House-08/DSCF0013.JPG differ diff --git a/hridesh/images/House-08/index.html b/hridesh/images/House-08/index.html new file mode 100644 index 0000000..46449f4 --- /dev/null +++ b/hridesh/images/House-08/index.html @@ -0,0 +1,140 @@ + + + + + Album: House2 + + + + + + + + + + +
    +

    House2

    +
    +

    Up

    +
    +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + DSCF0001 +

    + + +
    + +
    + DSCF0002 +

    + + +
    + +
    + DSCF0003 +

    + + +
    + +
    + DSCF0004 +

    + + +
    + +
    + DSCF0005 +

    + + +
    + +
    + DSCF0006 +

    + + +
    + +
    + DSCF0007 +

    + + +
    + +
    + DSCF0008 +

    + + +
    + +
    + DSCF0009 +

    + + +
    + +
    + DSCF0010 +

    + + +
    + +
    + DSCF0011 +

    + + +
    + +
    + DSCF0012 +

    + + +
    + +
    + DSCF0013 +

    + + +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0002.JPG.index.html b/hridesh/images/House-08/tn/DSCF0002.JPG.index.html new file mode 100644 index 0000000..9d482a3 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0002.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0002.JPG + + + + + + + + + + +
    +

    House2 : DSCF0002.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0001

    +
    +

    DSCF0003

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0001

    +
    +

    DSCF0003

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0002.gif b/hridesh/images/House-08/tn/DSCF0002.gif new file mode 100644 index 0000000..92d07ce Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0002.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0003.JPG.index.html b/hridesh/images/House-08/tn/DSCF0003.JPG.index.html new file mode 100644 index 0000000..883de52 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0003.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0003.JPG + + + + + + + + + + +
    +

    House2 : DSCF0003.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0002

    +
    +

    DSCF0004

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0002

    +
    +

    DSCF0004

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0003.gif b/hridesh/images/House-08/tn/DSCF0003.gif new file mode 100644 index 0000000..9f95a4a Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0003.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0004.JPG.index.html b/hridesh/images/House-08/tn/DSCF0004.JPG.index.html new file mode 100644 index 0000000..12d7b41 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0004.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0004.JPG + + + + + + + + + + +
    +

    House2 : DSCF0004.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0003

    +
    +

    DSCF0005

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0003

    +
    +

    DSCF0005

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0004.gif b/hridesh/images/House-08/tn/DSCF0004.gif new file mode 100644 index 0000000..2fbae12 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0004.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0005.JPG.index.html b/hridesh/images/House-08/tn/DSCF0005.JPG.index.html new file mode 100644 index 0000000..9d74a50 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0005.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0005.JPG + + + + + + + + + + +
    +

    House2 : DSCF0005.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0004

    +
    +

    DSCF0006

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0004

    +
    +

    DSCF0006

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0005.gif b/hridesh/images/House-08/tn/DSCF0005.gif new file mode 100644 index 0000000..1a6ef4c Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0005.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0006.JPG.index.html b/hridesh/images/House-08/tn/DSCF0006.JPG.index.html new file mode 100644 index 0000000..127dc33 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0006.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0006.JPG + + + + + + + + + + +
    +

    House2 : DSCF0006.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0005

    +
    +

    DSCF0007

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0005

    +
    +

    DSCF0007

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0006.gif b/hridesh/images/House-08/tn/DSCF0006.gif new file mode 100644 index 0000000..81c2d8f Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0006.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0007.JPG.index.html b/hridesh/images/House-08/tn/DSCF0007.JPG.index.html new file mode 100644 index 0000000..c470f66 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0007.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0007.JPG + + + + + + + + + + +
    +

    House2 : DSCF0007.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0006

    +
    +

    DSCF0008

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0006

    +
    +

    DSCF0008

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0007.gif b/hridesh/images/House-08/tn/DSCF0007.gif new file mode 100644 index 0000000..c648822 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0007.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0008.JPG.index.html b/hridesh/images/House-08/tn/DSCF0008.JPG.index.html new file mode 100644 index 0000000..a8dc5a6 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0008.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0008.JPG + + + + + + + + + + +
    +

    House2 : DSCF0008.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0007

    +
    +

    DSCF0009

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0007

    +
    +

    DSCF0009

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0008.gif b/hridesh/images/House-08/tn/DSCF0008.gif new file mode 100644 index 0000000..de49bc2 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0008.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0009.JPG.index.html b/hridesh/images/House-08/tn/DSCF0009.JPG.index.html new file mode 100644 index 0000000..95a51c0 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0009.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0009.JPG + + + + + + + + + + +
    +

    House2 : DSCF0009.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0008

    +
    +

    DSCF0010

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0008

    +
    +

    DSCF0010

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0009.gif b/hridesh/images/House-08/tn/DSCF0009.gif new file mode 100644 index 0000000..8879806 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0009.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0010.JPG.index.html b/hridesh/images/House-08/tn/DSCF0010.JPG.index.html new file mode 100644 index 0000000..fdbbe03 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0010.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0010.JPG + + + + + + + + + + +
    +

    House2 : DSCF0010.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0009

    +
    +

    DSCF0011

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0009

    +
    +

    DSCF0011

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0010.gif b/hridesh/images/House-08/tn/DSCF0010.gif new file mode 100644 index 0000000..5578487 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0010.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0011.JPG.index.html b/hridesh/images/House-08/tn/DSCF0011.JPG.index.html new file mode 100644 index 0000000..52a2849 --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0011.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0011.JPG + + + + + + + + + + +
    +

    House2 : DSCF0011.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0010

    +
    +

    DSCF0012

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0010

    +
    +

    DSCF0012

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0011.gif b/hridesh/images/House-08/tn/DSCF0011.gif new file mode 100644 index 0000000..549715d Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0011.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0012.JPG.index.html b/hridesh/images/House-08/tn/DSCF0012.JPG.index.html new file mode 100644 index 0000000..c8324ee --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0012.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0012.JPG + + + + + + + + + + +
    +

    House2 : DSCF0012.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0011

    +
    +

    DSCF0013

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0011

    +
    +

    DSCF0013

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0012.gif b/hridesh/images/House-08/tn/DSCF0012.gif new file mode 100644 index 0000000..6303539 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0012.gif differ diff --git a/hridesh/images/House-08/tn/DSCF0013.JPG.index.html b/hridesh/images/House-08/tn/DSCF0013.JPG.index.html new file mode 100644 index 0000000..9271eaf --- /dev/null +++ b/hridesh/images/House-08/tn/DSCF0013.JPG.index.html @@ -0,0 +1,53 @@ + + + + + Album: DSCF0013.JPG + + + + + + + + + + +
    +

    House2 : DSCF0013.JPG

    +
    +

    Back

    +
    +
    + + + + + +
    +

    DSCF0012

    +
    +

    DSCF0001

    +
    +
    + +
    +
    + + + + + +
    +

    DSCF0012

    +
    +

    DSCF0001

    +
    +
    + + Photo album generated + on Mon Jan 30 10:00:37 2006 + + + diff --git a/hridesh/images/House-08/tn/DSCF0013.gif b/hridesh/images/House-08/tn/DSCF0013.gif new file mode 100644 index 0000000..6232fb2 Binary files /dev/null and b/hridesh/images/House-08/tn/DSCF0013.gif differ diff --git a/hridesh/images/ISUbecoming.gif b/hridesh/images/ISUbecoming.gif new file mode 100644 index 0000000..08e9cab Binary files /dev/null and b/hridesh/images/ISUbecoming.gif differ diff --git a/hridesh/images/boa.png b/hridesh/images/boa.png new file mode 100644 index 0000000..654bd71 Binary files /dev/null and b/hridesh/images/boa.png differ diff --git a/hridesh/images/btn-twitter-hover.png b/hridesh/images/btn-twitter-hover.png new file mode 100644 index 0000000..c67db73 Binary files /dev/null and b/hridesh/images/btn-twitter-hover.png differ diff --git a/hridesh/images/btn-twitter.png b/hridesh/images/btn-twitter.png new file mode 100644 index 0000000..7c8ddf0 Binary files /dev/null and b/hridesh/images/btn-twitter.png differ diff --git a/hridesh/images/cc9.gif b/hridesh/images/cc9.gif new file mode 100644 index 0000000..703148e Binary files /dev/null and b/hridesh/images/cc9.gif differ diff --git a/hridesh/images/fallrajan.jpg b/hridesh/images/fallrajan.jpg new file mode 100644 index 0000000..32fa186 Binary files /dev/null and b/hridesh/images/fallrajan.jpg differ diff --git a/hridesh/images/house.jpg b/hridesh/images/house.jpg new file mode 100644 index 0000000..4694b31 Binary files /dev/null and b/hridesh/images/house.jpg differ diff --git a/hridesh/images/house2.jpg b/hridesh/images/house2.jpg new file mode 100644 index 0000000..a55a597 Binary files /dev/null and b/hridesh/images/house2.jpg differ diff --git a/hridesh/images/hrajan.jpg b/hridesh/images/hrajan.jpg new file mode 100644 index 0000000..46190db Binary files /dev/null and b/hridesh/images/hrajan.jpg differ diff --git a/hridesh/images/icse06.gif b/hridesh/images/icse06.gif new file mode 100644 index 0000000..69a5488 Binary files /dev/null and b/hridesh/images/icse06.gif differ diff --git a/hridesh/images/icse06.jpg b/hridesh/images/icse06.jpg new file mode 100644 index 0000000..55b4102 Binary files /dev/null and b/hridesh/images/icse06.jpg differ diff --git a/hridesh/images/index.html b/hridesh/images/index.html new file mode 100755 index 0000000..c4caefd --- /dev/null +++ b/hridesh/images/index.html @@ -0,0 +1,12 @@ + + +403 Forbidden + + +

    Forbidden

    +

    You don't have permission to access this URL +on this server.

    +
    +
    Apache/2.0.40 Server at www.cs.iastate.edu Port 80
    + + diff --git a/hridesh/images/isu200.gif b/hridesh/images/isu200.gif new file mode 100644 index 0000000..b31bc51 Binary files /dev/null and b/hridesh/images/isu200.gif differ diff --git a/hridesh/images/llcurve.gif b/hridesh/images/llcurve.gif new file mode 100644 index 0000000..616d19b Binary files /dev/null and b/hridesh/images/llcurve.gif differ diff --git a/hridesh/images/nsf.jpg b/hridesh/images/nsf.jpg new file mode 100644 index 0000000..6ab9e0a Binary files /dev/null and b/hridesh/images/nsf.jpg differ diff --git a/hridesh/images/ss.jpg b/hridesh/images/ss.jpg new file mode 100644 index 0000000..72a9fb7 Binary files /dev/null and b/hridesh/images/ss.jpg differ diff --git a/hridesh/images/ss2.jpg b/hridesh/images/ss2.jpg new file mode 100644 index 0000000..cb44cdc Binary files /dev/null and b/hridesh/images/ss2.jpg differ diff --git a/hridesh/includes/articles.htm b/hridesh/includes/articles.htm new file mode 100644 index 0000000..5e5f20e --- /dev/null +++ b/hridesh/includes/articles.htm @@ -0,0 +1,3 @@ +You can follow this link to read a brief Introduction to Mobile Ad Hoc Networks(MANETs).

    + +Here are few essays: Non-Obtrusive Monitoring , Optimal kitchen. \ No newline at end of file diff --git a/hridesh/includes/awards.htm b/hridesh/includes/awards.htm new file mode 100644 index 0000000..e6a6229 --- /dev/null +++ b/hridesh/includes/awards.htm @@ -0,0 +1,27 @@ +

    + * Founding member and advisor of Amalgam: an interdisciplinary journal for the graduate students at the University of Virginia. +

    +

    + * Mentoring Chair for ACM-W, an ACM initiative at the University of Virginia to encourage womens participation in computing. +

    +

    + * Computer Science graduate student steering committee, Department of Computer Science, University of Virginia 2002-2003 +

    +

    + * Led the Institute of Technologys project team in the Computer Society International Design contest 2000 (CSIDC 2000) [Our project was among the top 20 projects in the world] +

    +

    + * IEEE Outstanding Design Award for the design and implementation of an economic wireless network +

    +

    + * Outstanding Student Award by the IEEE Students' branch, Institute of Technology, BHU, Varanasi, India for leadership in branch activities and teaching contributions +

    +

    + * Treasurer, IEEE Students branch, Institute of Technology, BHU 99-00 +

    +

    + * Secretary, IEEE Students branch, Institute of Technology, BHU 98-99 +

    +

    + * Top 1% of 150,000 people who took the prestigious Joint Entrance Examination '96 for admission to Indian Institute of Technologies and Institute of Technology - Banaras Hindu University +

    diff --git a/hridesh/includes/clean.php b/hridesh/includes/clean.php new file mode 100644 index 0000000..fa4210a --- /dev/null +++ b/hridesh/includes/clean.php @@ -0,0 +1,29 @@ + + + +

    + +Number of records cleaned: + +

    + + \ No newline at end of file diff --git a/hridesh/includes/conferences.htm b/hridesh/includes/conferences.htm new file mode 100644 index 0000000..74cf774 --- /dev/null +++ b/hridesh/includes/conferences.htm @@ -0,0 +1,29 @@ + +
    Consider submitting to and attending:
    + + + + + + + + + + + + + +
    + + + + +     + + + + + +     +    
    +
    diff --git a/hridesh/includes/contents/2004-pubs-incl.htm b/hridesh/includes/contents/2004-pubs-incl.htm new file mode 100644 index 0000000..a68270d --- /dev/null +++ b/hridesh/includes/contents/2004-pubs-incl.htm @@ -0,0 +1,24 @@ +

    2004 and before.

    + +

    Jia Xu, Hridesh Rajan and Kevin Sullivan, "Understanding Aspects via Implicit Invocation", In the +proceedings of 19th IEEE International Conference on Automated Software Engineering, Linz, Austria, Sept 2004. +[PDF Format]

    + +

    Hridesh Rajan, "One More Step in the Direction of Modularized Integration Concerns", In the proceedings of +the Doctoral Symposium, 26th International Conference on Software Engineering (ICSE 2004), 23-28 May 2004, +Edinburgh, UK. [PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Eos: Instance-Level Aspects for Integrated System Design ", In the +proceedings of the 2003 Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003), Helsinki, Finland, September 2003. +[PDF Format]

    + +

    Hridesh Rajan, "Effects of Applying Mobility Localization to Source Routing Algorithms in Mobile Ad Hoc Networks", In the proceedings of IEEE Symposium on Computers and Communication (ISCC) 2003, July 2003, Kemer, Antalya, Turkey. +[PDF Format]

    + +

    Hridesh Rajan, "Distributed Mobile Servers: Vehicle to Increase Effective Bandwidth and End to End Connectivity in an Ad Hoc Mobile Network", In the proceedings of SCI 2001/ISAS 2001, Volume XII, July, 2001, Orlando, USA. +

    + +

    Hridesh Rajan, "Last Entered Algorithm for Mutual Exclusion in a Distributed System", Accepted for the proceedings of 15th ACM Symposium on Applied Computing (SAC 2001), March 2001, Alexis Park Resort, Las Vegas, Nevada, USA +

    + +

    S.C.Gupta and Hridesh Rajan, "DOC@HOME: A Health Care System", IEEE ACE-2000 December2000, Mumbai, India.

    diff --git a/hridesh/includes/contents/OtherPublications.htm b/hridesh/includes/contents/OtherPublications.htm new file mode 100644 index 0000000..b6fb481 --- /dev/null +++ b/hridesh/includes/contents/OtherPublications.htm @@ -0,0 +1,4 @@ +

    Hridesh Rajan, "Unifying Aspect- and Object-Oriented Program Design", +Ph.D. Thesis, Department of Computer Science, University of Virginia, Aug 2005. +[PDF Format] +

    diff --git a/hridesh/includes/contents/conference.htm b/hridesh/includes/contents/conference.htm new file mode 100644 index 0000000..497350e --- /dev/null +++ b/hridesh/includes/contents/conference.htm @@ -0,0 +1,45 @@ +

    +Kevin Sullivan, William Griswold, Yuanyuan Song, Yuanfang Cai, Macneil Shonle, Nishit Tewari, Hridesh Rajan, "Information Hiding Interfaces for Aspect-Oriented Design", In the proceedings of the Joint 10th European Software +Engineering Conference and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2005), 5-9 Sept 2005, Lisbon, Portugal.

    + +

    Hridesh Rajan and Kevin Sullivan, "Classpects: Unifying Aspect- and Object-Oriented Language Design", +In the proceedings of the 27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, +St. Louis, Missouri, USA +[PDF Format]. +Previous version appeared as Technical Report CS-2004-21, Department of Computer Science, University of Virginia, Sept 2004 +[PDF Format]. Extended version appeared as +Ph.D. Thesis, Department of Computer Science, University of Virginia, Aug 2005 +[PDF Format]. +

    + +

    Hridesh Rajan and Kevin Sullivan, "Aspect Language Features for Concern Coverage Profiling", +In the proceedings of the Fourth International Conference on Aspect-Oriented Software Development (AOSD 2005), +14-18 March, 2005, Chicago, IL, USA +[PDF Format]. +Previous version appeared as Technical Report CS-2004-30, Department of Computer Science, University of Virginia, Sept 2004. +[PDF Format]. +

    + +

    Jia Xu, Hridesh Rajan and Kevin Sullivan, "Understanding Aspects via Implicit Invocation", In the +proceedings of 19th IEEE International Conference on Automated Software Engineering, Linz, Austria, Sept 2004. +[PDF Format]

    + +

    Hridesh Rajan, "One More Step in the Direction of Modularized Integration Concerns", In the proceedings of +the Doctoral Symposium, 26th International Conference on Software Engineering (ICSE 2004), 23-28 May 2004, +Edinburgh, UK. [PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Eos: Instance-Level Aspects for Integrated System Design ", In the +proceedings of the 2003 Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003), Helsinki, Finland, September 2003. +[PDF Format]

    + +

    Hridesh Rajan, "Effects of Applying Mobility Localization to Source Routing Algorithms in Mobile Ad Hoc Networks", In the proceedings of IEEE Symposium on Computers and Communication (ISCC) 2003, July 2003, Kemer, Antalya, Turkey. +[PDF Format]

    + +

    Hridesh Rajan, "Distributed Mobile Servers: Vehicle to Increase Effective Bandwidth and End to End Connectivity in an Ad Hoc Mobile Network", In the proceedings of SCI 2001/ISAS 2001, Volume XII, July, 2001, Orlando, USA. +

    + +

    Hridesh Rajan, "Last Entered Algorithm for Mutual Exclusion in a Distributed System", Accepted for the proceedings of 15th ACM Symposium on Applied Computing (SAC 2001), March 2001, Alexis Park Resort, Las Vegas, Nevada, USA +

    + +

    S.C.Gupta and Hridesh Rajan, "DOC@HOME: A Health Care System", IEEE ACE-2000 December2000, Mumbai, India.

    + diff --git a/hridesh/includes/contents/journal.htm b/hridesh/includes/contents/journal.htm new file mode 100644 index 0000000..19af246 --- /dev/null +++ b/hridesh/includes/contents/journal.htm @@ -0,0 +1,5 @@ + +William Griswold, Kevin Sullivan, Yuanyuan Song, Macneil Shonle, +Nishit Tewari, Yuanfang Cai, Hridesh Rajan, "Modular Software Design +with Crosscutting Interfaces", IEEE Software, Special Issue on +Aspect-Oriented Programming, Jan/Feb 2006. [PDF Format]
    diff --git a/hridesh/includes/contents/pubs-incl.htm b/hridesh/includes/contents/pubs-incl.htm new file mode 100644 index 0000000..aaf5c57 --- /dev/null +++ b/hridesh/includes/contents/pubs-incl.htm @@ -0,0 +1,96 @@ +

    2007

    +

    Mahantesh Hosamani, Harish Narayanappa, Hridesh Rajan (2007) +" Monitoring the Monitor: An Approach Towards +Trustworthiness in Service Oriented Architecture," +Technical Report 07-07, Computer Science, Iowa State +University, June 4, 2007. +[PDF Format] + +

    Robert Dyer, Rakesh Setty, Hridesh Rajan (2007) +"Nu: Towards a Flexible and Dynamic +Aspect-Oriented Intermediate Language Model," +Technical Report 07-06, Computer Science, Iowa State +University, June 1, 2007. +[PDF Format] + +

    Hridesh Rajan (2007) "A Case for Explicit Join Point Models for Aspect-oriented Intermediate Languages," Virtual Machines and Intermediate Languages for Emerging Modularization Mechanisms (VMIL 2007), a workshop affiliated with AOSD 2007, Vancouver, Canada, March 13, 2007. [PDF Format]

    + +

    2006

    + +

    Hridesh Rajan (2006) "Type-Based Quantification of Aspect-Oriented Programs", Technical Report 06-32, Computer Science, Iowa State University, Sep 7, 2006. [PDF Format]

    + +

    Youssef Hanna, Hridesh Rajan, and Wensheng Zhang (2006) "SLEDE: Event-Based Specification of Sensor Network Protocols". Technical Report 06-31, Computer Science, Iowa State University, October 12, 2006, Revised Nov 14, 2006. [PDF Format]

    + +

    Robert Dyer and Hridesh Rajan (2006) "Modular Compilation Strategies for Aspect-Oriented Constructs", Technical Report 06-30, Computer Science, Iowa State University, July 16, 2006. [PDF Format]

    + +

    Juri Memmert, Hridesh Rajan, "Osiris: Generating Concern Models from Source Code", Appeared as a short poster paper in the proceedings of Fourteenth ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE 2006), Portland, OR, Nov 2006.

    + +

    Youssef Hanna, Hridesh Rajan, "SLEDE: Event Based Specification of Sensor Network Protocols", Appeared as a short poster paper in the proceedings of Fourteenth ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE 2006), Portland, OR, Nov 2006.

    + +

    Robert Dyer, Harish Narayanappa, Hridesh Rajan, "Nu: Preserving Design Modularity in Object Code", Appeared as a short poster paper in the proceedings of Fourteenth ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE 2006), Portland, OR, Nov 2006.

    + +

    Jing Liu, Robyn Lutz and Hridesh Rajan, "The Role of Aspects in Modeling Product Line Variabilities", In +Aspect-oriented Product Line Engineering (AOPLE' 06), A workshop associated with OOPSLA' 06: Conference on Object Oriented +Programming Systems Languages and Applications, Oct 22, 2006, Portland, OR. [PDF Format]

    + +

    Hridesh Rajan, Robert Dyer, Harish Narayanappa, Youssef Hanna, "Nu: Towards an Aspect-Oriented Invocation Mechanism", Technical Report #414, Department of Computer Science, Iowa State University, Mar 26, 2006. +[PDF Format]

    + +

    Hridesh Rajan, Robert Dyer, Youssef Hanna, Harish Narayanappa, +"Preserving Separation of Concerns through Compilation", +In Software Engineering Properties of Languages and Aspect Technologies +(SPLAT 06), A workshop affiliated with AOSD 2006, March 21, 2006. Bonn, +Germany. Previous version appeared as Technical Report #405, +Dept. of Computer Sc., Iowa State University. + +[PDF Format]

    + +

    +William Griswold, Kevin Sullivan, Yuanyuan Song, Macneil Shonle, +Nishit Tewari, Yuanfang Cai, Hridesh Rajan, "Modular Software Design +with Crosscutting Interfaces", IEEE Software, Special Issue on +Aspect-Oriented Programming, Jan/Feb 2006. [PDF Format] +

    + +

    2005

    + +

    +Kevin Sullivan, William Griswold, Yuanyuan Song, Yuanfang Cai, Macneil Shonle, Nishit Tewari, Hridesh Rajan, "Information Hiding Interfaces for Aspect-Oriented Design", In the proceedings of the Joint 10th European Software +Engineering Conference and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2005), 5-9 Sept 2005, Lisbon, Portugal.

    + +

    Hridesh Rajan and Kevin Sullivan, "Classpects: Unifying Aspect- and Object-Oriented Language Design", +In the proceedings of the 27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, +St. Louis, Missouri, USA +[PDF Format]. +

    + +

    Hridesh Rajan and Kevin Sullivan, "Aspect Language Features for Concern Coverage Profiling", +In the proceedings of the Fourth International Conference on Aspect-Oriented Software Development (AOSD 2005), +14-18 March, 2005, Chicago, IL, USA +[PDF Format]. +

    + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hridesh/includes/contents/recentProfessional.htm b/hridesh/includes/contents/recentProfessional.htm new file mode 100644 index 0000000..0be0b12 --- /dev/null +++ b/hridesh/includes/contents/recentProfessional.htm @@ -0,0 +1,37 @@ + diff --git a/hridesh/includes/contents/recentPublications.htm b/hridesh/includes/contents/recentPublications.htm new file mode 100644 index 0000000..e619bbd --- /dev/null +++ b/hridesh/includes/contents/recentPublications.htm @@ -0,0 +1,54 @@ + +

    Juri Memmert, Hridesh Rajan, "Osiris: Generating Concern Models from Source Code", +A short poster paper in the proceedings of Fourteenth ACM SIGSOFT Symposium on +Foundations of Software Engineering (FSE 2006), Portland, OR.

    + +

    Youssef Hanna, Hridesh Rajan, "SLEDE: Event Based Specification of Sensor Network Protocols", +A short poster paper in the proceedings of Fourteenth ACM SIGSOFT Symposium on +Foundations of Software Engineering (FSE 2006), Portland, OR.

    + +

    Robert Dyer, Harish Narayanappa, Hridesh Rajan, "Nu: Preserving Design Modularity in Object Code", +A short poster paper in the proceedings of Fourteenth ACM SIGSOFT Symposium on +Foundations of Software Engineering (FSE 2006), Portland, OR.

    + +

    Hridesh Rajan, Robert Dyer, Harish Narayanappa, Youssef Hanna, +"Nu: Towards an Aspect-Oriented Invocation Mechanism", +Technical Report #414, Department of Computer Science, Iowa State University, Mar 26, 2006. +[PDF Format]

    + +

    Hridesh Rajan, Robert Dyer, Youssef Hanna, Harish Narayanappa, +"Preserving Separation of Concerns through Compilation", +In Software Engineering Properties of Languages and Aspect Technologies +(SPLAT 06), A workshop affiliated with AOSD 2006, March 21, 2006. Bonn, +Germany. Previous version appeared as Technical Report #405, +Dept. of Computer Sc., Iowa State University. + +[PDF Format]

    + +

    William Griswold, Kevin Sullivan, Yuanyuan Song, Macneil Shonle, +Nishit Tewari, Yuanfang Cai, Hridesh Rajan, "Modular Software Design +with Crosscutting Interfaces", IEEE Software, Special +Issue on Aspect-Oriented Programming, Jan/Feb 2006. + +[PDF Format]

    + +

    Kevin Sullivan, William Griswold, Yuanyuan Song, Yuanfang Cai, +Macneil Shonle, Nishit Tewari, Hridesh Rajan, "Information +Hiding Interfaces for Aspect-Oriented Design", In the +proceedings of the Joint 10th European Software +Engineering Conference and 13th ACM SIGSOFT Symposium on the +Foundations of Software Engineering (ESEC/FSE 2005), 5-9 Sept 2005, +Lisbon, Portugal. + +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Classpects: +Unifying Aspect- and Object-Oriented Language Design", +In the proceedings of the 27th International Conference on +Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, +Missouri, USA. + +[PDF Format]

    +

    +More... +

    diff --git a/hridesh/includes/contents/talks.htm b/hridesh/includes/contents/talks.htm new file mode 100644 index 0000000..fe979b0 --- /dev/null +++ b/hridesh/includes/contents/talks.htm @@ -0,0 +1,31 @@ +"A Case for Explicit Join Point Models for Aspect-oriented Intermediate Languages", VMIL 2007 colocated with AOSD 2007

    + +"Introduction to VMIL 2007 workshop", VMIL 2007 colocated with AOSD 2007

    + +"Towards an Aspect-Oriented Invocation Mechanism", University of British Columbia, Software Practices Lab, May 2006

    + +"Preserving Separation of Concerns through Compilation", University of Minnesota, Software Engineering Center, Mar 2006

    + +"The Design and the implementation of the Eos Language", Microsoft Research, November 2005

    + +"Are Aspects Essential for Aspect-Oriented Programming?", Rutgers University, June 2005

    + +"Classpects: Unifying Aspect- and Object-Oriented Language Design", ICSE 2005, May 2005

    + +"Improved Abstractions for Aspect-Oriented Programming", University of California, Irvine, April 2005

    + +"Improved Abstractions for Aspect-Oriented Programming", Northeastern University, April 2005

    + +"Unified Aspect Language Model", University of Pittsburgh, March 2005

    + +"Improved Abstractions for Aspect-Oriented Programming", Iowa State University, March 2005

    + +"Eos: The Power of Simplicity", University of Chicago, March 2005

    + +"Aspect Language Features for Concern Coverage Profiling", AOSD 2005, March 2005

    + +"Eos: Instance-Level Aspects for Integrated System Design", ESEC/FSE 2003, Sept 2003

    + +"Need for Instance Level Aspects with Rich Pointcut Language", SPLAT 2003, Mar 2003

    + + diff --git a/hridesh/includes/contents/techreport.htm b/hridesh/includes/contents/techreport.htm new file mode 100644 index 0000000..dca4d86 --- /dev/null +++ b/hridesh/includes/contents/techreport.htm @@ -0,0 +1,20 @@ +

    Hridesh Rajan, Robert Dyer, Harish Narayanappa, Youssef Hanna, +"Nu: Towards an Aspect-Oriented Invocation Mechanism", +Technical Report #414, Department of Computer Science, Iowa State University, Mar 26, 2006. +[PDF Format]

    + +

    Hridesh Rajan, "Nu: Enabling Modularity in Multilingual, Multienvironment, Distributed Systems", +Technical Report #396, Department of Computer Science, Iowa State University, Oct 31, 2005. +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Design Patterns: A Canonical Test of Unified Aspect Model", +Technical Report #389, Department of Computer Science, Iowa State University, Oct 2005. +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Classpects in Practice: A Test of the Unified Aspect Model", +Technical Report #383, Department of Computer Science, Iowa State University, Sept 2005. +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "On the Expressive Power of Classpects", +Technical Report CS-2005-14, Department of Computer Science, University of Virginia, July 2005. +[PDF Format]

    diff --git a/hridesh/includes/contents/workshop.htm b/hridesh/includes/contents/workshop.htm new file mode 100644 index 0000000..976866b --- /dev/null +++ b/hridesh/includes/contents/workshop.htm @@ -0,0 +1,23 @@ +

    Jing Liu, Robyn Lutz and Hridesh Rajan, "The Role of Aspects in Modeling Product Line Variabilities", In Aspect-oriented Product Line Engineering (AOPLE' 06), A workshop associated with OOPSLA' 06: Conference on Object Oriented Programming Systems Languages and Applications, Oct 22, 2006, Portland, OR.

    +

    Hridesh Rajan, Robert Dyer, Youssef Hanna, Harish Narayanappa, +"Preserving Separation of Concerns through Compilation", +In Software Engineering Properties of Languages and Aspect Technologies +(SPLAT 06), A workshop affiliated with AOSD 2006, March 21, 2006. Bonn, +Germany. + +[PDF Format]. Previous version appeared as Technical Report #405, +Department of Computer Science, Iowa State University + +[PDF Format]. +

    + +

    Jia Xu, Hridesh Rajan and Kevin Sullivan, "Aspect Reasoning by Reduction to Implicit Invocation", In the +proceedings of Workshop on Foundations of Aspect-Oriented Languages (FOAL) held in conjunction with the International Conference on Aspect-Oriented Software Development, Lancaster, UK, March 2004. +[PDF Format] +

    + +

    +Hridesh Rajan and Kevin Sullivan, "Need for Instance Level Aspects with Rich Pointcut Language", In +the proceedings of the Workshop on Software Engineering Properties of Languages for Aspect Technologies (SPLAT) held in conjunction with International Conference on Aspect-Oriented Software Development, Boston, Massachusetts, March 2003. +[PDF Format][PS Format] +

    diff --git a/hridesh/includes/duringbtech.htm b/hridesh/includes/duringbtech.htm new file mode 100644 index 0000000..166dddd --- /dev/null +++ b/hridesh/includes/duringbtech.htm @@ -0,0 +1,37 @@ +During B.Tech

    +
    + I did my Bachelors in Computer Sc. & Eng. from Institute + of Technology in 2000 where I contributed to the development of + a Light Weight Distributed Operating System in Department of Computer + Science & Eng. as my B. Tech Project, advised by Late Dr. V.N.Misra. + I was working on the Design of a configurable kernel called "SANCHAR" + which is suitable for the changing need of the current scenario. +
    +
    + I was team leader of the team developing DOC@HOME a health care + appliance for Computer Society International Design Competition, + 2000 (CSIDC). The team + was placed among the TOP + 20 teams in the world .
    +
    + I also worked on the design of a economic wireless network for the + university premises, advised by Professor S.C.Gupta.

    +

     

    + +   + + + +

    Teaching Experience
    +

    +

    I helped Professor Robins and Professor Reynolds + in teaching the course CS202 - Discrete Mathematics in the Fall + 2001.
    +

    +

    I taught 'C' and 'C++' for quite some time as an instructor for + the classroom courses organized by IEEE STUDENTS' BRANCH, INSTITUTE + OF TECHNOLOGY, BHU,varanasi,India.

    \ No newline at end of file diff --git a/hridesh/includes/experience.htm b/hridesh/includes/experience.htm new file mode 100644 index 0000000..4f7a7d2 --- /dev/null +++ b/hridesh/includes/experience.htm @@ -0,0 +1,55 @@ +

    Teaching Assistant (Sept 04 Dec 04)

    +

    University of Virginia, Charlottesville, VA

    + +

    + * Co-designed the course structure for CS551/CS651 Aspect-oriented Software Development +

    +

    + * Designed and evaluated homework assignments and quizzes and taught several lectures +

    + +

    Research Assistant (Dec 01 Present)

    +

    University of Virginia, Charlottesville, VA

    + +

    + * Designed & implemented an aspect-oriented extension for C# called Eos and implemented a compiler in C# for .NET Framework, the compiler is available from www.cs.virginia.edu/~eos +

    +

    + * Designed and implemented a framework for implementing testing and verification tools +

    +

    + * Designed and implemented AspectCov: a selective concern coverage tool +

    +

    + * Developed understanding of three aspect oriented languages (AspectJ HyperJ and Sina/St) and then compared their performance and ease of design by implementing benchmarks +

    + +

    Teaching Assistant (Sept 01 Dec 01)

    +

    University of Virginia, Charlottesville, VA

    +

    + * Evaluated homework assignments and exams for the course CS202 Discrete Mathematics +

    + +

    Member of Technical Staff (July 00 July 01)

    +

    Lucent Technologies, Bangalore, India

    +

    + * Performed impact analysis of new feature requests on the Base-station Controller Frame and assisted in supporting the feature, required effort was spread across the software development life cycle +

    +

    + * Analyzed the potential application of Mobile-IP in GPRS systems +

    +

    + * Designed and implemented a project-document maintenance and retrieval system for internal use +

    + +

    Summer Intern (May 99 Jul 99)

    +

    Bharat Heavy Electrical Ltd, New Delhi, India

    +

    + * Designed, developed, and tested a skill management system for the organization, making skill deployment and organization wide technical interaction efficient thus increasing productivity +

    + +

    Instructor (Aug 98 Dec 99)

    +

    IEEE Students Branch, Institute of Technology, BHU, Varanasi, India

    +

    + * Independently designed courses on programming in C and C++ and object-oriented programming +

    diff --git a/hridesh/includes/index.html b/hridesh/includes/index.html new file mode 100644 index 0000000..c4caefd --- /dev/null +++ b/hridesh/includes/index.html @@ -0,0 +1,12 @@ + + +403 Forbidden + + +

    Forbidden

    +

    You don't have permission to access this URL +on this server.

    +
    +
    Apache/2.0.40 Server at www.cs.iastate.edu Port 80
    + + diff --git a/hridesh/includes/latestnews.html b/hridesh/includes/latestnews.html new file mode 100644 index 0000000..953aa6b --- /dev/null +++ b/hridesh/includes/latestnews.html @@ -0,0 +1,17 @@ +

    + + + Latest news of interest: + +

    + [Mar 15, 04]: Guinness mystery finally resolved
    + [Mar 02, 04]: Mars rover makes 'significant findings'
    + [Mar 01, 04]: New worm (Netsky-D) spreading through e-mail
    + [Feb 29, 04]: 76th Academy Awards

    + + + Did you know that: + +

    + RFID Tags in New US Notes Explode When You Try to Microwave Them

    +

    \ No newline at end of file diff --git a/hridesh/includes/leisurelinks.htm b/hridesh/includes/leisurelinks.htm new file mode 100644 index 0000000..e034331 --- /dev/null +++ b/hridesh/includes/leisurelinks.htm @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + + + Inside Charlottesville + +

    + + Movies
    + UVa Drama
    + Shenandoah Shakespeare
    + Ice Park
    + Dining
    + Starr Hill Music Hall
    + Fridays After 5
    + Visitors Bureau

    +

      + + Music + +

    + + + + + +
    + The Beatles
    + Deep Purple [Unofficial]
    + The Doors
    + The Eagles
    + Iron Maiden
    + Judas Priest
    + Mark Knopfler - Dire Straits
    + Pink Floyd
    + The Scorpions
    + Led Zeppelin
    +
    + Raaga
    + Euphoria
    + Linkin Park
    + Bella Morte
    + Green Day
    + Bad Religion
    +
    +
    +
      +

    News +

    + + Slashdot
    + Times Of India
    + CNN
    + NY TIMES
    + Technology Review
    +

    +
      +

    Entrepreneurship and New Ventures Links +
    +
    + The Money Tree Survey
    + Charlottesville Venture Group

    +

    +
    + + Puzzle Yourself + + +

    + Puzzle.com
    + Wu's Riddles
    + Review of Moving Mount Fuji

    +
      + + Good Deals aka Save $$$ + + +

    + FatWallet
    + Ben's Bargains
    + AnandTech

    +

    +
      +

    Learn how to : +
    +
    + Automate your lamp :)
    + Fix and hack your Ape_ DVD player + Evaluate a bike before buying. +

    +
      +

    Etc. Etc. +

    + + VandeMatram
    + Talk to GAC at Mindpixel
    + Shrek
    + FabMart
    + Keirsey Temperament Sorter assessment test
    + 76th Academy Awards
    + Snoqualmie Falls
    + Ferzana:Jewelry For Your Soul

    +

    +
    diff --git a/hridesh/includes/msclinks.htm b/hridesh/includes/msclinks.htm new file mode 100644 index 0000000..5f996ee --- /dev/null +++ b/hridesh/includes/msclinks.htm @@ -0,0 +1,18 @@ + + + +

    + + Classics +

    + + "Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they + transform unexpectedly from the familiar into horrors. For these, on seeks bullets of silver that can + magically lay them to rest" ~ From "No Silver Bullet - Essence and Accidents of Software Engineering" by + Frederick P. Brooks, Jr.

    + + "Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. + So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. + Discover." ~Mark Twain
    + +

    \ No newline at end of file diff --git a/hridesh/includes/posters.htm b/hridesh/includes/posters.htm new file mode 100644 index 0000000..c9543ff --- /dev/null +++ b/hridesh/includes/posters.htm @@ -0,0 +1,2 @@ + Combining Expressive Pointcut Language and Instance-level Aspect Weaving at the Student Research Extravaganza, International Conference on +Aspect-Oriented Software Development, Boston, Massachusetts, March 17 - 21, 2003. \ No newline at end of file diff --git a/hridesh/includes/presentations.htm b/hridesh/includes/presentations.htm new file mode 100644 index 0000000..a3c240a --- /dev/null +++ b/hridesh/includes/presentations.htm @@ -0,0 +1,12 @@ +Eos: Instance-Level Aspects for Integrated System Design , At 2003 Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003), Helsinki, Finland, September 2003.

    + +Two Dimensions and Beyond: Chapter 5 from Stepen Wolfram's New Kind of Science for CS-851: Biologically Inspired Computing, Spring 2003.

    + +Aspect Moderator Framework for CS-651: Aspect Oriented Software Development, Spring 2002.

    + +The Constructive Cost Model (CoCoMo) for CS-851: Software Economics, Spring 2002.

    + +Concepts and Experiments in Computational Reflection by Maes for CS-651: +Aspect Oriented Software Development, Spring 2002.

    + + OOE vs EPIC for CS-654: Computer Organization, Fall 2001. diff --git a/hridesh/includes/references.htm b/hridesh/includes/references.htm new file mode 100644 index 0000000..16529b5 --- /dev/null +++ b/hridesh/includes/references.htm @@ -0,0 +1,63 @@ + + + + + + + + + +
    +

    + + Kevin J. Sullivan +


    + Department of Computer Science
    + School of Engineering and Applied Science
    + University of Virginia
    + 151 Engineer's Way, P.O. Box 400740
    + Charlottesville, VA 22904-4740
    + + Phone: (434) 982-2206
    + Fax: (434) 982-2214
    + Email: sullivan@cs.virginia.edu
    +
    +

    + + William G. Griswold +


    + Department of Computer Science
    + University of California, San Diego
    + La Jolla, CA 92093-0114
    + Phone: (858) 534-6898
    + Fax: (858) 534-7029
    + Email: wgg@cs.ucsd.edu
    +
    +
    +

    + + John C. Knight +


    + Department of Computer Science
    + School of Engineering and Applied Science
    + University of Virginia
    + 151 Engineer's Way, P.O. Box 400740
    + Charlottesville, VA 22904-4740
    + Phone: (434) 982-2216
    + Fax: (434) 982-2214
    + Email: knight@cs.virginia.edu
    +
    +
    +

    + + David Evans +


    + Department of Computer Science
    + School of Engineering and Applied Science
    + University of Virginia
    + 151 Engineer's Way, P.O. Box 400740
    + Charlottesville, VA 22904-4740
    + Phone: (434) 982-2218
    + Fax: (434) 982-2214
    + Email: evans@cs.virginia.edu
    +
    \ No newline at end of file diff --git a/hridesh/includes/researchlinks.htm b/hridesh/includes/researchlinks.htm new file mode 100644 index 0000000..572ef17 --- /dev/null +++ b/hridesh/includes/researchlinks.htm @@ -0,0 +1,20 @@ +

    + ACM
    + ETSI
    + 3GPP
    + IEEE
    + IETF
    + UMTS FORUM
    + Computer Society
    + Project Management Institute
    + Quality Assurance Resources
    + +
    + AOSD
    + AspectJ
    + HyperJ
    + Composition Filters
    + Demeter and Adaptive Programming
    + + Aspect-Oriented Run-Time Architechture (AORTA)
    +

    diff --git a/hridesh/includes/rinterests.htm b/hridesh/includes/rinterests.htm new file mode 100644 index 0000000..4685167 --- /dev/null +++ b/hridesh/includes/rinterests.htm @@ -0,0 +1,9 @@ +

    Research Areas and Projects: +

      +
    • Software Engineering: Software Design, Modularity in Software Design, Aspect-oriented Software Development, program comprehension techniques
    • +
    • Programming Language Design and Implementation: Aspect-oriented Languages, Specification Languages
    • +
    +

    + +

    More information about my research and projects is available from the web page of Laboratory for Software Design. + diff --git a/hridesh/includes/techreport.htm b/hridesh/includes/techreport.htm new file mode 100644 index 0000000..dca4d86 --- /dev/null +++ b/hridesh/includes/techreport.htm @@ -0,0 +1,20 @@ +

    Hridesh Rajan, Robert Dyer, Harish Narayanappa, Youssef Hanna, +"Nu: Towards an Aspect-Oriented Invocation Mechanism", +Technical Report #414, Department of Computer Science, Iowa State University, Mar 26, 2006. +[PDF Format]

    + +

    Hridesh Rajan, "Nu: Enabling Modularity in Multilingual, Multienvironment, Distributed Systems", +Technical Report #396, Department of Computer Science, Iowa State University, Oct 31, 2005. +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Design Patterns: A Canonical Test of Unified Aspect Model", +Technical Report #389, Department of Computer Science, Iowa State University, Oct 2005. +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "Classpects in Practice: A Test of the Unified Aspect Model", +Technical Report #383, Department of Computer Science, Iowa State University, Sept 2005. +[PDF Format]

    + +

    Hridesh Rajan and Kevin Sullivan, "On the Expressive Power of Classpects", +Technical Report CS-2005-14, Department of Computer Science, University of Virginia, July 2005. +[PDF Format]

    diff --git a/hridesh/includes/template/footer.htm b/hridesh/includes/template/footer.htm new file mode 100644 index 0000000..46c0146 --- /dev/null +++ b/hridesh/includes/template/footer.htm @@ -0,0 +1,35 @@ +
+ + + + + + + + +
+ + + + + + diff --git a/hridesh/includes/template/headBottom.htm b/hridesh/includes/template/headBottom.htm new file mode 100644 index 0000000..7706100 --- /dev/null +++ b/hridesh/includes/template/headBottom.htm @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + Iowa State University +
+ + + +
+ + +
+

Department of Computer Science

+

Hridesh Rajan

+
+ + + + + + +"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - foreach ($labels as $i => $l) - { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - } - - if ($reverse) - { - $pct1 = @round(average($baseline) / average($jvm) * 100, 2); - $pct2 = @round(average($caching) / average($jvm) * 100, 2); - } else { - $pct1 = @round(average($jvm) / average($baseline) * 100, 2); - $pct2 = @round(average($jvm) / average($caching) * 100, 2); - } - - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - echo "
+ + + +
+

Got a question?

+

+Got a question or comment? Contact me at +(515) 294-6168 or hridesh@iastate.edu. +

+
+
+ +
diff --git a/hridesh/includes/template/headTop.htm b/hridesh/includes/template/headTop.htm new file mode 100644 index 0000000..c27771c --- /dev/null +++ b/hridesh/includes/template/headTop.htm @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/hridesh/index-cp.shtml b/hridesh/index-cp.shtml new file mode 100644 index 0000000..02c443b --- /dev/null +++ b/hridesh/index-cp.shtml @@ -0,0 +1,336 @@ + + + +Dr. Hridesh Rajan, Kingland Professor of Computer Science, Iowa State University + + + + + + + + + + + + + + + + + +
+

picture

+
+

+
+

+Professor-In-Charge
+ISU Data Science Program +

+ +

+Kingland Professor
+Department of Computer Science,
+Software Engineering Program,
+Information Assurance Program, and
+Human Computer Interaction (HCI) Program
+Iowa State University
+226 Atanasoff Hall, Ames, IA, 50011
+

+ +

+phone: +1-515-294-6168
+email: hridesh@iastate.edu
+office: 105 Atanasoff Hall
+

+ +

Ph.D., The University of Virginia, 2005
+ M.S., The University of Virginia, 2004
+ B.Tech., Indian Institute of Technology (BHU), 2000

+

+ +

Associate Editor
+IEEE Transactions on Software Engineering

+ +
+ +

Biography

+

+Hridesh Rajan is a full professor of computer science at Iowa State University, +where he has been since 2005. +Professor Rajan earned his MS and Ph.D. from the University of Virginia +in 2004 and 2005 respectively. +Prof. Rajan's research interests are +in programming languages, software engineering, and data science where he is most known +for his design of the Ptolemy +programming language that showed how to +modularly reason about crosscutting concerns and the +Boa programming +language and its infrastructure that decreases the barriers to +data-driven software engineering. +Professor Rajan’s recent research and educational activities are aimed at +decreasing the barrier to entry to data-driven sciences to broaden participation. +His work on the Boa project is aimed at invention and refinement of +cyberinfrastructures that democratize data-driven science. +His work on the Midwest Big Data Summer School is experimenting with broadly +accessible data science curricula. +Professor Rajan was the founding general chair of the +Midwest Big Data Summer School. +

+

+Professor Rajan is the director of the +Laboratory for Software Design at +Iowa State University, director of graduate admissions and recruitment for +the computer science department, Professor-In-Charge for the +Data Science programs +at Iowa State University, and chair of +the information technology committee for the university. +Professor Rajan serves on the steering committee of the +Midwest Big Data Hub, +a consortium of universities in the Midwest region of the United States +focussed on promoting data science activities. +Professor Rajan also serves as an associate editor for the +IEEE Transactions on Software Engineering. +Professor Rajan is a recipient of the National Science Foundation CAREER +award in 2009, LAS Award for Early Achievement in Research in 2010, +and a Big-12 Fellowship in 2012. +He is a distinguished member of ACM, and a member of IEEE, and AAAS. +He is also the inaugural holder of the Kingland professorship in the +Department of Computer Science. +

+ +Short bio (for talks, etc.) Hridesh Rajan is the Kingland professor in the Department of Computer +Science at Iowa State University. Prof. Rajan's research interests are +in programming languages, software engineering, and data science where he is most known +for his design of the Ptolemy programming language that showed how to +modularly reason about crosscutting concerns and the Boa programming +language and its infrastructure that decreases the barriers to +data-driven software engineering. He has been recognized by the US +National Science Foundation (NSF) with a CAREER award, an Early +Achievement in Research Award, a Big-12 Fellowship, the Kingland +Professorship, and an exemplary mentor for Junior Faculty award. +Prof. Rajan is a distinguished member of the ACM, and serves +as an associate editor for the IEEE Transactions on Software Engineering. +

+

Research Interests

+
    +
  • Modularity, modular reasoning
  • +
  • Programming languages, Software Engineering, and Compilers
  • +
  • Data science, especially Software Engineering of Data Science software.
  • +
  • Concurrency, especially modular reasoning about concurrency + correctness and performance. Scalable support for modular verification + of concurrency properties in compilers.
  • +
  • Advanced separation of concerns mechanisms such as events, reactive + signals, and aspects and modular reasoning about such mechanisms. +
+

I have spent the majority of my career thinking about modularity and modular + reasoning issues and inventing programming abstractions that allow reasoning + mechanisms to scale to larger programs, to tackle new class of modularization + mechanisms, and to tackle new class of properties. +

+

+ Our work on the Ptolemy project + has created more modular mechanisms for reasoning about crosscutting concerns. +

+

+ Our work on the Boa programming language + and its infrastructure has created linguistic abstractions for data-driven science + that scale because the language design ensures more modular reasoning about runtime tasks. + A deployed setup of Boa (http://boa.cs.iastate.edu) + is used by hundreds of scientists around the world to study open source projects + for a variety of purposes and over three dozen external research papers have + appeared so far that have used Boa as a research instrument. +

+

+ Our work on the Panini project + (http://paninij.org) has created abstractions + for improving modular reasoning about concurrent programs. +

+ +

I direct the Laboratory for Software Design + in the Department of Computer Science. + + In 2016 and 2017 we have also organized the + Midwest Big Data Summer School, + a one-week, intensive curriculum aimed at early career researchers to get them + started in data-driven research.

+ +

Select Recent Publications

+ + +

For more details including publications, +funded research projects, +and current students +please visit my lab's web-pages.

+ + +

Teaching

+
    + + +
  • Spring 2018: COMS 342, +a course on principles of programming languages
  • +
  • Fall 2016: COMS 362, a course on object-oriented analysis and design
  • +
  • Spring 2016: +COMS 641, a course on design and semantics of data intensive languages and systems
  • + + + + + + +
+ +

Major Awards and Honors

+ +

+ +

Former Graduate Students

+ + +

Key Projects

+ +

+

+ + + + + + + + +
+ +Midwest Big Data Summer School +  + +Boa Project +  +Panini Project +
+

+
+ + + + + + + + diff --git a/hridesh/index.shtml b/hridesh/index.shtml new file mode 100644 index 0000000..97a53ab --- /dev/null +++ b/hridesh/index.shtml @@ -0,0 +1,654 @@ + + + +Dr. Hridesh Rajan, Kingland Professor, Department of Computer Science, Iowa State University + + + + + + + + + + + + + + + + + +
+

picture

+
+

+
+

+Kingland Professor and Department Chair, Computer Science

+

Ph.D., University of Virginia, 2005
+ M.S., University of Virginia, 2004
+ B.Tech., Indian Institute of Technology (BHU), 2000

+

Voice: +1-515-294-6168
+E-mail: hridesh@iastate.edu
+Office: 226 Atanasoff Hall
+ + +

+ + + + +
+

Research Interests

+
    +
  • Software Engineering (SE), programming languages (PL), and data science
  • +
  • Data science, SE & PL for data-intensive systems, + and data-driven SE.
  • +
  • Modular reasoning about properties of software.
  • +
  • Advanced modularity and separation of concerns mechanisms + and modular reasoning about such mechanisms. +
+
+

News

+ +
+
+ + + + + +--> + +

Bio

+

+Hridesh Rajan is a professor and department chair +of computer science at Iowa State University, +where he has been since 2005. +Professor Rajan earned his MS and Ph.D. from the University of Virginia +in 2004 and 2005 respectively. +Prof. Rajan's research interests are +in programming languages, software engineering, and data science where he is most known +for his design of the Ptolemy +programming language that showed how to +modularly reason about crosscutting concerns and the +Boa programming +language and its infrastructure that decreases the barriers to +data-driven software engineering. +Professor Rajan’s recent research and educational activities are aimed at +decreasing the barrier to entry to data-driven sciences to broaden participation. +His work on the Boa project is aimed at invention and refinement of +cyberinfrastructures that democratize data-driven science. +His work on the Midwest Big Data Summer School is experimenting with broadly +accessible data science curricula. +Professor Rajan is the founding general chair of the annual +Midwest Big Data Summer School, +and the founder of the VMIL workshop series. +

+

+Professor Rajan is the + department chair of +Department of Computer Science, +director of the +Laboratory for Software Design at +Iowa State University, and +Professor-In-Charge of the +Data Science programs +at Iowa State University. +Professor Rajan also serves as an associate editor for the +IEEE Transactions on Software Engineering. +Professor Rajan served on the steering committee of the +Midwest Big Data Hub, +a consortium of universities in the Midwest region of the United States +focussed on promoting data science activities. +Professor Rajan also served as the chair of the Faculty Senate +Information Technology committee during the transition of ERP systems. +Professor Rajan is a recipient of the National Science Foundation CAREER +award in 2009, LAS Award for Early Achievement in Research in 2010, +a Big-12 Fellowship in 2012, and a Fulbright scholarship in 2018. +He is a distinguished member of ACM, and a member of IEEE, and AAAS. +He is also the inaugural holder of the Kingland professorship in the +Department of Computer Science. +

+ +

Short bio (for talks, etc.)

+

+Hridesh Rajan is the Kingland professor and department chair +in the Department of Computer +Science at Iowa State University. Prof. Rajan's research interests are +in programming languages, software engineering, and data science where he is most known +for his design of the Ptolemy programming language that showed how to +modularly reason about crosscutting concerns and the Boa programming +language and its infrastructure that decreases the barriers to +data-driven software engineering. He has been recognized by the US +National Science Foundation (NSF) with a CAREER award, an Early +Achievement in Research Award, a Big-12 Fellowship, the Kingland +Professorship, and an exemplary mentor for Junior Faculty award. +Prof. Rajan is a Fulbright scholar, +distinguished member of the ACM, and serves +as an associate editor for the IEEE Transactions on Software Engineering. +

+ +

Select Recent Publications

+

+ +

Research Projects

+

+My recent research has focussed on data science and concurrency. +My overarching research program is aimed at improving programmer productivity, and correctness of software systems that +they produce. In particular, I am interested in designing new programming abstractions that +abstract away error-prone concerns, improve modularity, and improve modular reasoning. +By abstracting away error-prone concerns, and having compilers and programming frameworks +automatically provide adequate implementation of such concerns, my research aspires to reduce +potential for errors in software, and improve productivity. +By improving modularity and modular reasoning, my research strives for improved scalability +in both manual and automatic reasoning as well as verification processes. + +My main research projects are:

+ +

    +
  • Boa, a domain-specific +language and its infrastructure whose goal is to significantly ease the +experimental cost of mining ultra-large-scale open source repositories. +Boa is a research infrastructure that consists of a domain-specific language, its compiler and data +updating tools, terabytes (and growing) of raw data from open source +repositories that contains hundreds of thousands of open source projects, +a backend based on map-reduce to effectively analyze this dataset, +a compute cluster, and a web-based frontend for writing analysis programs. + +Boa project has been supported in part by the following grants. + + +

    Following research papers document progress on this project:

    + + +
  • + +
  • SpecGuru project +that is developing techniques for inferring behavioral specifications +that rely on both program analysis and data mining of data from open +source repositories. + +SpecGuru project has been supported in part by the following grants. +
      +
    • +US National Science Foundation, SHF: Large:Collaborative Research: Inferring Software Specifications from +Open Source Repositories by Leveraging Data and Collective Community Expertise. +PI: Hridesh Rajan and Co-I: Robert Dyer, Tien Nguyen, Gary T. Leavens, and Vasant Honavar (2015-2018), +Links: ISU, +BGSU, +UCF, and +PSU. +
    • +
    + +

    Following research papers document progress on this project:

    + + +
  • + +
  • Panini project that is developing the +capsule-oriented +programming model. +Capsule-oriented programming model is aimed at making concurrent software +development easier by providing two properties: +(1) given a module it ought to be possible to statically, and modularly identify all points +in its code where other modules might interfere (interference points), and +(2) given a module and the interfaces of other modules, that the subject module interacts with, it +ought to be possible to statically and modularly construct an upper bound on the behavior +of all potentially interferring tasks at each interference point. +We show that if a programming model has these two properties, then it is possible to modularly +reason about concurrent programs in that model. +By the first property, humans and tools can identify points where interference from other +concurrent tasks must be considered. By the second property, the computed upper bound can be +used for reasoning instead of needing the implementation of interferring modules. +Compared to alternatives, where reasoning either becomes a global process or entails a global +step, modular reasoning afforded by this programming model makes both manual and automated +reasoning about concurrent software more scalable. Panini project has been supported in part +by the following grants. +

    + + + +

    Following research papers document progress on this project:

    + + +

    We have created two software systems that support this programming model so far:

    +
      +
    1. +an extension of Java (and the reference compiler javac) that we call +PaniniJ, and
    2. +
    3. an annotation-based framework that uses annotation processing facilities, +instead of syntax extensions, that we call @PaniniJ.
    4. +
    +
  • + +
  • Ptolemy, an event-based +language whose goal is to enable more modular reasoning about advanced separation +of concerns mechanisms such as implicit invocation and aspects. Ptolemy provides +quantified-typed events +that act as an interface between modules. A key benefit of quantified-typed events is +that they allow programmers to write new kinds of contracts that we call +translucid contracts, +which enables modular reasoning about modules that announce events and those +that listen to events. Ptolemy project has been supported in part by the following +grant. + + +

    Following research papers document progress on this project:

    + +
  • +
  • more...
  • +

+ + +

Teaching

+

    + +
  • Spring 2019: +COMS 541, a graduate course on programming languages +
  • +
  • Spring 2018: COMS 342, +an undergraduate course on principles of programming languages
  • +
  • Fall 2016: COMS 362, a course on object-oriented analysis and design
  • +
  • Spring 2016: +COMS 641, a course on design and semantics of data intensive languages and systems
  • + + + + + + +

+ +

Major Awards and Honors

+

    +
  • +2009 Early CAREER Award, US National Science Foundation +
  • +
  • +2010 Early Achievement in Research Award, College of Liberal Arts & Science, +Iowa State University +
  • +
  • +2012 Big-12 Fellowship +
  • +
  • +2014 ACM Senior Member +
  • +
  • +2016-17 Emerging Leaders Academy. +See news here. +
  • +
  • +2016 Kingland Professorship. See news here. +
  • +
  • +2016-17 Exemplary Mentor of Junior Faculty, Iowa State University. +See news here. +
  • +2017 ACM Distinguished Member. See news here. +
  • +
  • +2018 Fulbright US-UK Scholar. See news here. +
  • +
  • +2020 Facebook Probability and Programming Award +
  • +
  • +2020 ACM SIGSOFT Distinguished Paper Award at ESEC/FSE 2020 +
  • +

+ +--> + +

Former Graduate Students

+

+ +

Recent Professional Services

+

+

+

+ + +--> +
+ + + + diff --git a/hridesh/news.htm b/hridesh/news.htm new file mode 100644 index 0000000..68cfe9a --- /dev/null +++ b/hridesh/news.htm @@ -0,0 +1,29 @@ + diff --git a/hridesh/old-ideas.htm b/hridesh/old-ideas.htm new file mode 100644 index 0000000..7996157 --- /dev/null +++ b/hridesh/old-ideas.htm @@ -0,0 +1,23 @@ + + + +
  • Translucid contracts that allows programmers to write modular specification +of aspect-oriented interfaces and that allows one to modularly reason about +control effects in aspect-oriented programs. +More details in our AOSD'11 +paper and from the Ptolemy project's web-page that also has download for our compiler. +
  • --> + + diff --git a/hridesh/old-research-goals.htm b/hridesh/old-research-goals.htm new file mode 100644 index 0000000..494c304 --- /dev/null +++ b/hridesh/old-research-goals.htm @@ -0,0 +1,31 @@ +

    Research Theme and Goals

    +

    +My research aims to improve software quality and programmer productivity +by development and refinement of modularization techniques. +I have contributed to design, semantics, and implementation of +aspect-oriented language features, where my main goal has been to +improve the regularity, orthogonality, and conceptual integrity of +aspect language features +(see the Eos and +Nu projects for details). +I have also contributed to improving modular reasoning about +aspect-oriented programs +(see the Ptolemy +project for details). +

    + +

    +Most of my current efforts are directed towards the design, semantics, +and implementation of + +the Panini language. +The main goal of Panini's design is to address problems +with explicit concurrency features such as data races, deadlocks +and non-deterministic semantics. +Key idea is to design programming language features +and software design practices that exploit +common interaction patterns available in good, modular software +design to expose potential concurrency implicitly and safely. +In that sense, Panini's design reconciles modularity and +concurrency goals. +

    diff --git a/hridesh/papers/ao-criteria-fse.pdf b/hridesh/papers/ao-criteria-fse.pdf new file mode 100644 index 0000000..180fc28 Binary files /dev/null and b/hridesh/papers/ao-criteria-fse.pdf differ diff --git a/hridesh/papers/aosd02.pdf b/hridesh/papers/aosd02.pdf new file mode 100644 index 0000000..9655e36 Binary files /dev/null and b/hridesh/papers/aosd02.pdf differ diff --git a/hridesh/papers/aosd05.pdf b/hridesh/papers/aosd05.pdf new file mode 100644 index 0000000..25884f5 Binary files /dev/null and b/hridesh/papers/aosd05.pdf differ diff --git a/hridesh/papers/ase04.pdf b/hridesh/papers/ase04.pdf new file mode 100644 index 0000000..63fed24 Binary files /dev/null and b/hridesh/papers/ase04.pdf differ diff --git a/hridesh/papers/cs_2004_21.pdf b/hridesh/papers/cs_2004_21.pdf new file mode 100644 index 0000000..85e4b50 Binary files /dev/null and b/hridesh/papers/cs_2004_21.pdf differ diff --git a/hridesh/papers/cs_2004_30.pdf b/hridesh/papers/cs_2004_30.pdf new file mode 100644 index 0000000..fc0e81a Binary files /dev/null and b/hridesh/papers/cs_2004_30.pdf differ diff --git a/hridesh/papers/cs_oct_2005.pdf b/hridesh/papers/cs_oct_2005.pdf new file mode 100644 index 0000000..0e9389f Binary files /dev/null and b/hridesh/papers/cs_oct_2005.pdf differ diff --git a/hridesh/papers/cs_sept_2005.pdf b/hridesh/papers/cs_sept_2005.pdf new file mode 100644 index 0000000..7ea3252 Binary files /dev/null and b/hridesh/papers/cs_sept_2005.pdf differ diff --git a/hridesh/papers/dms.pdf b/hridesh/papers/dms.pdf new file mode 100644 index 0000000..d996f36 Binary files /dev/null and b/hridesh/papers/dms.pdf differ diff --git a/hridesh/papers/dms.ps b/hridesh/papers/dms.ps new file mode 100644 index 0000000..e8be0e6 Binary files /dev/null and b/hridesh/papers/dms.ps differ diff --git a/hridesh/papers/doc-at-home.pdf b/hridesh/papers/doc-at-home.pdf new file mode 100644 index 0000000..5be37f5 Binary files /dev/null and b/hridesh/papers/doc-at-home.pdf differ diff --git a/hridesh/papers/doc@home.pdf b/hridesh/papers/doc@home.pdf new file mode 100644 index 0000000..5be37f5 Binary files /dev/null and b/hridesh/papers/doc@home.pdf differ diff --git a/hridesh/papers/doc@home.ps b/hridesh/papers/doc@home.ps new file mode 100644 index 0000000..f7fb028 Binary files /dev/null and b/hridesh/papers/doc@home.ps differ diff --git a/hridesh/papers/encapsulation.pdf b/hridesh/papers/encapsulation.pdf new file mode 100644 index 0000000..a6a3aab Binary files /dev/null and b/hridesh/papers/encapsulation.pdf differ diff --git a/hridesh/papers/esecfse.pdf b/hridesh/papers/esecfse.pdf new file mode 100644 index 0000000..6018724 Binary files /dev/null and b/hridesh/papers/esecfse.pdf differ diff --git a/hridesh/papers/foal04.pdf b/hridesh/papers/foal04.pdf new file mode 100644 index 0000000..888430b Binary files /dev/null and b/hridesh/papers/foal04.pdf differ diff --git a/hridesh/papers/foal04.ps b/hridesh/papers/foal04.ps new file mode 100644 index 0000000..180fa00 Binary files /dev/null and b/hridesh/papers/foal04.ps differ diff --git a/hridesh/papers/icse04.pdf b/hridesh/papers/icse04.pdf new file mode 100644 index 0000000..819ca78 Binary files /dev/null and b/hridesh/papers/icse04.pdf differ diff --git a/hridesh/papers/index.html b/hridesh/papers/index.html new file mode 100644 index 0000000..c4caefd --- /dev/null +++ b/hridesh/papers/index.html @@ -0,0 +1,12 @@ + + +403 Forbidden + + +

    Forbidden

    +

    You don't have permission to access this URL +on this server.

    +
    +
    Apache/2.0.40 Server at www.cs.iastate.edu Port 80
    + + diff --git a/hridesh/papers/jpis-software.pdf b/hridesh/papers/jpis-software.pdf new file mode 100644 index 0000000..9b8d90f Binary files /dev/null and b/hridesh/papers/jpis-software.pdf differ diff --git a/hridesh/papers/lastentered.pdf b/hridesh/papers/lastentered.pdf new file mode 100644 index 0000000..124244b Binary files /dev/null and b/hridesh/papers/lastentered.pdf differ diff --git a/hridesh/papers/lastentered.ps b/hridesh/papers/lastentered.ps new file mode 100644 index 0000000..eec0563 Binary files /dev/null and b/hridesh/papers/lastentered.ps differ diff --git a/hridesh/papers/localization.pdf b/hridesh/papers/localization.pdf new file mode 100644 index 0000000..0984e5b Binary files /dev/null and b/hridesh/papers/localization.pdf differ diff --git a/hridesh/papers/localization.ps b/hridesh/papers/localization.ps new file mode 100644 index 0000000..a20f3d7 Binary files /dev/null and b/hridesh/papers/localization.ps differ diff --git a/hridesh/papers/nu-emerging.pdf b/hridesh/papers/nu-emerging.pdf new file mode 100644 index 0000000..edb4c46 Binary files /dev/null and b/hridesh/papers/nu-emerging.pdf differ diff --git a/hridesh/papers/p166-sullivan.pdf b/hridesh/papers/p166-sullivan.pdf new file mode 100644 index 0000000..c35e7d3 Binary files /dev/null and b/hridesh/papers/p166-sullivan.pdf differ diff --git a/hridesh/papers/p174-rajan.pdf b/hridesh/papers/p174-rajan.pdf new file mode 100644 index 0000000..256c391 Binary files /dev/null and b/hridesh/papers/p174-rajan.pdf differ diff --git a/hridesh/papers/preserveSoC.pdf b/hridesh/papers/preserveSoC.pdf new file mode 100644 index 0000000..b91a9df Binary files /dev/null and b/hridesh/papers/preserveSoC.pdf differ diff --git a/hridesh/papers/rajan-thesis.pdf b/hridesh/papers/rajan-thesis.pdf new file mode 100644 index 0000000..67d1f9d Binary files /dev/null and b/hridesh/papers/rajan-thesis.pdf differ diff --git a/hridesh/papers/splat.pdf b/hridesh/papers/splat.pdf new file mode 100644 index 0000000..a153d37 Binary files /dev/null and b/hridesh/papers/splat.pdf differ diff --git a/hridesh/papers/splat.ps b/hridesh/papers/splat.ps new file mode 100644 index 0000000..32d6ed0 Binary files /dev/null and b/hridesh/papers/splat.ps differ diff --git a/hridesh/papers/splat03.pdf b/hridesh/papers/splat03.pdf new file mode 100644 index 0000000..bdfaecd Binary files /dev/null and b/hridesh/papers/splat03.pdf differ diff --git a/hridesh/papers/splat03.ps b/hridesh/papers/splat03.ps new file mode 100644 index 0000000..5a193dc Binary files /dev/null and b/hridesh/papers/splat03.ps differ diff --git a/hridesh/papers/splat06.pdf b/hridesh/papers/splat06.pdf new file mode 100644 index 0000000..a4a08d0 Binary files /dev/null and b/hridesh/papers/splat06.pdf differ diff --git a/hridesh/plop-latex-instructions.shtml b/hridesh/plop-latex-instructions.shtml new file mode 100644 index 0000000..adcae7b --- /dev/null +++ b/hridesh/plop-latex-instructions.shtml @@ -0,0 +1,55 @@ + + + +Instructions for Authors using LaTeX for Preparing their Submissions by Hridesh Rajan + + + + +

    +The instructions below only pertains to authors using LaTeX for +preparing their final submissions. +

    + +

    PLoP 2007 Authors

    +

    +To ease the task of preparing the camera-ready versions of your +paper for ACM DL proceedings, I have prepared a variant of standard +LaTeX class for ACM proceedings. These customizations are specific +to PLoP 2007. Here are the simple steps necessary to get this to +work. + +

      +
    • Get the modified class file from + +here and place it in the root folder of your LaTeX document.
    • + +
    • +Add the following bit immediately after \begin{document}
      + +
      +% --- Author Metadata here --- 
      +\conferenceinfo{PLoP}{'07 Monticello, IL, USA}
      +%\CopyrightYear{2007} % Allows default copyright year (2007) to be over-ridden - IF NEED BE.
      +%\crdata{}  % Allows default copyright data (978-1-60558-411-9) to be over-ridden - IF NEED BE.
      +% --- End of Author Metadata ---
      +
      +
    • + +
    • +Your output should now look something similar to this + +sample document. +
    • + +
    • Follow the PC chair's instructions about renaming the file and +submitting the camera-ready version
    • +
    +

    + +

    PLoP 2008 Authors

    +

    +

    + + + diff --git a/hridesh/projectListing.htm b/hridesh/projectListing.htm new file mode 100644 index 0000000..18fff77 --- /dev/null +++ b/hridesh/projectListing.htm @@ -0,0 +1,94 @@ +

    Other Research and Educational Projects

    + + + diff --git a/hridesh/prospective.shtml b/hridesh/prospective.shtml new file mode 100644 index 0000000..e4f9ea0 --- /dev/null +++ b/hridesh/prospective.shtml @@ -0,0 +1,11 @@ + + + Advice for Prospective Students + + + +

    This page has moved to a + https://hridesh.github.io/prospective/.

    + + + diff --git a/hridesh/recent-index.shtml b/hridesh/recent-index.shtml new file mode 100644 index 0000000..b0974ba --- /dev/null +++ b/hridesh/recent-index.shtml @@ -0,0 +1,119 @@ + + + +Hridesh Rajan, Professor of Computer Science, Iowa State University + + + + + + + + + + + + + + + + + +
    +

    picture

    +
    +

    +
    +

    +Professor
    +Department of Computer Science,
    +Software Engineering Program,
    +Information Assurance Program, and
    +Human Computer Interaction (HCI) Program
    +Iowa State University
    +226 Atanasoff Hall, Ames, IA, 50011
    +

    + +

    +phone: +1-515-294-6168
    +email: hridesh@iastate.edu
    +office: 105 Atanasoff Hall
    +

    + +

    Ph.D., The University of Virginia, 2005
    + M.S., The University of Virginia, 2004
    + B.Tech., Indian Institute of Technology (BHU), 2000

    +

    + + +

    +Laboratory for Software Design +

    + +
    + +

    Major Awards and Honors

    + +

    + +

    Former Graduate Students

    + + + +

    Research Interests

    +
      +
    • Programming languages, software engineering, and compilers
    • +
    • Data science (also popularly known as Big Data), + especially software engineering of Big Data software.
    • +
    • Concurrency, especially modular reasoning about concurrency + correctness and performance. Scalable support for modular verification + of concurrency properties in compilers.
    • +
    • Advanced separation of concerns mechanisms such as events, reactive signals, and aspects + and modular reasoning about such mechanisms. +
    + +

    Key Projects (for details, see links on the left)

    + +

    +

    + + + + + + + + +
    + +Midwest Big Data Summer School +  + +Boa Project +  +Panini Project +
    +

    +
    + + + + diff --git a/hridesh/research-goals-long.htm b/hridesh/research-goals-long.htm new file mode 100644 index 0000000..4f7d314 --- /dev/null +++ b/hridesh/research-goals-long.htm @@ -0,0 +1,48 @@ +

    Research Theme and Goals

    +

    +Increasing software complexity demands means to +cope with it so that we can build intellectually manageable systems. +Separation of concerns is one such method. +In practice, a good separation of concern +is achieved by finding the right decomposition or modularization of a +problem. Invention and refinement of new modularization techniques is +thus becoming more important with the growing complexity of software +systems. I research modularization techniques with the overarching goal +of improving the reliability, maintainability, and evolvability of +software systems and the efficiency of software development processes. +To that end, I have investigated modularity and module systems in the +context of Ptolemy, +Nu, and +Eos projects. +In the Ptolemy project, we have investigated the fragility and +modular reasoning problems with aspect-oriented programming +and show how to fix it. +An ECOOP'08 +paper describes it in detail. The Ptolemy language combines flexibility and +expressiveness desired from AO languages with safety and modular reasoning +typically expected from module systems. +The goals of the Nu project +are to maintain design-level modularity in the intermediate code for +improved scalability of development processes. +

    + +

    +I am also investigating implications of modularity on verification processes. +In the Tisa project, +we are developing reasoning techniques for web-services +that allow more expressive temporal assertions to be validated +without sacrificing modularity (see our +ESOP'09 +paper about Tisa). +In the context of the +Slede project, +we are exploiting modular reasoning about a homogeneous +process in a parameterized system to automate finding cut-off +value for this process (see our +ESEC/FSE'09 +paper). +

    + +

    If you had time to read just one paper, I would recommend reading +the ECOOP'08 paper on +Ptolemy.

    diff --git a/hridesh/research-goals.htm b/hridesh/research-goals.htm new file mode 100644 index 0000000..3922f78 --- /dev/null +++ b/hridesh/research-goals.htm @@ -0,0 +1,15 @@ +

    Short Biography

    +

    +Hridesh Rajan earned his B.Tech in 2000 at the +Indian Institute of Technology (BHU) (formerly IT-BHU) +and a M.S. and Ph.D. in 2005 at the +University of Virginia, both with +Profesor Kevin J. Sullivan as his advisor. +Since then he has been at Iowa State University, first as an assistant professor (2005-2011) +and then as an associate professor (2011 - present). +His research aims to improve software quality and programmer productivity +by development and refinement of human centric abstraction and modularization +techniques in computer programming languages. +Hridesh comes from Mokama, Bihar, India. +He is married to Sharlene Rajan. +

    diff --git a/hridesh/research.shtml b/hridesh/research.shtml new file mode 100644 index 0000000..7d57521 --- /dev/null +++ b/hridesh/research.shtml @@ -0,0 +1,4 @@ + + +Page has moved + diff --git a/hridesh/spacer.gif b/hridesh/spacer.gif new file mode 100644 index 0000000..9935f82 Binary files /dev/null and b/hridesh/spacer.gif differ diff --git a/hridesh/ssdsi.pptx b/hridesh/ssdsi.pptx new file mode 100755 index 0000000..8e37068 Binary files /dev/null and b/hridesh/ssdsi.pptx differ diff --git a/hridesh/style/isuP.css b/hridesh/style/isuP.css new file mode 100644 index 0000000..7b4d7bf --- /dev/null +++ b/hridesh/style/isuP.css @@ -0,0 +1,528 @@ +/* UNIVERSAL SETTINGS */ + +body { + margin: 0; + padding: 0; + color: #000; + background: #fff; + font-size: 76%; + font-family: arial, helvetica, sans-serif; } + +p, td, ul, ol, ul, li, dl, dt, dd { + font-size: 100%; + font-family: arial, helvetica, sans-serif; } + +a:link { color: #00F; + text-decoration: none; } +a:visited { color: #33C; + text-decoration: none; } + +.hide { display: none; } +.news { padding: 8px; } + +.clear { + clear: both; + font-size: 0; +} + +form { margin: 0; } + +img { border: none; } + +#container { + margin: auto; /* centers whole on pg */ + border: 1px solid #666; + border-top: 0; /* removes opera top margin */ + width: 100%; /* need to hold banner in */ + voice-family: "\"}\""; + voice-family: inherit; + width: 100%; +} body>#container { /* opera width */ + width:100%; +} + +td { + padding: 0; + margin: 0; + border-width: 0; + vertical-align: top; +} + +/* MAIN TABLE BASICS */ + +#main { + width: 100%; + margin: 0; + padding: 0; + background: #fff; + font-size: 100%; + line-height: 1.3em; + } + +/* TITLEBAR */ +#titlebar { + background: #fff; + border-top: 1px solid #666; + border-bottom: 1px solid #666; + padding: .3em 0 .3em 0; + } + +#titlebar h1, #titlebar h3 { + color: #996; + padding: 0; + margin: 0; +} + +#titlebar h1 { + font-size: 18pt; + line-height: 1.1em; /* closes subhead-head gap */ + } + +#titlebar a { + color: #996; + text-decoration: none; + } + +#titlebar h3 { /* top-level subhead */ + font-family: verdana, arial, sans-serif; /* verdana larger */ + font-size: 9pt; +} + + +/* TWO COL FORMAT */ +#a2 { width: 187px; border-right: 1px solid #666; } +#b2 { width: 90%; } + +/* THREE COL FORMAT */ +#a3 { width: 10%; } +#b3 { width: 80%; } +#c3 { width: 10%; } +#a3, #b3 { border-right: 1px solid #666; } + + +/* FOUR COL FORMAT */ +#a4, #b4, #c4 { + width: 187px; + border-right: 1px solid #666; +} +#d4 { width: 189px; } + +/* VERTICAL NAVIGATION LINKS */ + +#mainlinks { + margin-bottom: 1em; + line-height: 1.4; +} + +#mainlinks ul { + list-style: none; + margin: 0; /* keeps left link boxes snug */ + padding: 0; /* ditto */ +} + +#mainlinks li { + border-bottom: 1px solid #ccc; +} + +#mainlinks li.divider { + border-bottom: 5px solid #c00; +} + +#mainlinks li a { + display: block; /* lines go all the way */ + padding: 1px 0.5em 1px 15px; + text-decoration: none; +} + +#mainlinks li a:visited { + color: #33C; +} + +#mainlinks li a:hover { + background: #cc9; + color: #c00; +} + +#mainlinks .linkhead h3 { + border-bottom: 1px solid #ccc; + color: #666; + font-family: verdana, arial, sans-serif; + font-size: 100%; + font-weight: 700; + margin: 0; + padding: .5em 15px 0 15px; +} + +/* HEADLINE STYLES */ + +h2.colorbar, h2.bar { + background: #c00; + color: #fff; + font-family: verdana, arial, sans-serif; + font-size: 100%; + margin: 0; /* closes top gap */ + padding: .25em 0 .25em 15px; + } + +/* MAIN TEXT */ + +.maintext { + padding: .5em 1em .5em 15px; +} + +.maintext h2 , p.heading { + font-size: 120%; + font-family: verdana, arial, sans-serif; + margin: 0; + padding: 0 0 .25em 0; +} + +.maintext h3, .maintext h4 { + font-family: verdana, arial, sans-serif; + font-size: 100%; + margin: 0; /* closes top gap */ + padding: .5em 0 0 0; +} + +.maintext p { + margin: 0; + padding: 0 0 .5em 0; + } + +.maintext ul, .maintext ol {/* moves lists flush left */ + margin: 0; + padding: 0 0 .5em 15px; +} + +.maintext ol { + padding-left: 20px; /* alpha wider than bullets */ } + +/* HEADS W BACKGROUND BAR */ + +h2.bar { + background: #c00; + color: #fff; + font-size: 100%; + font-family: verdana, arial, sans-serif; + margin: 0; /* closes top gap */ + padding: .25em 0 .25em 15px; +} + +h2.bar a { + color: #fff !important; + text-decoration: none !important; +} + +h2.bar a:hover { + color: #cc9 !important; +} + + +/* CUTLINE */ + +.cutline { + font-size: x-small; + margin: 0; + padding: .5em 1em .5em 15px; +} + +/* HIGHLIGHTS */ + +#hilite { /* highlight for bottom right */ + vertical-align: bottom; +} + +#hilite2 { /* khaki bar along highlight */ + background: #fff url(http://www.iastate.edu/img/04/cc9.gif) left +repeat-y; + border-top: 1px solid #666; + margin: 0; + padding: .5em .5em .5em 2em; +} + + +/* FOOTER */ + +#footer { + border-top: 2px solid #c00; + font-size: 85%; + line-height: 1.1em; + padding: 1em 15px; +} + +#copyright p { + margin: 0; + line-height: 1.3em; +} + +#pda { + padding: 1em 1em 0 15px; +} + +#pda a:hover { + color: #c00; +} + + +#pda { + padding: 1em 1em 0 15px; +} + +#pda a:hover { + color: #c00; +} + +/* NON-BULLETED LISTS */ +ul.sublist { + list-style-type: none; + padding: 0; + margin: 0 .5em .5em 0; +} + +.sublist li { + padding-left: 15px; text-indent: -15px; +} + +#main li a:hover { + color: #c00; +} + +/* FOUR COLUMN NO LEFT NAV */ + +#a4, #b4, #c4 { + width: 10%; + border-right: 1px solid #666; + padding-bottom: .5em; +} + +#d4 { + width: 20%; +} + +.mainphoto { + background: #666; /* fills in color between cutline and pic */ +} + +.mainphoto p { + background: #666; + color: #fff; + margin: 0; + padding: .3em 1em .4em 15px; +} + + +/* BANNER AND INDEX */ +#masthead, #mastheadni { + background: #c00; + display: block; + font-family: arial,verdana,sans-serif; + margin: 0; + padding: 0; + width: 100%; +} + +#mastheadni { + padding: 5px 0 5px 0; +} + +#nameplate { + width: 221px; + background: #c00; + float: left; + padding: 6px 6px 0 15px; +} + +#index { + background: #996; + float: right; + margin: 0; + padding: 0 0 0 0; + white-space: nowrap; + width: 418px; +} + +#indexlabel, a.abc:link, a.abc:visited { + float: left; + margin: 0; + text-decoration: none; + color: #fff; + font-size: 90%; + } + +#indexlabel { + background: #000 url(http://www.iastate.edu/img/llcurve.gif) bottom + left no-repeat; + width: 42px; + padding: 2px 2px 2px 5px; + letter-spacing: 1px; + } + +a#indexlabel:hover, a#indexlabel:focus { + text-decoration: underline; + } + +a.abc:link, a.abc:visited { + background: #996; + display: block; + width: 14px; + padding: 2px 0; + text-align: center; + } + +a.abc:hover, a.abc:focus { + background: #c00; + } + +#a { margin-left: 3px; } + +#search { + clear: right; /* prevents drift into index */ + color: #fff; + text-align: right; + margin: 0; + padding: 3px 5px 5px 5px; + white-space: nowrap; + background: #c00; +} + +#search a { + color: #fff; + text-decoration: none; +} + +#search a:hover { + text-decoration: underline; +} + +#search input { + font-size: xx-small; +} + +p.question{ + font-weight: bold; +} + +h2, p.heading +{ +color: #c00; +border-bottom: solid 1px #c00; +padding-bottom: 5px; +} + + +table#schedule { +text-align: center; +border-collapse: collapse; +border-top: solid 1px #c00; +border-left: solid 1px #c00; +border-right: solid 1px #c00; +border-bottom: solid 1px #c00; +padding-bottom: 5px; +padding-left: 5px; +padding-cell: 5px; +} + +table#schedule th { +color: #c00; +font-weight: bold; +border-bottom: solid 1px #c00; +} + + +table#schedule td { +padding: 5px; +border-left: solid 1px #c00; +border-right: solid 1px #c00; +} + +table#schedule tr.year { +border-top: solid 1px #c00; +padding-top: 5px; +} + +table.schedule { +text-align: center; +border-collapse: collapse; +border-top: solid 1px #c00; +border-left: solid 1px #c00; +border-right: solid 1px #c00; +border-bottom: solid 1px #c00; +padding-bottom: 5px; +padding-left: 5px; +padding-cell: 5px; +} + +th.schedule{ +color: #c00; +font-weight: bold; +border-bottom: solid 1px #c00; +} + + +td.schedule{ +padding: 5px; +border-left: solid 1px #c00; +border-right: solid 1px #c00; +} + +tr.schedule { +border-top: solid 1px #c00; +padding-top: 5px; +} + + +/* TWITTER FEED *****************/ + +.twitter-button { /* FOLLOW BUTTON */ + background-image: url(images/btn-twitter.png); + background-position: 0 0; + background-repeat: no-repeat; + color: white; + height: 41px; + margin: 0px; + width: 125px; +} + +.twitter-button :hover { + background-image: url(images/btn-twitter-hover.png); + background-position: 0 0; + background-repeat: no-repeat; +} + +.twitter-button a { + color: white; + display: block; + font-size: 11pt; + font-weight: normal; + height: 29px; + padding: 10px 0 0 47px; + text-decoration: none; + text-shadow: 1px 2px 0 #1191BF; +} + +.twitter-feed ul { + list-style-image: none; + list-style-type: none; + margin: 0; + padding: 0; +} + +.twitter-feed li { + border-bottom-color: #CCC; + border-bottom-style: solid; + border-bottom-width: 1px; + margin: 0; + padding: 10px 0; +} + + + + + + + + + + + + diff --git a/hridesh/style/style.css b/hridesh/style/style.css new file mode 100644 index 0000000..664b659 --- /dev/null +++ b/hridesh/style/style.css @@ -0,0 +1,186 @@ + +body { + font-family: Arial, Helvetica, sans-serif; + font-size: 1em; + text-color: #000000; + background-color: #EEEEEE; + margin: 0px; +} + +/* Links throughout the web-site */ +a { + color: #AAAAAA; +} +/* Paragraphs throughout the web-site */ + +p { + margin-top: 1.5ex; + margin-bottom: 0ex; + margin-left: 8px; + margin-right: 8px; +} + +p.title { + color: #ffffff; + background-color: #AAAAAA; + font-size: 1.8em; + font-weight: bold; + text-align: center; + margin-top: 1.5ex; + margin-bottom: 1.5ex; + margin-left: 8px; + margin-right: 8px; +} + +p.subtitle { + color: #ffffff; + background-color: #AAAAAA; + font-weight: bold; + text-align: left; + margin-top: 1.5ex; + margin-bottom: 1.5ex; + margin-left: 8px; + margin-right: 8px; +} + +p.heading { + font-weight: bold; + text-align: left; + } + +p.indextitle { + color: #AAAAAA; + background-color: transparent; + font-size: 1.8em; + font-weight: bold; + text-align: right; + margin-top: 1.5ex; + margin-bottom: 1.5ex; + margin-left: 8px; + margin-right: 8px; +} + +p.indexsubtitle { + color: #AAAAAA; + background-color: transparent; + font-size: 1.25em; + font-weight: bold; + text-align: right; + margin-top: 1.5ex; + margin-bottom: 1.5ex; + margin-left: 8px; + margin-right: 8px; +} +p.indexheading { + color: #AAAAAA; + background-color: transparent; + font-size: 0.80em; + font-weight: bold; + text-align: right; + margin-top: 1.5ex; + margin-bottom: 1.5ex; + margin-left: 8px; + margin-right: 8px; +} + + +/* Layout of the web-site */ + +#menu { + float: top; + height: 20px; + background-color: #AAAAAA; + padding-top: 0ex; + padding-bottom: 0ex; + margin: 0ex 0ex 0px 0px; /* top right bottom left */ + border-bottom: #AAAAAA 1px solid; +} + +#menu p.title { + color: #ffffff; + font-size: 1.8em; + font-weight: bold; + text-align: left; + margin-top: 0.25ex; + margin-bottom: 0.25ex; + margin-left: 8px; + margin-right: 8px; +} + +#menu p { + color: #ffffff; + font-size: 1.0em; + font-weight: bold; + text-align: left; + margin-top: 1.5ex; + margin-bottom: 1.5ex; + margin-left: 8px; + margin-right: 8px; +} + +#menu a { + color: #ffffff; + font-size: 1.0em; + font-weight: normal; + text-align: left; + margin-top: 8px; + margin-bottom: 8px; + margin-left: 8px; + margin-right: 8px; +} + +#contents { + color: #000; + background-color: transparent; + padding-top: 5px; + padding-left: 5px; + margin-top: 0ex; // + margin-right: 0.5ex; + margin-bottom: 0ex; + margin-left: 0.5ex; + border-bottom: #AAAAAA 5px solid; +} +#picturecontact { + color: #000; + position: relative; + height: 154px; + background-color: transparent; + margin-top: 0px; + margin-right: 0.5ex; + margin-bottom: 0ex; + margin-left: 8px; + } +#picture { + float: left; + height: 154px; + position: relative; + color: #000; + background-color: transparent; + margin-top: 0px; + margin-right: 0.5ex + margin-bottom: 0ex; + margin-left: 8px; + border: #AAAAAA 1px solid; + } + +#contact { + float: right; + height: 154px; + position: relative; + color: #000; + background-color: transparent; + margin-top: 0px; + margin-right: 0.5ex; + margin-bottom: 0ex; + margin-left: 0.5ex; + } + + #rest { + position: relative; + color: #000; + background-color: transparent; + margin-top: 164px; + margin-right: 0.5ex; + margin-bottom: 0ex; + margin-left: 0.5ex; + } diff --git a/hridesh/talk.pptx b/hridesh/talk.pptx new file mode 120000 index 0000000..be2d5da --- /dev/null +++ b/hridesh/talk.pptx @@ -0,0 +1 @@ +./ssdsi.pptx \ No newline at end of file diff --git a/hridesh/tasks.shtml b/hridesh/tasks.shtml new file mode 100644 index 0000000..4440c68 --- /dev/null +++ b/hridesh/tasks.shtml @@ -0,0 +1,15 @@ + + + + A quick and easy form to enter tasks into spreadsheet. + + + + + + + + + + + diff --git a/hridesh/template.shtml b/hridesh/template.shtml new file mode 100644 index 0000000..da5d86f --- /dev/null +++ b/hridesh/template.shtml @@ -0,0 +1,13 @@ + + + + The title of this template page will be here. + + + + + + + + + diff --git a/img/2021-grad.jpg b/img/2021-grad.jpg new file mode 100644 index 0000000..83f0ad2 Binary files /dev/null and b/img/2021-grad.jpg differ diff --git a/img/biswas_grad.jpg b/img/biswas_grad.jpg new file mode 100644 index 0000000..840f0fe Binary files /dev/null and b/img/biswas_grad.jpg differ diff --git a/img/lab-social-2021.jpg b/img/lab-social-2021.jpg new file mode 100644 index 0000000..b9e0186 Binary files /dev/null and b/img/lab-social-2021.jpg differ diff --git a/img/pan_grad.jpg b/img/pan_grad.jpg new file mode 100644 index 0000000..4eb6d92 Binary files /dev/null and b/img/pan_grad.jpg differ diff --git a/img/people/ali.jpg b/img/people/ali.jpg new file mode 100644 index 0000000..ec4d210 Binary files /dev/null and b/img/people/ali.jpg differ diff --git a/img/people/arbab.jpg b/img/people/arbab.jpg new file mode 100644 index 0000000..212ded1 Binary files /dev/null and b/img/people/arbab.jpg differ diff --git a/img/people/astha.png b/img/people/astha.png new file mode 100644 index 0000000..36b14db Binary files /dev/null and b/img/people/astha.png differ diff --git a/img/people/breno.jpg b/img/people/breno.jpg new file mode 100644 index 0000000..e569746 Binary files /dev/null and b/img/people/breno.jpg differ diff --git a/img/people/breno.png b/img/people/breno.png deleted file mode 100644 index ebeb2b8..0000000 Binary files a/img/people/breno.png and /dev/null differ diff --git a/img/people/david.jpg b/img/people/david.jpg deleted file mode 100644 index 48d27ba..0000000 Binary files a/img/people/david.jpg and /dev/null differ diff --git a/img/people/david.png b/img/people/david.png new file mode 100644 index 0000000..a25dfad Binary files /dev/null and b/img/people/david.png differ diff --git a/img/people/deepak.jpg b/img/people/deepak.jpg new file mode 100644 index 0000000..7e0b6ea Binary files /dev/null and b/img/people/deepak.jpg differ diff --git a/img/people/fraol.jpg b/img/people/fraol.jpg index cfe3647..4daae27 100644 Binary files a/img/people/fraol.jpg and b/img/people/fraol.jpg differ diff --git a/img/people/pan.jpg b/img/people/pan.jpg index 7997e14..348886a 100644 Binary files a/img/people/pan.jpg and b/img/people/pan.jpg differ diff --git a/img/people/ruchira.jpg b/img/people/ruchira.jpg index ccee247..c4fbfc5 100644 Binary files a/img/people/ruchira.jpg and b/img/people/ruchira.jpg differ diff --git a/img/people/saadati.jpg b/img/people/saadati.jpg new file mode 100644 index 0000000..2e6273b Binary files /dev/null and b/img/people/saadati.jpg differ diff --git a/img/people/sbiswas.jpg b/img/people/sbiswas.jpg index 9c15438..af6fd9e 100644 Binary files a/img/people/sbiswas.jpg and b/img/people/sbiswas.jpg differ diff --git a/img/people/usman.jpg b/img/people/usman.jpg index cfe3647..2ddcaeb 100644 Binary files a/img/people/usman.jpg and b/img/people/usman.jpg differ diff --git a/index.html b/index.html index c32053a..6d45305 100644 --- a/index.html +++ b/index.html @@ -2,6 +2,16 @@ title: Laboratory for Software Design layout: default highlighted_papers: + - ICSE-23a + - ICSE-23b + - ICSE-23c + - ESEC-FSE-22 + - ICSE-22a + - ICSE-22b + - ICSE-22c + - ICSE-22d + - TDS-22e + - ESEC-FSE-21 - ESEC-FSE-20b - ESEC-FSE-20a - ICSE-20a @@ -15,13 +25,6 @@ - ICSE-15a - TOSEM-15 - ICSE-15b - - OOPSLA16 - - ECOOP-15 - - OOPSLA-15 - - FSE-14 - - ICSE-14 - - CGO-11 - - ESEC-FSE-09 ---
    diff --git a/nu/BibTex.php b/nu/BibTex.php deleted file mode 100644 index 0ba3a49..0000000 --- a/nu/BibTex.php +++ /dev/null @@ -1,1180 +0,0 @@ - - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: BibTex.php,v 1.16 2007/03/26 21:13:59 hugoki Exp $ - * @link http://pear.php.net/package/Structures_BibTex - */ - -//require_once 'PEAR.php' ; -class PEAR -{ - function isError($err) { - return false; - } - - function raiseError($err) { - } -} -/** - * Structures_BibTex - * - * A class which provides common methods to access and - * create Strings in BibTex format. - * Example 1: Parsing a BibTex File and returning the number of entries - * - * $bibtex = new Structures_BibTex(); - * $ret = $bibtex->loadFile('foo.bib'); - * if (PEAR::isError($ret)) { - * die($ret->getMessage()); - * } - * $bibtex->parse(); - * print "There are ".$bibtex->amount()." entries"; - * - * Example 2: Parsing a BibTex File and getting all Titles - * - * $bibtex = new Structures_BibTex(); - * $ret = $bibtex->loadFile('bibtex.bib'); - * if (PEAR::isError($ret)) { - * die($ret->getMessage()); - * } - * $bibtex->parse(); - * foreach ($bibtex->data as $entry) { - * print $entry['title']."
    "; - * } - *
    - * Example 3: Adding an entry and printing it in BibTex Format - * - * $bibtex = new Structures_BibTex(); - * $addarray = array(); - * $addarray['entryType'] = 'Article'; - * $addarray['cite'] = 'art2'; - * $addarray['title'] = 'Titel2'; - * $addarray['author'][0]['first'] = 'John'; - * $addarray['author'][0]['last'] = 'Doe'; - * $addarray['author'][1]['first'] = 'Jane'; - * $addarray['author'][1]['last'] = 'Doe'; - * $bibtex->addEntry($addarray); - * print nl2br($bibtex->bibTex()); - * - * - * @category Structures - * @package Structures_BibTex - * @author Elmar Pitschke - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/Structures/Structure_BibTex - */ -class Structures_BibTex -{ - /** - * Array with the BibTex Data - * - * @access public - * @var array - */ - var $data; - /** - * String with the BibTex content - * - * @access public - * @var string - */ - var $content; - /** - * Array with possible Delimiters for the entries - * - * @access private - * @var array - */ - var $_delimiters; - /** - * Array to store warnings - * - * @access public - * @var array - */ - var $warnings; - /** - * Run-time configuration options - * - * @access private - * @var array - */ - var $_options; - /** - * RTF Format String - * - * @access public - * @var string - */ - var $rtfstring; - /** - * HTML Format String - * - * @access public - * @var string - */ - var $htmlstring; - /** - * Array with the "allowed" entry types - * - * @access public - * @var array - */ - var $allowedEntryTypes; - /** - * Author Format Strings - * - * @access public - * @var string - */ - var $authorstring; - - /** - * Constructor - * - * @access public - * @return void - */ - function Structures_BibTex($options = array()) - { - $this->_delimiters = array('"'=>'"', - '{'=>'}'); - $this->data = array(); - $this->content = ''; - //$this->_stripDelimiter = $stripDel; - //$this->_validate = $val; - $this->warnings = array(); - $this->_options = array( - 'stripDelimiter' => true, - 'validate' => true, - 'unwrap' => false, - 'wordWrapWidth' => false, - 'wordWrapBreak' => "\n", - 'wordWrapCut' => 0, - 'removeCurlyBraces' => false, - 'extractAuthors' => true, - ); - foreach ($options as $option => $value) { - $test = $this->setOption($option, $value); - if (PEAR::isError($test)) { - //Currently nothing is done here, but it could for example raise an warning - } - } - $this->rtfstring = 'AUTHORS, "{\b TITLE}", {\i JOURNAL}, YEAR'; - $this->htmlstring = 'AUTHORS, "TITLE", JOURNAL, YEAR
    '; - $this->allowedEntryTypes = array( - 'article', - 'book', - 'booklet', - 'confernce', - 'inbook', - 'incollection', - 'inproceedings', - 'manual', - 'masterthesis', - 'misc', - 'phdthesis', - 'proceedings', - 'techreport', - 'unpublished' - ); - $this->authorstring = 'FIRST VON LAST JR'; - } - - /** - * Sets run-time configuration options - * - * @access public - * @param string $option option name - * @param mixed $value value for the option - * @return mixed true on success PEAR_Error on failure - */ - function setOption($option, $value) - { - $ret = true; - if (array_key_exists($option, $this->_options)) { - $this->_options[$option] = $value; - } else { - $ret = PEAR::raiseError('Unknown option '.$option); - } - return $ret; - } - - function file_get_contents($filename) - { - $data = ''; - $fh = fopen($filename, 'rb'); - - if ($fsize = @filesize($filename)) - $data = fread($fh, $fsize); - else - while (!feof($fh)) - $data .= fread($fh, 8192); - - fclose($fh); - - return $data; - } - - /** - * Reads a give BibTex File - * - * @access public - * @param string $filename Name of the file - * @return mixed true on success PEAR_Error on failure - */ - function loadFile($filename) - { - if (file_exists($filename)) { - if (($this->content = $this->file_get_contents($filename)) === false) { - return PEAR::raiseError('Could not open file '.$filename); - } else { - $this->_pos = 0; - $this->_oldpos = 0; - return true; - } - } else { - return PEAR::raiseError('Could not find file '.$filename); - } - } - - /** - * Parses what is stored in content and clears the content if the parsing is successfull. - * - * @access public - * @return boolean true on success and PEAR_Error if there was a problem - */ - function parse() - { - //The amount of opening braces is compared to the amount of closing braces - //Braces inside comments are ignored - $this->warnings = array(); - $this->data = array(); - $valid = true; - $open = 0; - $entry = false; - $char = ''; - $lastchar = ''; - $buffer = ''; - for ($i = 0; $i < strlen($this->content); $i++) { - $char = substr($this->content, $i, 1); - if ((0 != $open) && ('@' == $char)) { - if (!$this->_checkAt($buffer)) { - $this->_generateWarning('WARNING_MISSING_END_BRACE', '', $buffer); - //To correct the data we need to insert a closing brace - $char = '}'; - $i--; - } - } - if ((0 == $open) && ('@' == $char)) { //The beginning of an entry - $entry = true; - } elseif ($entry && ('{' == $char) && ('\\' != $lastchar)) { //Inside an entry and non quoted brace is opening - $open++; - } elseif ($entry && ('}' == $char) && ('\\' != $lastchar)) { //Inside an entry and non quoted brace is closing - $open--; - if ($open < 0) { //More are closed than opened - $valid = false; - } - if (0 == $open) { //End of entry - $entry = false; - $entrydata = $this->_parseEntry($buffer); - if (!$entrydata) { - /** - * This is not yet used. - * We are here if the Entry is either not correct or not supported. - * But this should already generate a warning. - * Therefore it should not be necessary to do anything here - */ - } else { - $this->data[] = $entrydata; - } - $buffer = ''; - } - } - if ($entry) { //Inside entry - $buffer .= $char; - } - $lastchar = $char; - } - //If open is one it may be possible that the last ending brace is missing - if (1 == $open) { - $entrydata = $this->_parseEntry($buffer); - if (!$entrydata) { - $valid = false; - } else { - $this->data[] = $entrydata; - $buffer = ''; - $open = 0; - } - } - //At this point the open should be zero - if (0 != $open) { - $valid = false; - } - //Are there Multiple entries with the same cite? - if ($this->_options['validate']) { - $cites = array(); - foreach ($this->data as $entry) { - $cites[] = $entry['cite']; - } - $unique = array_unique($cites); - if (sizeof($cites) != sizeof($unique)) { //Some values have not been unique! - $notuniques = array(); - for ($i = 0; $i < sizeof($cites); $i++) { - if ('' == $unique[$i]) { - $notuniques[] = $cites[$i]; - } - } - $this->_generateWarning('WARNING_MULTIPLE_ENTRIES', implode(',',$notuniques)); - } - } - if ($valid) { - $this->content = ''; - return true; - } else { - return PEAR::raiseError('Unbalanced parenthesis'); - } - } - - /** - * Extracting the data of one content - * - * The parse function splits the content into its entries. - * Then every entry is parsed by this function. - * It parses the entry backwards. - * First the last '=' is searched and the value extracted from that. - * A copy is made of the entry if warnings should be generated. This takes quite - * some memory but it is needed to get good warnings. If nor warnings are generated - * then you don have to worry about memory. - * Then the last ',' is searched and the field extracted from that. - * Again the entry is shortened. - * Finally after all field=>value pairs the cite and type is extraced and the - * authors are splitted. - * If there is a problem false is returned. - * - * @access private - * @param string $entry The entry - * @return array The representation of the entry or false if there is a problem - */ - function _parseEntry($entry) - { - $entrycopy = ''; - if ($this->_options['validate']) { - $entrycopy = $entry; //We need a copy for printing the warnings - } - $ret = array(); - if ('@string' == strtolower(substr($entry, 0, 7))) { - //String are not yet supported! - if ($this->_options['validate']) { - $this->_generateWarning('STRING_ENTRY_NOT_YET_SUPPORTED', '', $entry.'}'); - } - } elseif ('@preamble' == strtolower(substr($entry, 0, 9))) { - //Preamble not yet supported! - if ($this->_options['validate']) { - $this->_generateWarning('PREAMBLE_ENTRY_NOT_YET_SUPPORTED', '', $entry.'}'); - } - } else { - //Parsing all fields - while (strrpos($entry,'=') !== false) { - $position = strrpos($entry, '='); - //Checking that the equal sign is not quoted or is not inside a equation (For example in an abstract) - $proceed = true; - if (substr($entry, $position-1, 1) == '\\') { - $proceed = false; - } - if ($proceed) { - $proceed = $this->_checkEqualSign($entry, $position); - } - while (!$proceed) { - $substring = substr($entry, 0, $position); - $position = strrpos($substring,'='); - $proceed = true; - if (substr($entry, $position-1, 1) == '\\') { - $proceed = false; - } - if ($proceed) { - $proceed = $this->_checkEqualSign($entry, $position); - } - } - - $value = trim(substr($entry, $position+1)); - $entry = substr($entry, 0, $position); - - if (',' == substr($value, strlen($value)-1, 1)) { - $value = substr($value, 0, -1); - } - if ($this->_options['validate']) { - $this->_validateValue($value, $entrycopy); - } - if ($this->_options['stripDelimiter']) { - $value = $this->_stripDelimiter($value); - } - if ($this->_options['unwrap']) { - $value = $this->_unwrap($value); - } - if ($this->_options['removeCurlyBraces']) { - $value = $this->_removeCurlyBraces($value); - } - $position = strrpos($entry, ','); - $field = strtolower(trim(substr($entry, $position+1))); - $ret[$field] = $value; - $entry = substr($entry, 0, $position); - } - //Parsing cite and entry type - $arr = split('{', $entry); - $ret['cite'] = trim($arr[1]); - $ret['entryType'] = strtolower(trim($arr[0])); - if ('@' == $ret['entryType']{0}) { - $ret['entryType'] = substr($ret['entryType'], 1); - } - if ($this->_options['validate']) { - if (!$this->_checkAllowedEntryType($ret['entryType'])) { - $this->_generateWarning('WARNING_NOT_ALLOWED_ENTRY_TYPE', $ret['entryType'], $entry.'}'); - } - } - //Handling the authors - if (in_array('author', array_keys($ret)) && $this->_options['extractAuthors']) { - $ret['author'] = $this->_extractAuthors($ret['author']); - } - } - return $ret; - } - - /** - * Checking whether the position of the '=' is correct - * - * Sometimes there is a problem if a '=' is used inside an entry (for example abstract). - * This method checks if the '=' is outside braces then the '=' is correct and true is returned. - * If the '=' is inside braces it contains to a equation and therefore false is returned. - * - * @access private - * @param string $entry The text of the whole remaining entry - * @param int the current used place of the '=' - * @return bool true if the '=' is correct, false if it contains to an equation - */ - function _checkEqualSign($entry, $position) - { - $ret = true; - //This is getting tricky - //We check the string backwards until the position and count the closing an opening braces - //If we reach the position the amount of opening and closing braces should be equal - $length = strlen($entry); - $open = 0; - for ($i = $length-1; $i >= $position; $i--) { - $precedingchar = substr($entry, $i-1, 1); - $char = substr($entry, $i, 1); - if (('{' == $char) && ('\\' != $precedingchar)) { - $open++; - } - if (('}' == $char) && ('\\' != $precedingchar)) { - $open--; - } - } - if (0 != $open) { - $ret = false; - } - //There is still the posibility that the entry is delimited by double quotes. - //Then it is possible that the braces are equal even if the '=' is in an equation. - if ($ret) { - $entrycopy = trim($entry); - $lastchar = $entrycopy{strlen($entrycopy)-1}; - if (',' == $lastchar) { - $lastchar = $entrycopy{strlen($entrycopy)-2}; - } - if ('"' == $lastchar) { - //The return value is set to false - //If we find the closing " before the '=' it is set to true again. - //Remember we begin to search the entry backwards so the " has to show up twice - ending and beginning delimiter - $ret = false; - $found = 0; - for ($i = $length; $i >= $position; $i--) { - $precedingchar = substr($entry, $i-1, 1); - $char = substr($entry, $i, 1); - if (('"' == $char) && ('\\' != $precedingchar)) { - $found++; - } - if (2 == $found) { - $ret = true; - break; - } - } - } - } - return $ret; - } - - /** - * Checking if the entry type is allowed - * - * @access private - * @param string $entry The entry to check - * @return bool true if allowed, false otherwise - */ - function _checkAllowedEntryType($entry) - { - return in_array($entry, $this->allowedEntryTypes); - } - - /** - * Checking whether an at is outside an entry - * - * Sometimes an entry misses an entry brace. Then the at of the next entry seems to be - * inside an entry. This is checked here. When it is most likely that the at is an opening - * at of the next entry this method returns true. - * - * @access private - * @param string $entry The text of the entry until the at - * @return bool true if the at is correct, false if the at is likely to begin the next entry. - */ - function _checkAt($entry) - { - $ret = false; - $opening = array_keys($this->_delimiters); - $closing = array_values($this->_delimiters); - //Getting the value (at is only allowd in values) - if (strrpos($entry,'=') !== false) { - $position = strrpos($entry, '='); - $proceed = true; - if (substr($entry, $position-1, 1) == '\\') { - $proceed = false; - } - while (!$proceed) { - $substring = substr($entry, 0, $position); - $position = strrpos($substring,'='); - $proceed = true; - if (substr($entry, $position-1, 1) == '\\') { - $proceed = false; - } - } - $value = trim(substr($entry, $position+1)); - $open = 0; - $char = ''; - $lastchar = ''; - for ($i = 0; $i < strlen($value); $i++) { - $char = substr($this->content, $i, 1); - if (in_array($char, $opening) && ('\\' != $lastchar)) { - $open++; - } elseif (in_array($char, $closing) && ('\\' != $lastchar)) { - $open--; - } - $lastchar = $char; - } - //if open is grater zero were are inside an entry - if ($open>0) { - $ret = true; - } - } - return $ret; - } - - /** - * Stripping Delimiter - * - * @access private - * @param string $entry The entry where the Delimiter should be stripped from - * @return string Stripped entry - */ - function _stripDelimiter($entry) - { - $beginningdels = array_keys($this->_delimiters); - $length = strlen($entry); - $firstchar = substr($entry, 0, 1); - $lastchar = substr($entry, -1, 1); - while (in_array($firstchar, $beginningdels)) { //The first character is an opening delimiter - if ($lastchar == $this->_delimiters[$firstchar]) { //Matches to closing Delimiter - $entry = substr($entry, 1, -1); - } else { - break; - } - $firstchar = substr($entry, 0, 1); - $lastchar = substr($entry, -1, 1); - } - return $entry; - } - - /** - * Unwrapping entry - * - * @access private - * @param string $entry The entry to unwrap - * @return string unwrapped entry - */ - function _unwrap($entry) - { - $entry = preg_replace('/\s+/', ' ', $entry); - return trim($entry); - } - - /** - * Wordwrap an entry - * - * @access private - * @param string $entry The entry to wrap - * @return string wrapped entry - */ - function _wordwrap($entry) - { - if ( (''!=$entry) && (is_string($entry)) ) { - $entry = wordwrap($entry, $this->_options['wordWrapWidth'], $this->_options['wordWrapBreak'], $this->_options['wordWrapCut']); - } - return $entry; - } - - /** - * Extracting the authors - * - * @access private - * @param string $entry The entry with the authors - * @return array the extracted authors - */ - function _extractAuthors($entry) { - $entry = $this->_unwrap($entry); - $authorarray = array(); - $authorarray = split(' and ', $entry); - for ($i = 0; $i < sizeof($authorarray); $i++) { - $author = trim($authorarray[$i]); - /*The first version of how an author could be written (First von Last) - has no commas in it*/ - $first = ''; - $von = ''; - $last = ''; - $jr = ''; - if (strpos($author, ',') === false) { - $tmparray = array(); - //$tmparray = explode(' ', $author); - $tmparray = split(' |~', $author); - $size = sizeof($tmparray); - if (1 == $size) { //There is only a last - $last = $tmparray[0]; - } elseif (2 == $size) { //There is a first and a last - $first = $tmparray[0]; - $last = $tmparray[1]; - } else { - $invon = false; - $inlast = false; - for ($j=0; $j<($size-1); $j++) { - if ($inlast) { - $last .= ' '.$tmparray[$j]; - } elseif ($invon) { - $case = $this->_determineCase($tmparray[$j]); - if (PEAR::isError($case)) { - // IGNORE? - } elseif ((0 == $case) || (-1 == $case)) { //Change from von to last - //You only change when there is no more lower case there - $islast = true; - for ($k=($j+1); $k<($size-1); $k++) { - $futurecase = $this->_determineCase($tmparray[$k]); - if (PEAR::isError($case)) { - // IGNORE? - } elseif (0 == $futurecase) { - $islast = false; - } - } - if ($islast) { - $inlast = true; - if (-1 == $case) { //Caseless belongs to the last - $last .= ' '.$tmparray[$j]; - } else { - $von .= ' '.$tmparray[$j]; - } - } else { - $von .= ' '.$tmparray[$j]; - } - } else { - $von .= ' '.$tmparray[$j]; - } - } else { - $case = $this->_determineCase($tmparray[$j]); - if (PEAR::isError($case)) { - // IGNORE? - } elseif (0 == $case) { //Change from first to von - $invon = true; - $von .= ' '.$tmparray[$j]; - } else { - $first .= ' '.$tmparray[$j]; - } - } - } - //The last entry is always the last! - $last .= ' '.$tmparray[$size-1]; - } - } else { //Version 2 and 3 - $tmparray = array(); - $tmparray = explode(',', $author); - //The first entry must contain von and last - $vonlastarray = array(); - $vonlastarray = explode(' ', $tmparray[0]); - $size = sizeof($vonlastarray); - if (1==$size) { //Only one entry->got to be the last - $last = $vonlastarray[0]; - } else { - $inlast = false; - for ($j=0; $j<($size-1); $j++) { - if ($inlast) { - $last .= ' '.$vonlastarray[$j]; - } else { - if (0 != ($this->_determineCase($vonlastarray[$j]))) { //Change from von to last - $islast = true; - for ($k=($j+1); $k<($size-1); $k++) { - $this->_determineCase($vonlastarray[$k]); - $case = $this->_determineCase($vonlastarray[$k]); - if (PEAR::isError($case)) { - // IGNORE? - } elseif (0 == $case) { - $islast = false; - } - } - if ($islast) { - $inlast = true; - $last .= ' '.$vonlastarray[$j]; - } else { - $von .= ' '.$vonlastarray[$j]; - } - } else { - $von .= ' '.$vonlastarray[$j]; - } - } - } - $last .= ' '.$vonlastarray[$size-1]; - } - //Now we check if it is version three (three entries in the array (two commas) - if (3==sizeof($tmparray)) { - $jr = $tmparray[1]; - } - //Everything in the last entry is first - $first = $tmparray[sizeof($tmparray)-1]; - } - $authorarray[$i] = array('first'=>trim($first), 'von'=>trim($von), 'last'=>trim($last), 'jr'=>trim($jr)); - } - return $authorarray; - } - - /** - * Case Determination according to the needs of BibTex - * - * To parse the Author(s) correctly a determination is needed - * to get the Case of a word. There are three possible values: - * - Upper Case (return value 1) - * - Lower Case (return value 0) - * - Caseless (return value -1) - * - * @access private - * @param string $word - * @return int The Case or PEAR_Error if there was a problem - */ - function _determineCase($word) { - $ret = -1; - $trimmedword = trim ($word); - /*We need this variable. Without the next of would not work - (trim changes the variable automatically to a string!)*/ - if (is_string($word) && (strlen($trimmedword) > 0)) { - $i = 0; - $found = false; - $openbrace = 0; - while (!$found && ($i <= strlen($word))) { - $letter = substr($trimmedword, $i, 1); - $ord = ord($letter); - if ($ord == 123) { //Open brace - $openbrace++; - } - if ($ord == 125) { //Closing brace - $openbrace--; - } - if (($ord>=65) && ($ord<=90) && (0==$openbrace)) { //The first character is uppercase - $ret = 1; - $found = true; - } elseif ( ($ord>=97) && ($ord<=122) && (0==$openbrace) ) { //The first character is lowercase - $ret = 0; - $found = true; - } else { //Not yet found - $i++; - } - } - } else { - $ret = PEAR::raiseError('Could not determine case on word: '.(string)$word); - } - return $ret; - } - - /** - * Validation of a value - * - * There may be several problems with the value of a field. - * These problems exist but do not break the parsing. - * If a problem is detected a warning is appended to the array warnings. - * - * @access private - * @param string $entry The entry aka one line which which should be validated - * @param string $wholeentry The whole BibTex Entry which the one line is part of - * @return void - */ - function _validateValue($entry, $wholeentry) - { - //There is no @ allowed if the entry is enclosed by braces - if (preg_match('/^{.*@.*}$/', $entry)) { - $this->_generateWarning('WARNING_AT_IN_BRACES', $entry, $wholeentry); - } - //No escaped " allowed if the entry is enclosed by double quotes - if (preg_match('/^\".*\\".*\"$/', $entry)) { - $this->_generateWarning('WARNING_ESCAPED_DOUBLE_QUOTE_INSIDE_DOUBLE_QUOTES', $entry, $wholeentry); - } - //Amount of Braces is not correct - $open = 0; - $lastchar = ''; - $char = ''; - for ($i = 0; $i < strlen($entry); $i++) { - $char = substr($entry, $i, 1); - if (('{' == $char) && ('\\' != $lastchar)) { - $open++; - } - if (('}' == $char) && ('\\' != $lastchar)) { - $open--; - } - $lastchar = $char; - } - if (0 != $open) { - $this->_generateWarning('WARNING_UNBALANCED_AMOUNT_OF_BRACES', $entry, $wholeentry); - } - } - - /** - * Remove curly braces from entry - * - * @access private - * @param string $value The value in which curly braces to be removed - * @param string Value with removed curly braces - */ - function _removeCurlyBraces($value) - { - //First we save the delimiters - $beginningdels = array_keys($this->_delimiters); - $firstchar = substr($entry, 0, 1); - $lastchar = substr($entry, -1, 1); - $begin = ''; - $end = ''; - while (in_array($firstchar, $beginningdels)) { //The first character is an opening delimiter - if ($lastchar == $this->_delimiters[$firstchar]) { //Matches to closing Delimiter - $begin .= $firstchar; - $end .= $lastchar; - $value = substr($value, 1, -1); - } else { - break; - } - $firstchar = substr($value, 0, 1); - $lastchar = substr($value, -1, 1); - } - //Now we get rid of the curly braces - $pattern = '/([^\\\\])\{(.*?[^\\\\])\}/'; - $replacement = '$1$2'; - $value = preg_replace($pattern, $replacement, $value); - //Reattach delimiters - $value = $begin.$value.$end; - return $value; - } - - /** - * Generates a warning - * - * @access private - * @param string $type The type of the warning - * @param string $entry The line of the entry where the warning occurred - * @param string $wholeentry OPTIONAL The whole entry where the warning occurred - */ - function _generateWarning($type, $entry, $wholeentry='') - { - $warning['warning'] = $type; - $warning['entry'] = $entry; - $warning['wholeentry'] = $wholeentry; - $this->warnings[] = $warning; - } - - /** - * Cleares all warnings - * - * @access public - */ - function clearWarnings() - { - $this->warnings = array(); - } - - /** - * Is there a warning? - * - * @access public - * @return true if there is, false otherwise - */ - function hasWarning() - { - if (sizeof($this->warnings)>0) return true; - else return false; - } - - /** - * Returns the amount of available BibTex entries - * - * @access public - * @return int The amount of available BibTex entries - */ - function amount() - { - return sizeof($this->data); - } - - /** - * Returns the author formatted - * - * The Author is formatted as setted in the authorstring - * - * @access private - * @param array $array Author array - * @return string the formatted author string - */ - function _formatAuthor($array) - { - if (!array_key_exists('von', $array)) { - $array['von'] = ''; - } else { - $array['von'] = trim($array['von']); - } - if (!array_key_exists('last', $array)) { - $array['last'] = ''; - } else { - $array['last'] = trim($array['last']); - } - if (!array_key_exists('jr', $array)) { - $array['jr'] = ''; - } else { - $array['jr'] = trim($array['jr']); - } - if (!array_key_exists('first', $array)) { - $array['first'] = ''; - } else { - $array['first'] = trim($array['first']); - } - $ret = $this->authorstring; - $ret = str_replace("VON", $array['von'], $ret); - $ret = str_replace("LAST", $array['last'], $ret); - $ret = str_replace("JR", $array['jr'], $ret); - $ret = str_replace("FIRST", $array['first'], $ret); - return trim($ret); - } - - /** - * Converts the stored BibTex entries to a BibTex String - * - * In the field list, the author is the last field. - * - * @access public - * @return string The BibTex string - */ - function bibTex() - { - $bibtex = ''; - foreach ($this->data as $entry) { - //Intro - $bibtex .= '@'.strtolower($entry['entryType']).' { '.$entry['cite'].",\n"; - //Other fields except author - foreach ($entry as $key=>$val) { - if ($this->_options['wordWrapWidth']>0) { - $val = $this->_wordWrap($val); - } - if (!in_array($key, array('cite','entryType','author'))) { - $bibtex .= "\t".$key.' = {'.$val."},\n"; - } - } - //Author - if (array_key_exists('author', $entry)) { - if ($this->_options['extractAuthors']) { - $tmparray = array(); //In this array the authors are saved and the joind with an and - foreach ($entry['author'] as $authorentry) { - $tmparray[] = $this->_formatAuthor($authorentry); - } - $author = join(' and ', $tmparray); - } else { - $author = $entry['author']; - } - } else { - $author = ''; - } - $bibtex .= "\tauthor = {".$author."}\n"; - $bibtex.="}\n\n"; - } - return $bibtex; - } - - /** - * Adds a new BibTex entry to the data - * - * @access public - * @param array $newentry The new data to add - * @return void - */ - function addEntry($newentry) - { - $this->data[] = $newentry; - } - - /** - * Returns statistic - * - * This functions returns a hash table. The keys are the different - * entry types and the values are the amount of these entries. - * - * @access public - * @return array Hash Table with the data - */ - function getStatistic() - { - $ret = array(); - foreach ($this->data as $entry) { - if (array_key_exists($entry['entryType'], $ret)) { - $ret[$entry['entryType']]++; - } else { - $ret[$entry['entryType']] = 1; - } - } - return $ret; - } - - /** - * Returns the stored data in RTF format - * - * This method simply returns a RTF formatted string. This is done very - * simple and is not intended for heavy using and fine formatting. This - * should be done by BibTex! It is intended to give some kind of quick - * preview or to send someone a reference list as word/rtf format (even - * some people in the scientific field still use word). If you want to - * change the default format you have to override the class variable - * "rtfstring". This variable is used and the placeholders simply replaced. - * Lines with no data cause an warning! - * - * @return string the RTF Strings - */ - function rtf() - { - $ret = "{\\rtf\n"; - foreach ($this->data as $entry) { - $line = $this->rtfstring; - $title = ''; - $journal = ''; - $year = ''; - $authors = ''; - if (array_key_exists('title', $entry)) { - $title = $this->_unwrap($entry['title']); - } - if (array_key_exists('journal', $entry)) { - $journal = $this->_unwrap($entry['journal']); - } - if (array_key_exists('year', $entry)) { - $year = $this->_unwrap($entry['year']); - } - if (array_key_exists('author', $entry)) { - if ($this->_options['extractAuthors']) { - $tmparray = array(); //In this array the authors are saved and the joind with an and - foreach ($entry['author'] as $authorentry) { - $tmparray[] = $this->_formatAuthor($authorentry); - } - $authors = join(', ', $tmparray); - } else { - $authors = $entry['author']; - } - } - if ((''!=$title) || (''!=$journal) || (''!=$year) || (''!=$authors)) { - $line = str_replace("TITLE", $title, $line); - $line = str_replace("JOURNAL", $journal, $line); - $line = str_replace("YEAR", $year, $line); - $line = str_replace("AUTHORS", $authors, $line); - $line .= "\n\\par\n"; - $ret .= $line; - } else { - $this->_generateWarning('WARNING_LINE_WAS_NOT_CONVERTED', '', print_r($entry,1)); - } - } - $ret .= '}'; - return $ret; - } - - /** - * Returns the stored data in HTML format - * - * This method simply returns a HTML formatted string. This is done very - * simple and is not intended for heavy using and fine formatting. This - * should be done by BibTex! It is intended to give some kind of quick - * preview. If you want to change the default format you have to override - * the class variable "htmlstring". This variable is used and the placeholders - * simply replaced. - * Lines with no data cause an warning! - * - * @return string the HTML Strings - */ - function html() - { - $ret = "

    \n"; - foreach ($this->data as $entry) { - $line = $this->htmlstring; - $title = ''; - $journal = ''; - $year = ''; - $authors = ''; - if (array_key_exists('title', $entry)) { - $title = $this->_unwrap($entry['title']); - } - if (array_key_exists('journal', $entry)) { - $journal = $this->_unwrap($entry['journal']); - } - if (array_key_exists('year', $entry)) { - $year = $this->_unwrap($entry['year']); - } - if (array_key_exists('author', $entry)) { - if ($this->_options['extractAuthors']) { - $tmparray = array(); //In this array the authors are saved and the joind with an and - foreach ($entry['author'] as $authorentry) { - $tmparray[] = $this->_formatAuthor($authorentry); - } - $authors = join(', ', $tmparray); - } else { - $authors = $entry['author']; - } - } - if ((''!=$title) || (''!=$journal) || (''!=$year) || (''!=$authors)) { - $line = str_replace("TITLE", $title, $line); - $line = str_replace("JOURNAL", $journal, $line); - $line = str_replace("YEAR", $year, $line); - $line = str_replace("AUTHORS", $authors, $line); - $line .= "\n"; - $ret .= $line; - } else { - $this->_generateWarning('WARNING_LINE_WAS_NOT_CONVERTED', '', print_r($entry,1)); - } - } - $ret .= "

    \n"; - return $ret; - } -} -?> diff --git a/nu/benchmarks/bind.data b/nu/benchmarks/bind.data deleted file mode 100644 index 4730020..0000000 --- a/nu/benchmarks/bind.data +++ /dev/null @@ -1,17 +0,0 @@ -0 Bound Patterns, 0, 0, 10.83540333 -128 Bound Patterns, 0, 0, 10.84145 -256 Bound Patterns, 0, 0, 11.41700667 -384 Bound Patterns, 0, 0, 11.47061 -512 Bound Patterns, 0, 0, 10.22751667 -640 Bound Patterns, 0, 0, 10.32387333 -768 Bound Patterns, 0, 0, 13.75240333 -896 Bound Patterns, 0, 0, 10.35270333 -1024 Bound Patterns, 0, 0, 12.53350667 -1152 Bound Patterns, 0, 0, 10.35623667 -1280 Bound Patterns, 0, 0, 10.20328667 -1408 Bound Patterns, 0, 0, 10.37108333 -1536 Bound Patterns, 0, 0, 10.25708667 -1664 Bound Patterns, 0, 0, 16.69237333 -1792 Bound Patterns, 0, 0, 10.14991667 -1920 Bound Patterns, 0, 0, 10.28600333 -2048 Bound Patterns, 0, 0, 10.42504333 diff --git a/nu/benchmarks/cache.data b/nu/benchmarks/cache.data deleted file mode 100644 index 5246a01..0000000 --- a/nu/benchmarks/cache.data +++ /dev/null @@ -1,17 +0,0 @@ -0 Bound Patterns, 0, 0, 0.001 -16 Bound Patterns, 0, 0, 0.467 -32 Bound Patterns, 0, 0, 0.942 -48 Bound Patterns, 0, 0, 1.431 -64 Bound Patterns, 0, 0, 1.959 -80 Bound Patterns, 0, 0, 2.449 -96 Bound Patterns, 0, 0, 2.948 -112 Bound Patterns, 0, 0, 3.528 -128 Bound Patterns, 0, 0, 4.030 -144 Bound Patterns, 0, 0, 4.627 -160 Bound Patterns, 0, 0, 5.057 -176 Bound Patterns, 0, 0, 5.638 -192 Bound Patterns, 0, 0, 6.514 -208 Bound Patterns, 0, 0, 6.812 -224 Bound Patterns, 0, 0, 7.401 -240 Bound Patterns, 0, 0, 8.331 -256 Bound Patterns, 0, 0, 8.721 diff --git a/nu/benchmarks/details.php b/nu/benchmarks/details.php deleted file mode 100644 index b24b9a0..0000000 --- a/nu/benchmarks/details.php +++ /dev/null @@ -1,226 +0,0 @@ - -
  • -Xint - runs the JVM in interpreted-only mode
  • -
  • -ms512m - sets the JVM minimum heap size to 512MB
  • -
  • -mx512m - sets the JVM maximum heap size to 512MB
  • - -EOHTML; - - $synthParams = << -
  • -Xint - runs the JVM in interpreted-only mode
  • - -EOHTML; - - - /********************************************* - * Dispatch Overhead - Java Grande Benchmark * - *********************************************/ - $bm["homepage"] = "http://www2.epcc.ed.ac.uk/computing/research_activities/java_grande/index_1.html"; - $bm["homepage_name"] = "Java Grande Benchmark homepage"; - $bm["metric"] = "calls per second"; - $bm["better"] = "Higher"; - $bm["data"] = "jgf-dispatch"; - $bm["date"] = date("d F Y H:i:s", filemtime("$bm[data].data")); - $bm["title"] = "Dispatch Overhead – Java Grande"; - $bm["precision"] = 2; - $bm["reverse"] = true; - $bm["original"] = null; - $bm["details"] = << - Java Grande Forum Benchmark Suite - Version 2.0 - -

    - Only the method benchmark (JGFMethodBench) was performed. These are the - JVM parameters used: -

    -$vmParams -EOHTML; - $benchmarks[] = $bm; - - - - /********************************** - * Dispatch Overhead - SPEC JVM98 * - **********************************/ - $bm["homepage"] = "http://www.spec.org/osg/jvm98/"; - $bm["homepage_name"] = "SPEC JVM98 homepage"; - $bm["metric"] = "seconds"; - $bm["better"] = "Lower"; - $bm["data"] = "spec-dispatch"; - $bm["date"] = date("d F Y H:i:s", filemtime("$bm[data].data")); - $bm["title"] = "Dispatch Overhead – SPEC JVM98"; - $bm["precision"] = 3; - $bm["reverse"] = false; - $bm["original"] = null; - $bm["details"] = << - SPEC JVM98 - 1.03_05 19981203 - -

    - These are the JVM parameters used: -

    -$vmParams -

    - These are the SPEC JVM98 benchmark parameters used: -

    -
      -
    • -s100 - use the maximum problem size
    • -
    • -a - sets autorun
    • -
    • -m2 - minimum number of executions for autorun
    • -
    • -M4 - maximum number of executions for autorun
    • -
    • -g - garbage collect between autorun executions
    • -
    • -d3000 - delay 3 seconds between autorun executions
    • -
    -EOHTML; - $benchmarks[] = $bm; - - - - /****************************************************** - * Delegate Invocation Overhead - Synthetic Benchmark * - ******************************************************/ - $bm["homepage"] = ""; - $bm["homepage_name"] = ""; - $bm["metric"] = "average invocation time in nano-seconds"; - $bm["better"] = "Lower"; - $bm["data"] = "invoke"; - $bm["date"] = date("d F Y H:i:s", filemtime("$bm[data].data")); - $bm["title"] = "Delegate Invocation Overhead – Synthetic Benchmark"; - $bm["precision"] = 3; - $bm["reverse"] = false; - $bm["original"] = "Manual Inline"; - $bm["details"] = << - For a more accurate comparison, the Nu JVM was used when running all - benchmarks. These are the Nu JVM parameters used: -

    -$synthParams -EOHTML; - $benchmarks[] = $bm; - - - - /*************************************** - * Bind Overhead - Synthetic Benchmark * - ***************************************/ - $bm["homepage"] = ""; - $bm["homepage_name"] = ""; - $bm["metric"] = "average time in micro-seconds"; - $bm["better"] = "Lower"; - $bm["data"] = "bind"; - $bm["date"] = date("d F Y H:i:s", filemtime("$bm[data].data")); - $bm["title"] = "Bind Overhead – Synthetic Benchmark"; - $bm["precision"] = 3; - $bm["reverse"] = false; - $bm["original"] = "Original JDK"; - $bm["details"] = << - These are the Nu JVM parameters used: -

    -$synthParams -EOHTML; - $benchmarks[] = $bm; - - - - /***************************************** - * Remove Overhead - Synthetic Benchmark * - *****************************************/ - $bm["homepage"] = ""; - $bm["homepage_name"] = ""; - $bm["metric"] = "average time in micro-seconds"; - $bm["better"] = "Lower"; - $bm["data"] = "remove"; - $bm["date"] = date("d F Y H:i:s", filemtime("$bm[data].data")); - $bm["title"] = "Remove Overhead – Synthetic Benchmark"; - $bm["precision"] = 3; - $bm["reverse"] = false; - $bm["original"] = "Original JDK"; - $bm["details"] = << - These are the Nu JVM parameters used: -

    -$synthParams -EOHTML; - $benchmarks[] = $bm; - - - - /******************************************** - * Cache Invalidation - Synthetic Benchmark * - ********************************************/ - $bm["homepage"] = ""; - $bm["homepage_name"] = ""; - $bm["metric"] = "average time in micro-seconds"; - $bm["better"] = "Lower"; - $bm["data"] = "cache"; - $bm["date"] = date("d F Y H:i:s", filemtime("$bm[data].data")); - $bm["title"] = "Cache Invalidation – Synthetic Benchmark"; - $bm["precision"] = 3; - $bm["reverse"] = false; - $bm["original"] = "Original JDK"; - $bm["details"] = << - These are the Nu JVM parameters used: -

    -$synthParams -EOHTML; - $benchmarks[] = $bm; - - - - - - - - // - // the template for benchmark results - // - $bm = $benchmarks[$id]; - - drawWideHeader($bm['title']); - - if ($bm !== null) - { - echo << - Last updated: $bm[date]

    -
    - $bm[title]
    -
    -

    -EOHTML; - - drawTable($bm['data'], $bm['reverse'], $bm['precision'], $bm['original']); - - echo << - Note: All values given are in $bm[metric]. $bm[better] values are better. -

    -

    - The benchmark was performed on a dual 2.2GHz Intel Xeon computer with 2GB - memory. -

    -$bm[details] -EOHTML; - if ($bm['homepage']) - echo << - For more information, please visit the $bm[homepage_name].
    -

    -EOHTML; - } else - { - echo "Invalid benchmark id given."; - } - - drawWideFooter(); -?> diff --git a/nu/benchmarks/funcs.inc.php b/nu/benchmarks/funcs.inc.php deleted file mode 100644 index adb6fde..0000000 --- a/nu/benchmarks/funcs.inc.php +++ /dev/null @@ -1,77 +0,0 @@ -"; - echo "
     $originalNu (initial)% of $originalNu (current)% of $original
    ", ($i + 1), ". $l", number_format($jvm[$i], $precision), "", number_format($baseline[$i], $precision), "$percent1[$i]%", number_format($caching[$i], $precision), "$percent2[$i]%
    Average", number_format(average($jvm), $precision), "", number_format(average($baseline), $precision), "$pct1%", number_format(average($caching), $precision), "$pct2%
    "; - } - -?> diff --git a/nu/benchmarks/index.html b/nu/benchmarks/index.html new file mode 100644 index 0000000..41cbc4a --- /dev/null +++ b/nu/benchmarks/index.html @@ -0,0 +1,285 @@ + + + + + + +Nu Project - Department of Computer Science - Iowa State University + + + + + + + + +
    + +
    + + + + +
    + + +
    +
    Iowa State University IT
    +
    + +
    + + +
    + +

    Nu JVM Benchmarks

    + + +

    + This area contains all information regarding the evaluation of our current + implementation of the Nu JVM. Please check back often, as these results + will be updated frequently as we make various improvements. +

    + +

    + Three types of overhead have been identified regarding the implementation + of Nu JVM. These are: dispatch, delegate invocation, and pattern matching. + We will actively track the performance of our implementation with regard to + these specific overheads. +

    + + +

    Dispatch Overhead

    +

    + This overhead appears due to the addition of code to perform dispatching. + The dispatch code needs to call the matching code (if appropriate) and call + the delegate invoke code (if appropriate). This code must run every time a + join point executes, regardless of number of bound patterns. +

    +

    Performance Goals

    +
      +
    • + This overhead should be constant — independent of the number of patterns already bound.
      + Status: Success +
    • +
    • + This overhead should be minimal — ideally zero.
      + Status: In-progress +
    • +
    +

    + Early implementations suffered from having to call the matcher every time a + join point executed. The addition of caching improved this performance + through remembering the previous match(es) and only performing matching as + needed. Delegates associated with matched patterns are cached at each join + point so the dispatch knows if it should call the delegate invocation code. +

    +

    Benchmarks

    + + + +

    Delegate Invocation Overhead

    +

    + This overhead appears due to the need to invoke delegates at the execution + of matched join points. At each executing join point, for each (currently) + bound pattern that matches it, the associated delegate must be invoked. +

    +

    Performance Goals

    +
      +
    • + This overhead should be linear in the number of delegates needing invoked.
      + Status: Success +
    • +
    • + This overhead should be comparable to the overhead of calling the delegate directly in the high-level language.
      + Status: Success +
    • +
    +

    + When a pattern is matched against a join point, if it matched then the + associated delegate is cached at that join point. This allows the creation + of a chain of delegates that can be efficiently iterated over and invoked. +

    +

    + Invocation is performed from inside the virtual machine. Information about + the delegate needing invoked is already available (due to the previously + mentioned caching) and the virtual machine simply has to invoke the + delegate. +

    +

    Benchmarks

    + + + +

    Pattern Matching Overhead

    +

    + This overhead appears due to the need to match bound patterns against join + points. When each join point is executed, it must know which of the + (currently) bound patterns matches it. +

    +

    Performance Goals

    +
      +
    • + This overhead should be minimal with zero bound patterns — ideally zero.
      + Status: Success +
    • +
    • + This overhead should reasonably scale with the number of bound patterns.
      + Status: Success +
    • +
    +

    + To address the first goal, the matcher checks if the number of bound + patterns is zero and if it is, stops. +

    +

    Benchmarks

    + + + +

    Bind/Remove Benchmarks

    +

    + In addition to the overheads already mentioned, we measure the performance + of the actual bind and remove calls. For static binding, + this performance affects the start-up time of an application. For dynamic + binding, this performance affects the execution of the program. +

    +

    Performance Goals

    +
      +
    • + This overhead should be constant — independent of the number of patterns already bound.
      + Status: Success +
    • +
    • + This overhead should be minimal.
      + Status: In-progress +
    • +
    +

    Benchmarks

    + + +
    + + + + +
    +
    + diff --git a/nu/benchmarks/index.php b/nu/benchmarks/index.php deleted file mode 100644 index f660143..0000000 --- a/nu/benchmarks/index.php +++ /dev/null @@ -1,157 +0,0 @@ - - - -

    - This area contains all information regarding the evaluation of our current - implementation of the Nu JVM. Please check back often, as these results - will be updated frequently as we make various improvements. -

    - -

    - Three types of overhead have been identified regarding the implementation - of Nu JVM. These are: dispatch, delegate invocation, and pattern matching. - We will actively track the performance of our implementation with regard to - these specific overheads. -

    - - -

    Dispatch Overhead

    -

    - This overhead appears due to the addition of code to perform dispatching. - The dispatch code needs to call the matching code (if appropriate) and call - the delegate invoke code (if appropriate). This code must run every time a - join point executes, regardless of number of bound patterns. -

    -

    Performance Goals

    - -

    - Early implementations suffered from having to call the matcher every time a - join point executed. The addition of caching improved this performance - through remembering the previous match(es) and only performing matching as - needed. Delegates associated with matched patterns are cached at each join - point so the dispatch knows if it should call the delegate invocation code. -

    -

    Benchmarks

    - - - -

    Delegate Invocation Overhead

    -

    - This overhead appears due to the need to invoke delegates at the execution - of matched join points. At each executing join point, for each (currently) - bound pattern that matches it, the associated delegate must be invoked. -

    -

    Performance Goals

    - -

    - When a pattern is matched against a join point, if it matched then the - associated delegate is cached at that join point. This allows the creation - of a chain of delegates that can be efficiently iterated over and invoked. -

    -

    - Invocation is performed from inside the virtual machine. Information about - the delegate needing invoked is already available (due to the previously - mentioned caching) and the virtual machine simply has to invoke the - delegate. -

    -

    Benchmarks

    - - - -

    Pattern Matching Overhead

    -

    - This overhead appears due to the need to match bound patterns against join - points. When each join point is executed, it must know which of the - (currently) bound patterns matches it. -

    -

    Performance Goals

    - -

    - To address the first goal, the matcher checks if the number of bound - patterns is zero and if it is, stops. -

    -

    Benchmarks

    - - - -

    Bind/Remove Benchmarks

    -

    - In addition to the overheads already mentioned, we measure the performance - of the actual bind and remove calls. For static binding, - this performance affects the start-up time of an application. For dynamic - binding, this performance affects the execution of the program. -

    -

    Performance Goals

    - -

    Benchmarks

    - - - diff --git a/nu/benchmarks/invoke.data b/nu/benchmarks/invoke.data deleted file mode 100644 index d5a459f..0000000 --- a/nu/benchmarks/invoke.data +++ /dev/null @@ -1,3 +0,0 @@ -1 Delegate Invoked, 111.72055999999999, 0, 113.33321999999998 -30 Delegates Invoked, 65.79100566666666, 0, 71.61675 -300 Delegates Invoked, 64.80702726666667, 0, 75.77855286666666 diff --git a/nu/benchmarks/invoke2.data b/nu/benchmarks/invoke2.data deleted file mode 100644 index 8ee15ee..0000000 --- a/nu/benchmarks/invoke2.data +++ /dev/null @@ -1,3 +0,0 @@ -0 Delegates Invoked, 0, 0, 0 -1 Delegate Invoked, 5502.5446, 557.5724, 5249.1904 -5 Delegates Invoked, 0, 0, 0 diff --git a/nu/benchmarks/jgf-dispatch.data b/nu/benchmarks/jgf-dispatch.data deleted file mode 100644 index 09d336e..0000000 --- a/nu/benchmarks/jgf-dispatch.data +++ /dev/null @@ -1,8 +0,0 @@ -Same Instance, 16765966.65, 3194657.43, 16105814.33 -Same Synchronized Instance, 4497624.18, 2148470.59, 4518029.94 -Same Final Instance, 15709483.76, 2961620.07, 15537262.22 -Same Class, 16032110.68, 2801511.89, 14554337.11 -Same Synchronized Class, 4613550.68, 2108878.45, 4457858.00 -Other Instance, 15571583.01, 2921367.39, 15055368.00 -Other Instance of Abstract, 14240123.96, 3002304.42, 15181286.63 -Other Class, 15449503.86, 2817779.49, 15909643.50 diff --git a/nu/benchmarks/remove.data b/nu/benchmarks/remove.data deleted file mode 100644 index 4b3a6a6..0000000 --- a/nu/benchmarks/remove.data +++ /dev/null @@ -1,17 +0,0 @@ -0 Bound Patterns, 0, 0, 3.357323333 -128 Bound Patterns, 0, 0, 3.38054 -256 Bound Patterns, 0, 0, 3.378506667 -384 Bound Patterns, 0, 0, 3.385633333 -512 Bound Patterns, 0, 0, 3.357586667 -640 Bound Patterns, 0, 0, 3.392876667 -768 Bound Patterns, 0, 0, 3.366466667 -896 Bound Patterns, 0, 0, 3.37686 -1024 Bound Patterns, 0, 0, 3.367846667 -1152 Bound Patterns, 0, 0, 3.375926667 -1280 Bound Patterns, 0, 0, 3.364723333 -1408 Bound Patterns, 0, 0, 3.36319 -1536 Bound Patterns, 0, 0, 3.359513333 -1664 Bound Patterns, 0, 0, 3.37868 -1792 Bound Patterns, 0, 0, 3.369173333 -1920 Bound Patterns, 0, 0, 3.36695 -2048 Bound Patterns, 0, 0, 3.36925 diff --git a/nu/benchmarks/spec-dispatch.data b/nu/benchmarks/spec-dispatch.data deleted file mode 100644 index 836c1d3..0000000 --- a/nu/benchmarks/spec-dispatch.data +++ /dev/null @@ -1,8 +0,0 @@ -check, 0.052, 0.052, 0.057 -compress, 127.853, 186.968, 129.068 -jess, 28.086, 48.199, 28.974 -db, 66.346, 66.914, 66.132 -javac, 36.140, 48.190, 36.636 -mpegaudio, 105.596, 130.548, 107.212 -mtrt, 22.651, 57.652, 23.812 -jack, 24.188, 26.556, 24.232 diff --git a/nu/cgi-bin/cvsweb.cgi b/nu/cgi-bin/cvsweb.cgi deleted file mode 100755 index 7815203..0000000 --- a/nu/cgi-bin/cvsweb.cgi +++ /dev/null @@ -1,4524 +0,0 @@ -#!/usr/bin/perl -T -# -# cvsweb - a CGI interface to CVS trees. -# -# Written in their spare time by -# Bill Fenner (original work) -# extended by Henner Zeller , -# Henrik Nordstrom -# Ken Coar -# Dick Balaska -# Akinori MUSHA -# Jens-Uwe Mager -# Ville Skytt -# Vassilii Khachaturov -# -# Based on: -# * Bill Fenners cvsweb.cgi revision 1.28 available from: -# http://www.FreeBSD.org/cgi/cvsweb.cgi/www/en/cgi/cvsweb.cgi -# -# Copyright (c) 1996-1998 Bill Fenner -# (c) 1998-1999 Henner Zeller -# (c) 1999 Henrik Nordstrom -# (c) 2000-2002 Akinori MUSHA -# (c) 2002-2005 Ville Skytt -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# $FreeBSD: projects/cvsweb/cvsweb.cgi,v 1.295 2005/09/25 20:28:51 scop Exp $ -# $Id: cvsweb.cgi,v 1.112 2001/07/24 13:03:16 hzeller Exp $ -# $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.84 2001/10/07 20:50:10 knu Exp $ -# -### - -require 5.006; - -use strict; - -use warnings; -use filetest qw(access); - -use lib 'lib'; - -use vars qw ( - $VERSION $CheckoutMagic $MimeTypes $DEBUG - $config $allow_version_select - @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr - %MIRRORS %DEFAULTVALUE %ICONS %MTYPES - %DIFF_COMMANDS @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS - %alltags %fileinfo %tags @branchnames %nameprinted - %symrev %revsym @allrevisions %date %author @revdisplayorder - @revisions %state %difflines %log %branchpoint @revorder $keywordsubstitution - $prcgi @prcategories $re_prcategories $prkeyword $re_prkeyword $mancgi - $doCheckout $scriptname $scriptwhere - $where $Browser $nofilelinks $maycompress @stickyvars %funcline_regexp - $is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased - %input $query $barequery $sortby $bydate $byrev $byauthor - $bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot - $charset $output_filter - @command_path %CMD $allow_compress $backicon $diricon $fileicon $graphicon - $fullname $cvstreedefault $logo $defaulttitle $address $binfileicon - $long_intro $short_instruction $shortLogLen $show_author - $tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst - $inputTextSize $mime_types $allow_annotate $allow_markup $allow_mailtos - $allow_log_extra $allow_dir_extra $allow_source_extra - $allow_cvsgraph $cvsgraph_config $use_java_script $edit_option_form - $show_subdir_lastmod $show_log_in_markup $preformat_in_markup - $tabstop $state $annTable $sel @ForbiddenFiles - $use_descriptions %descriptions @mytz $dwhere - $use_moddate $gzip_open $file_list_len - $allow_tar @tar_options @gzip_options @zip_options @cvs_options - @annotate_options @rcsdiff_options - $HTML_DOCTYPE $HTML_META $cssurl $CSS $cvshistory_url - $allow_enscript @enscript_options %enscript_types -); - -use Cwd qw(abs_path); -use File::Basename qw(dirname); -use File::Path qw(rmtree); -use File::Spec::Functions qw(canonpath catdir catfile curdir devnull rootdir - tmpdir updir); -use File::Temp qw(tempdir tempfile); -use IPC::Run qw(); -use Time::Local qw(timegm); -use URI::Escape qw(uri_escape uri_unescape); - -use constant VALID_PATH => qr/^([[:^cntrl:]]+)$/o; -use constant VALID_TAG1 => qr/^([a-zA-Z][[:graph:]]*)$/o; -use constant VALID_TAG2 => qr/^([^\$,.:;@]+)$/o; -use constant CVSWEBMARKUP => qr{^text/(x-cvsweb|vnd\.viewcvs)-markup$}io; -use constant LOG_FILESEPR => qr/^={77}$/o; -use constant LOG_REVSEPR => qr/^-{28}$/o; - -use constant HAS_ZLIB => eval { require Compress::Zlib; }; -use constant HAS_EDIFF => eval { require String::Ediff; }; - -# ----------------------------------------------------------------------------- - -# All global initialization that can be done in compile time should go to -# the BEGIN block. Persistent environments, such as mod_perl, will benefit -# from this. - -BEGIN -{ - $VERSION = '3.0.6'; - - $HTML_DOCTYPE = - ''; - - $HTML_META = < - - - -EOM - - # Use MIME::Types for MIME type lookups if it's available. - eval { - require MIME::Types; - $MimeTypes = MIME::Types->new(only_complete => 1); - }; - $MimeTypes = undef if $@; - - $CheckoutMagic = '~checkout~'; -} - -# ----------------------------------------------------------------------------- - -sub printDiffSelect($); -sub printDiffSelectStickyVars(); -sub getDiffLinks($$$); -sub printLogSortSelect($); -sub findLastModifiedSubdirs(@); -sub htmlify_sub(&$); -sub htmlify($;$); -sub spacedHtmlText($;$); -sub link($$); -sub revcmp($$); -sub fatal($$@); -sub config_error($$); -sub redirect($;$); -sub safeglob($); -sub search_path($); -sub getEnscriptHL($); -sub getMimeType($;$); -sub head($;$); -sub scan_directives(@); -sub openOutputFilter(); -sub doAnnotate($$); -sub doCheckout($$$); -sub doEnscript($$$;$); -sub doGraph(); -sub doGraphView(); -sub cvswebMarkup($$$$$$;$); -sub viewable($); -sub doDiff($$$$$$); -sub getDirLogs($$@); -sub readLog($;$); -sub printLog($$$;$$); -sub doLog($); -sub flush_diff_rows($$$$); -sub human_readable_diff($$); -sub navigateHeader($$$$$;$); -sub plural_write($$); -sub readableTime($$); -sub clickablePath($$); -sub chooseCVSRoot(); -sub chooseMirror(); -sub fileSortCmp(); -sub download_url($$;$); -sub download_link($$$;$); -sub display_url($$;$); -sub display_link($$;$$); -sub graph_link($;$); -sub history_link($$;$); -sub toggleQuery($;$); -sub htmlquote($); -sub htmlunquote($); -sub uri_escape_path($); -sub http_header(;$$); -sub html_header($;$); -sub html_footer(); -sub link_tags($); -sub forbidden($); -sub startproc(@); -sub runproc(@); -sub checkout_to_temp($$$); - -# Get rid of unsafe environment vars. Don't do this in the BEGIN block -# (think mod_perl)... -delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}); - -my ($mydir) = (dirname($0) =~ /(.*)/); # untaint - -##### Start of Configuration Area ######## - -# == EDIT this == -# Locations to search for user configuration, in order: -for (catfile($mydir, 'cvsweb.conf'), '/home/other/nu/WWW/cvs/cvs.conf') { - if (-r $_) { - $config = $_; - last; - } -} - -##### End of Configuration Area ######## - -undef $mydir; - -######## Configuration parameters ######### - -@CVSrepositories = @CVSROOT = %CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = - %MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = (); - -$cvstreedefault = $logo = $defaulttitle = - $address = $long_intro = $short_instruction = $shortLogLen = $show_author = - $tablepadding = $hr_breakable = $showfunc = $hr_ignwhite = - $hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate = - $allow_markup = $allow_compress = $use_java_script = $edit_option_form = - $show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup = - $tabstop = $use_moddate = $gzip_open = $DEBUG = $allow_cvsgraph = - $cvsgraph_config = $cvshistory_url = $allow_tar = undef; - -$allow_version_select = $allow_mailtos = $allow_log_extra = 1; - -@DIFFTYPES = qw(h H u c s); -@DIFFTYPES{@DIFFTYPES} = ( - { - 'descr' => 'colored', - 'opts' => ['-u'], - 'colored' => 1, - }, - { - 'descr' => 'long colored', - 'opts' => ['--unified=15'], - 'colored' => 1, - }, - { - 'descr' => 'unified', - 'opts' => ['-u'], - 'colored' => 0, - }, - { - 'descr' => 'context', - 'opts' => ['-c'], - 'colored' => 0, - }, - { - 'descr' => 'side by side', - # width=168 should be enough to support 80 character line lengths - 'opts' => ['--side-by-side', '--width=168'], - 'colored' => 0, - }, -); - -@LOGSORTKEYS = qw(cvs date rev); -@LOGSORTKEYS{@LOGSORTKEYS} = ( - { descr => 'Not sorted', }, - { descr => 'Commit date', }, - { descr => 'Revision', }, -); - -##### End of configuration parameters ##### - -my $pathinfo = ''; -if (defined($ENV{PATH_INFO}) && $ENV{PATH_INFO} ne '') { - ($pathinfo) = ($ENV{PATH_INFO} =~ VALID_PATH) - or fatal('500 Internal Error', - 'Illegal PATH_INFO in environment: %s', - $ENV{PATH_INFO}); -} -if ($ENV{SCRIPT_NAME}) { - ($scriptname) = ($ENV{SCRIPT_NAME} =~ VALID_PATH) - or fatal('500 Internal Error', - 'Illegal SCRIPT_NAME in environment: %s', - $ENV{SCRIPT_NAME}); -} - -$scriptname = '' unless defined($scriptname); - -$where = $pathinfo; -$doCheckout = $where =~ s|^/$CheckoutMagic/|/|o; -$where =~ s|^/||; -$scriptname =~ s|^/*|/|; - -# Let's workaround thttpd's stupidity.. -if ($scriptname =~ m|/$|) { - $pathinfo .= '/'; - my $re = quotemeta $pathinfo; - $scriptname =~ s/$re$//; -} - -# $scriptname : the URI escaped path to this script -# $where : the path in the CVS repository (without leading /, or only /) -# $scriptwhere: the URI escaped $scriptname + '/' + $where -$scriptname = uri_escape_path($scriptname); -$scriptwhere = join('/', $scriptname, uri_escape_path($where)); -$where = '/' if ($where eq ''); - -# In text-based browsers, it's very annoying to have two links per file; -# skip linking the image for them. - -$Browser = $ENV{HTTP_USER_AGENT} || ''; -$is_links = ($Browser =~ m`^E?Links `); -$is_lynx = ($Browser =~ m`^Lynx/`i); -$is_w3m = ($Browser =~ m`^w3m/`i); -$is_msie = ($Browser =~ m`MSIE`); -$is_mozilla3 = ($Browser =~ m`^Mozilla/[3-9]`); - -$is_textbased = ($is_links || $is_lynx || $is_w3m); - -$nofilelinks = $is_textbased; - -# newer browsers accept gzip content encoding -# and state this in a header -# (netscape did always but didn't state it) -# It has been reported that these -# braindamaged MS-Internet Exploders claim that they -# accept gzip .. but don't in fact and -# display garbage then :-/ -# Turn off gzip if running under mod_perl and no zlib is available, -# piping does not work as expected inside the server. -$maycompress = ( - ((defined($ENV{HTTP_ACCEPT_ENCODING}) - && $ENV{HTTP_ACCEPT_ENCODING} =~ /gzip/) - || $is_mozilla3) - && !$is_msie - && !(defined($ENV{MOD_PERL}) && !HAS_ZLIB) -); - -# Parameters that will be sticky in all constructed links/query strings. -@stickyvars = - qw(cvsroot hideattic ignorecase sortby logsort f only_with_tag ln - hidecvsroot hidenonreadable); - -# -# Load configuration. -# -if (-f $config) { - do "$config" or config_error($config, $@); -} else { - fatal("500 Internal Error", - 'Configuration not found. Set the parameter $config in cvsweb.cgi to your cvsweb.conf configuration file first.'); -} - -# Try to find a readable dir where we can cd into. Some abs_path() -# implementations as well as various cvs operations require such a dir to -# work properly. -{ - local $^W = 0; - for my $dir (tmpdir(), rootdir()) { - last if (-r $dir && chdir($dir)); - } -} - -$CSS = $cssurl ? - sprintf("\n", - htmlquote($cssurl)) : ''; - -# --- input parameters - -my %query = (); -if (defined($ENV{QUERY_STRING})) { - for my $p (split(/[;&]+/, $ENV{QUERY_STRING})) { - next unless $p; - $p =~ y/+/ /; - my ($key, $val) = split(/=/, $p, 2); - next unless defined($key); - $val = 1 unless defined($val); - ($key = uri_unescape($key)) =~ /[[:graph:]]/ or next; - ($val = uri_unescape($val)) =~ /[[:graph:]]/ or next; - $query{$key} = $val; - } -} - -undef %input; - -my $t; -for my $p (qw(graph hideattic hidecvsroot hidenonreadable ignorecase ln copt - makeimage options tarball)) { - $t = $query{$p}; - if (defined($t)) { - ($input{$p}) = ($t =~ /^([01]|on)$/) - or fatal('500 Internal Error', - 'Invalid boolean value: %s=%s', $p, $t); - } -} -for my $p (qw(annotate r1 r2 rev tr1 tr2)) { - $t = $query{$p}; - if (defined($t)) { - if (($p eq 'r1' || $p eq 'r2') && $t eq 'text') { - # Special case for the "Use text field" option in the log view diff form. - $input{$p} = $t; - next; - } elsif (($p eq 'rev' || $p eq 'annotate') && ($t eq '.' || $t eq 'HEAD')){ - # Another special case, allow linking to latest revision using these. - $input{$p} = '.'; - next; - } - my ($rev, $tag) = split(/:/, $t, 2); - ($input{$p}) = ($rev =~ /^(\d+(?:\.\d+)*)$/) - or fatal('500 Internal Error', - 'Invalid revision: %s=%s', $p, $t); - if (defined($tag)) { - ($tag) = ($tag =~ VALID_TAG1) - or fatal('500 Internal Error', - 'Invalid tag/branch name in revision: %s=%s', - $p, $t); - ($tag) = ($tag =~ VALID_TAG2) - or fatal('500 Internal Error', - 'Invalid tag/branch name in revision: %s=%s', - $p, $t); - $input{$p} .= ':' . $tag; - } - } -} -$t = defined($query{only_with_tag}) ? - $query{only_with_tag} : $query{only_on_branch}; # Backwards compatibility. -if (defined($t)) { - ($input{only_with_tag}) = ($t =~ VALID_TAG1) - or fatal('500 Internal Error', - 'Invalid tag/branch name: %s', $t); - ($input{only_with_tag}) = ($t =~ VALID_TAG2) - or fatal('500 Internal Error', - 'Invalid tag/branch name: %s', $t); -} -$t = $query{logsort}; -if (defined($t)) { - ($input{logsort}) = ($t =~ /^(cvs|date|rev)$/) - or fatal('500 Internal Error', - 'Unsupported log sort key: %s', $t); -} -$t = $query{f}; -if (defined($t)) { - ($input{f}) = ($t =~ /^(([hH]|[ucs]c?)|ext\d*)$/) - or fatal('500 Internal Error', - 'Unsupported diff format: %s', $t); -} -$t = $query{sortby}; -if (defined($t)) { - ($input{sortby}) = ($t =~ /^(file|date|rev|author|log)$/) - or fatal('500 Internal Error', - 'Unsupported dir sort key: %s', $t); -} -$t = $query{'content-type'}; -if (defined($t)) { - ($input{'content-type'}) = ($t =~ m|^([-0-9A-Za-z]+/[-0-9A-Za-z\.\+]+)$|) - or fatal('500 Internal Error', - 'Unsupported content type: %s', $t); -} -$t = $query{cvsroot}; -if (defined($t)) { - ($input{cvsroot}) = ($t =~ /^([[:print:]]+)$/) - or fatal('500 Internal Error', - 'Invalid symbolic CVS root name: %s', $t); -} -$t = $query{path}; -if (defined($t)) { - ($input{path}) = ($t =~ VALID_PATH) - or fatal('500 Internal Error', - 'Invalid path: %s', $t); -} -undef($t); -undef(%query); - -# --- end input parameters - -# -# CVS roots -# -my $rootfound = 0; -for (my $i = 0; $i < scalar(@CVSrepositories); $i += 2) { - my $key = $CVSrepositories[$i]; - my ($descr, $root) = @{$CVSrepositories[$i+1]}; - $root = canonpath($root); - unless (-d $root) { - warn("Root '$root' defined in \@CVSrepositories is not a directory, " . - 'entry ignored'); - next; - } - $rootfound ||= 1; - $cvstreedefault = $key unless defined($cvstreedefault); - $CVSROOTdescr{$key} = $descr; - $CVSROOT{$key} = $root; - push(@CVSROOT, $key); -} -unless ($rootfound) { - fatal('500 Internal Error', - 'No valid CVS roots found! See @CVSrepositories in ' . - 'the configuration file (%s).', - $config); -} -undef $rootfound; - -# -# Default CVS root -# -if (!defined($CVSROOT{$cvstreedefault})) { - fatal("500 Internal Error", - '$cvstreedefault points to a repository (%s) not ' . - 'defined in @CVSrepositories in your configuration ' . - 'file (%s).', - $cvstreedefault, - $config); -} - -$DEFAULTVALUE{cvsroot} = $cvstreedefault; - -while (my ($key, $defval) = each %DEFAULTVALUE) { - - # Replace not given parameters with defaults. - next unless (defined($defval) && $defval =~ /\S/ && !defined($input{$key})); - - # Empty checkboxes in forms return nothing, so we define a helper parameter - # in these forms (copt) which indicates that we just set parameters with a - # checkbox. - if ($input{copt}) { - - # 'copt' is set -> the result of empty input checkbox - # -> set to zero (disable) if default is a boolean (0|1). - $input{$key} = 0 if ($defval eq '0' || $defval eq '1'); - - } else { - - # 'copt' isn't set --> empty input is not the result - # of empty input checkbox --> set default. - $input{$key} = $defval; - } -} - -$barequery = ""; -my @barequery; -foreach (@stickyvars) { - - # construct a query string with the sticky non default parameters set - if (defined($input{$_}) - && !(defined($DEFAULTVALUE{$_}) && $input{$_} eq $DEFAULTVALUE{$_})) - { - push(@barequery, join('=', uri_escape($_), uri_escape($input{$_}))); - } -} - -if ($allow_enscript) { - push(@DIFFTYPES, qw(uc cc sc)); - @DIFFTYPES{qw(uc cc sc)} = ( - { - 'descr' => 'unified, colored', - 'opts' => ['-u'], - 'colored' => 0, - }, - { - 'descr' => 'context, colored', - 'opts' => ['-c'], - 'colored' => 0, - }, - { - 'descr' => 'side by side, colored', - # width=168 should be enough to support 80 character line lengths - 'opts' => ['--side-by-side', '--width=168'], - 'colored' => 0, - }, - ); -} else { - # No Enscript -> respect difftype, but don't offer colorization. - if ($input{f} && $input{f} =~ /^([ucs])c$/) { - $input{f} = $1; - } -} - -# is there any query ? -if (@barequery) { - $barequery = join (';', @barequery); - $query = "?$barequery"; - $barequery = ";$barequery"; -} else { - $query = ""; -} -undef @barequery; - -if (defined($input{path})) { - redirect("$scriptname/$input{path}$query"); -} - -# get actual parameters -{ - my $sortby = $input{sortby} || 'file'; - $bydate = 0; - $byrev = 0; - $byauthor = 0; - $bylog = 0; - $byfile = 0; - if ($sortby eq 'date') { - $bydate = 1; - } elsif ($sortby eq 'rev') { - $byrev = 1; - } elsif ($sortby eq 'author') { - $byauthor = 1; - } elsif ($sortby eq 'log') { - $bylog = 1; - } else { - $byfile = 1; - } -} - -$defaultDiffType = $input{f}; - -$logsort = $input{logsort}; - -# alternate CVS-Tree, configured in cvsweb.conf -if ($input{cvsroot} && $CVSROOT{$input{cvsroot}}) { - $cvstree = $input{cvsroot}; -} else { - $cvstree = $cvstreedefault; -} - -$cvsroot = $CVSROOT{$cvstree}; - -# create icons out of description -foreach my $k (keys %ICONS) { - my ($itxt, $ipath, $iwidth, $iheight) = @{$ICONS{$k}}; - no strict 'refs'; - if ($ipath) { - ${"${k}icon"} = - sprintf('%s', - htmlquote($ipath), htmlquote($itxt), $iwidth, $iheight); - } else { - ${"${k}icon"} = $itxt; - } -} - -my $config_cvstree = "$config-$cvstree"; - -# Do some special configuration for cvstrees -if (-f $config_cvstree) { - do "$config_cvstree" - or fatal("500 Internal Error", - 'Error in loading configuration file: %s

    %s
    ', - $config_cvstree, $@); -} -undef $config_cvstree; - -$re_prcategories = '(?:' . join ('|', @prcategories) . ')' if @prcategories; -$re_prkeyword = quotemeta($prkeyword) if defined($prkeyword); -$prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/; - -$fullname = catfile($cvsroot, $where); - -my $rewrite = 0; -if ($pathinfo =~ m|//|) { - $pathinfo =~ y|/|/|s; - $rewrite = 1; -} -if (-d $fullname) { - if ($pathinfo !~ m|/$|) { - $pathinfo .= '/'; - $rewrite = 1; - } -} elsif ($pathinfo =~ m|/$|) { - chop $pathinfo; - $rewrite = 1; -} -if ($rewrite) { - redirect($scriptname . uri_escape_path($pathinfo) . $query, 1); -} -undef $rewrite; - -undef $pathinfo; - -if (!-d $cvsroot) { - fatal("500 Internal Error", - '$CVSROOT not found!

    The server on which the CVS tree lives is probably down. Please try again in a few minutes.'); -} - -# -# Short-circuit forbidden things. Note that $fullname should not change -# after this, because the rest of the code assumes this check has already -# been done. -# -fatal('403 Forbidden', 'Access to %s forbidden.', $where) - if forbidden($fullname); - -# -# Handle tarball downloads before any headers are output. -# -if ($input{tarball}) { - fatal('403 Forbidden', 'Downloading tarballs is prohibited.') - unless $allow_tar; - - my ($module) = ($where =~ m,^/?(.*),); # untaint - $module =~ s,/([^/]*)$,,; - my ($ext) = ($1 =~ /(\.t(?:ar\.)?gz|\.zip)$/); - my ($basedir) = ($module =~ m,([^/]+)$,); - - if ($basedir eq '' || $module eq '') { - fatal('500 Internal Error', - 'You cannot download the top level directory.'); - } - - my $istar = ($ext eq '.tar.gz' || $ext eq '.tgz'); - if ($istar) { - fatal('500 Internal Error', 'tar command not found.') unless $CMD{tar}; - fatal('500 Internal Error', 'gzip command not found.') unless $CMD{gzip}; - } - my $iszip = ($ext eq '.zip'); - if ($iszip && !$CMD{zip}) { - fatal('500 Internal Error', 'zip command not found.'); - } - if (!$istar && !$iszip) { - fatal('500 Internal Error', 'Unsupported archive type.'); - } - - my $tmpexportdir; - eval { - local $SIG{__DIE__}; - # Don't use the CLEANUP argument to tempdir() here, since we might be under - # mod_perl (the process runs for a long time), unlink explicitly later. - $tmpexportdir = tempdir('.cvsweb.XXXXXXXX', TMPDIR => 1); - }; - if ($@) { - fatal('500 Internal Error', 'Unable to make temporary directory: %s', $@); - } - if (!chdir($tmpexportdir)) { - fatal('500 Internal Error', - "Can't cd to temporary directory %s: %s", $tmpexportdir, $!); - } - - my @fatal; - my $tag = $input{only_with_tag} || 'HEAD'; - $tag = 'HEAD' if ($tag eq 'MAIN'); - - my @cmd = - ($CMD{cvs}, @cvs_options, '-Qd', $cvsroot, 'export', '-r', $tag, - '-d', $basedir, $module); - my $export_err; - my ($errcode, $err) = runproc(\@cmd, '2>', \$export_err); - if ($errcode) { - @fatal = - ('500 Internal Error', - 'Export failure (exit status %s), output:

    %s
    ', - $errcode, $err || $export_err); - - } else { - - $| = 1; # Essential to get the buffering right. - local (*TAR_OUT); - - my (@cmd, $ctype); - if ($istar) { - my @tar = ($CMD{tar}, @tar_options, '-cf', '-', $basedir); - my @gzip = ($CMD{gzip}, @gzip_options, '-c'); - push(@cmd, \@tar, '|', \@gzip); - $ctype = 'application/x-gzip'; - } elsif ($iszip) { - my @zip = ($CMD{zip}, @zip_options, '-r', '-', $basedir); - push(@cmd, \@zip, \''); - $ctype = 'application/zip'; - } - push(@cmd, '>pipe', \*TAR_OUT); - - my ($h, $err) = startproc(@cmd); - if ($h) { - print "Content-Type: $ctype\r\n\r\n"; - local $/ = undef; - print ; - $h->finish(); - } else { - @fatal = ('500 Internal Error', - '%s failure (exit status %s), output:
    %s
    ', - $istar ? 'Tar' : 'Zip', $? >> 8 || -1, $err); - } - } - - # Clean up. - rmtree($tmpexportdir); - - &fatal(@fatal) if @fatal; - - exit; -} - -############################## -# View a directory -############################### -if (-d $fullname) { - - my $dh = do { local (*DH); }; - opendir($dh, $fullname) or fatal("404 Not Found", '%s: %s', $where, $!); - my @dir = grep(!forbidden(catfile($fullname, $_)), readdir($dh)); - closedir($dh); - my @subLevelFiles = findLastModifiedSubdirs(@dir) if $show_subdir_lastmod; - my @unreadable = getDirLogs($cvsroot, $where, @subLevelFiles); - - if ($where eq '/') { - html_header($defaulttitle); - $long_intro =~ s/!!CVSROOTdescr!!/$CVSROOTdescr{$cvstree}/g; - print $long_intro; - } else { - html_header($where); - my $html = (-f catfile($fullname, 'README.cvs.html,v') || - -f catfile($fullname, 'Attic', 'README.cvs.html,v')); - my $text = (!$html && - (-f catfile($fullname, 'README.cvs,v') || - -f catfile($fullname, 'Attic', 'README.cvs,v'))); - if ($html || $text) { - my $rev = $input{only_with_tag} || 'HEAD'; - my $cr = abs_path($cvsroot) || $cvsroot; - my $co = "$where/README.cvs.html" if $html; - $co ||= "$where/README.cvs" if $text; - # abs_path() taints when run as a CGI... - if ($cr =~ VALID_PATH) { - $cr = $1; - } else { - fatal('500 Internal Error', 'Illegal CVS root: %s', $cr); - } - my @cmd = ($CMD{cvs}, @cvs_options, '-d', $cr, 'co', '-p', "-r$rev",$co); - local (*CVS_OUT, *CVS_ERR); - my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*CVS_OUT, - '2>pipe', \*CVS_ERR); - fatal('500 Internal Error', $err) unless $h; - if ($html) { - local $/ = undef; - print ; - } else { - print "

    \n"; - while () { - chomp; - print htmlquote($_), '
    '; - } - print "

    "; - } - $h->finish(); - } - print $short_instruction; - } - - if ($use_descriptions && - open(DESC, catfile($cvsroot, 'CVSROOT', 'descriptions'))) { - while () { - chomp; - my ($dir, $description) = /(\S+)\s+(.*)/; - $descriptions{$dir} = $description; - } - close(DESC); - } - - print "

    \n"; - - # give direct access to dirs - if ($where eq '/') { - chooseMirror(); - chooseCVSRoot(); - - } else { - print '

    Current directory: ', clickablePath($where, 0), ''; - if ($cvshistory_url) { - (my $d = $where) =~ s|^/*(.*?)/*$|$1|; - print ' - ', history_link($d, ''); - } - print "

    \n"; - print "

    Current tag: ", htmlquote($input{only_with_tag}), "

    \n" - if $input{only_with_tag}; - } - - print "
    \n"; - - my $infocols = 1; - - printf(< - -EOF - printf('', ($byfile ? ' class="sorted"' : '')); - - if ($byfile) { - print 'File'; - } else { - print &link('File', - sprintf('./%s#dirlist', toggleQuery('sortby', 'file'))); - } - print "\n"; - - # Do not display the other column headers if we do not have any files - # with revision information. - if (scalar(%fileinfo)) { - $infocols++; - printf('', ($byrev ? ' class="sorted"' : '')); - - if ($byrev) { - print 'Rev.'; - } else { - print &link('Rev.', - sprintf('./%s#dirlist', toggleQuery('sortby', 'rev'))); - } - print "\n"; - $infocols++; - printf('', ($bydate ? ' class="sorted"' : '')); - - if ($bydate) { - print 'Age'; - } else { - print &link('Age', - sprintf('./%s#dirlist', toggleQuery('sortby', 'date'))); - } - print "\n"; - - if ($show_author) { - $infocols++; - printf('', ($byauthor ? ' class="sorted"' : '')); - - if ($byauthor) { - print 'Author'; - } else { - print - &link('Author', - sprintf('./%s#dirlist', toggleQuery('sortby', 'author'))); - } - print "\n"; - } - $infocols++; - printf('', ($bylog ? ' class="sorted"' : '')); - - if ($bylog) { - print 'Last log entry'; - } else { - print &link('Last log entry', - sprintf('./%s#dirlist', toggleQuery('sortby', 'log'))); - } - print "\n"; - } elsif ($use_descriptions) { - print "Description\n"; - $infocols++; - } - print "\n"; - - my $dirrow = 0; - - my $i; - lookingforattic: - for ($i = 0; $i <= $#dir; $i++) { - if ($dir[$i] eq "Attic") { - last lookingforattic; - } - } - - if (!$input{hideattic} - && ($i <= $#dir) - && opendir($dh, $fullname . '/Attic')) - { - splice(@dir, $i, 1, grep((s|^|Attic/|, !m|/\.|), readdir($dh))); - closedir($dh); - } - - my $hideAtticToggleLink = - $input{hideattic} - ? '' - : &link('[hide]', sprintf('./%s#dirlist', &toggleQuery('hideattic'))); - - # Sort without the Attic/ pathname. - # place directories first - - my $filesexists; - my $filesfound; - - foreach my $file (sort { &fileSortCmp } @dir) { - - next if ($file eq curdir()); - - # ignore CVS lock and stale NFS files - next if ($file =~ /^\#cvs\.|^,|^\.nfs/); # \# for XEmacs cperl-mode... - - # Check whether to show the CVSROOT path - next if ($input{hidecvsroot} && $where eq '/' && $file eq 'CVSROOT'); - - # Is it a directory? - my $isdir = -d catdir($fullname, $file); - - # Ignore non-readable files and directories? - next if ($input{hidenonreadable} && (! -r _ || ($isdir && ! -x _))); - - my $attic = ''; - if ($file =~ s|^Attic/||) { - $attic = ' (in the Attic) ' . - $hideAtticToggleLink . ''; - } - - if ($file eq updir() || $isdir) { - next if ($file eq updir() && $where eq '/'); - my ($rev, $date, $log, $author, $filename, $keywordsubst) = - @{$fileinfo{$file}} if (defined($fileinfo{$file})); - printf "\n", - ($dirrow % 2) ? 'even' : 'odd'; - - if ($file eq updir()) { - my $url = "../$query"; - print $nofilelinks ? $backicon : &link($backicon, $url); - print ' ', &link("Parent Directory", $url); - - } else { - my $url = './' . uri_escape_path($file) . "/$query"; - print ''; - print $nofilelinks ? $diricon : &link($diricon, $url); - print ' ', &link(htmlquote("$file/"), $url), $attic; - if ($file eq "Attic") { - print ' ', - &link('[show]', - sprintf('./%s#dirlist', &toggleQuery('hideattic'))), - ''; - } - } - - # Show last change in dir - if ($filename) { - print "\n \n"; - print readableTime(time() - $date, 0) if $date; - print "\n", htmlquote($author) - if $show_author; - print "\n"; - $filename =~ s%^[^/]+/%%; - print &link(htmlquote("$filename/$rev"), - sprintf('%s/%s%s#rev%s', - uri_escape($file), uri_escape($filename), - $query, $rev)), '
    '; - if ($log) { - print htmlify(substr($log, 0, $shortLogLen), $allow_dir_extra); - print '...' if (length($log) > 80); - } - - } else { - my $dwhere = ($where ne '/' ? $where : '') . $file; - - if ($use_descriptions && defined $descriptions{$dwhere}) { - print ''; - print $descriptions{$dwhere}; - - } elsif ($infocols > 1) { - - # close the row with the appropriate number of - # columns, so that the vertical seperators are visible - my ($cols) = $infocols; - while ($cols > 1) { - print "\n "; - $cols--; - } - } - } - - print "\n\n"; - $dirrow++; - - } elsif ($file =~ s/,v$//) { - - my $fileurl = ($attic ? 'Attic/' : '') . uri_escape_path($file); - my $url = './' . $fileurl . $query; - $filesexists++; - next if (!defined($fileinfo{$file})); - my ($rev, $date, $log, $author, $filename, $keywordsubst) = - @{$fileinfo{$file}}; - my $isbinary = $keywordsubst eq 'b' ? 1 : 0; - $filesfound++; - - printf "\n", ($dirrow % 2) ? 'even' : 'odd'; - printf '', $allow_cvsgraph ? '' : ' colspan="2"'; - - my $icon = $isbinary ? $binfileicon : $fileicon; - print $nofilelinks ? $icon : &link($icon, $url); - print ' ', &link(htmlquote($file), $url), $attic; - print '', graph_link($fileurl) if $allow_cvsgraph; - print "\n", display_link($fileurl, $rev); - print "\n"; - print readableTime(time() - $date, 0) if $date; - print "\n", htmlquote($author) if $show_author; - print "\n"; - - if ($log) { - print htmlify(substr($log, 0, $shortLogLen), $allow_dir_extra); - print '...' if (length $log > 80); - } - print "\n"; - $dirrow++; - } - print "\n"; - } - - print "\n"; - - if ((my $num = scalar(@unreadable)) && ! $input{hidenonreadable}) { - printf(< - NOTE: The following %d unreadable files were ignored:
    - %s -

    -EOF - } - - if ($filesexists && !$filesfound) { - my $currtag = defined($input{only_with_tag}) ? - sprintf(' (%s)', htmlquote($input{only_with_tag})) : ''; - printf(< - NOTE: There are %d files, but none matches the current tag%s. -

    -EOF - } - - if ($input{only_with_tag} && (!%tags || !$tags{$input{only_with_tag}})) { - %tags = %alltags; - } - - if (scalar %tags - || $input{only_with_tag} - || $edit_option_form - || defined($input{options})) - { - print "
    \n"; - } - - if (scalar %tags || $input{only_with_tag}) { - print "
    \n

    \n"; - foreach my $var (@stickyvars) { - printf("\n", - htmlquote($input{$var})) - if (defined($input{$var}) - && (!defined($DEFAULTVALUE{$var}) - || $input{$var} ne $DEFAULTVALUE{$var}) - && $var ne 'only_with_tag'); - } - printf(< - - - -

    -
    -EOF - } - - if ($allow_tar && $filesfound) { - my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),); - my $havetar = $CMD{tar} && $CMD{gzip}; - my $havezip = $CMD{zip}; - if (defined($basefile) && $basefile ne '' && ($havetar || $havezip)) { - my $q = ($query ? "$query;" : '?') . 'tarball=1'; - print "
    \n", - '
    Download this directory in '; - # Mangle the filename so browsers show a reasonable filename to download. - my @types = (); - $basefile = uri_escape($basefile); - push(@types, &link('tarball', "$basefile.tar.gz$q")) if $havetar; - push(@types, &link('zip archive', "$basefile.zip$q")) if $havezip; - print join(' or ', @types), "
    \n"; - } - } - - if ($edit_option_form || defined($input{options})) { - - print < -
    -General options - -EOF - for my $v qw(hidecvsroot hidenonreadable) { - printf(qq{\n}, - $v, $input{$v} || 0); - } - if ($cvstree ne $cvstreedefault) { - print "\n"; - } - print < - - - - - -\n"; - print < - - - - -EOF - print ''; - print < - - - - - - -EOF - printLogSortSelect(0); - print < - - - - -EOF - print '\n"; - print < - - - - - - -EOF - printDiffSelect(0); - print < - - - - - -
    - -EOF - } - html_footer(); -} - -############################### -# View Files -############################### -elsif (-f $fullname . ',v') { - - if (defined($input{rev}) || $doCheckout) { - &doCheckout($fullname, $input{rev}, $input{only_with_tag}); - gzipclose(); - exit; - } - - if (defined($input{annotate}) && $allow_annotate) { - &doAnnotate($input{annotate}, $input{only_with_tag}); - gzipclose(); - exit; - } - - if (defined($input{r1}) && defined($input{r2})) { - &doDiff($fullname, $input{r1}, $input{tr1}, - $input{r2}, $input{tr2}, $input{f}); - gzipclose(); - exit; - } - - if ($allow_cvsgraph && $input{graph}) { - if ($input{makeimage}) { - doGraph(); - } else { - doGraphView(); - } - gzipclose(); - exit; - } - - &doLog($fullname); -} - -############################## -# View Diff -############################## -elsif ($fullname =~ s/\.diff$// - && -f $fullname . ',v' && $input{r1} && $input{r2}) -{ - - # $where-diff-removal if 'cvs rdiff' is used - # .. but 'cvs rdiff'doesn't support some options - # rcsdiff does (-w and -p), so it is disabled - # $where =~ s/\.diff$//; - - # Allow diffs using the ".diff" extension so that browsers that default - # to the filename in the URL when saving don't save diffs as eg. foo.c. - &doDiff($fullname, $input{r1}, $input{tr1}, - $input{r2}, $input{tr2}, $input{f}); - gzipclose(); - exit; - -} - -elsif (do { (my $tmp = $fullname) =~ s|/([^/]+)$|/Attic/$1|; -f "$tmp,v" }) { - # The file has been removed and is in the Attic. - # Send a redirect pointing to the file in the Attic. - (my $newplace = $scriptwhere) =~ s|/([^/]+)$|/Attic/$1|; - if ($ENV{QUERY_STRING} ne "") { - redirect("$newplace?$ENV{QUERY_STRING}"); - } else { - redirect($newplace); - } - exit; - -} - -elsif (0 && (my @files = &safeglob($fullname . ",v"))) { - http_header("text/plain"); - print "You matched the following files:\n"; - print join ("\n", @files); - - # TODO: - # Find the tags from each file - # Display a form offering diffs between said tags -} - -else { - # Assume it's a module name with a potential path following it. - my $module; - my $xtra = (($module = $where) =~ s|(/.*)||) ? $1 : ''; - - # Is there an indexed version of modules? - my $fh = do { local (*FH); }; - if (open($fh, catfile($cvsroot, 'CVSROOT', 'modules'))) { - while (<$fh>) { - if (/^(\S+)\s+(\S+)/o - && $module eq $1 - && $module ne $2 - && -d "$cvsroot/$2") - { - close($fh); - redirect("$scriptname/$2$xtra$query"); - } - } - close($fh); - } - fatal("404 Not Found", '%s: no such file or directory', $where); -} - -gzipclose(); - -## End MAIN - - -sub printDiffSelect($) -{ - my ($use_java_script) = @_; - - print '"; -} - - -sub printDiffSelectStickyVars() -{ - while (my ($key, $val) = each %input) { - next if ($key eq 'f'); - next if (defined($DEFAULTVALUE{$key}) && $DEFAULTVALUE{$key} eq $val); - print "\n"; - } -} - - -sub printLogSortSelect($) -{ - my ($use_java_script) = @_; - - print '"; -} - - -# -# Find the last modified, version controlled files in the given directories. -# Compares solely based on modification timestamps. Files in the returned list -# are without the ,v suffix, and unreadable files have been filtered out. -# -sub findLastModifiedSubdirs(@) -{ - my (@dirs) = @_; - - my @files; - foreach my $dirname (@dirs) { - next if ($dirname eq curdir() || $dirname eq updir()); - my $dir = catdir($fullname, $dirname); - next if (!-d $dir); - - my $dh = do { local (*DH); }; - opendir($dh, $dir) or next; - my (@filenames) = grep(!forbidden(catfile($dir, $_)), readdir($dh)); - closedir($dh); - - my $lastmod = undef; - my $lastmodtime = undef; - foreach my $filename (@filenames) { - ($filename) = - (catfile($dirname, $filename) =~ VALID_PATH) or next; # untaint - my ($file) = catfile($fullname, $filename); - next if ($filename !~ /,v$/o || !-f $file || !-r _); - my $modtime = -M _; - if (!defined($lastmod) || $modtime < $lastmodtime) { - ($lastmod = $filename) =~ s/,v$//; - $lastmodtime = $modtime; - } - } - push(@files, $lastmod) if (defined($lastmod)); - } - return @files; -} - - -sub htmlify_sub(&$) -{ - (my $proc, local $_) = @_; - my @a = split(m|(]+>[^<]*)|i); - my $linked; - my $result = ''; - - while (($_, $linked) = splice(@a, 0, 2)) { - &$proc(); - $result .= $_ if defined($_); - $result .= $linked if defined($linked); - } - - return $result; -} - - -sub htmlify($;$) -{ - (local $_, my $extra) = @_; - - $_ = htmlquote($_); - - # get URL's as link - s{ - ((https?|ftp)://.+?)([\s\']|&(quot|[lg]t);) - }{ - &link($1, htmlunquote($1)) . $3 - }egx; - - if ($allow_mailtos) { - # Make mailto: links from email addresses. - $_ = htmlify_sub { - s< - ([\w+=\-.!]+@[\w\-]+(?:\.[\w\-]+)+) - >< - &link($1, "mailto:$1") - >egix; - } $_; - } - - if ($extra) { - - # get PR #'s as link: "PR#nnnn" "PR: nnnn, ..." "PR nnnn, ..." "bin/nnnn" - if (defined($prcgi) && defined($re_prkeyword)) { - my $prev; - - do { - $prev = $_; - - $_ = htmlify_sub { - s{ - (\b$re_prkeyword[:\#]?\s* - (?: - \#? - \d+[,\s]\s* - )* - \#?) - (\d+)\b - }{ - $1 . &link($2, sprintf($prcgi, $2)) - }egix; - } $_; - } while ($_ ne $prev); - - if (defined($re_prcategories)) { - $_ = htmlify_sub { - s{ - (\b$re_prcategories/(\d+)\b) - }{ - &link($1, sprintf($prcgi, $2)) - }egox; - } $_; - } - } - - # get manpage specs as link: "foo.1" "foo(1)" - if (defined($mancgi)) { - $_ = htmlify_sub { - s{ - ( - \b ( \w[\w+\-.]* (?: ::\w[\w+\-.]*)* ) - (?: - \( ([0-9n]) \) \B - | - \. ([0-9n]) \b - ) - ) - }{ - my($text, $name, $section) = ($1, $2, defined($3) ? $3 : $4); - ($name =~ /[A-Za-z]/ && $name !~ /\.(:|$)/) - ? &link($text, sprintf($mancgi, $section, uri_escape($name))) - : $text; - }egx; - } $_; - } - } - - return $_; -} - - -sub spacedHtmlText($;$) -{ - (local $_, my $ts) = @_; - return '' unless defined($_); - $ts ||= $tabstop || 8; - - # Expand tabs - 1 while s/(.*?)(\t+)/$1 . ' ' x (length($2) * $ts - length($1) % $ts)/e; - - if ($hr_breakable) { - s/^ /\001nbsp;/; # protect leading and... - s/ $/\001nbsp;/; # ...trailing whitespace (mostly for String::Ediff), - s/ / \001nbsp;/g; # ...and leave every other space 'breakable' - } else { - s/ /\001nbsp;/g; - } - - $_ = htmlify($_, $allow_source_extra); - - # unescape - y/\001/&/; - - return $_; -} - - -# Note that this doesn't htmlquote the first argument... -sub link($$) -{ - my ($name, $url) = @_; - return sprintf('%s', htmlquote($url), $name); -} - - -sub revcmp($$) -{ - my ($rev1, $rev2) = @_; - - # make no comparison for a tag or a branch - return 0 if $rev1 =~ /[^\d.]/ || $rev2 =~ /[^\d.]/; - - my (@r1) = split(/\./, $rev1); - my (@r2) = split(/\./, $rev2); - my ($a, $b); - - while (($a = shift(@r1)) && ($b = shift(@r2))) { - return $a <=> $b unless ($a == $b); - } - if (@r1) { return 1; } - if (@r2) { return -1; } - return 0; -} - - -# -# Signal a fatal error. -# -sub fatal($$@) -{ - my ($errcode, $format, @args) = @_; - print "Status: $errcode\r\n"; - html_header('Error'); - print '
    Error: ', - sprintf($format, map(htmlquote($_), @args)), "
    \n"; - html_footer(); - exit(1); -} - - -# -# Signal a (fatal) configuration error. -# -sub config_error($$) -{ - fatal('500 Internal Error', - 'Error loading configuration file "%s":

    ' . - '%s
    ', @_); -} - - -# -# Sends a redirect to the given URL. -# -sub redirect($;$) -{ - my ($url, $permanent) = @_; - my ($status, $text); - if ($permanent) { - $status = '301'; - $text = 'Moved Permanently'; - } else { - $status = '302'; - $text = 'Found'; - } - print "Status: $status $text\r\n", "Location: $url\r\n"; - html_header($text); - print "

    This document has moved ", &link('here', $url), ".

    \n"; - html_footer(); - exit(1); -} - - -sub safeglob($) -{ - my ($filename) = @_; - - (my $dirname = $filename) =~ s|/[^/]+$||; - $filename =~ s|.*/||; - - my @results; - my $dh = do { local (*DH); }; - if (opendir($dh, $dirname)) { - my $glob = $filename; - my $t; - - # transform filename from glob to regex. Deal with: - # [, {, ?, * as glob chars - # make sure to escape all other regex chars - $glob =~ s/([\.\(\)\|\+])/\\$1/g; - $glob =~ s/\*/.*/g; - $glob =~ s/\?/./g; - $glob =~ s/{([^}]+)}/($t = $1) =~ s-,-|-g; "($t)"/eg; - $glob = qr/^$glob$/; - - foreach (readdir($dh)) { - if ($_ =~ $glob && $_ =~ VALID_PATH) { - push(@results, catfile($dirname, $1)); # untaint - } - } - closedir($dh); - } - - return @results; -} - - -# -# Searches @command_path for the given executable file. -# -sub search_path($) -{ - my ($command) = @_; - for my $d (@command_path) { - my $cmd = catfile($d, $command); - return $cmd if (-x $cmd && !-d _); - } - return ''; -} - - -# -# Gets the enscript(1) highlight mode corresponding to the given filename, -# or undef if unsupported. -# -sub getEnscriptHL($) -{ - return undef unless $allow_enscript; - my ($filename) = @_; - while (my ($hl, $regex) = each %enscript_types) { - return $hl if ($filename =~ $regex); - } - return undef; -} - - -# -# Gets the MIME type for the given file name. -# -sub getMimeType($;$) -{ - my ($fullname, $binary) = @_; - $binary = ($keywordsubstitution && $keywordsubstitution =~ /b/) - unless defined($binary); - - (my $suffix = $fullname) =~ s/^.*\.([^.]*)$/$1/; - - my $mimetype = $MTYPES{$suffix}; - $mimetype ||= $MimeTypes->mimeTypeOf($fullname) if defined($MimeTypes); - - if (!$mimetype && $suffix ne '*' && -f $mime_types && -r _) { - my $fh = do { local (*FH); }; - if (open($fh, $mime_types)) { - my $re = sprintf('^\s*(\S+\/\S+)\s.+\b%s\b', quotemeta($suffix)); - $re = qr/$re/; - while (my $line = <$fh>) { - if ($line =~ $re) { - $mimetype = $1; - $MTYPES{$suffix} = $mimetype; - last; - } - } - close($fh); - } else { - warn("Can't open MIME types file $mime_types for reading: $!"); - } - } - - $mimetype ||= $MTYPES{'*'}; - $mimetype ||= $binary ? 'application/octet-stream' : 'text/plain'; - return $mimetype; -} - - -############################### -# read first lines like head(1) -############################### -sub head($;$) -{ - my ($fh, $linecount) = @_; - $linecount ||= 10; - - my @buf; - if ($linecount > 0) { - for (my $i = 0; !eof($fh) && $i < $linecount; $i++) { - push @buf, scalar <$fh>; - } - } else { - @buf = <$fh>; - } - return @buf; -} - - -############################### -# scan vim and Emacs directives -############################### -sub scan_directives(@) -{ - my $ts = undef; - - for (@_) { - $ts = $1 if /\b(?:ts|tabstop|tab-width)[:=]\s*([1-9]\d*)\b/; - } - - ('tabstop' => $ts); -} - - -sub openOutputFilter() -{ - return unless $output_filter; - - open(STDOUT, "|-") and return; - - # child of child - open(STDERR, '>', devnull()) unless $DEBUG; - exec($output_filter) or exit -1; -} - - -############################### -# show Annotation -############################### -sub doAnnotate($$) -{ - my ($rev, $tag) = @_; - $rev = $tag || 'HEAD' if ($rev eq '.'); - (my $pathname = $where) =~ s|((?<=/)Attic/)?[^/]*$||; - (my $filename = $where) =~ s|^.*/||; - - # This annotate version is based on the cvs annotate-demo Perl script by - # Cyclic Software. It was written by Cyclic Software, - # http://www.cyclic.com/, and is in the public domain. - # We could abandon the use of rlog, rcsdiff and co using - # the cvs server in a similiar way one day (..after rewrite). - - local (*CVS_IN, *CVS_OUT); - my $annotate_err; - my ($h, $err) = - startproc([ $CMD{cvs}, @annotate_options, 'server' ], - 'pipe', \*CVS_OUT, - '2>', \$annotate_err); - fatal('500 Internal Error', - 'Annotate failure (exit status %s), output:
    %s
    ', - $? >> 8 || -1, $err) - unless $h; - - # OK, first send the request to the server. A simplified example is: - # Root /home/kingdon/zwork/cvsroot - # Argument foo/xx - # Directory foo - # /home/kingdon/zwork/cvsroot/foo - # Directory . - # /home/kingdon/zwork/cvsroot - # annotate - # although as you can see there are a few more details. - - print CVS_IN "Root $cvsroot\n"; - print CVS_IN - "Valid-responses ok error Valid-requests Checked-in Updated Merged Removed M E\n"; - - # Don't worry about sending valid-requests, the server just needs to - # support "annotate" and if it doesn't, there isn't anything to be done. - print CVS_IN "UseUnchanged\n"; - print CVS_IN "Argument -r\n"; - print CVS_IN "Argument $rev\n"; - print CVS_IN "Argument $where\n"; - - # The protocol requires us to fully fake a working directory (at - # least to the point of including the directories down to the one - # containing the file in question). - # So if $where is "dir/sdir/file", then dirs will be ("dir","sdir","file") - my $path = ''; - foreach my $dir (split('/', $where)) { - - if ($path eq "") { - # In our example, $dir is "dir". - $path = $dir; - } else { - print CVS_IN "Directory $path\n"; - print CVS_IN "$cvsroot/$path\n"; - - # In our example, $_ is "sdir" and $path becomes "dir/sdir" - # And the next time, "file" and "dir/sdir/file" (which then gets - # ignored, because we don't need to send Directory for the file). - $path .= "/$dir"; - } - } - undef $path; - - # And the last "Directory" before "annotate" is the top level. - print CVS_IN "Directory .\n"; - print CVS_IN "$cvsroot\n"; - - print CVS_IN "annotate\n"; - - # OK, we've sent our command to the server. Thing to do is to - # close the writer side and get all the responses. - if (!close(CVS_IN)) { - $h->finish(); - fatal('500 Internal Error', - 'Annotate failure (exit status %s): %s, output: ' . - '
    %s
    ', $? >> 8, $!, $annotate_err); - } - - navigateHeader($scriptwhere, $pathname, $filename, $rev, 'annotate'); - - my $revtype = ($rev =~ /\./) ? 'revision' : 'tag'; # TODO: tag -> branch/tag? - print '

    Annotation of ', - htmlquote("$pathname$filename"), ", $revtype $rev

    \n"; - - # Ready to get the responses from the server. - # For example: - # E Annotations for foo/xx - # E *************** - # M 1.3 (kingdon 06-Sep-97): hello - # ok - my ($lineNr) = 0; - my ($oldLrev, $oldLusr) = ("", ""); - my ($revprint, $usrprint); - - if ($annTable) { - print < -EOF - } else { - print "
    ";
    -  }
    -
    -  # prefetch several lines
    -  my @buf = head(*CVS_OUT);
    -
    -  my %d = scan_directives(@buf);
    -
    -  while (@buf || !eof(*CVS_OUT)) {
    -
    -    $_ = @buf ? shift @buf : ;
    -    my @words = split;
    -
    -    # Adding one is for the (single) space which follows $words[0].
    -    my $rest = substr($_, length($words[0]) + 1);
    -    if ($words[0] eq "E") {
    -      next;
    -    } elsif ($words[0] eq "M") {
    -      $lineNr++;
    -      (my $lrev = substr($_, 2,  13)) =~ y/ //d;
    -      (my $lusr = substr($_, 16, 9))  =~ y/ //d;
    -      my $line = substr($_, 36);
    -      # TODO: this does not work for branch/tag revisions.
    -      my $isCurrentRev = ($rev eq $lrev);
    -
    -      # we should parse the date here ..
    -      if ($lrev eq $oldLrev) {
    -        $revprint = sprintf('%-8s', '');
    -      } else {
    -        $revprint = sprintf('%-8s', $lrev);
    -        $revprint =~ s|(\S+)|&link($1, uri_escape($filename)."$query#rev$1")|e;
    -        $oldLusr = '';
    -      }
    -
    -      $usrprint = ($lusr eq $oldLusr) ? '' : $lusr;
    -      $oldLrev = $lrev;
    -      $oldLusr = $lusr;
    -
    -      print $is_textbased ? '' : ''
    -        if $isCurrentRev;
    -
    -      $usrprint = sprintf('%-8s', $usrprint);
    -      printf '%s%s %s %4d:', $revprint, $isCurrentRev ? '!' : ' ',
    -        htmlquote($usrprint), $lineNr;
    -      print spacedHtmlText($line, $d{tabstop});
    -
    -      print $is_textbased ? '' : '' if $isCurrentRev;
    -
    -    } elsif ($words[0] eq "ok") {
    -      # We could complain about any text received after this, like the
    -      # CVS command line client.  But for simplicity, we don't.
    -
    -    } elsif ($words[0] eq "error") {
    -      fatal("500 Internal Error",
    -            'Error occured during annotate: %s', $_);
    -    }
    -  }
    -  $h->finish();
    -
    -  if ($annTable) {
    -    print "";
    -  } else {
    -    print "
    "; - } - html_footer(); -} - -############################### -# make Checkout -############################### -sub doCheckout($$$) -{ - my ($fullname, $rev, $tag) = @_; - $rev = $tag || undef if (!$rev || $rev eq '.'); - - # Start resolving whether we will do a markup view or not. - my $do_markup = undef; - my $want_type = $input{'content-type'}; - - # No markup if markup disallowed. - $do_markup = 0 unless $allow_markup; - - # No markup if checkout magic cookie in URL. - $do_markup = 0 if (!defined($do_markup) && $doCheckout); - - # Do markup if explicitly asked using cvsweb-markup content type. If the - # asked content type is anything else, no markup. - if (!defined($do_markup) && $want_type) { - if ($want_type =~ CVSWEBMARKUP) { - $want_type = undef; - $do_markup = 1; - } else { - $do_markup = 0; - } - } - - # Ok, if $do_markup is still undefined, we know that a download has not been - # explicitly asked. For the last check further down below we'll need to - # know if the file is binary, and possibly run a log on it. - my $needlog = $do_markup || $use_moddate; - - my $moddate = undef; - my $revopt; - if (defined($rev)) { - $revopt = "-r$rev"; - if ($needlog) { - readLog($fullname, $rev); - $moddate = $date{$rev}; - # TODO: even this does not work for branch tags, but only normal tags :( - $moddate ||= $date{$symrev{$rev}} if defined($symrev{$rev}); - } - } else { - $revopt = "-rHEAD"; - if ($needlog) { - readLog($fullname); - $moddate = $date{$symrev{HEAD}}; - } - } - - my $cr = abs_path($cvsroot) || $cvsroot; - # abs_path() taints when run as a CGI... - if ($cr =~ VALID_PATH) { - $cr = $1; - } else { - fatal('500 Internal Error', 'Illegal CVS root: %s', $cr); - } - # Use abs_path() to work around a bug of cvs -p; expand symlinks if we can. - my @cmd = ($CMD{cvs}, @cvs_options, '-d', $cr, 'co', '-p', $revopt, $where); - - local (*CVS_OUT, *CVS_ERR); - my ($h, $err) = - startproc(\@cmd, \"", '>pipe', \*CVS_OUT, '2>pipe', \*CVS_ERR); - fatal('500 Internal Error', - 'Checkout failure (exit status %s), output:
    %s
    ', - $? >> 8 || -1, $err) - unless $h; - - if (eof(CVS_ERR)) { - $h->finish(); - fatal("404 Not Found", '%s is not (any longer) pertinent', $where); - } - - #=================================================================== - #Checking out squid/src/ftp.c - #RCS: /usr/src/CVS/squid/src/ftp.c,v - #VERS: 1.1.1.28.6.2 - #*************** - - # Parse CVS header - my ($revision, $filename, $cvsheader); - $filename = ""; - while () { - last if (/^\*\*\*\*/); - $revision = $1 if (/^VERS: (.*)$/); - - if (/^Checking out (.*)$/) { - ($filename = $1) =~ s|^\./+||; - } - $cvsheader .= $_; - } - close(CVS_ERR); - - if ($filename ne $where) { - $h->finish(); - fatal("500 Internal Error", - 'Unexpected output from cvs co:
    %s
    ' . - '(expected "%s" but got "%s")', - $cvsheader, $where, $filename); - } - - # Last checks whether we'll do markup or not. - my $isbin = $keywordsubstitution && $keywordsubstitution =~ /b/; - my $mimetype = getMimeType($fullname, $isbin); - - # If we still are not sure whether to do markup or not: - # if the MIME type is "viewable" or this is not a binary file, do. - $do_markup = !$isbin || viewable($mimetype) unless defined($do_markup); - - if ($do_markup) { - - # If this is something we'll be linking to in the markup view, we are - # done with this particular output from "cvs co" and must discard it. - my $linked = $mimetype =~ m{^image/|application/pdf$}i; - if ($linked) { - close(CVS_OUT); - $h->finish(); - } - - # Here we know the last modified date, but don't know if tags have been - # added afterwards (those are shown in the markup view): no last-modified. - cvswebMarkup(\*CVS_OUT, $fullname, $revision, $isbin, $mimetype, $needlog); - - $h->finish() unless $linked; - - } else { - http_header($want_type || $mimetype, $moddate); - local $/ = undef; - print ; - $h->finish(); - } -} - - -sub cvswebMarkup($$$$$$;$) -{ - my ($filehandle, $fullname, $rev, $isbin, $mimetype, $logged, $mod) = @_; - - (my $pathname = $where) =~ s|((?<=/)Attic/)?[^/]*$||; - (my $filename = $where) =~ s|^.*/||; - - navigateHeader($scriptwhere, $pathname, $filename, $rev, 'view', $mod); - - print < -
    -File:  -EOF - print &clickablePath($where, 1), "
    \n"; - - if ($show_log_in_markup) { - readLog($fullname) unless $logged; #,$rev); - printLog($rev, $mimetype, $isbin); - } else { - print "Revision: $rev
    \n"; - print 'Tag: ', htmlquote($input{only_with_tag}), "
    \n" - if $input{only_with_tag}; - } - print "
    \n
    "; - my $url = download_url(uri_escape($filename), $rev, $mimetype); - - if ($mimetype =~ m|^image/|i) { - printf '%s
    ', - $url . $barequery, htmlquote($filename); - } elsif (lc($mimetype) eq 'application/pdf') { - printf '
    ', - $url . $barequery; - } else { - - print "
    \n";
    -    my $linenumbers = $input{ln} || 0;
    -
    -    if (my $enscript_hl = getEnscriptHL($filename)) {
    -      doEnscript($filehandle, $enscript_hl, $linenumbers);
    -
    -    } else {
    -      my $ln  = 0;
    -      my @buf = ();
    -      my $ts  = undef;
    -
    -      if ($preformat_in_markup) {
    -        # prefetch several lines
    -        @buf = head($filehandle);
    -        my %d = scan_directives(@buf);
    -        $ts = $d{tabstop};
    -      }
    -
    -      while (@buf || !eof($filehandle)) {
    -        $_ = @buf ? shift @buf : <$filehandle>;
    -        if ($linenumbers) {
    -          $ln++;
    -          printf '%5d: ', ($ln) x 2;
    -        }
    -        print $preformat_in_markup ? spacedHtmlText($_, $ts) : htmlquote($_);
    -      }
    -    }
    -
    -    print "
    \n"; - } - html_footer(); -} - - -sub viewable($) -{ - return shift =~ m{^((text|image)/|application/pdf)}i; -} - - -############################### -# Show Colored Diff -############################### -sub doDiff($$$$$$) -{ - my ($fullname, $r1, $tr1, $r2, $tr2, $f) = @_; - - if (forbidden($fullname)) { - fatal('403 Forbidden', 'Access to %s forbidden.', $where); - } - - my ($rev1, $sym1); - if ($r1 =~ /([^:]+)(:(.+))?/) { - $rev1 = $1; - $sym1 = $3; - } - if ($r1 eq 'text') { - $rev1 = $tr1; - $sym1 = ""; - } - - my ($rev2, $sym2); - if ($r2 =~ /([^:]+)(:(.+))?/) { - $rev2 = $1; - $sym2 = $3; - } - if ($r2 eq 'text') { - $rev2 = $tr2; - $sym2 = ""; - } - - # - # rev1 and rev2 are now both numeric revisions. - # Thus we do a DWIM here and swap them if rev1 is after rev2. - # XXX should we warn about the fact that we do this? - if (&revcmp($rev1, $rev2) > 0) { - my ($tmp1, $tmp2) = ($rev1, $sym1); - ($rev1, $sym1) = ($rev2, $sym2); - ($rev2, $sym2) = ($tmp1, $tmp2); - } - - my $mimetype = getMimeType($fullname); - - # - # Check for per-MIME type diff commands. - # - my $diffcmd = undef; - if (my $diffcmds = $DIFF_COMMANDS{lc($mimetype)}) { - if ($f =~ /^ext(\d*)$/) { - my $n = $1 || 0; - $diffcmd = $diffcmds->[$n]; - } - } - if ($diffcmd && $diffcmd->{cmd} && $diffcmd->{name}) { - - if ($diffcmd->{args} && ref($diffcmd->{args}) ne 'ARRAY') { - fatal('500 Internal Error', - 'Configuration error: arguments to external diff tools must ' . - 'be given as array refs. See "%s" in ' . - '%%DIFF_COMMANDS.', - $diffcmd->{name}); - } - - (my $cvsname = $where) =~ s/\.diff$//; - - # Create two temporary files with the two revisions - my $temp_fn1 = checkout_to_temp($cvsroot, $cvsname, $rev1); - my $temp_fn2 = checkout_to_temp($cvsroot, $cvsname, $rev2); - - # Execute chosen diff binary. - local (*DIFF_OUT); - my @cmd = ($diffcmd->{cmd}); - push(@cmd, @{$diffcmd->{args}}) if $diffcmd->{args}; - push(@cmd, $temp_fn1, $temp_fn2); - my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*DIFF_OUT); - if (!$h) { - unlink($temp_fn1); - unlink($temp_fn2); - fatal('500 Internal Error', - 'Diff failure (exit status %s), output:
    %s
    ', - $? >> 8 || -1, $err); - } - - http_header($diffcmd->{type} || 'text/plain'); - local $/ = undef; - print ; - $h->finish(); - unlink($temp_fn1); - unlink($temp_fn2); - - exit; - } - - # - # Normal CVS diff. - # - - $f = $DEFAULTVALUE{f} || 'u' if ($f =~ /^ext\d*$/); - my $difftype = $DIFFTYPES{$f}; - if (!$difftype) { - fatal("400 Bad arguments", 'Diff format %s not understood', $f); - } - - my @difftype = @{$difftype->{opts}}; - my $human_readable = $difftype->{colored}; - - # Apply special diff options. -p and -F are not available with side by side - # diffs and may cause problems with older (< 2.8) versions of diffutils if - # used with --side-by-side. - if ($showfunc && $f !~ /^s/) { - push(@difftype, '-p'); - while (my ($re1, $re2) = each %funcline_regexp) { - if ($fullname =~ $re1) { - push(@difftype, '-F', $re2); - last; - } - } - } - - if ($human_readable) { - push(@difftype, '-w') if $hr_ignwhite; - push(@difftype, '-kk') if $hr_ignkeysubst; - } - - my $fh = do { local (*FH); }; - if (!open($fh, "-|")) { # child - open(STDERR, ">&STDOUT"); # Redirect stderr to stdout - openOutputFilter(); - exec($CMD{rcsdiff}, @rcsdiff_options, @difftype, "-r$rev1", "-r$rev2", - $fullname) or exit -1; - } - - if ($human_readable) { - # - # Human readable diff. - # - human_readable_diff($fh, $rev2); - html_footer(); - gzipclose(); - exit; - - } elsif ($f =~ /^([ucs])c$/) { - # - # Enscript colored diff. - # - my $hl = 'diff'; - $hl .= $1 if ($1 eq 'u' || $1 eq 's'); - (my $where_nd = $where) =~ s/\.diff$//; - (my $pathname = $where_nd) =~ s|((?<=/)Attic/)?[^/]*$||; - (my $filename = $where_nd) =~ s|^.*/||; - (my $swhere = $scriptwhere) =~ s|\.diff$||; - navigateHeader($swhere, $pathname, $filename, $rev2, 'diff'); - printf(<Diff for /%s between versions %s and %s -
    -EOF
    -    doEnscript(\$fh, $hl, 0, 'cvsweb_diff');
    -    print <
    -
    -
    -EOF - printDiffSelectStickyVars(); - print 'Diff format: '; - printDiffSelect($use_java_script); - print "\n
    \n"; - html_footer(); - gzipclose(); - exit; - - } else { - # - # Plain diff. - # - http_header("text/plain"); - } - - # - #=================================================================== - #RCS file: /home/ncvs/src/sys/netinet/tcp_output.c,v - #retrieving revision 1.16 - #retrieving revision 1.17 - #diff -c -r1.16 -r1.17 - #*** /home/ncvs/src/sys/netinet/tcp_output.c 1995/11/03 22:08:08 1.16 - #--- /home/ncvs/src/sys/netinet/tcp_output.c 1995/12/05 17:46:35 1.17 - # - # Ideas: - # - nuke the stderr output if it's what we expect it to be - # - Add "no differences found" if the diff command supplied no output. - # - #*** src/sys/netinet/tcp_output.c 1995/11/03 22:08:08 1.16 - #--- src/sys/netinet/tcp_output.c 1995/12/05 17:46:35 1.17 RELENG_2_1_0 - # (bogus example, but...) - # - my ($f1, $f2); - if (grep { $_ eq '-u' } @difftype) { - $f1 = '---'; - $f2 = '\+\+\+'; - } else { - $f1 = '\*\*\*'; - $f2 = '---'; - } - - while (<$fh>) { - if (m|^$f1 $cvsroot|o) { - s|$cvsroot/||o; - if ($sym1) { - chop; - $_ .= " $sym1\n"; - } - } elsif (m|^$f2 $cvsroot|o) { - s|$cvsroot/||o; - - if ($sym2) { - chop; - $_ .= " $sym2\n"; - } - } - print $_; - } - close($fh); -} - - -############################### -# Show Logs .. -############################### -sub getDirLogs($$@) -{ - my ($cvsroot, $dirname, @otherFiles) = @_; - my $tag = $input{only_with_tag}; - my $DirName = catdir($cvsroot, $where); - - my @files = &safeglob("$DirName/*,v"); - push (@files, &safeglob("$DirName/Attic/*,v")) unless $input{hideattic}; - foreach my $file (@otherFiles) { - push(@files, catfile($DirName, $file)); - } - - # Weed out unreadable files. - my $i = 0; - my @unreadable = (); - while ($i < scalar(@files)) { - # Note: last modified files from subdirs returned by - # findLastModifiedSubdirs() come without the ,v suffix so they're not - # found here, but have already been checked for readability. *cough* - if (-r $files[$i] || !-e _) { - $i++; - } else { - push(@unreadable, splice(@files, $i, 1)); - } - } - - # If there are no files, we're done. - return @unreadable unless @files; - - my @cmd = ($CMD{rlog}); - # Can't use -r as '-' is allowed in tagnames, - # but misinterpreted by rlog. - push(@cmd, '-r') unless defined($tag); - - my $fh = do { local (*FH); }; - if (!open($fh, '-|')) { # Child - open(STDERR, '>', devnull()) unless $DEBUG; # Ignore rlog's complaints. - openOutputFilter(); - if ($file_list_len && $file_list_len > 1) { - while (scalar(@files) > $file_list_len) { # Process files in chunks. - system(@cmd, splice(@files, 0, $file_list_len)) == 0 or exit -1; - } - } - exec(@cmd, @files) or exit -1; - } - undef @cmd; - - my $state = 'start'; - my ($date, $branchpoint, $branch, $log, @filetags); - my ($rev, $revision, $revwanted, $filename, $head, $author, $keywordsubst); - - while (<$fh>) { - if ($state eq "start") { - - #Next file. Initialize file variables - $rev = ''; - $revwanted = ''; - $branch = ''; - $branchpoint = ''; - $filename = ''; - $log = ''; - $revision = ''; - %symrev = (); - @filetags = (); - $keywordsubst= ''; - - #jump to head state - $state = "head"; - } - - again: - - if ($state eq "head") { - - #$rcsfile = $1 if (/^RCS file: (.+)$/); #not used (yet) - - if (/^Working file: (.+)$/) { - $filename = $1; - } elsif (/^head: (.+)$/) { - $head = $1; - } elsif (/^branch: (.+)$/) { - $branch = $1; - } elsif (/^keyword substitution: (.+)$/) { - $keywordsubst = $1; - } elsif (/^symbolic names:/) { - $state = "tags"; - ($branch = $head) =~ s/\.\d+$// - if $branch eq ''; - $branch =~ s/(\d+)$/0.$1/; - $symrev{MAIN} = $branch; - $symrev{HEAD} = $branch; - $alltags{MAIN} = 1; - $alltags{HEAD} = 1; - push (@filetags, "MAIN", "HEAD"); - } elsif ($_ =~ LOG_REVSEPR) { - $state = "log"; - $rev = ''; - $date = ''; - $log = ''; - - # Try to reconstruct the relative filename if RCS spits out a full path - $filename =~ s%^\Q$DirName\E/%%; - } - next; - } - - if ($state eq "tags") { - if (/^\s+([^:]+):\s+([\d\.]+)\s*$/) { - push (@filetags, $1); - $symrev{$1} = $2; - $alltags{$1} = 1; - next; - } elsif (/^\S/) { - - if (defined($tag)) { - if (defined($symrev{$tag}) || $tag eq "HEAD") { - $revwanted = $symrev{$tag eq "HEAD" ? "MAIN" : $tag}; - ($branch = $revwanted) =~ s/\b0\.//; - ($branchpoint = $branch) =~ s/\.?\d+$//; - $revwanted = '' if ($revwanted ne $branch); - } elsif ($tag ne "HEAD") { - $state = "skip"; - next; - } - } - - foreach my $tagfound (@filetags) { - $tags{$tagfound} = 1; - } - $state = "head"; - goto again; - } - } - - if ($state eq "log") { - if ($_ =~ LOG_REVSEPR || $_ =~ LOG_FILESEPR) { - - # End of a log entry. - my $revbranch = $rev; - $revbranch =~ s/\.\d+$//; - - if ($revwanted eq '' && $branch ne '' && $branch eq $revbranch - || !defined($tag)) - { - $revwanted = $rev; - } - - if ($revwanted ne '' - ? $rev eq $revwanted - : $branchpoint ne '' - ? $rev eq $branchpoint - : 0 - && ($rev eq $head)) - { # Don't think head is needed here.. - my @finfo = ($rev, $date, $log, $author, $filename, $keywordsubst); - (my $name = $filename) =~ s%/.*%%; - $fileinfo{$name} = [@finfo]; - $state = "done" if ($rev eq $revwanted); - } - $rev = ''; - $date = ''; - $log = ''; - } elsif ($date eq '' - && m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);|) - { - my $yr = $1; - $yr -= 1900 if ($yr > 100); # Damn 2-digit year routines :-) - $date = timegm($6, $5, $4, $3, $2 - 1, $yr); - ($author) = /author: ([^;]+)/; - $state = 'log'; - $log = ''; - next; - } elsif ($rev eq '' && /^revision (\d+(?:\.\d+)+).*$/) { - $rev = $1; # .*$ eats up the locker(lockers?) info, if any - next; - } else { - $log .= $_; - } - } - - if ($_ =~ LOG_FILESEPR) { - $state = "start"; - next; - } - } - - my $linesread = $. || 0; - close($fh); - - if ($linesread == 0) { - fatal('500 Internal Error', - 'Failed to spawn GNU rlog on "%s".

    Did you set the @command_path in your configuration file correctly? (Currently: "%s")', - htmlquote(join(', ', @files)), join(':', @command_path)); - } - - return @unreadable; -} - - -sub readLog($;$) -{ - my ($fullname, $revision) = @_; - my ($symnames, $head, $rev, $br, $brp, $branch, $branchrev); - - undef %symrev; - undef %revsym; - undef @allrevisions; - undef %date; - undef %author; - undef %state; - undef %difflines; - undef %log; - $keywordsubstitution = ''; - - my $fh = do { local (*FH); }; - if (!open($fh, "-|")) { # child - openOutputFilter(); - $revision = defined($revision) ? "-r$revision" : ''; - if ($revision =~ /\./) { - # Normal revision, not a branch/tag name. - exec($CMD{rlog}, $revision, $fullname) or exit -1; - } else { - exec($CMD{rlog}, $fullname) or exit -1; - } - } - - my $curbranch = undef; - while (<$fh>) { - if ($symnames) { - if (/^\s+([^:]+):\s+([\d\.]+)/) { - $symrev{$1} = $2; - next; - } else { - $symnames = 0; - } - } - if (/^head:\s+([\d\.]+)/) { - $head = $1; - } elsif (/^branch:\s+([\d\.]+)/) { - $curbranch = $1; - } elsif (/^symbolic names/) { - $symnames = 1; - } elsif (/^keyword substitution: (.+)$/) { - $keywordsubstitution = $1; - } elsif (/^-----/) { - last; - } - } - ($curbranch = $head) =~ s/\.\d+$// if (!defined($curbranch)); - - # each log entry is of the form: - # ---------------------------- - # revision 3.7.1.1 - # date: 1995/11/29 22:15:52; author: fenner; state: Exp; lines: +5 -3 - # log info - # ---------------------------- - - # For a locked revision, the first line after the separator - # becomes smth like - # revision 9.19 locked by: vassilii; - - logentry: - - while ($_ !~ LOG_FILESEPR) { - $_ = <$fh>; - last logentry if (!defined($_)); # EOF - if (/^revision (\d+(?:\.\d+)+)/) { - $rev = $1; - unshift(@allrevisions, $rev); - } elsif ($_ =~ LOG_FILESEPR || $_ =~ LOG_REVSEPR) { - next logentry; - } else { - - # The rlog output is syntactically ambiguous. We must - # have guessed wrong about where the end of the last log - # message was. - # Since this is likely to happen when people put rlog output - # in their commit messages, don't even bother keeping - # these lines since we don't know what revision they go with - # any more. - next logentry; - } - $_ = <$fh>; - if ( - m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+author:\s+(\S+);\s+state:\s+(\S+);\s+(lines:\s+([0-9\s+-]+))?| - ) - { - my $yr = $1; - $yr -= 1900 if ($yr > 100); # Damn 2-digit year routines :-) - $date{$rev} = timegm($6, $5, $4, $3, $2 - 1, $yr); - $author{$rev} = $7; - $state{$rev} = $8; - $difflines{$rev} = $10; - } else { - fatal("500 Internal Error", 'Error parsing RCS output: %s', $_); - } - - line: - while (<$fh>) { - next line if (/^branches:\s/); - last line if ($_ =~ LOG_FILESEPR || $_ =~ LOG_REVSEPR); - $log{$rev} .= $_; - } - } - close($fh); - - @revorder = reverse sort { revcmp($a, $b) } @allrevisions; - - # - # HEAD is an artificial tag which is simply the highest tag number on the main - # branch, unless there is a branch tag in the RCS file in which case it's the - # highest revision on that branch. Find it by looking through @revorder; it - # is the first commit listed on the appropriate branch. - # This is not neccesary the same revision as marked as head in the RCS file. - my $headrev = $curbranch || "1"; - ($symrev{MAIN} = $headrev) =~ s/(\d+)$/0.$1/; - - foreach $rev (@revorder) { - if ($rev =~ /^(\S*)\.\d+$/ && $headrev eq $1) { - $symrev{HEAD} = $rev; - last; - } - } - ($symrev{HEAD} = $headrev) =~ s/\.\d+$// unless defined($symrev{HEAD}); - - # - # Now that we know all of the revision numbers, we can associate - # absolute revision numbers with all of the symbolic names, and - # pass them to the form so that the same association doesn't have - # to be built then. - # - undef @branchnames; - undef %branchpoint; - undef $sel; - - foreach (reverse sort keys %symrev) { - $rev = $symrev{$_}; - if ($rev =~ /^((.*)\.)?\b0\.(\d+)$/) { - push (@branchnames, $_); - - # - # A revision number of A.B.0.D really translates into - # "the highest current revision on branch A.B.D". - # - # If there is no branch A.B.D, then it translates into - # the head A.B . - # - # This reasoning also applies to the main branch A.B, - # with the branch number 0.A, with the exception that - # it has no head to translate to if there is nothing on - # the branch, but I guess this can never happen? - # - # (the code below gracefully forgets about the branch - # if it should happen) - # - $head = defined($2) ? $2 : ""; - $branch = $3; - $branchrev = $head . ($head ne "" ? "." : "") . $branch; - $rev = $head; - - my $regex = '^' . quotemeta($branchrev) . '\b'; - $regex = qr/$regex/; - - foreach my $r (@revorder) { - if ($r =~ $regex) { - $rev = $branchrev; - last; - } - } - next if ($rev eq ""); - - if ($rev ne $head && $head ne "") { - $branchpoint{$head} .= ', ' if ($branchpoint{$head}); - $branchpoint{$head} .= $_; - } - } - $revsym{$rev} .= ", " if ($revsym{$rev}); - $revsym{$rev} .= $_; - $sel .= sprintf("\n", - htmlquote($rev), (htmlquote($_)) x 2); - } - - my ($onlyonbranch, $onlybranchpoint); - if ($onlyonbranch = $input{only_with_tag}) { - $onlyonbranch = $symrev{$onlyonbranch}; - if ($onlyonbranch && $onlyonbranch =~ s/\b0\.//) { - ($onlybranchpoint = $onlyonbranch) =~ s/\.\d+$//; - } else { - $onlybranchpoint = $onlyonbranch; - } - - if (!defined($onlyonbranch) || $onlybranchpoint eq "") { - fatal("404 Tag not found", 'Tag "%s" is not defined.', - $input{only_with_tag}); - } - } - - undef @revisions; - - foreach (@allrevisions) { - ($br = $_) =~ s/\.\d+$//; - ($brp = $br) =~ s/\.\d+$//; - next if ($onlyonbranch - && $br ne $onlyonbranch - && $_ ne $onlybranchpoint); - unshift(@revisions, $_); - } - - if ($logsort eq "date") { - - # Sort the revisions in commit order an secondary sort on revision - # (secondary sort needed for imported sources, or the first main - # revision gets before the same revision on the 1.1.1 branch) - @revdisplayorder = - sort { $date{$b} <=> $date{$a} || -revcmp($a, $b) } @revisions; - } elsif ($logsort eq "rev") { - - # Sort the revisions in revision order, highest first - @revdisplayorder = reverse sort { revcmp($a, $b) } @revisions; - } else { - - # No sorting. Present in the same order as rlog / cvs log - @revdisplayorder = @revisions; - } - - return $curbranch; -} - - -sub getDiffLinks($$$) -{ - my ($url, $mimetype, $isbin) = @_; - - my @links = (); - if (!$isbin) { # Offer ordinary diff only for non-binary files. - push(@links, &link('preferred', $url)); - for my $difftype ($DIFFTYPES{$defaultDiffType}{colored} ? qw(u) : qw(h)) { - my $f = $difftype eq $defaultDiffType ? '' : $difftype; - push(@links, - &link(htmlquote(lc($DIFFTYPES{$difftype}{descr})), "$url;f=$f")); - } - } - if (my $extdiffs = $DIFF_COMMANDS{lc($mimetype)}) { - for my $i (0 .. scalar(@$extdiffs)-1) { - my $extdiff = $extdiffs->[$i]; - push(@links, &link(htmlquote($extdiff->{name}), "$url;f=ext$i")) - if ($extdiff->{cmd} && $extdiff->{name}); - } - } - return @links; -} - - -sub printLog($$$;$$) -{ - # inlogview: 1 if in log view, otherwise in markup view. - ($_, my $mimetype, my $isbin, my $inlogview, my $isSelected) = @_; - (my $br = $_) =~ s/\.\d+$//; - (my $brp = $br) =~ s/\.?\d+$//; - - print ""; - if (defined($revsym{$_})) { - foreach my $sym (split(", ", $revsym{$_})) { - print ''; - } - } - if ($revsym{$br} && !defined($nameprinted{$br})) { - foreach my $sym (split(", ", $revsym{$br})) { - print ''; - } - $nameprinted{$br} = 1; - } - - print "\n Revision $_"; - if (/^1\.1\.1\.\d+$/) { - print " (vendor branch)"; - } - - (my $filename = $where) =~ s|^.*/||; - my $fileurl = uri_escape($filename); - undef $filename; - - my $isDead = ($state{$_} eq 'dead'); - if (!$isDead) { - - print ': ', download_link($fileurl, $_, 'download', $mimetype); - - my @vlinks = (); - push(@vlinks, display_link($fileurl, $_, 'text', 'text/plain')) - unless $isbin; - push(@vlinks, display_link($fileurl, $_, 'markup', 'text/x-cvsweb-markup')) - if ($allow_markup && $inlogview && (!$isbin || viewable($mimetype))); - if (!$isbin && $allow_annotate) { - push(@vlinks, - &link('annotated', - sprintf('%s?annotate=%s%s', $fileurl, $_, $barequery))); - } - print ' - view: ', join(', ', @vlinks) if @vlinks; - undef @vlinks; - - if (!$isbin && $allow_version_select) { - print ' - '; - if ($isSelected) { - print '[selected for diffs]'; - } else { - print &link('select for diffs', - sprintf('%s?r1=%s%s#rev%s', - $fileurl, $_, $barequery, $_)); - } - } - print ' - ', graph_link('', 'revision graph') - if (!$inlogview && $allow_cvsgraph); - } - print "
    \n"; - - print ''; - if (defined @mytz) { - my ($est) = $mytz[(localtime($date{$_}))[8]]; - print scalar localtime($date{$_}), " $est ("; - } else { - print scalar gmtime($date{$_}), " UTC ("; - } - print readableTime(time() - $date{$_}, 1), ' ago)'; - print ' by ', htmlquote($author{$_}), "
    \n"; - - printf("Branches: %s
    \n", link_tags($revsym{$br})) if $revsym{$br}; - printf("CVS tags: %s
    \n", link_tags($revsym{$_})) if $revsym{$_}; - printf("Branch point for: %s
    \n", link_tags($branchpoint{$_})) - if $branchpoint{$_}; - - # Find the previous revision - my $prev; - my @prevrev = split(/\./, $_); - do { - if (--$prevrev[$#prevrev] <= 0) { - - # If it was X.Y.Z.1, just make it X.Y - pop (@prevrev); - pop (@prevrev); - } - $prev = join (".", @prevrev); - } until (defined($date{$prev}) || $prev eq ""); - - if ($isDead) { - print "FILE REMOVED
    \n"; - } else { - my %diffrev = (); - $diffrev{$_} = 1; - $diffrev{""} = 1; - my $diff = 'Diff to:'; - my $printed = 0; - - # - # Offer diff to previous revision - if ($prev) { - $diffrev{$prev} = 1; - my $url = - sprintf('%s.diff?r1=%s;r2=%s%s', $fileurl, $prev, $_, $barequery); - if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) { - print $diff, ' previous ', $prev, ': ', join(', ', @dlinks); - $diff = ';'; $printed = 1; - } - } - - # - # Plus, if it's on a branch, and it's not a vendor branch, - # offer a diff with the branch point. - if ($revsym{$brp} - && !/^1\.1\.1\.\d+$/ - && !defined($diffrev{$brp})) - { - my $url = - sprintf('%s.diff?r1=%s;r2=%s%s', $fileurl, $brp, $_, $barequery); - if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) { - print $diff, ' branchpoint ', $brp, ': ', join(', ', @dlinks); - $diff = ';'; $printed = 1; - } - } - - # - # Plus, if it's on a branch, and it's not a vendor branch, - # offer to diff with the next revision of the higher branch. - # (e.g. change gets committed and then brought - # over to -stable) - if (/^\d+\.\d+\.\d+/ && !/^1\.1\.1\.\d+$/) { - my ($i, $nextmain); - - for ($i = 0; $i < $#revorder && $revorder[$i] ne $_; $i++) { - } - my @tmp2 = split(/\./, $_); - for ($nextmain = ""; $i > 0; $i--) { - my $next = $revorder[$i - 1]; - my @tmp1 = split(/\./, $next); - - if (@tmp1 < @tmp2) { - $nextmain = $next; - last; - } - - # Only the highest version on a branch should have - # a diff for the "next MAIN". - last - if (@tmp1 - 1 <= @tmp2 - && join (".", @tmp1[0 .. $#tmp1 - 1]) eq - join (".", @tmp2[0 .. $#tmp1 - 1])); - } - - if (!defined($diffrev{$nextmain})) { - $diffrev{$nextmain} = 1; - my $url = sprintf('%s.diff?r1=%s;r2=%s%s', - $fileurl, $nextmain, $_, $barequery); - if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) { - print $diff, ' next MAIN ', $nextmain, ': ', join(', ', @dlinks); - $diff = ';'; $printed = 1; - } - } - } - - # Plus if user has selected only r1, then present a link - # to make a diff to that revision - if (defined($input{r1}) && !defined($diffrev{$input{r1}})) { - $diffrev{$input{r1}} = 1; - my $url = sprintf('%s.diff?r1=%s;r2=%s%s', - $fileurl, $input{r1}, $_, $barequery); - if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) { - print $diff, ' selected ', $input{r1}, ': ', join(', ', @dlinks); - $diff = ';'; $printed = 1; - } - } - - print "
    \n" if $printed; - } - - if ($prev ne "" && $difflines{$_}) { - printf "Changes since revision %s: %s lines
    \n", - htmlquote($prev), htmlquote($difflines{$_}); - } - - print "
    \n";
    -  print &htmlify($log{$_}, $allow_log_extra);
    -  print "
    \n"; -} - - -# -# Generates the HTML view for CvsGraph. -# -sub doGraphView() -{ - (my $pathname = $where) =~ s|[^/]*$||; - (my $filename = $where) =~ s|^.*/||; - - navigateHeader($scriptwhere, $pathname, $filename, undef, 'graph'); - - my $title = 'Revision graph of ' . htmlquote($pathname . $filename); - my $mapname = 'CvsGraphMap'; - - printf(<%s -
    %s -EOF - - # Remove any pre-existing tag/branch names from branch links. - (my $notag_query = $barequery) =~ s/;+only_with_tag=.*?(?=;|$)//g; - - my @graph_cmd = - ($CMD{cvsgraph}, - '-r', $cvsroot, - '-m', $pathname, - '-i', - '-M', $mapname, - '-x', 'x', - "-Omap_branch_href=\"href=\\\"./?only_with_tag=%(%t%)$notag_query\\\"\"", - "-Omap_rev_href=\"href=\\\"?rev=%(%R%)$barequery\\\"\"", - "-Omap_diff_href=\"href=\\\"%(%F%).diff" . - "?r1=%(%P%);r2=%(%R%)$barequery\\\"\"", - ); - push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config; - push(@graph_cmd, $filename . ',v'); - - local *CVSGRAPH_OUT; - my ($h, $err) = - startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT); - fatal('500 Internal Error', $err) unless $h; - - # Browser compatibility kludge: many browsers do not support client side - # image maps where the element contains only the id attribute. Let's - # add the corresponding name attribute to it on the fly. - while () { - s/(/$1 name="$2">/; - print; - } - - $h->finish(); - print "
    \n"; - - html_footer(); -} - - -# -# Generates a graph using CvsGraph. -# -sub doGraph() -{ - (my $pathname = $where) =~ s|[^/]*$||; - (my $filename = $where) =~ s|^.*/||; - - http_header('image/png'); - - my @graph_cmd = ($CMD{cvsgraph}, '-r', $cvsroot, '-m', $pathname); - push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config; - push(@graph_cmd, $filename . ',v'); - - local *CVSGRAPH_OUT; - my ($h, $err) = - startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT); - fatal('500 Internal Error', $err) unless $h; - { - local $/ = undef; - binmode(\*STDOUT); - print ; - } - $h->finish(); -} - - -sub doLog($) -{ - my ($fullname) = @_; - - my $curbranch = readLog($fullname); - - html_header("CVS log for $where"); - - my $upwhere = $where; - (my $filename = $where) =~ s|^.*/||; - my $backurl = "./$query#" . uri_escape($filename); - if ($where =~ m|^(.*?)((?<=/)Attic/)?[^/]+$|) { - $upwhere = $1; - $backurl = ".$backurl" if $2; # skip over Attic - } - - my $isbin = $keywordsubstitution =~ /b/; - my $mimetype = getMimeType($filename, $isbin); - - print "

    \n "; - print &link($backicon, $backurl), " Up to ", - &clickablePath($upwhere, 1), "\n

    \n"; - print "

    \n "; - print &link('Request diff between arbitrary revisions', '#diff'); - print ' - ', &graph_link('', 'Display revisions graphically') - if $allow_cvsgraph; - if ($cvshistory_url) { - (my $d = $upwhere) =~ s|/+$||; - print ' - ', history_link($d, $filename); - } - print "\n

    \n
    \n"; - - print "

    \n"; - - my $explain = $isbin ? ' (i.e.: CVS considers this a binary file)' : ''; - print "Keyword substitution: $keywordsubstitution$explain
    \n"; - if ($curbranch) { - print "Default branch: ", ($revsym{$curbranch} || $curbranch); - } else { - print "No default branch"; - } - print "
    \n"; - - print 'Current tag: ', htmlquote($input{only_with_tag}), "
    \n" - if $input{only_with_tag}; - print "

    \n"; - - undef %nameprinted; - - for my $r (@revdisplayorder) { - print "
    \n"; - my $sel = (defined($input{r1}) && $input{r1} eq $r); - print "
    \n" if $sel; - printLog($r, $mimetype, $isbin, 1, $sel); - print "
    \n" if $sel; - } - - printf(< -
    -
    -Diff request -

    - - This form allows you to request diffs between any two revisions of a file. - You may select a symbolic revision name using the selection box or you may - type in a numeric name using the type-in text box. - -

    -EOF - - foreach (@stickyvars) { - printf("\n", - $_, htmlquote($input{$_})) - if (defined($input{$_}) && - (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_})); - } - - print < - - - - - -\n"; - - my $diffrev = defined($input{r1}) ? - $input{r1} : $revdisplayorder[$#revdisplayorder]; - - printf(< - - - - - - - - -\n"; - - $diffrev = defined($input{r2}) ? $input{r2} : $revdisplayorder[0]; - - printf(< - - - - -
    -
    -
    -
    -Log view options - - - - - -EOF - - if (@branchnames) { - - printf(< - - - - -EOF - } - - print < - - - -
    - - -EOF - printDiffSelect($use_java_script); - print < -
    - - - -
    - - -EOF - printLogSortSelect($use_java_script); - print < -
    -EOF - foreach (@stickyvars) { - next if ($_ eq "f"); - next if ($_ eq "only_with_tag"); - next if ($_ eq "logsort"); - printf("\n", - htmlquote($input{$_})) - if (defined($input{$_}) - && (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_})); - } - print "
    \n
    \n"; - html_footer(); -} - - -sub flush_diff_rows($$$$) -{ - my ($leftColRef, $rightColRef, $leftRow, $rightRow) = @_; - - return unless defined($state); - - if ($state eq "PreChangeRemove") { # we just got remove-lines before - for (my $j = 0; $j < $leftRow; $j++) { - printf(< -  %s -   - -EOF - } - } elsif ($state eq "PreChange") { # state eq "PreChange" - # we got removes with subsequent adds - if (HAS_EDIFF) { - # construct the suffix tree - my $left_diff = join("\n", @$leftColRef[0..$leftRow-1]); - my $right_diff = join("\n", @$rightColRef[0..$rightRow-1]); - my $diff_str = String::Ediff::ediff($left_diff, $right_diff); - - my @diff_str = split(/ /, $diff_str); - my $INFINITY = 10000000; - push(@diff_str, ($INFINITY) x 8); - my ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) = - (0, @diff_str[0..7]); - my ($l_cul, $r_cul) = (0, 0); - my ($ldx, $rdx) = (0, 0); - my (@left_html, @right_html); - for (my $j = 0; $j < $leftRow; $j++) { - my $line_len = length(@$leftColRef[$j]); - my $line = @$leftColRef[$j]; - $l_cul += length($line) + 1; # includes "\n" - my $l_culx = $l_cul - 1; # not includes "\n" - if ($j < $lb1) { - $line = spacedHtmlText($line); - push(@left_html, "$line"); - } elsif ($lb1 == $j) { - my $html_line; - while ($lb1 == $j) { - my $begin_char = $l_culx - $b1; - - $line =~ /^(.*)(.{$begin_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - last if ($j != $le1); - - my $end_char = $l_culx - $e1; - $line =~ /^(.*)(.{$end_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - - $idx++; - my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) = - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2); - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) = - @diff_str[$idx*8..($idx+1)*8-1]; - $lb1 = $INFINITY if ($lb1 < 0); - $lb2 = $INFINITY if ($lb2 < 0); - $le1 = $INFINITY if ($le1 < 0); - $le2 = $INFINITY if ($le2 < 0); - if ($te1 > $b1) { - ($b1, $lb1) = ($te1, $tle1); - } - if ($te2 > $b2) { - ($b2, $lb2) = ($te2, $tle2); - } - } - push(@left_html, - sprintf('%s%s', - $html_line, spacedHtmlText($line))); - } elsif ($le1 == $j) { - my $html_line; - while ($le1 == $j) { - my $end_char = $l_culx - $e1; - $line =~ /^(.*)(.{$end_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - - $idx++; - my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) = - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2); - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) = - @diff_str[$idx*8..($idx+1)*8-1]; - $lb1 = $INFINITY if ($lb1 < 0); - $lb2 = $INFINITY if ($lb2 < 0); - $le1 = $INFINITY if ($le1 < 0); - $le2 = $INFINITY if ($le2 < 0); - if ($te1 > $b1) { - ($b1, $lb1) = ($te1, $tle1); - } - if ($te2 > $b2) { - ($b2, $lb2) = ($te2, $tle2); - } - - last if ($lb1 != $j); - - my $begin_char = $l_culx - $b1; - - $line =~ /^(.*)(.{$begin_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - } - push(@left_html, - sprintf('%s%s', - $html_line, spacedHtmlText($line))); - } else { - $line = spacedHtmlText($line); - push(@left_html, "$line"); - } - } - ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) = - (0, @diff_str[0..7]); - $lb1 = $INFINITY if ($lb1 < 0); - $lb2 = $INFINITY if ($lb2 < 0); - $le1 = $INFINITY if ($le1 < 0); - $le2 = $INFINITY if ($le2 < 0); - for (my $j = 0; $j < $rightRow; $j++) { - my $line_len = length(@$rightColRef[$j]); - my $line = @$rightColRef[$j]; - $r_cul += length($line) + 1; # includes "\n" - my $r_culx = $r_cul - 1; # not includes "\n" - if ($j < $lb2) { - $line = spacedHtmlText($line); - push(@right_html, "$line"); - } elsif ($lb2 == $j) { - my $html_line; - while ($lb2 == $j) { - my $begin_char = $r_culx - $b2; - - $line =~ /^(.*)(.{$begin_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - - last if ($j != $le2); - - my $end_char = $r_culx - $e2; - $line =~ /^(.*)(.{$end_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - - $idx++; - my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) = - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2); - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) = - @diff_str[$idx*8..($idx+1)*8-1]; - $lb1 = $INFINITY if ($lb1 < 0); - $lb2 = $INFINITY if ($lb2 < 0); - $le1 = $INFINITY if ($le1 < 0); - $le2 = $INFINITY if ($le2 < 0); - if ($te1 > $b1) { - ($b1, $lb1) = ($te1, $tle1); - } - if ($te2 > $b2) { - ($b2, $lb2) = ($te2, $tle2); - } - } - push(@right_html, - sprintf('%s%s', - $html_line, spacedHtmlText($line))); - } elsif ($le2 == $j) { - my $html_line; - while ($le2 == $j) { - my $end_char = $r_culx - $e2; - $line =~ /^(.*)(.{$end_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - - $idx++; - my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) = - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2); - ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) = - @diff_str[$idx*8..($idx+1)*8-1]; - $lb1 = $INFINITY if ($lb1 < 0); - $lb2 = $INFINITY if ($lb2 < 0); - $le1 = $INFINITY if ($le1 < 0); - $le2 = $INFINITY if ($le2 < 0); - if ($te1 > $b1) { - ($b1, $lb1) = ($te1, $tle1); - } - if ($te2 > $b2) { - ($b2, $lb2) = ($te2, $tle2); - } - - last if ($lb2 != $j); - - my $begin_char = $r_culx - $b2; - $line =~ /^(.*)(.{$begin_char})$/; - $html_line .= spacedHtmlText($1) . - ''; - $line = $2; - } - push(@right_html, - sprintf('%s%s', - $html_line, spacedHtmlText($line))); - } else { - $line = spacedHtmlText ($line); - push @right_html, "$line"; - } - } - for (my $j = 0; $j < $leftRow || $j < $rightRow ; $j++) { # dump out both cols - print ''; - if ($j < $leftRow) { - print $left_html[$j]; - } else { - print ' '; - } - if ($j < $rightRow) { - print $right_html[$j]; - } else { - print ' '; - } - print "\n"; - } - } else { - for (my $j = 0; $j < $leftRow || $j < $rightRow; $j++) { # dump both cols - print "\n"; - if ($j < $leftRow) { - print ' ' . - spacedHtmlText(@$leftColRef[$j]) . ''; - } else { - print ' '; - } - print "\n"; - - if ($j < $rightRow) { - print ' ' . - spacedHtmlText(@$rightColRef[$j]) . ''; - } else { - print ' '; - } - print "\n\n"; - } - } - } -} - - -# -# Generates "human readable", HTMLified diffs. -# -sub human_readable_diff($$) -{ - my ($fh, $rev) = @_; - - (my $where_nd = $where) =~ s|\.diff$||; - (my $filename = $where_nd) =~ s|^.*/||; - (my $pathname = $where_nd) =~ s|((?<=/)Attic/)?[^/]*$||; - (my $scriptwhere_nd = $scriptwhere) =~ s|\.diff$||; - - navigateHeader($scriptwhere_nd, $pathname, $filename, $rev, 'diff'); - - # Read header to pick up read revision and date, if possible. - - my ($r1d, $r1r, $r2d, $r2r); - while (<$fh>) { - ($r1d, $r1r) = /\t(.*)\t(.*)$/ if (/^--- /); - ($r2d, $r2r) = /\t(.*)\t(.*)$/ if (/^\+\+\+ /); - last if (/^\+\+\+ /); - } - - my ($rev1, $date1); - if (defined($r1r) && $r1r =~ /^(\d+\.)+\d+$/) { - $rev1 = $r1r; - $date1 = $r1d; - } - my ($rev2, $date2); - if (defined($r2r) && $r2r =~ /^(\d+\.)+\d+$/) { - $rev2 = $r2r; - $date2 = $r2d; - } - $rev1 = $input{r1} unless defined($rev1); - $rev1 = $input{tr1} if (defined($rev1) && $rev1 eq 'text'); - $rev1 = 'unknown-left' unless defined($rev1); - $rev2 = $input{r2} unless defined($rev2); - $rev2 = $input{tr2} if (defined($rev2) && $rev2 eq 'text'); - $rev2 = 'unknown-right' unless defined($rev2); - $date1 = defined($date1) ? ', ' . htmlquote($date1) : ''; - $date2 = defined($date2) ? ', ' . htmlquote($date2) : ''; - - my $link = uri_escape($filename) . ($query ? "$query;" : '?'); - - # Using Diff for /$where_nd between versions $rev1 and $rev2 -
    - - - - -EOF - - # Process diff text - # prefetch several lines - my @buf = head($fh); - my %d = scan_directives(@buf); - - my $leftRow = 0; - my $rightRow = 0; - my ($difftxt, @rightCol, @leftCol, $oldline, $newline, $funname); - - $link .= 'content-type=text%2Fx-cvsweb-markup;'; - $link .= 'ln=1;' unless ($link =~ /\?.*\bln=1\b/); - - while (@buf || !eof($fh)) { - $difftxt = @buf ? shift @buf : <$fh>; - - if ($difftxt =~ /^@@/) { - ($oldline, $newline, $funname) = - $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/; - $funname = htmlquote($funname); - $funname =~ s/\s/ /go; - $funname &&= " $funname"; - my $ol = $oldline || 1; - my $nl = $newline || 1; - - print < - - - -EOF - - $state = "dump"; - $leftRow = 0; - $rightRow = 0; - } else { - my ($diffcode, $rest) = $difftxt =~ /^([-+ ])(.*)/; - $diffcode = '' unless defined($diffcode); - $_ = $rest; - - ######### - # little state machine to parse unified-diff output (Hen, zeller@think.de) - # in order to get some nice 'ediff'-mode output - # states: - # "dump" - just dump the value - # "PreChangeRemove" - we began with '-' .. so this could be the start of a 'change' area or just remove - # "PreChange" - okey, we got several '-' lines and moved to '+' lines -> this is a change block - ########## - - if ($diffcode eq '+') { - if ($state eq "dump") - { # 'change' never begins with '+': just dump out value - $_ = spacedHtmlText($rest, $d{tabstop}); - printf(< - - - -EOF - } else { # we got minus before - $state = "PreChange"; - $rightCol[$rightRow++] = $_; - } - } elsif ($diffcode eq '-') { - $state = "PreChangeRemove"; - $leftCol[$leftRow++] = $_; - } else { # empty diffcode - flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; - $_ = spacedHtmlText($rest, $d{tabstop}); - printf(< - - - -EOF - $state = "dump"; - $leftRow = 0; - $rightRow = 0; - } - } - } - close($fh); - - flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; - - # state is empty if we didn't have any change - if (!$state) { - print < - - - - - -EOF - } - - printf(< -
    -
    -
    -
    -
    -version $rev1$date1 - -version $rev2$date2 -
    - Line $oldline$funname - - Line $newline$funname -
      %s
     %s %s
     
    - No viewable change -
    - - - - - - - - - -
    Removed from v.%s 
    changed lines
     Added in v.%s
    - -
    -EOF -} - - -sub doEnscript($$$;$) -{ - my ($filehandle, $highlight, $linenumbers, $lang) = @_; - $lang ||= 'cvsweb'; - - my @cmd = ($CMD{enscript}, - @enscript_options, - '-q', "--language=$lang", '-o', '-', "--highlight=$highlight"); - - local *ENSCRIPT_OUT; - my ($h, $err) = - startproc(\@cmd, $filehandle, '>pipe', \*ENSCRIPT_OUT); - fatal('500 Internal Error', $err) unless $h; - - # We could short-circuit and have enscript output directly to STDOUT above, - # but that doesn't work with mod_perl (at least some 1.99 versions). - if ($linenumbers) { - my $ln = 0; - while () { - printf '%5d: ', (++$ln) x 2; - print $_; - } - } else { - local $/ = undef; - print ; - } - $h->finish(); -} - - -# -# The passed in $path and $filename should not be URI escaped, and $swhere -# *should* be. -# -sub navigateHeader($$$$$;$) -{ - my ($swhere, $path, $filename, $rev, $title, $moddate) = @_; - $swhere = "" if ($swhere eq $scriptwhere); - $swhere = './' . uri_escape($filename) if ($swhere eq ""); - - my $qfile = htmlquote($filename); - my $qpath = htmlquote($path); - my $trev = $rev ? " - " . htmlquote($rev) : ''; - - http_header('', $moddate); - - print < - -$qpath$qfile - $title$trev -$HTML_META$CSS - - - - "; - - printf(<%s Up to %s - - -EOF -} - - -sub plural_write($$) -{ - my ($num, $text) = @_; - if ($num != 1) { - $text .= "s"; - } - - if ($num > 0) { - return join (' ', $num, $text); - } else { - return ""; - } -} - - -## -# print readable timestamp in terms of -# '..time ago' -# H. Zeller -## -sub readableTime($$) -{ - my ($secs, $long) = @_; - - # This function works correctly for time >= 2 seconds. - return 'very little time' if ($secs < 2); - - my %desc = ( - 1 => 'second', - 60 => 'minute', - 3600 => 'hour', - 86400 => 'day', - 604800 => 'week', - 2628000 => 'month', - 31536000 => 'year' - ); - - my @breaks = sort { $a <=> $b } keys %desc; - my $i = 0; - - while ($i <= $#breaks && $secs >= 2 * $breaks[$i]) { - $i++; - } - $i--; - my $break = $breaks[$i]; - my $retval = plural_write(int($secs / $break), $desc{$break}); - - if ($long == 1 && $i > 0) { - my $rest = $secs % $break; - $i--; - $break = $breaks[$i]; - my $resttime = plural_write(int($rest / $break), $desc{$break}); - if ($resttime) { - $retval .= ", $resttime"; - } - } - - return $retval; -} - - -# -# Returns a htmlified path where each directory is a link for faster -# navigation. $clickLast controls whether the basename -# (last directory/file) is a link as well. The passed in $pathname should -# *not* be URI escaped. -# -sub clickablePath($$) -{ - my ($pathname, $clickLast) = @_; - - my $root = '[' . htmlquote($CVSROOTdescr{$cvstree} || $cvstree) . ']'; - - # This should never happen (see chooseCVSRoot()), but let's be sure... - return $root if ($pathname eq '/'); - - my $retval = - ' ' . &link($root, sprintf('%s/%s#dirlist', $scriptname, $query)); - my $wherepath = ''; - my ($lastslash) = $pathname =~ m|/$|; - - foreach (split(m|/|, $pathname)) { - $retval .= ' / '; - $wherepath .= "/$_"; - my $last = "$wherepath/" eq "/$pathname" || $wherepath eq "/$pathname"; - - if ($clickLast || !$last) { - $retval .= &link(htmlquote($_), - join ('', - $scriptname, uri_escape_path($wherepath), - (!$last || $lastslash ? '/' : ''), $query, - (!$last || $lastslash ? "#dirlist" : ""))); - } else { # do not make a link to the current dir - $retval .= htmlquote($_); - } - } - return $retval; -} - - -sub chooseCVSRoot() -{ - print "
    \n

    \n"; - if (2 <= @CVSROOT) { - foreach my $k (keys %input) { - printf("\n", - htmlquote($k), htmlquote($input{$k})) - if ($input{$k} && $k ne 'cvsroot'); - } - - printf(<CVS Root: -'; - } else { - - # no choice -- but we need the form to select module/path, - # at least for Netscape - printf "CVS Root: [%s]", - htmlquote($CVSROOTdescr{$cvstree} || $cvstree); - } - - print < -Module path or alias: - - - -

    -
    -EOF -} - - -sub chooseMirror() -{ - # This code comes from the original BSD-cvsweb - # and may not be useful for your site; If you don't - # set %MIRRORS this won't show up, anyway. - scalar(%MIRRORS) or return; - - # Should perhaps exclude the current site somehow... - print "\n

    \nThis CVSweb is mirrored in\n"; - - my @tmp = map(&link(htmlquote($_), $MIRRORS{$_}), sort keys %MIRRORS); - my $tmp = pop (@tmp); - - if (scalar(@tmp)) { - print join (', ', @tmp), ' and '; - } - - print "$tmp.\n

    \n"; -} - - -sub fileSortCmp() -{ - (my $af = $a) =~ s/,v$//; - (my $bf = $b) =~ s/,v$//; - my ($rev1, $date1, $log1, $author1, $filename1) = @{$fileinfo{$af}} - if (defined($fileinfo{$af})); - my ($rev2, $date2, $log2, $author2, $filename2) = @{$fileinfo{$bf}} - if (defined($fileinfo{$bf})); - - my $comp = 0; - if (defined($filename1) && defined($filename2) && - $af eq $filename1 && $bf eq $filename2) - { - - # Two files - $comp = -revcmp($rev1, $rev2) if ($byrev && $rev1 && $rev2); - $comp = ($date2 <=> $date1) if ($bydate && $date1 && $date2); - if ($input{ignorecase}) { - $comp = (uc($log1) cmp uc($log2)) if ($bylog && $log1 && $log2); - $comp = (uc($author1) cmp uc($author2)) if ($byauthor && - $author1 && $author2); - } else { - $comp = ($log1 cmp $log2) if ($bylog && $log1 && $log2); - $comp = ($author1 cmp $author2) if ($byauthor && - $author1 && $author2); - } - } - - if ($comp == 0) { - - # Directories first, then files under version control, - # then other, "rogue" files. - # Sort by filename if no other criteria available. - - my $ad = ( - (-d "$fullname/$a") - ? 'D' - : (defined($fileinfo{$af}) ? 'F' : 'R') - ); - my $bd = ( - (-d "$fullname/$b") - ? 'D' - : (defined($fileinfo{$bf}) ? 'F' : 'R') - ); - (my $c = $a) =~ s|.*/||; - (my $d = $b) =~ s|.*/||; - - my ($l, $r) = ("$ad$c", "$bd$d"); - $comp = $input{ignorecase} ? (uc($l) cmp uc($r)) : ($l cmp $r); - - # Parent dir is always first, then Attic. - if ($comp != 0) { - if ($l eq 'D..') { - $comp = -1; - } elsif ($r eq 'D..') { - $comp = 1; - } elsif ($l eq 'DAttic') { - $comp = -1; - } elsif ($r eq 'DAttic') { - $comp = 1; - } - } - } - return $comp; -} - -# -# Returns a URL to download the selected revision. -# Expects the passed in URL to be URI escaped, relative, and without a query -# string. -# -sub download_url($$;$) -{ - my ($url, $revision, $mimetype) = @_; - my @dots = $revision =~ /\./g; - $revision =~ s/\b0\.(?=\d+$)// if (scalar(@dots) & 1); - - if (!defined($mimetype) || $mimetype !~ CVSWEBMARKUP) { - my $path = $where; - $path =~ s|[^/]+$||; - $url = "$scriptname/$CheckoutMagic/$path$url"; - } - $url .= '?rev=' . uri_escape($revision); - $url .= ';content-type=' . uri_escape($mimetype) if $mimetype; - - return $url; -} - -# -# Returns a link to download the selected revision. -# Expects the passed in URL to be URI escaped, relative, -# and without a query string. -# -sub download_link($$$;$) -{ - my ($url, $revision, $textlink, $mimetype) = @_; - return sprintf('%s', - download_url($url, $revision, $mimetype) . $barequery, - htmlquote($textlink)); -} - -# -# Returns a URL to display the selected revision. -# Expects the passed in URL to be URI escaped, and without a query string. -# -sub display_url($$;$) -{ - my ($url, $revision, $mimetype) = @_; - $url .= '?rev=' . uri_escape($revision); - $url .= ';content-type=' . uri_escape($mimetype) if $mimetype; - return $url; -} - -# -# Returns a link to display the selected revision. -# Expects the passed in URL to be URI escaped, and without a query string. -# -sub display_link($$;$$) -{ - my ($url, $revision, $textlink, $mtype) = @_; - $textlink = $revision unless defined($textlink); - return sprintf('%s', - display_url($url, $revision, $mtype) . $barequery, - htmlquote($textlink)); -} - -# -# Expects the passed in URL to be URI escaped, and without a query string. -# The passed in link text should be already HTML escaped as appropriate. -# -sub graph_link($;$) -{ - my ($url, $text) = @_; - $text ||= $graphicon; - return sprintf('%s', $url, $barequery, $text); -} - -# -# Returns a link to CVSHistory for the given directory and filename. -# -sub history_link($$;$) -{ - my ($dir, $file, $text) = @_; - $dir ||= ''; - $file ||= ''; - $text ||= 'History'; - return &link($text, - sprintf('%s?cvsroot=%s;dsearch=%s;fsearch=%s;limit=1', - $cvshistory_url, uri_escape($input{cvsroot} || ''), - uri_escape($dir), uri_escape($file))); -} - -# Returns a Query string with the -# specified parameter toggled -sub toggleQuery($;$) -{ - my ($toggle, $value) = @_; - - my %vars = %input; - - if (defined($value)) { - $vars{$toggle} = $value; - } else { - $vars{$toggle} = $vars{$toggle} ? 0 : 1; - } - - # Build a new query of non-default paramenters - my $newquery = ""; - foreach my $var (@stickyvars) { - my ($value) = defined($vars{$var}) ? $vars{$var} : ""; - my ($default) = defined($DEFAULTVALUE{$var}) ? $DEFAULTVALUE{$var} : ""; - - if ($value ne $default) { - $newquery .= ';' if ($newquery ne ""); - $newquery .= uri_escape($var) . '=' . uri_escape($value); - } - } - - if ($newquery) { - return '?' . $newquery; - } - return ""; -} - -sub htmlquote($) -{ - local ($_) = @_; - # Special Characters; RFC 1866 - s/&/&/g; - s/\"/"/g; - s//>/g; - return $_; -} - -sub htmlunquote($) -{ - local ($_) = @_; - # Special Characters; RFC 1866 - s/"/\"/g; - s/<//g; - s/&/&/g; - return $_; -} - -sub uri_escape_path($) -{ - return join('/', map(uri_escape($_), split(m|/+|, shift, -1))); -} - -sub http_header(;$$) -{ - my ($content_type, $moddate) = @_; - $content_type ||= 'text/html'; - - $content_type .= "; charset=$charset" - if ($charset && $content_type =~ m,^text/,); - - # Note that in the following, we explicitly join() and concatenate the - # headers instead of printing them as an array. This is because some - # systems, eg. early versions of mod_perl 2 don't quite get it if the - # last \r\n\r\n isn't included in the last "payload" header print(). - - my @headers = (); - # TODO: ctime(3) from scalar gmtime() isn't HTTP compliant, see HTTP::Date. - push(@headers, 'Last-Modified: ' . scalar gmtime($moddate) . ' GMT') - if $moddate; - push(@headers, 'Content-Type: ' . $content_type); - - if ($allow_compress && $maycompress) { - if (HAS_ZLIB - || (defined($CMD{gzip}) && open(GZIP, "| $CMD{gzip} -1 -c"))) - { - - push(@headers, 'Content-Encoding: x-gzip'); - push(@headers, 'Vary: Accept-Encoding'); # RFC 2616, 14.44 - print join("\r\n", @headers) . "\r\n\r\n"; - - $| = 1; - $| = 0; # Flush header output. - - tie(*GZIP, __PACKAGE__, \*STDOUT) if HAS_ZLIB; - select(GZIP); - $gzip_open = 1; - - } else { - - print join("\r\n", @headers) . "\r\n\r\n"; - printf - 'Unable to find gzip binary in the $command_path (%s) to compress output
    ', - htmlquote(join(':', @command_path)); - } - - } else { - print join("\r\n", @headers) . "\r\n\r\n"; - } -} - - -sub html_header($;$) -{ - my ($title, $moddate) = @_; - $title = htmlquote($title); - my $l = $logo || ''; - my $css = $CSS || ''; - http_header('text/html', $moddate); - print < - -$title -$HTML_META$css - -$l

    $title

    -EOH -} - -sub html_footer() -{ - print "
    \n
    $address
    \n" if $address; - print "\n\n"; -} - -sub link_tags($) -{ - my ($tags) = @_; - - (my $filename = $where) =~ s|^.*/||; - my $fileurl = './' . uri_escape($filename); - - my $ret = ""; - foreach my $sym (split(", ", $tags)) { - $ret .= ",\n" if ($ret ne ""); - $ret .= &link(htmlquote($sym), - $fileurl . toggleQuery('only_with_tag', $sym)); - } - return $ret; -} - - -# -# See if a file/dir is listed in the config file's @ForbiddenFiles list. -# Takes a full file system path or one relative to $cvsroot, and strips the -# trailing ",v" if present, then compares. Returns 1 if forbidden, else 0. -# -sub forbidden($) -{ - (my $path = canonpath(shift)) =~ s/,v$//; - $path =~ s|^$cvsroot/+||; - for my $forbidden_re (@ForbiddenFiles) { - return 1 if ($path =~ $forbidden_re); - } - return 0; -} - - -# -# Starts a process using IPC::Run. All arguments are passed to -# IPC::Run::start() as-is. Returns an array ($harness, $error) where -# $harness is from IPC::Run if start() succeeds, undef otherwise. In case -# of an error, $error contains the error message. -# -sub startproc(@) -{ - my $h = my $err = undef; - eval { - local $SIG{__DIE__}; - $h = IPC::Run::start(@_) or die("return code: $?"); - }; - if ($@) { - $h->finish() if $h; - $h = undef; - $err = "'@{$_[0]}' failed: $@"; - } - return ($h, $err); -} - -# -# Runs a process using IPC::Run. All arguments are passed to -# IPC::Run::run() as-is. Returns an array ($exitcode, $errormsg). -# -sub runproc(@) -{ - eval { - local $SIG{__DIE__}; - IPC::Run::run(@_); - }; - my $exitcode = $? >> 8; - my $errormsg = undef; - if ($@) { - $exitcode ||= -1; - $errormsg = "'@{$_[0]}' failed: $@"; - } - return ($exitcode, $errormsg); -} - -# -# Check out a file to a temporary file. -# -sub checkout_to_temp($$$) -{ - my ($cvsroot, $cvsname, $rev) = @_; - - # Pipe given cvs file into a temporary place. - my ($temp_fh, $temp_fn) = tempfile('.cvsweb.XXXXXXXX', DIR => tmpdir()); - - my @cmd = ($CMD{cvs}, @cvs_options, '-Qd', $cvsroot, - 'co', '-p', "-r$rev", $cvsname); - - local (*DIFF_OUT); - my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*DIFF_OUT); - if ($h) { - local $/ = undef; - print $temp_fh ; - $h->finish(); - close($temp_fh); - } else { - close($temp_fh); - unlink($temp_fn); - fatal('500 Internal Error', - 'Checkout failure (exit status %s), output:
    %s
    ', - $? >> 8 || -1, $err); - } - - return $temp_fn; -} - -# -# Close the GZIP handle, and remove the tie. -# -sub gzipclose -{ - if ($gzip_open) { - select(STDOUT); - close(GZIP); - untie *GZIP; - $gzip_open = 0; - } -} - -# implement a gzipped file handle via the Compress:Zlib compression -# library. - -sub MAGIC1() { 0x1f } -sub MAGIC2() { 0x8b } -sub OSCODE() { 3 } - -sub TIEHANDLE -{ - my ($class, $out) = @_; - my ($d) = Compress::Zlib::deflateInit( - -Level => Compress::Zlib::Z_BEST_COMPRESSION(), - -WindowBits => -Compress::Zlib::MAX_WBITS() - ) - or return undef; - my ($o) = { handle => $out, - dh => $d, - crc => 0, - len => 0, - }; - my ($header) = pack("c10", - MAGIC1, MAGIC2, Compress::Zlib::Z_DEFLATED(), - 0, 0, 0, 0, 0, 0, OSCODE); - print {$o->{handle}} $header; - return bless($o, $class); -} - -sub PRINT -{ - my ($o) = shift; - my ($buf) = join (defined($,) ? $, : "", @_); - my ($len) = length($buf); - my ($compressed, $status) = $o->{dh}->deflate($buf); - print {$o->{handle}} $compressed if defined($compressed); - $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc}); - $o->{len} += $len; - return $len; -} - -sub PRINTF -{ - my ($o) = shift; - my ($fmt) = shift; - my ($buf) = sprintf($fmt, @_); - my ($len) = length($buf); - my ($compressed, $status) = $o->{dh}->deflate($buf); - print {$o->{handle}} $compressed if defined($compressed); - $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc}); - $o->{len} += $len; - return $len; -} - -sub WRITE -{ - my ($o, $buf, $len, $off) = @_; - my ($compressed, $status) = $o->{dh}->deflate(substr($buf, 0, $len)); - print {$o->{handle}} $compressed if defined($compressed); - $o->{crc} = Compress::Zlib::crc32(substr($buf, 0, $len), $o->{crc}); - $o->{len} += $len; - return $len; -} - -sub CLOSE -{ - my ($o) = @_; - return if !defined($o->{dh}); - my ($buf) = $o->{dh}->flush(); - $buf .= pack("V V", $o->{crc}, $o->{len}); - print {$o->{handle}} $buf; - undef $o->{dh}; -} - -sub DESTROY -{ - my ($o) = @_; - CLOSE($o); -} - -# Local variables: -# indent-tabs-mode: nil -# cperl-indent-level: 2 -# End: diff --git a/nu/cgi-bin/lib/IPC/Run.pm b/nu/cgi-bin/lib/IPC/Run.pm deleted file mode 100755 index a9ccd6b..0000000 --- a/nu/cgi-bin/lib/IPC/Run.pm +++ /dev/null @@ -1,4476 +0,0 @@ -package IPC::Run ; -# -# Copyright (c) 1999 by Barrie Slaymaker, barries@slaysys.com -# -# You may distribute under the terms of either the GNU General Public -# License or the Artistic License, as specified in the README file. -# - -$VERSION = "0.80_91"; - -=head1 NAME - -IPC::Run - system() and background procs w/ piping, redirs, ptys (Unix, Win32) - -=head1 SYNOPSIS - - ## First,a command to run: - my @cat = qw( cat ) ; - - ## Using run() instead of system(): - use IPC::Run qw( run timeout ) ; - - run \@cmd, \$in, \$out, \$err, timeout( 10 ) or die "cat: $?" - - # Can do I/O to sub refs and filenames, too: - run \@cmd, '<', "in.txt", \&out, \&err or die "cat: $?" - run \@cat, '<', "in.txt", '>>', "out.txt", '2>>', "err.txt" ; - - - # Redirecting using psuedo-terminals instad of pipes. - run \@cat, 'pty>', \$out_and_err ; - - ## Scripting subprocesses (like Expect): - - use IPC::Run qw( start pump finish timeout ) ; - - # Incrementally read from / write to scalars. - # $in is drained as it is fed to cat's stdin, - # $out accumulates cat's stdout - # $err accumulates cat's stderr - # $h is for "harness". - my $h = start \@cat, \$in, \$out, \$err, timeout( 10 ) ; - - $in .= "some input\n" ; - pump $h until $out =~ /input\n/g ; - - $in .= "some more input\n" ; - pump $h until $out =~ /\G.*more input\n/ ; - - $in .= "some final input\n" ; - finish $h or die "cat returned $?" ; - - warn $err if $err ; - print $out ; ## All of cat's output - - # Piping between children - run \@cat, '|', \@gzip ; - - # Multiple children simultaneously (run() blocks until all - # children exit, use start() for background execution): - run \@foo1, '&', \@foo2 ; - - # Calling \&set_up_child in the child before it executes the - # command (only works on systems with true fork() & exec()) - # exceptions thrown in set_up_child() will be propagated back - # to the parent and thrown from run(). - run \@cat, \$in, \$out, - init => \&set_up_child ; - - # Read from / write to file handles you open and close - open IN, 'out.txt' or die $! ; - print OUT "preamble\n" ; - run \@cat, \*IN, \*OUT or die "cat returned $?" ; - print OUT "postamble\n" ; - close IN ; - close OUT ; - - # Create pipes for you to read / write (like IPC::Open2 & 3). - $h = start - \@cat, - 'pipe', \*OUT, - '2>pipe', \*ERR - or die "cat returned $?" ; - print IN "some input\n" ; - close IN ; - print , ; - finish $h ; - - # Mixing input and output modes - run \@cat, 'in.txt', \&catch_some_out, \*ERR_LOG ) ; - - # Other redirection constructs - run \@cat, '>&', \$out_and_err ; - run \@cat, '2>&1' ; - run \@cat, '0<&3' ; - run \@cat, '<&-' ; - run \@cat, '3<', \$in3 ; - run \@cat, '4>', \$out4 ; - # etc. - - # Passing options: - run \@cat, 'in.txt', debug => 1 ; - - # Call this system's shell, returns TRUE on 0 exit code - # THIS IS THE OPPOSITE SENSE OF system()'s RETURN VALUE - run "cat a b c" or die "cat returned $?" ; - - # Launch a sub process directly, no shell. Can't do redirection - # with this form, it's here to behave like system() with an - # inverted result. - $r = run "cat a b c" ; - - # Read from a file in to a scalar - run io( "filename", 'r', \$recv ) ; - run io( \*HANDLE, 'r', \$recv ) ; - -=head1 DESCRIPTION - -IPC::Run allows you run and interact with child processes using files, pipes, -and pseudo-ttys. Both system()-style and scripted usages are supported and -may be mixed. Likewise, functional and OO API styles are both supported and -may be mixed. - -Various redirection operators reminiscent of those seen on common Unix and DOS -command lines are provided. - -Before digging in to the details a few LIMITATIONS are important enough -to be mentioned right up front: - -=over - -=item Win32 Support - -Win32 support is working but B, but does pass all relevant tests -on NT 4.0. See L. - -=item pty Support - -If you need pty support, IPC::Run should work well enough most of the -time, but IO::Pty is being improved, and IPC::Run will be improved to -use IO::Pty's new features when it is release. - -The basic problem is that the pty needs to initialize itself before the -parent writes to the master pty, or the data written gets lost. So -IPC::Run does a sleep(1) in the parent after forking to (hopefully) give -the child a chance to run. This is a kludge that works well on non -heavily loaded systems :(. - -ptys are not supported yet under Win32, but will be emulated... - -=item Debugging Tip - -You may use the environment variable C to see what's going on -under the hood: - - $ IPCRUNDEBUG=basic myscript # prints minimal debugging - $ IPCRUNDEBUG=data myscript # prints all data reads/writes - $ IPCRUNDEBUG=details myscript # prints lots of low-level details - $ IPCRUNDEBUG=gory myscript # (Win32 only) prints data moving through - # the helper processes. - -=back - -We now return you to your regularly scheduled documentation. - -=head2 Harnesses - -Child processes and I/O handles are gathered in to a harness, then -started and run until the processing is finished or aborted. - -=head2 run() vs. start(); pump(); finish(); - -There are two modes you can run harnesses in: run() functions as an -enhanced system(), and start()/pump()/finish() allow for background -processes and scripted interactions with them. - -When using run(), all data to be sent to the harness is set up in -advance (though one can feed subprocesses input from subroutine refs to -get around this limitation). The harness is run and all output is -collected from it, then any child processes are waited for: - - run \@cmd, \< and C<$err> in our examples. - -Regular expressions can be used to wait for appropriate output in -several ways. The C example in the previous section demonstrates -how to pump() until some string appears in the output. Here's an -example that uses C to fetch files from a remote server: - - $h = harness \@smbclient, \$in, \$out ; - - $in = "cd /src\n" ; - $h->pump until $out =~ /^smb.*> \Z/m ; - die "error cding to /src:\n$out" if $out =~ "ERR" ; - $out = '' ; - - $in = "mget *\n" ; - $h->pump until $out =~ /^smb.*> \Z/m ; - die "error retrieving files:\n$out" if $out =~ "ERR" ; - - $in = "quit\n" ; - $h->finish ; - -Notice that we carefully clear $out after the first command/response -cycle? That's because IPC::Run does not delete $out when we continue, -and we don't want to trip over the old output in the second -command/response cycle. - -Say you want to accumulate all the output in $out and analyze it -afterwards. Perl offers incremental regular expression matching using -the C and pattern matching idiom and the C<\G> assertion. -IPC::Run is careful not to disturb the current C value for -scalars it appends data to, so we could modify the above so as not to -destroy $out by adding a couple of C modifiers. The C keeps us -from tripping over the previous prompt and the C keeps us from -resetting the prior match position if the expected prompt doesn't -materialize immediately: - - $h = harness \@smbclient, \$in, \$out ; - - $in = "cd /src\n" ; - $h->pump until $out =~ /^smb.*> \Z/mgc ; - die "error cding to /src:\n$out" if $out =~ "ERR" ; - - $in = "mget *\n" ; - $h->pump until $out =~ /^smb.*> \Z/mgc ; - die "error retrieving files:\n$out" if $out =~ "ERR" ; - - $in = "quit\n" ; - $h->finish ; - - analyze( $out ) ; - -When using this technique, you may want to preallocate $out to have -plenty of memory or you may find that the act of growing $out each time -new input arrives causes an C slowdown as $out grows. -Say we expect no more than 10,000 characters of input at the most. To -preallocate memory to $out, do something like: - - my $out = "x" x 10_000 ; - $out = "" ; - -C will allocate at least 10,000 characters' worth of space, then -mark the $out as having 0 length without freeing all that yummy RAM. - -=head2 Timeouts and Timers - -More than likely, you don't want your subprocesses to run forever, and -sometimes it's nice to know that they're going a little slowly. -Timeouts throw exceptions after a some time has elapsed, timers merely -cause pump() to return after some time has elapsed. Neither is -reset/restarted automatically. - -Timeout objects are created by calling timeout( $interval ) and passing -the result to run(), start() or harness(). The timeout period starts -ticking just after all the child processes have been fork()ed or -spawn()ed, and are polled for expiration in run(), pump() and finish(). -If/when they expire, an exception is thrown. This is typically useful -to keep a subprocess from taking too long. - -If a timeout occurs in run(), all child processes will be terminated and -all file/pipe/ptty descriptors opened by run() will be closed. File -descriptors opened by the parent process and passed in to run() are not -closed in this event. - -If a timeout occurs in pump(), pump_nb(), or finish(), it's up to you to -decide whether to kill_kill() all the children or to implement some more -graceful fallback. No I/O will be closed in pump(), pump_nb() or -finish() by such an exception (though I/O is often closed down in those -routines during the natural course of events). - -Often an exception is too harsh. timer( $interval ) creates timer -objects that merely prevent pump() from blocking forever. This can be -useful for detecting stalled I/O or printing a soothing message or "." -to pacify an anxious user. - -Timeouts and timers can both be restarted at any time using the timer's -start() method (this is not the start() that launches subprocesses). To -restart a timer, you need to keep a reference to the timer: - - ## Start with a nice long timeout to let smbclient connect. If - ## pump or finish take too long, an exception will be thrown. - - my $h ; - eval { - $h = harness \@smbclient, \$in, \$out, \$err, ( my $t = timeout 30 ) ; - sleep 11 ; # No effect: timer not running yet - - start $h ; - $in = "cd /src\n" ; - pump $h until ! length $in ; - - $in = "ls\n" ; - ## Now use a short timeout, since this should be faster - $t->start( 5 ) ; - pump $h until ! length $in ; - - $t->start( 10 ) ; ## Give smbclient a little while to shut down. - $h->finish ; - } ; - if ( $@ ) { - my $x = $@ ; ## Preserve $@ in case another exception occurs - $h->kill_kill ; ## kill it gently, then brutally if need be, or just - ## brutally on Win32. - die $x ; - } - -Timeouts and timers are I checked once the subprocesses are shut -down; they will not expire in the interval between the last valid -process and when IPC::Run scoops up the processes' result codes, for -instance. - -=head2 Spawning synchronization, child exception propagation - -start() pauses the parent until the child executes the command or CODE -reference and propagates any exceptions thrown (including exec() -failure) back to the parent. This has several pleasant effects: any -exceptions thrown in the child, including exec() failure, come flying -out of start() or run() as though they had ocurred in the parent. - -This includes exceptions your code thrown from init subs. In this -example: - - eval { - run \@cmd, init => sub { die "blast it! foiled again!" } ; - } ; - print $@ ; - -the exception "blast it! foiled again" will be thrown from the child -process (preventing the exec()) and printed by the parent. - -In situations like - - run \@cmd1, "|", \@cmd2, "|", \@cmd3 ; - -@cmd1 will be initted and exec()ed before @cmd2, and @cmd2 before @cmd3. -This can save time and prevent oddball errors emitted by later commands -when earlier commands fail to execute. Note that IPC::Run doesn't start -any commands unless it can find the executables referenced by all -commands. These executables must pass both the C<-f> and C<-x> tests -described in L. - -Another nice effect is that init() subs can take their time doing things -and there will be no problems caused by a parent continuing to execute -before a child's init() routine is complete. Say the init() routine -needs to open a socket or a temp file that the parent wants to connect -to; without this synchronization, the parent will need to implement a -retry loop to wait for the child to run, since often, the parent gets a -lot of things done before the child's first timeslice is allocated. - -This is also quite necessary for pseudo-tty initialization, which needs -to take place before the parent writes to the child via pty. Writes -that occur before the pty is set up can get lost. - -A final, minor, nicety is that debugging output from the child will be -emitted before the parent continues on, making for much clearer debugging -output in complex situations. - -The only drawback I can conceive of is that the parent can't continue to -operate while the child is being initted. If this ever becomes a -problem in the field, we can implement an option to avoid this behavior, -but I don't expect it to. - -B: executing CODE references isn't supported on Win32, see -L for details. - -=head2 Syntax - -run(), start(), and harness() can all take a harness specification -as input. A harness specification is either a single string to be passed -to the systems' shell: - - run "echo 'hi there'" ; - -or a list of commands, io operations, and/or timers/timeouts to execute. -Consecutive commands must be separated by a pipe operator '|' or an '&'. -External commands are passed in as array references, and, on systems -supporting fork(), Perl code may be passed in as subs: - - run \@cmd ; - run \@cmd1, '|', \@cmd2 ; - run \@cmd1, '&', \@cmd2 ; - run \&sub1 ; - run \&sub1, '|', \&sub2 ; - run \&sub1, '&', \&sub2 ; - -'|' pipes the stdout of \@cmd1 the stdin of \@cmd2, just like a -shell pipe. '&' does not. Child processes to the right of a '&' -will have their stdin closed unless it's redirected-to. - -L objects may be passed in as well, whether or not -child processes are also specified: - - run io( "infile", ">", \$in ), io( "outfile", "<", \$in ) ; - -as can L objects: - - run \@cmd, io( "outfile", "<", \$in ), timeout( 10 ) ; - -Commands may be followed by scalar, sub, or i/o handle references for -redirecting -child process input & output: - - run \@cmd, \undef, \$out ; - run \@cmd, \$in, \$out ; - run \@cmd1, \&in, '|', \@cmd2, \*OUT ; - run \@cmd1, \*IN, '|', \@cmd2, \&out ; - -This is known as succinct redirection syntax, since run(), start() -and harness(), figure out which file descriptor to redirect and how. -File descriptor 0 is presumed to be an input for -the child process, all others are outputs. The assumed file -descriptor always starts at 0, unless the command is being piped to, -in which case it starts at 1. - -To be explicit about your redirects, or if you need to do more complex -things, there's also a redirection operator syntax: - - run \@cmd, '<', \undef, '>', \$out ; - run \@cmd, '<', \undef, '>&', \$out_and_err ; - run( - \@cmd1, - '<', \$in, - '|', \@cmd2, - \$out - ) ; - -Operator syntax is required if you need to do something other than simple -redirection to/from scalars or subs, like duping or closing file descriptors -or redirecting to/from a named file. The operators are covered in detail -below. - -After each \@cmd (or \&foo), parsing begins in succinct mode and toggles to -operator syntax mode when an operator (ie plain scalar, not a ref) is seen. -Once in -operator syntax mode, parsing only reverts to succinct mode when a '|' or -'&' is seen. - -In succinct mode, each parameter after the \@cmd specifies what to -do with the next highest file descriptor. These File descriptor start -with 0 (stdin) unless stdin is being piped to (C<'|', \@cmd>), in which -case they start with 1 (stdout). Currently, being on the left of -a pipe (C<\@cmd, \$out, \$err, '|'>) does I cause stdout to be -skipped, though this may change since it's not as DWIMerly as it -could be. Only stdin is assumed to be an -input in succinct mode, all others are assumed to be outputs. - -If no piping or redirection is specified for a child, it will inherit -the parent's open file handles as dictated by your system's -close-on-exec behavior and the $^F flag, except that processes after a -'&' will not inherit the parent's stdin. Also note that $^F does not -affect file desciptors obtained via POSIX, since it only applies to -full-fledged Perl file handles. Such processes will have their stdin -closed unless it has been redirected-to. - -If you want to close a child processes stdin, you may do any of: - - run \@cmd, \undef ; - run \@cmd, \"" ; - run \@cmd, '<&-' ; - run \@cmd, '0<&-' ; - -Redirection is done by placing redirection specifications immediately -after a command or child subroutine: - - run \@cmd1, \$in, '|', \@cmd2, \$out ; - run \@cmd1, '<', \$in, '|', \@cmd2, '>', \$out ; - -If you omit the redirection operators, descriptors are counted -starting at 0. Descriptor 0 is assumed to be input, all others -are outputs. A leading '|' consumes descriptor 0, so this -works as expected. - - run \@cmd1, \$in, '|', \@cmd2, \$out ; - -The parameter following a redirection operator can be a scalar ref, -a subroutine ref, a file name, an open filehandle, or a closed -filehandle. - -If it's a scalar ref, the child reads input from or sends output to -that variable: - - $in = "Hello World.\n" ; - run \@cat, \$in, \$out ; - print $out ; - -Scalars used in incremental (start()/pump()/finish()) applications are treated -as queues: input is removed from input scalers, resulting in them dwindling -to '', and output is appended to output scalars. This is not true of -harnesses run() in batch mode. - -It's usually wise to append new input to be sent to the child to the input -queue, and you'll often want to zap output queues to '' before pumping. - - $h = start \@cat, \$in ; - $in = "line 1\n" ; - pump $h ; - $in .= "line 2\n" ; - pump $h ; - $in .= "line 3\n" ; - finish $h ; - -The final call to finish() must be there: it allows the child process(es) -to run to completion and waits for their exit values. - -=head1 OBSTINATE CHILDREN - -Interactive applications are usually optimized for human use. This -can help or hinder trying to interact with them through modules like -IPC::Run. Frequently, programs alter their behavior when they detect -that stdin, stdout, or stderr are not connected to a tty, assuming that -they are being run in batch mode. Whether this helps or hurts depends -on which optimizations change. And there's often no way of telling -what a program does in these areas other than trial and error and, -occasionally, reading the source. This includes different versions -and implementations of the same program. - -All hope is not lost, however. Most programs behave in reasonably -tractable manners, once you figure out what it's trying to do. - -Here are some of the issues you might need to be aware of. - -=over - -=item * - -fflush()ing stdout and stderr - -This lets the user see stdout and stderr immediately. Many programs -undo this optimization if stdout is not a tty, making them harder to -manage by things like IPC::Run. - -Many programs decline to fflush stdout or stderr if they do not -detect a tty there. Some ftp commands do this, for instance. - -If this happens to you, look for a way to force interactive behavior, -like a command line switch or command. If you can't, you will -need to use a pseudo terminal ('pty>'). - -=item * - -false prompts - -Interactive programs generally do not guarantee that output from user -commands won't contain a prompt string. For example, your shell prompt -might be a '$', and a file named '$' might be the only file in a directory -listing. - -This can make it hard to guarantee that your output parser won't be fooled -into early termination of results. - -To help work around this, you can see if the program can alter it's -prompt, and use something you feel is never going to occur in actual -practice. - -You should also look for your prompt to be the only thing on a line: - - pump $h until $out =~ /^\s?\z/m ; - -(use C<(?!\n)\Z> in place of C<\z> on older perls). - -You can also take the approach that IPC::ChildSafe takes and emit a -command with known output after each 'real' command you issue, then -look for this known output. See new_appender() and new_chunker() for -filters that can help with this task. - -If it's not convenient or possibly to alter a prompt or use a known -command/response pair, you might need to autodetect the prompt in case -the local version of the child program is different then the one -you tested with, or if the user has control over the look & feel of -the prompt. - -=item * - -Refusing to accept input unless stdin is a tty. - -Some programs, for security reasons, will only accept certain types -of input from a tty. su, notable, will not prompt for a password unless -it's connected to a tty. - -If this is your situation, use a pseudo terminal ('pty>'). - -=item * - -Not prompting unless connected to a tty. - -Some programs don't prompt unless stdin or stdout is a tty. See if you can -turn prompting back on. If not, see if you can come up with a command that -you can issue after every real command and look for it's output, as -IPC::ChildSafe does. There are two filters included with IPC::Run that -can help with doing this: appender and chunker (see new_appender() and -new_chunker()). - -=item * - -Different output format when not connected to a tty. - -Some commands alter their formats to ease machine parsability when they -aren't connected to a pipe. This is actually good, but can be surprising. - -=back - -=head1 PSEUDO TERMINALS - -On systems providing pseudo terminals under /dev, IPC::Run can use IO::Pty -(available on CPAN) to provide a terminal environment to subprocesses. -This is necessary when the subprocess really wants to think it's connected -to a real terminal. - -=head2 CAVEATS - -Psuedo-terminals are not pipes, though they are similar. Here are some -differences to watch out for. - -=over - -=item Echoing - -Sending to stdin will cause an echo on stdout, which occurs before each -line is passed to the child program. There is currently no way to -disable this, although the child process can and should disable it for -things like passwords. - -=item Shutdown - -IPC::Run cannot close a pty until all output has been collected. This -means that it is not possible to send an EOF to stdin by half-closing -the pty, as we can when using a pipe to stdin. - -This means that you need to send the child process an exit command or -signal, or run() / finish() will time out. Be careful not to expect a -prompt after sending the exit command. - -=item Command line editing - -Some subprocesses, notable shells that depend on the user's prompt -settings, will reissue the prompt plus the command line input so far -once for each character. - -=item '>pty>' means '&>pty>', not '1>pty>' - -The pseudo terminal redirects both stdout and stderr unless you specify -a file descriptor. If you want to grab stderr separately, do this: - - start \@cmd, 'pty>', \$out, '2>', \$err ; - -=item stdin, stdout, and stderr not inherited - -Child processes harnessed to a pseudo terminal have their stdin, stdout, -and stderr completely closed before any redirection operators take -effect. This casts of the bonds of the controlling terminal. This is -not done when using pipes. - -Right now, this affects all children in a harness that has a pty in use, -even if that pty would not affect a particular child. That's a bug and -will be fixed. Until it is, it's best not to mix-and-match children. - -=back - -=head2 Redirection Operators - - Operator SHNP Description - ======== ==== =========== - <, N< SHN Redirects input to a child's fd N (0 assumed) - - >, N> SHN Redirects output from a child's fd N (1 assumed) - >>, N>> SHN Like '>', but appends to scalars or named files - >&, &> SHN Redirects stdout & stderr from a child process - - pty, N>pty S Like '>', but uses a pseudo-tty instead of a pipe - - N<&M Dups input fd N to input fd M - M>&N Dups output fd N to input fd M - N<&- Closes fd N - - pipe, N>pipe P Pipe opens H for caller to read, write, close. - -'N' and 'M' are placeholders for integer file descriptor numbers. The -terms 'input' and 'output' are from the child process's perspective. - -The SHNP field indicates what parameters an operator can take: - - S: \$scalar or \&function references. Filters may be used with - these operators (and only these). - H: \*HANDLE or IO::Handle for caller to open, and close - N: "file name". - P: \*HANDLE opened by IPC::Run as the parent end of a pipe, but read - and written to and closed by the caller (like IPC::Open3). - -=over - -=item Redirecting input: [n]<, [n] -below for more information. - -The : The handle returned is actually a socket handle, so you can -use select() on it. - -=item Redirecting output: [n]>, [n]>>, [n]>&[m], [n]>pipe - -You can redirect any output the child emits -to a scalar variable, subroutine, file handle, or file name. You -can have &run truncate or append to named files or scalars. If -you are redirecting stdin as well, or if the command is on the -receiving end of a pipeline ('|'), you can omit the redirection -operator: - - @ls = ( 'ls' ) ; - run \@ls, \undef, \$out - or die "ls returned $?" ; - - run \@ls, \undef, \&out ; ## Calls &out each time some output - ## is received from the child's - ## when undef is returned. - - run \@ls, \undef, '2>ls.err' ; - run \@ls, '2>', 'ls.err' ; - -The two parameter form guarantees that the filename -will not be interpreted as a redirection operator: - - run \@ls, '>', "&more" ; - run \@ls, '2>', ">foo\n" ; - -You can pass file handles you've opened for writing: - - open( *OUT, ">out.txt" ) ; - open( *ERR, ">err.txt" ) ; - run \@cat, \*OUT, \*ERR ; - -Passing a scalar reference and a code reference requires a little -more work, but allows you to capture all of the output in a scalar -or each piece of output by a callback: - -These two do the same things: - - run( [ 'ls' ], '2>', sub { $err_out .= $_[0] } ) ; - -does the same basic thing as: - - run( [ 'ls' ], '2>', \$err_out ) ; - -The subroutine will be called each time some data is read from the child. - -The >pipe operator is different in concept than the other '>' operators, -although it's syntax is similar: - - $h = start \@cat, $in, '>pipe', \*OUT, '2>pipe', \*ERR ; - $in = "hello world\n" ; - finish $h ; - print ; - print ; - close OUT ; - close ERR ; - -causes two pipe to be created, with one end attached to cat's stdout -and stderr, respectively, and the other left open on OUT and ERR, so -that the script can manually -read(), select(), etc. on them. This is like -the behavior of IPC::Open2 and IPC::Open3. - -B: The handle returned is actually a socket handle, so you can -use select() on it. - -=item Duplicating output descriptors: >&m, n>&m - -This duplicates output descriptor number n (default is 1 if n is omitted) -from descriptor number m. - -=item Duplicating input descriptors: <&m, n<&m - -This duplicates input descriptor number n (default is 0 if n is omitted) -from descriptor number m - -=item Closing descriptors: <&-, 3<&- - -This closes descriptor number n (default is 0 if n is omitted). The -following commands are equivalent: - - run \@cmd, \undef ; - run \@cmd, '<&-' ; - run \@cmd, ', >&, &>pipe, >pipe& - -The following pairs of commands are equivalent: - - run \@cmd, '>&', \$out ; run \@cmd, '>', \$out, '2>&1' ; - run \@cmd, '>&', 'out.txt' ; run \@cmd, '>', 'out.txt', '2>&1' ; - -etc. - -File descriptor numbers are not permitted to the left or the right of -these operators, and the '&' may occur on either end of the operator. - -The '&>pipe' and '>pipe&' variants behave like the '>pipe' operator, except -that both stdout and stderr write to the created pipe. - -=item Redirection Filters - -Both input redirections and output redirections that use scalars or -subs as endpoints may have an arbitrary number of filter subs placed -between them and the child process. This is useful if you want to -receive output in chunks, or if you want to massage each chunk of -data sent to the child. To use this feature, you must use operator -syntax: - - run( - \@cmd - '<', \&in_filter_2, \&in_filter_1, $in, - '>', \&out_filter_1, \&in_filter_2, $out, - ) ; - -This capability is not provided for IO handles or named files. - -Two filters are provided by IPC::Run: appender and chunker. Because -these may take an argument, you need to use the constructor functions -new_appender() and new_chunker() rather than using \& syntax: - - run( - \@cmd - '<', new_appender( "\n" ), $in, - '>', new_chunker, $out, - ) ; - -=back - -=head2 Just doing I/O - -If you just want to do I/O to a handle or file you open yourself, you -may specify a filehandle or filename instead of a command in the harness -specification: - - run io( "filename", '>', \$recv ) ; - - $h = start io( $io, '>', \$recv ) ; - - $h = harness \@cmd, '&', io( "file", '<', \$send ) ; - -=head2 Options - -Options are passed in as name/value pairs: - - run \@cat, \$in, debug => 1 ; - -If you pass the debug option, you may want to pass it in first, so you -can see what parsing is going on: - - run debug => 1, \@cat, \$in ; - -=over - -=item debug - -Enables debugging output in parent and child. Debugging info is emitted -to the STDERR that was present when IPC::Run was first Ced (it's -Ced out of the way so that it can be redirected in children without -having debugging output emitted on it). - -=back - -=head1 RETURN VALUES - -harness() and start() return a reference to an IPC::Run harness. This is -blessed in to the IPC::Run package, so you may make later calls to -functions as members if you like: - - $h = harness( ... ) ; - $h->start ; - $h->pump ; - $h->finish ; - - $h = start( .... ) ; - $h->pump ; - ... - -Of course, using method call syntax lets you deal with any IPC::Run -subclasses that might crop up, but don't hold your breath waiting for -any. - -run() and finish() return TRUE when all subcommands exit with a 0 result -code. B. - -All routines raise exceptions (via die()) when error conditions are -recognized. A non-zero command result is not treated as an error -condition, since some commands are tests whose results are reported -in their exit codes. - -=head1 ROUTINES - -=over - -=cut - -@ISA = qw( Exporter ) ; - -## We use @EXPORT for the end user's convenience: there's only one function -## exported, it's homonymous with the module, it's an unusual name, and -## it can be suppressed by "use IPC::Run () ;". - -my @FILTER_IMP = qw( input_avail get_more_input ) ; -my @FILTERS = qw( - new_appender - new_chunker - new_string_source - new_string_sink -) ; -my @API = qw( - run - harness start pump pumpable finish - signal kill_kill reap_nb - io timer timeout - close_terminal - binary -) ; - -@EXPORT_OK = ( @API, @FILTER_IMP, @FILTERS, qw( filter_tests Win32_MODE ) ) ; -%EXPORT_TAGS = ( - 'filter_imp' => \@FILTER_IMP, - 'all' => \@EXPORT_OK, - 'filters' => \@FILTERS, - 'api' => \@API, -) ; - -use strict ; - -use IPC::Run::Debug; -use Exporter ; -use Fcntl ; -use POSIX () ; -use Symbol ; -use Carp ; -use File::Spec ; -use IO::Handle ; -require IPC::Run::IO ; -require IPC::Run::Timer ; -use UNIVERSAL qw( isa ) ; - -use constant Win32_MODE => $^O =~ /os2|Win32/i ; - -BEGIN { - if ( Win32_MODE ) { - eval "use IPC::Run::Win32Helper; 1;" - or ( $@ && die ) or die "$!" ; - } - else { - eval "use File::Basename; 1;" or die $! ; - } -} - - -sub input_avail() ; -sub get_more_input() ; - -############################################################################### - -## -## State machine states, set in $self->{STATE} -## -## These must be in ascending order numerically -## -sub _newed() {0} -sub _harnessed(){1} -sub _finished() {2} ## _finished behave almost exactly like _harnessed -sub _started() {3} - -## -## Which fds have been opened in the parent. This may have extra fds, since -## we aren't all that rigorous about closing these off, but that's ok. This -## is used on Unixish OSs to close all fds in the child that aren't needed -## by that particular child. -my %fds ; - -## There's a bit of hackery going on here. -## -## We want to have any code anywhere be able to emit -## debugging statements without knowing what harness the code is -## being called in/from, since we'd need to pass a harness around to -## everything. -## -## Thus, $cur_self was born. - -use vars qw( $cur_self ) ; - -sub _debug_fd { - return fileno STDERR unless defined $cur_self ; - - if ( _debugging && ! defined $cur_self->{DEBUG_FD} ) { - my $fd = select STDERR ; $| = 1 ; select $fd ; - $cur_self->{DEBUG_FD} = POSIX::dup fileno STDERR ; - _debug( "debugging fd is $cur_self->{DEBUG_FD}\n" ) - if _debugging_details ; - } - - return fileno STDERR unless defined $cur_self->{DEBUG_FD} ; - - return $cur_self->{DEBUG_FD} -} - -sub DESTROY { - ## We absolutely do not want to do anything else here. We are likely - ## to be in a child process and we don't want to do things like kill_kill - ## ourself or cause other destruction. - my IPC::Run $self = shift ; - POSIX::close $self->{DEBUG_FD} if defined $self->{DEBUG_FD} ; - $self->{DEBUG_FD} = undef ; -} - -## -## Support routines (NOT METHODS) -## -my %cmd_cache ; - -sub _search_path { - my ( $cmd_name ) = @_ ; - if ( File::Spec->file_name_is_absolute( $cmd_name ) && -x $cmd_name) { - _debug "'", $cmd_name, "' is absolute" - if _debugging_details ; - return $cmd_name ; - } - - my $dirsep = - ( Win32_MODE - ? '[/\\\\]' - : $^O =~ /MacOS/ - ? ':' - : $^O =~ /VMS/ - ? '[\[\]]' - : '/' - ) ; - - if ( Win32_MODE - && ( $cmd_name =~ /$dirsep/ ) - && ( $cmd_name !~ /\..+$/ ) ## Only run if cmd_name has no extension? - ) { - for ( split /;/, $ENV{PATHEXT} || ".COM;.BAT;.EXE" ) { - my $name = "$cmd_name$_"; - $cmd_name = $name, last if -f $name && -x _; - } - } - - if ( $cmd_name =~ /($dirsep)/ ) { - _debug "'$cmd_name' contains '$1'" if _debugging; - croak "file not found: $cmd_name" unless -e $cmd_name ; - croak "not a file: $cmd_name" unless -f $cmd_name ; - croak "permission denied: $cmd_name" unless -x $cmd_name ; - return $cmd_name ; - } - - if ( exists $cmd_cache{$cmd_name} ) { - _debug "'$cmd_name' found in cache: '$cmd_cache{$cmd_name}'" - if _debugging; - return $cmd_cache{$cmd_name} if -x $cmd_cache{$cmd_name} ; - _debug "'$cmd_cache{$cmd_name}' no longer executable, searching..." - if _debugging; - delete $cmd_cache{$cmd_name} ; - } - - my @searched_in ; - - ## This next bit is Unix/Win32 specific, unfortunately. - ## There's been some conversation about extending File::Spec to provide - ## a universal interface to PATH, but I haven't seen it yet. - my $re = Win32_MODE ? qr/;/ : qr/:/ ; - -LOOP: - for ( split( $re, $ENV{PATH}, -1 ) ) { - $_ = "." unless length $_ ; - push @searched_in, $_ ; - - my $prospect = File::Spec->catfile( $_, $cmd_name ) ; - my @prospects ; - - @prospects = - ( Win32_MODE && ! ( -f $prospect && -x _ ) ) - ? map "$prospect$_", split /;/, $ENV{PATHEXT} || ".COM;.BAT;.EXE" - : ( $prospect ) ; - - for my $found ( @prospects ) { - if ( -f $found && -x _ ) { - $cmd_cache{$cmd_name} = $found ; - last LOOP ; - } - } - } - - if ( exists $cmd_cache{$cmd_name} ) { - _debug "'", $cmd_name, "' added to cache: '", $cmd_cache{$cmd_name}, "'" - if _debugging_details ; - return $cmd_cache{$cmd_name} ; - } - - croak "Command '$cmd_name' not found in " . join( ", ", @searched_in ) ; -} - - -sub _empty($) { ! ( defined $_[0] && length $_[0] ) } - -## 'safe' versions of otherwise fun things to do. See also IPC::Run::Win32Helper. -sub _close { - confess 'undef' unless defined $_[0] ; - no strict 'refs' ; - my $fd = $_[0] =~ /^\d+$/ ? $_[0] : fileno $_[0] ; - my $r = POSIX::close $fd ; - $r = $r ? '' : " ERROR $!" ; - delete $fds{$fd} ; - _debug "close( $fd ) = " . ( $r || 0 ) if _debugging_details ; -} - -sub _dup { - confess 'undef' unless defined $_[0] ; - my $r = POSIX::dup( $_[0] ) ; - croak "$!: dup( $_[0] )" unless defined $r ; - $r = 0 if $r eq '0 but true' ; - _debug "dup( $_[0] ) = $r" if _debugging_details ; - $fds{$r} = 1 ; - return $r ; -} - - -sub _dup2_rudely { - confess 'undef' unless defined $_[0] && defined $_[1] ; - my $r = POSIX::dup2( $_[0], $_[1] ) ; - croak "$!: dup2( $_[0], $_[1] )" unless defined $r ; - $r = 0 if $r eq '0 but true' ; - _debug "dup2( $_[0], $_[1] ) = $r" if _debugging_details ; - $fds{$r} = 1 ; - return $r ; -} - -sub _exec { - confess 'undef passed' if grep !defined, @_ ; -# exec @_ or croak "$!: exec( " . join( ', ', @_ ) . " )" ; - _debug 'exec()ing ', join " ", map "'$_'", @_ if _debugging_details ; - -# { -## Commented out since we don't call this on Win32. -# # This works around the bug where 5.6.1 complains -# # "Can't exec ...: No error" after an exec on NT, where -# # exec() is simulated and actually returns in Perl's C -# # code, though Perl's &exec does not... -# no warnings "exec" ; -# -# # Just in case the no warnings workaround -# # stops beign a workaround, we don't want -# # old values of $! causing spurious strerr() -# # messages to appear in the "Can't exec" message -# undef $! ; - exec @_ ; -# } -# croak "$!: exec( " . join( ', ', map "'$_'", @_ ) . " )" ; - ## Fall through so $! can be reported to parent. -} - - -sub _sysopen { - confess 'undef' unless defined $_[0] && defined $_[1] ; -_debug sprintf( "O_RDONLY=0x%02x ", O_RDONLY ), -sprintf( "O_WRONLY=0x%02x ", O_WRONLY ), -sprintf( "O_RDWR=0x%02x ", O_RDWR ), -sprintf( "O_TRUNC=0x%02x ", O_TRUNC), -sprintf( "O_CREAT=0x%02x ", O_CREAT), -sprintf( "O_APPEND=0x%02x ", O_APPEND), -if _debugging_details ; - my $r = POSIX::open( $_[0], $_[1], 0644 ) ; - croak "$!: open( $_[0], ", sprintf( "0x%03x", $_[1] ), " )" unless defined $r ; - _debug "open( $_[0], ", sprintf( "0x%03x", $_[1] ), " ) = $r" - if _debugging_data ; - $fds{$r} = 1 ; - return $r ; -} - -sub _pipe { - ## Normal, blocking write for pipes that we read and the child writes, - ## since most children expect writes to stdout to block rather than - ## do a partial write. - my ( $r, $w ) = POSIX::pipe ; - croak "$!: pipe()" unless defined $r ; - _debug "pipe() = ( $r, $w ) " if _debugging_details ; - $fds{$r} = $fds{$w} = 1 ; - return ( $r, $w ) ; -} - -sub _pipe_nb { - ## For pipes that we write, unblock the write side, so we can fill a buffer - ## and continue to select(). - ## Contributed by Borislav Deianov , with minor - ## bugfix on fcntl result by me. - local ( *R, *W ) ; - my $f = pipe( R, W ) ; - croak "$!: pipe()" unless defined $f ; - my ( $r, $w ) = ( fileno R, fileno W ) ; - _debug "pipe_nb pipe() = ( $r, $w )" if _debugging_details ; - unless ( Win32_MODE ) { - ## POSIX::fcntl doesn't take fd numbers, so gotta use Perl's and - ## then _dup the originals (which get closed on leaving this block) - my $fres = fcntl( W, &F_SETFL, O_WRONLY | O_NONBLOCK ); - croak "$!: fcntl( $w, F_SETFL, O_NONBLOCK )" unless $fres ; - _debug "fcntl( $w, F_SETFL, O_NONBLOCK )" if _debugging_details ; - } - ( $r, $w ) = ( _dup( $r ), _dup( $w ) ) ; - _debug "pipe_nb() = ( $r, $w )" if _debugging_details ; - return ( $r, $w ) ; -} - -sub _pty { - require IO::Pty ; - my $pty = IO::Pty->new() ; - croak "$!: pty ()" unless $pty ; - $pty->autoflush() ; - $pty->blocking( 0 ) or croak "$!: pty->blocking ( 0 )" ; - _debug "pty() = ( ", $pty->fileno, ", ", $pty->slave->fileno, " )" - if _debugging_details ; - $fds{$pty->fileno} = $fds{$pty->slave->fileno} = 1 ; - return $pty ; -} - - -sub _read { - confess 'undef' unless defined $_[0] ; - my $s = '' ; - my $r = POSIX::read( $_[0], $s, 10_000 ) ; - croak "$!: read( $_[0] )" if not($r) and $! != POSIX::EINTR; - $r ||= 0; - _debug "read( $_[0] ) = $r chars '$s'" if _debugging_data ; - return $s ; -} - - -## A METHOD, not a function. -sub _spawn { - my IPC::Run $self = shift ; - my ( $kid ) = @_ ; - - _debug "opening sync pipe ", $kid->{PID} if _debugging_details ; - my $sync_reader_fd ; - ( $sync_reader_fd, $self->{SYNC_WRITER_FD} ) = _pipe ; - $kid->{PID} = fork() ; - croak "$! during fork" unless defined $kid->{PID} ; - - unless ( $kid->{PID} ) { - ## _do_kid_and_exit closes sync_reader_fd since it closes all unwanted and - ## unloved fds. - $self->_do_kid_and_exit( $kid ) ; - } - _debug "fork() = ", $kid->{PID} if _debugging_details ; - - ## Wait for kid to get to it's exec() and see if it fails. - _close $self->{SYNC_WRITER_FD} ; - my $sync_pulse = _read $sync_reader_fd ; - _close $sync_reader_fd ; - - if ( ! defined $sync_pulse || length $sync_pulse ) { - if ( waitpid( $kid->{PID}, 0 ) >= 0 ) { - $kid->{RESULT} = $? ; - } - else { - $kid->{RESULT} = -1 ; - } - $sync_pulse = - "error reading synchronization pipe for $kid->{NUM}, pid $kid->{PID}" - unless length $sync_pulse ; - croak $sync_pulse ; - } - return $kid->{PID} ; - -## Wait for pty to get set up. This is a hack until we get synchronous -## selects. -if ( keys %{$self->{PTYS}} && $IO::Pty::VERSION < 0.9 ) { -_debug "sleeping to give pty a chance to init, will fix when newer IO::Pty arrives." ; -sleep 1 ; -} -} - - -sub _write { - confess 'undef' unless defined $_[0] && defined $_[1] ; - my $r = POSIX::write( $_[0], $_[1], length $_[1] ) ; - croak "$!: write( $_[0], '$_[1]' )" unless $r ; - _debug "write( $_[0], '$_[1]' ) = $r" if _debugging_data ; - return $r ; -} - - -=item run - -Run takes a harness or harness specification and runs it, pumping -all input to the child(ren), closing the input pipes when no more -input is available, collecting all output that arrives, until the -pipes delivering output are closed, then waiting for the children to -exit and reaping their result codes. - -You may think of C as being like - - start( ... )->finish() ; - -, though there is one subtle difference: run() does not -set \$input_scalars to '' like finish() does. If an exception is thrown -from run(), all children will be killed off "gently", and then "annihilated" -if they do not go gently (in to that dark night. sorry). - -If any exceptions are thrown, this does a L before propogating -them. - -=cut - -use vars qw( $in_run ); ## No, not Enron ;) - -sub run { - local $in_run = 1; ## Allow run()-only optimizations. - my IPC::Run $self = start( @_ ); - my $r = eval { - $self->{clear_ins} = 0 ; - $self->finish ; - } ; - if ( $@ ) { - my $x = $@ ; - $self->kill_kill ; - die $x ; - } - return $r ; -} - - -=item signal - - ## To send it a specific signal by name ("USR1"): - signal $h, "USR1" ; - $h->signal ( "USR1" ) ; - -If $signal is provided and defined, sends a signal to all child processes. Try -not to send numeric signals, use C<"KILL"> instead of C<9>, for instance. -Numeric signals aren't portable. - -Throws an exception if $signal is undef. - -This will I clean up the harness, C it if you kill it. - -Normally TERM kills a process gracefully (this is what the command line utility -C does by default), INT is sent by one of the keys C<^C>, C or -CDelE>, and C is used to kill a process and make it coredump. - -The C signal is often used to get a process to "restart", rereading -config files, and C and C for really application-specific things. - -Often, running C (that's a lower case "L") on the command line will -list the signals present on your operating system. - -B: The signal subsystem is not at all portable. We *may* offer -to simulate C and C on some operating systems, submit code -to me if you want this. - -B: Up to and including perl v5.6.1, doing almost anything in a -signal handler could be dangerous. The most safe code avoids all -mallocs and system calls, usually by preallocating a flag before -entering the signal handler, altering the flag's value in the -handler, and responding to the changed value in the main system: - - my $got_usr1 = 0 ; - sub usr1_handler { ++$got_signal } - - $SIG{USR1} = \&usr1_handler ; - while () { sleep 1 ; print "GOT IT" while $got_usr1-- ; } - -Even this approach is perilous if ++ and -- aren't atomic on your system -(I've never heard of this on any modern CPU large enough to run perl). - -=cut - -sub signal { - my IPC::Run $self = shift ; - - local $cur_self = $self ; - - $self->_kill_kill_kill_pussycat_kill unless @_ ; - - Carp::cluck "Ignoring extra parameters passed to kill()" if @_ > 1 ; - - my ( $signal ) = @_ ; - croak "Undefined signal passed to signal" unless defined $signal ; - for ( grep $_->{PID} && ! defined $_->{RESULT}, @{$self->{KIDS}} ) { - _debug "sending $signal to $_->{PID}" - if _debugging; - kill $signal, $_->{PID} - or _debugging && _debug "$! sending $signal to $_->{PID}" ; - } - - return ; -} - - -=item kill_kill - - ## To kill off a process: - $h->kill_kill ; - kill_kill $h ; - - ## To specify the grace period other than 30 seconds: - kill_kill $h, grace => 5 ; - - ## To send QUIT instead of KILL if a process refuses to die: - kill_kill $h, coup_d_grace => "QUIT" ; - -Sends a C, waits for all children to exit for up to 30 seconds, then -sends a C to any that survived the C. - -Will wait for up to 30 more seconds for the OS to sucessfully C the -processes. - -The 30 seconds may be overriden by setting the C option, this -overrides both timers. - -The harness is then cleaned up. - -The doubled name indicates that this function may kill again and avoids -colliding with the core Perl C function. - -Returns a 1 if the C was sufficient, or a 0 if C was -required. Throws an exception if C did not permit the children -to be reaped. - -B: The grace period is actually up to 1 second longer than that -given. This is because the granularity of C