Вы находитесь на странице: 1из 394

ABET

Computing Accreditation Commission

SELF-STUDY
QUESTIONNAIRE FOR REVIEW
of the
COMPUTER SCIENCE PROGRAM

submitted by

Brigham Young University


Institution

July 1, 2006
Date

to the
Computing Accreditation Commission

Primary contact: Mark Clement

Telephone number: 801-422-7608 FAX Number: 801-422-0169

Electronic mail: clement@cs.byu.edu

ABET
Computing Accreditation Commission
111 Market Place, Suite 1050
Baltimore, Maryland 21202-4012
Phone: 410-347-7700
Fax: 410-625-2238
E-mail: cac@abet.org
www: http://www.abet.org/

Page 1 of 394
C3 CS 12/14/04
Table of Contents
Booklet 1
I. OBJECTIVES AND ASSESSMENTS ...................................................................................................................4
A. OBJECTIVES ......................................................................................................................................................4
B. IMPLEMENTATION OF OBJECTIVES ................................................................................................................15
C. ASSESSMENTS ...................................................................................................................................................16
D. PROGRAM IMPROVEMENT .................................................................................................................................19
E. PROGRAM EVOLUTION ......................................................................................................................................21
F. PROGRAM CURRENT STATUS ............................................................................................................................22
II. STUDENT SUPPORT..........................................................................................................................................24
A. FREQUENCY OF COURSE OFFERINGS ................................................................................................................24
B. INTERACTION WITH FACULTY ...........................................................................................................................24
C. STUDENT GUIDANCE .......................................................................................................................................25
D. STUDENT ADVISEMENT ....................................................................................................................................26
E. ACCESS TO QUALIFIED ADVISING .....................................................................................................................26
F. MEETING THE REQUIREMENTS ..........................................................................................................................27
III. FACULTY ...........................................................................................................................................................28
A. FACULTY SIZE .................................................................................................................................................28
B. FACULTY WITH PRIMARY COMMITMENT ......................................................................................................29
C. FACULTY OVERSIGHT .....................................................................................................................................29
D. INTERESTS, QUALIFICATIONS, SCHOLARLY CONTRIBUTIONS ......................................................................31
E. SCHOLARLY ACTIVITIES .................................................................................................................................31
F. SUPPORT FOR ADVISING..................................................................................................................................32
G. INFORMATION REGARDING FACULTY MEMBERS .................................................. SEE ATTACHMENT VII.
IV. CURRICULUM...................................................................................................................................................33
A. TITLE OF DEGREE PROGRAM .........................................................................................................................33
B. CREDIT HOUR DEFINITION .............................................................................................................................33
C. PREREQUISITE FLOW CHART .........................................................................................................................33
D. COURSE REQUIREMENTS OF CURRICULUM ...................................................................................................35
E. COURSE DESCRIPTIONS ..................................................................................................................................45
V. LABORATORIES AND COMPUTING FACILITIES ..................................................................................122
A. COMPUTING FACILITIES..................................................................................................................................122
B. STUDENT ACCESS ..........................................................................................................................................124
C. DOCUMENTATION .........................................................................................................................................124
D. FACULTY ACCESS .........................................................................................................................................125
E. SUPPORT PERSONNEL ...................................................................................................................................125
F. INSTRUCTIONAL ASSISTANCE..........................................................................................................................126
VI. INSTITUTIONAL SUPPORT AND FINANCIAL RESOURCES...............................................................128
A. FACULTY STABILITY ......................................................................................................................................128
B. FACULTY PROFESSIONAL ACTIVITIES .........................................................................................................129
C. OFFICE SUPPORT ..........................................................................................................................................130
D. TIME FOR ADMINISTRATION ........................................................................................................................131
E. ADEQUACY OF RESOURCES ..........................................................................................................................131
F. LEADERSHIP ..................................................................................................................................................132
G. LABORATORY AND COMPUTING RESOURCES ..............................................................................................132
H. LIBRARY RESOURCES ...................................................................................................................................132
I. CONTINUITY OF INSTITUTIONAL SUPPORT ...................................................................................................133
VII. INSTITUTIONAL FACILITIES ...................................................................................................................134

Page 2 of 394
C3 CS 12/14/04
A. LIBRARY ........................................................................................................................................................134
B. CLASSROOM EQUIPMENT .............................................................................................................................137
C. FACULTY OFFICES ..........................................................................................................................................137
APPENDIX I. INFORMATION RELATIVE TO THE ENTIRE INSTITUTION...........................................140
A. GENERAL INFORMATION ..............................................................................................................................140
B. TYPE OF CONTROL ........................................................................................................................................140
C. REGIONAL OR INSTITUTIONAL ACCREDITATION ........................................................................................140
D. ENROLLMENT ................................................................................................................................................141
E. FUNDING PROCESS ..........................................................................................................................................141
F. PROMOTION AND FACULTY TENURE ...............................................................................................................141
APPENDIX II. GENERAL INFORMATION ON THE UNIT RESPONSIBLE FOR THE COMPUTER
SCIENCE PROGRAM ...........................................................................................................................................144
A. COMPUTER SCIENCE PROGRAM UNIT .........................................................................................................144
B. ADMINISTRATIVE HEAD ................................................................................................................................144
C. ORGANIZATION CHART ................................................................................................................................144
E. COMPUTER-RELATED UNDERGRADUATE DEGREE PROGRAMS ..................................................................144
APPENDIX III. FINANCES...................................................................................................................................147
A. FINANCES RELATED TO THE COMPUTER SCIENCE PROGRAM(S) ...............................................................147
B. OPERATING AND COMPUTING EXPENDITURES ............................................................................................148
C. ADDITIONAL FUNDING ..................................................................................................................................148
APPENDIX IV. COMPUTER SCIENCE PROGRAM PERSONNEL ..............................................................150
A. TERM OF APPOINTMENT OF ADMINISTRATIVE HEAD .................................................................................150
B. NUMBER OF PERSONNEL ASSOCIATED WITH PROGRAM .............................................................................150
C. POLICIES .......................................................................................................................................................150
APPENDIX V. COMPUTER SCIENCE PROGRAM ENROLLMENT AND DEGREE DATA....................154

APPENDIX VI. ADMISSION REQUIREMENTS ..............................................................................................157


A. ADMISSION OF STUDENTS .............................................................................................................................157

Booklet 2
ATTACHMENTS DOCUMENT

ATTACHED ASSESSMENT DOCUMENTATION............................................................................................160


I. STUDENT EXIT SURVEYS ........................................................................................................................164
II. ALUMNI ASSESSMENT ............................................................................................................................196
III. MEETING MINUTES AND CORRESPONDANCE..............................................................................201
IV. COURSE ASSESSMENTS........................................................................................................................239

V. 2000 VISIT FINAL STATEMENT

VI. UNIT REVIEW INFORMATION

VII. FACULTY VITAE

VIII. SAMPLE STUDENT TRANSCRIPTS

IX. FACULTY EXPECTATIONS DOCUMENT

Page 3 of 394
C3 CS 12/14/04
INTRODUCTION

The Criteria for Accrediting Computer Science Programs are divided into seven major
Categories, each Criterion containing a statement of Intent and Standards. An intent statement
provides the underlying principles associated with a Criterion. In order for a program to be
accredited, it must meet the intent statement of every Criterion.

Standards provide descriptions of how a program can minimally meet the statements of intent.
The word “must” is used within each standard to convey the expectation that the condition of the
standard will be satisfied in all cases. For a program to meet the intent of a Criterion, it must
either satisfy all the standards associated with that Criterion or demonstrate an alternate approach
to achieving the intent of the Criterion.

For each of the following seven sections, corresponding to each of the seven Categories of the
Criteria, answer all of the questions associated with the standards. If one or more standards are
not satisfied, it is incumbent upon the institution to demonstrate and document clearly and
unequivocally how the intent is met in some alternate fashion.

If you are having more than one program evaluated, particularly if the programs are on separate
campuses, the answers to these questions may vary from one program to another. If this is the
case, please use separate copies of each section for each program, and clearly delineate which
program is being described.

I. Objectives and Assessments

Intent: The program has documented, measurable objectives, including expected outcomes for
graduates. The program regularly assesses its progress against its objectives and used the
results of the assessments to identify program improvements and to modify the program’s
objectives.
Standard I-1. The program must have documented, measurable objectives.
Standard I-2. The program’s objectives must include expected outcomes for graduating students.

A. Objectives

Please attach items that support or precede the measurable objectives, e.g.,
1. Mission statements from institution, college, department, program
2. Plans (institution, college, department, etc.)
3. All objectives including expected outcomes for graduates (itemize)
4. Process for assessments
5. Who is involved in assessment and improvement?
6. Data from assessments
7. Inputs from any supporting Office of Assessment

1. Indicate below or attach to this document the program’s measurable objectives. These
objectives must include expected outcomes for graduates.

Page 4 of 394
C3 CS 12/14/04
The Computer Science B.S. degree is designed to prepare students for employment as software
developers or managers. The program also serves a large number of students who will pursue
graduate degrees in Computer Science or Engineering disciplines. Students from other
disciplines that require computer skills are also served by the program. Courses provide
rigorous theoretical and practical training for students.

The following Department mission statement has been approved by the faculty. The four
numbered objectives below are the BYU institutional objectives. The lettered statements
following each objective are our specific Department goals within the institutional objective.

1. Educate the minds and spirits of students within a learning environment that increases faith
in God and the restored gospel, is intellectually enlarging, is character building, and leads to a
life of learning and service.
a) Teach an appropriate curriculum in a manner that prepares our students to be life-long
learners and to be successful in industrial and academic settings.
b) Through faculty example, teaching, and actions, seek to increase our student’s love of
the Gospel.
c) Create a culture of service in Church, community, and profession.

2. Advance truth and knowledge to enhance the education of students, enrich the quality of
life, and contribute to a resolution of world problems.
a) Accomplish basic and applied research of high quality, influence, visibility, and utility.
b) Integrate students in the research process both to aid the process and to prepare students
to continue to advance truth and knowledge.
c) Develop influential educational approaches and tools which increase the general ability
to teach the principles of our discipline.

3. Extend the blessings of learning to members of the Church in all parts of the world.
a) Where possible, do research which directly supports Church missions.
b) To the extent that resources allow, extend teaching of computing beyond our own
majors.

4. Develop friends for the University and the Church.


a) Participate in basic and applied research of high quality, influence, visibility, and utility.
b) Actively seek relationships with those within our profession.
c) Actively seek relationships with industry, government, and alumni.

Goals:
The goals of the Bachelor of Science program in the Computer Science Department at
Brigham Young University are to have a high quality program that:
1. Prepares students qualified and capable of functioning as professional computer
scientists in the workplace.
2. Prepares students to enter appropriate graduate programs.
3. Prepares students for lifelong learning.
4. Prepares students that are broadly educated to enrich their life experiences.

Objectives:
Page 5 of 394
C3 CS 12/14/04
1. Provide our students with the ability to perform analysis, specification, design and
implementation of quality computer solutions.
2. Develop students with theoretical computer science background and the mathematical and
analytical maturity necessary to allow them to adapt to changing requirements in the job
market, or to enter graduate programs in computer science.
3. Instill within our students the technical, communication, and character skills that will
prepare them for leadership roles.
4. Empower our students with the knowledge and spiritual foundation necessary to make
ethical and responsible choices.

A. Computer Science Outcomes


The following outcomes will be evidence that the department is meeting the stated objectives.
(References are made to the ABET 2002-2003 accreditation requirements
http://www.abet.org/documents/cac/2002-03%20CAC%20Criteria%2012-9-01.pdf)

1. Graduates are able to complete and validate significant programming projects (ABET
IV-5, IV-7)(BYU CS Objectives 1,2)
2. Graduates are proficient in using data structures and understand how to implement
them, when to apply them and the mathematical abstractions associated with those
structures (ABET IV-6)(BYU CS Objectives 1).
3. Graduates are proficient in using common computer algorithms and are able to analyze
the complexity of different algorithms in order to select a practical implementation
(ABET IV-6)(BYU CS Objectives 1).
4. Graduates understand the basic structures of programming languages and are
proficient in at least two programming languages (ABET IV-6)(BYU CS Objectives 1).
5. Graduates understand and can apply the basic techniques of software engineering in
implementing a computing solution (ABET IV-5, IV-7)(BYU CS Objectives 1).
6. Graduates understand and are able to apply basic automata theory (ABET IV-5, IV-
7)(BYU CS Objectives 1,2).
7. Graduates understand the foundations of computer architecture and digital design
(ABET IV-6)(BYU CS Objectives 1).
8. Graduates understand the principles of operating systems and concurrent systems and
are proficient in at least two operating system environments (ABET IV-6)(BYU CS
Objectives 1).
9. Graduates are proficient in discrete mathematics, differential and integral calculus,
probability and statistics (ABET IV-10, IV-11) (BYU CS Objectives 2).
10. Graduates have developed a depth of understanding in at least two advanced
computer science areas (ABET IV-9) (BYU CS Objectives 1).
11. Graduates have the skills necessary to formulate a solution in the abstract, independent
of the implementation. (BYU CS Objective 1).
12. Graduates have practical experience in applying the scientific method to problems in
computer science and other disciplines. (ABET IV-12, IV-13, IV-14) (BYU CS
Objectives 1)
13. Graduates have the ability to persuasively express their ideas orally and in writing
(ABET IV-15, IV-16) (BYU CS Objectives 3).
14. Graduates understand the social and ethical implications of computing and are
Page 6 of 394
C3 CS 12/14/04
prepared to use their computing skills to make a positive impact on society (IV-17)
(BYU CS Objectives 3,4).

142 124 224 235 236 240 252 312 324 330 345 404 4xx
1. Projects X X X X X X X
2. Data Structures X
3. Algorithms X X X X
4. Programming Languages X X X
5. Software Engineering X X
6. Automata Theory X
7. Architecture X X X
8. Operating Systems X X X
9. Mathematics X X X
10. Operating Systems
11. Abstraction X X X
12. Scientific Method X X
13. Writing X X X
14. Ethics X

CS 124
Department Outcome Competencies Measure
7. Architecture Ability to perform Lab 1
computation with Boolean
logic
7. Architecture Ability to translate C Lab 2
programs into assembly
code
7. Architecture Ability to write machine Lab 3
code programs
7. Architecture Ability to define and test
intermediate results when
debugging a C or assembly
program
4. Languages Ability to program in C Lab 4
7. Architecture Ability to program in Lab 5
assembly
7. Architecture Ability to use symbolic Lab 6
debuggers

CS 142
Department Outcome Competencies Measure
Programming Projects Programming fundamentals Programming exam
(types, variables,
expressions, using classes)
Algorithms Control flow (selection, Programming exam
iteration) and arrays
Control abstraction and data Programming exam
Page 7 of 394
C3 CS 12/14/04
Abstraction abstraction (writing
methods and classes)
Languages Implementing interfaces Programming exam
and using inheritance
Programming Projects Reading and writing files Programming exam
and handling exceptions

CS 224
Department Outcome Competencies Measure
7. Architecture Ability to design, minimize, Midterm Exam
and analyze a combinatorial
network
7. Architecture Ability to design and Lab 1
analyze a sequential
network
7. Architecture Ability to design and test a Lab 2
digital system that includes
I/O, state machines and
combinatorial networks
7. Architecture Ability to design major Lab 3
components of a single
microprocessor
7. Architecture Ability to use schematic Lab 4
capture tools

CS 235
Department Outcome Competencies Measure
2. Data Structures Understand the fundamental Scheduler Project
data types of computing and
how to use them to solve
problems
2. Data Structures Learn how to implement the XML Parser Project
fundamental data types of
computing
3. Algorithms Learn basic algorithm Exam Questions
analysis

3. Algorithms Understand how recursion AVL Tree Project


works and how to write
recursive algorithms

Page 8 of 394
C3 CS 12/14/04
3. Algorithms Become familiar with the Exam Questions
fundamental sorting and
searching algorithms

CS 236
Department Outcome Competencies Measure
3. Algorithms Understanding of Simple Parser Lab
Grammars and Parsing
9. Mathematics Ability to use Graphs, Trees and Relational Algebra Optimization
Relations (Relational Algebra) in report
programming
9. Mathematics Understanding of propositional DataLog Lab and Exam
Logic and Predicate Logic
12. Scientific Method Ability to perform Proofs Exam Questions

CS 240
Department Outcome Competencies Measure
1. Programming Projects Learn to design and Project 2
implement large programs
(~3000 lines of code)

4. Languages Learn the C++ Project 2


programming language, and
become comfortable with
separate compilation and
linking of modules
5. Software Engineering Learn basic unit testing and Debugging Exam 2
debugging strategies
4. Languages Learn memory management Project 2
skills

CS 252
Department Outcome Competencies Measure
6. Automata Theory Finite State Automata and Exams
Regular Languages
6. Automata Theory Push Down Automata and Exams
Context Free
11. Abstraction Parsing: LL1 and recursive Exams
descent
6. Automata Theory Turing Machines and Exams
Page 9 of 394
C3 CS 12/14/04
Unrestricted Grammars

9. Mathematics Machine Exams


Complexity/Computability

CS 312
Department Outcome Competencies Measure
3. Algorithms Understand basic tools for Exam Questions
performance analysis: Big
9. Mathematics Theta, Big O, Big Omega,
time and space complexity,

3. Algorithms Understand, design and Greedy Project


implement Greedy
algorithms
3. Algorithms Understand, design and Divide and Conquer Project
implement Divide and
Conquer algorithms

3. Algorithms Understand, design and Dynamic Programming Project


implement Dynamic
Programming algorithms
1. Programming Projects Understand, design and Branch and Bound Project
implement Branch and
3. Algorithms Bound algorithms

12. Scientific Method Compare different Group Project, Proposal, Paper,


algorithmic paradigms and Presentation
13 Communication Skills

CS 324
Department Outcome Competencies Measure
7. Architecture Ability to manipulate the bit Lab 1
level representation of basic
data types
7. Architecture Ability to understand high- Lab 2
level programming
constructs through assembly
code implementation
7. Architecture Ability to describe stack Lab 3
discipline and discuss good
programming practices that

Page 10 of 394
C3 CS 12/14/04
help preserve stack integrity
7. Architecture Ability to describe Lab 4
computer processor
architecture and
implementation techniques
7. Architecture Ability to describe typical Lab 5
memory hierarchy
implementation techniques,
and programming practices
intended to improve system
application performance
7. Architecture Ability to describe the Exam Questions
fundamental differences
between memory mapped
and interrupt driven I/O and
their relative merits
8. Operating Systems Ability to describe virtual Exam Questions
memory, its uses, and
implementation challenges
1. Programming projects Ability to use common All Labs
software tools such as
compilers, disassemblers,
debuggers, etc. to diagnose,
develop, test, and analyze
dependable and efficient
software applications

CS 330
Department Outcome Competencies Measure
Understand the inductive Early Laboratories
4. Languages
structure of a language
Understand general Exams and report
4. Languages
programming language
concepts including
functions, variables,
parameter passing,
conditionals and control
structures, types.
Can perform program Midsemester project
4. Languages
translation
Able to read and write a Later laboratories
4. Languages
language interpreter

Page 11 of 394
C3 CS 12/14/04
CS 345
Department Outcome Competencies Measure
1. Programming Projects Can write a significant file FAT Lab
system
8. Operating Systems Can implement Virtual VM Lab
Memory Systems
8. Operating Systems Can implement Synchronization Lab
Synchronization
8. Operating Systems Understand Operating Final Exam
Systems Concepts

CS 404
Department Outcome Competencies Measure
14. Ethics Students can apply ethical Class Attendance
values to practical problems
13. Communication Skills Students can write Written Assignments
effectively
14. Ethics Students understand the Exam
history of computing and
can apply lessons from the
past to current problems

2. Describe how the program's objectives align with your institution's mission.

In the following reproduction of the Brigham Young University Mission Statement, excerpts
from the foregoing Computer Science Mission Statement have been inserted below in that part
of the University mission statement to which they most closely align. The excerpts are
italicized.

The Brigham Young University Mission Statement

The mission of Brigham Young University--founded, supported, and guided by The Church of
Jesus Christ of Latter-day Saints--is to assist individuals in their quest for perfection and
eternal life. That assistance should provide a period of intensive learning in a stimulating
setting where a commitment to excellence is expected and the full realization of human
potential is pursued.

Page 12 of 394
C3 CS 12/14/04
All instruction, programs, and services at BYU, including a wide variety of extracurricular
experiences, should make their own contribution toward the balanced development of the total
person. Such a broadly prepared individual will not only be capable of meeting personal
challenge and change, but will also bring strength to others in the tasks of home and family
life, social relationships, civic duty, and service to mankind.

To succeed in this mission the University must provide an environment enlightened by living
prophets and sustained by those moral virtues which characterize the life and teachings of the
Son of God. In that environment these four major educational goals should prevail:
• All students at BYU should be taught the truths of the gospel of Jesus Christ. Any
education is inadequate which does not emphasize that His is the only name given
under heaven whereby mankind can be saved. Certainly all relationships within the
BYU community should reflect devout love of God and a loving, genuine concern for
the welfare of our neighbor.
1.b) Through faculty example, teaching, and actions, seek to increase our student’s love of the
Gospel.
• Because the gospel encourages the pursuit of all truth, students at BYU should receive
a broad university education. The arts, letters, and sciences provide the core of such an
education, which will help students think clearly, communicate effectively, understand
important ideas in their own cultural tradition as well as that of others, and establish
clear standards of intellectual integrity.

1.a) Teach an appropriate curriculum in a manner that prepares our students to be life-long
learners and to be successful in industrial and academic settings.
• In addition to a strong general education, students should also receive instruction in the
special fields of their choice. The university cannot provide programs in all possible
areas of professional or vocational work, but in those it does provide the preparation
must be excellent. Students who graduate from BYU should be capable of competing
with the best in their fields.
• Scholarly research and creative endeavor among both faculty and students, including
those in selected graduate programs of real consequence, are essential and will be
encouraged.
2.a) Accomplish basic and applied research of high quality, influence, visibility, and utility.
2.b) Integrate students in the research process both to aid the process and to prepare students
to continue to advance truth and knowledge.
2.c) Develop influential educational approaches and tools which increase the general ability
to teach the principles of our discipline.
In meeting these objectives BYU's faculty, staff, students, and administrators should be
anxious to make their service and scholarship available to The Church of Jesus Christ of
Page 13 of 394
C3 CS 12/14/04
Latter-day Saints in furthering its work worldwide. In an era of limited enrollments, BYU can
continue to expand its influence both by encouraging programs that are central to the Church's
purposes and by making its resources available to the Church when called upon to do so.

1.c) Create a culture of service in Church, community, and profession.


3.a) Where possible, do research which directly supports Church missions.
3.b) To the extent that resources allow, extend teaching of computing beyond our own majors.

We believe the earnest pursuit of this institutional mission can have a strong effect on the
course of higher education and will greatly enlarge Brigham Young University's influence in a
world we wish to improve.

Note: On the following page is a table that can be filled out with pertinent information relating to
objectives, their measurement, and their effect on the implementation of program improvements.

Page 14 of 394
C3 CS 12/14/04
B. Implementation of Objectives

Please complete the following table with as many objectives as needed.


Objective How measured When measured Improvements Improvements
Identified Implemented
1. Provide our Grades in courses When the Feedback from A new course (CS 340)
students with the required in the students take graduating seniors, will be required of
ability to perform curriculum these courses. alumni, and students beginning with
analysis, employers has those who enter the
specification, design Assessment from Faculty submit indicated that our program in Fall 2007.
and implementation faculty members assessments each students need more This class will teach
of quality computer teaching the courses semester design experience. design patterns and will
solutions. provide insights into
Feedback from Yearly feedback industry standard
alumni, seniors and from alumni, software engineering
employers seniors and practices.
employers
2. Develop students Homework and Each time the Senior interviews Discrete math was
with theoretical exams in courses. course is taught and faculty assigned to a separate
computer science assessments course with a better text
background and the Assessment from Faculty submit indicated that the book and laboratory
mathematical and faculty members assessments each mixture of discrete experiences. Data
analytical maturity teaching the courses semester math and data structures were also
necessary to allow structures was not covered in a separate
them to adapt to Feedback from Yearly feedback preparing students to class with more of an
changing alumni, seniors and from alumni, actually use the emphasis on design and
requirements in the employers seniors and theoretical content. program development.
job market, or to employers Students also had
enter graduate inadequate data
programs in structures
computer science. experience.
3. Instill within our Assessment from Faculty submit Alumni and senior A new course was
students the faculty members assessments each feedback indicated introduced to provide
technical, teaching the courses semester that more students with web
communication, and networking skills development skills that
character skills that Feedback from Yearly feedback were necessary for will help them to realize
will prepare them for alumni, seniors and from alumni, students to take leadership positions.
leadership roles. employers seniors and leadership roles.
employers.
4. Empower our CS 404, our required Each time the Students felt that The ethics class was
students with the course on Computer course is taught. they were not given modified to include
knowledge and and Society, has any new material or more computer history
spiritual foundation graded papers, insights into ethics. and examples of real
necessary to make presentations, and world ethical dilemmas.
ethical and exams.
responsible choices.
Page 15 of 394
C3 CS 12/14/04
Standard I-3. Data relative to the objectives must be routinely collected and documented, and
used in program assessments.
Standard I-4. The extent to which each program objective is being met must be periodically
assessed.
Standard I-5. The results of the program’s periodic assessment must be used to help identify
opportunities for program improvement.

C. Assessments

For each instrument used to assess the extent to which each of the objectives is being met by
your program, provide the following information:

1. Frequency and timing of assessments


2. What data are collected (should include information on initial student placement and
subsequent professional development)
3. How data are collected
4. From whom data are collected (should include students and computing professionals)
5. How assessment results are used and by whom

Attach copies of the actual documentation that was generated by your data collection and
assessment process since the last accreditation visit, or for the past three years if this is the first
visit. Include survey instruments, data summaries, analysis results, etc.

Assessment is an ongoing process in the department and is done with varying degrees of
formality. The following are the assessment tools listed approximately in decreasing order of
formality.

1. The Department is reviewed for accreditation every 6 years by ABET. Their report
provides useful data points for the assessment of the Department’s progress toward
objectives.

2. Every five years the Department is reviewed by the University Office of Assessment.
The last assessment was during the 2004/2005 academic year. This is an extensive
review on par with the accreditation review. It includes an Alumni Survey assessing
the quality of the University in general and specific departments. Out of 8265 of the
general alumni surveyed 2965 responded. There were 47 responders out of the 131
surveyed among the Computer Science Department’s alumni. The Department
leadership has thoroughly reviewed the assessment of these alumni regarding the
quality of the Department’s education. (See Attachment II.)

Page 16 of 394
C3 CS 12/14/04
3. The combined Student Evaluation of Teachers and Course Evaluation Report are
compiled from written student responses in each section of each class every semester
and term. These are reviewed by the department chairman and the instructor.

4. The University Office of Assessment compiles performance indicators yearly. These


include data on placement and graduate school acceptance obtained from surveys filled
out by graduates as they pick up their cap and gowns. The performance indicators are
sent to the department where they are reviewed by the chairman and other faculty.

5. Each semester faculty members are asked to turn in a course assessment report where
they state the objectives for the course and how they felt they met them each semester.
Suggestions for upcoming semesters are also solicited. (See Attachment IV.)

6. Each semester graduating seniors are interviewed by faculty members in regard to the
quality of the classes in the curriculum. Students specifically indicate the courses of the
most and least value to them. Students also give a numerical measure of how the
department prepared them in areas of technical and theoretical knowledge. Students are
also required to fill out an information form where they include information such as
technology/languages in which they feel proficient, technology/languages that they
wished they would have learned in the program, and an open area for suggestions about
the department. All of the foregoing information is recorded, graphed, and sent out to
the members of the Undergraduate Curriculum Committee for review. (See Attachment
I.)

7. The BYU CS Department Alumni Association was established seven years ago. This
association has as one if its goals to provide significant assistance to the department
through:

a. Speaking to classes and student groups


b. Arranging for student internships
c. Recruiting and hiring students
d. Participating in the Mentor Program
e. Collecting data and helping describe the contemporary circumstances for up-to-
date case studies
f. Serving as advisors on student projects
g. Participating with faculty in research projects
h. Creating an environment supportive of fundraising projects of the Computer
Science Department
i. Sponsoring scholarships
j. Providing meaningful assessment to the department on curriculum and
administration

Page 17 of 394
C3 CS 12/14/04
The final item on this list is accomplished by occasional emails to the alumni association’s
email list. (See Attachment II.). We get feedback on how to develop our curriculum and how
to better prepare our students for the workforce. Also, as faculty members interact with the
alumni association, we learn much about how we are accomplishing our objectives and what
we might do to improve.

8. We maintain contact with many of our graduates who go to other universities for
graduate school. This is both for recruiting into our own faculty ranks and to learn
whether our program prepares students to succeed in graduate school.

9. The department is organized into committees to focus on how we can assess and
improve various aspects of our department. The committees are: faculty recruiting;
promotion, tenure, and leave; faculty awards; graduate affairs and admissions; PhD
recruiting; colloquia; external funding; computing; external relations; alumni;
undergraduate curriculum; teaching; and student service and socials.

10. Faculty committees who identify a need to make changes bring proposals for changes
before the whole faculty during faculty meeting each month. Department
performance and improvement in general are also regularly discussed during these
monthly meetings.

11. Utah County (the home of BYU) is a hotbed of computer technology companies.
Many have been started by Department graduates and many of them employ
Department graduates. The Department’s faculty members have formal consulting
arrangements with some of these companies. The Department also goes to visit theses
companies to talk about career placement and internship placement for students. The
Department informally solicits suggestions from these affiliates concerning our
graduates and whether we are sufficiently preparing them for the industry. We also
ask how we can better prepare students.

12. Informal faculty discussions about department performance occur daily.

How Assessment Results are Used


Information gathered for assessment is analyzed by the Department Chair and committees in
their respective areas of focus. These committees then discuss the feedback and pose possible
solutions. They vote upon those solutions and bring the favored approach before the faculty
for a vote. There are often contradictions in the feedback received. For example, some
employers feel the Department has too much “theory” in the undergraduate program and not
enough “practical” focus. But others feel the Department has, at best, a modest amount of
formal analysis and that it should not be reduced. The committees take all opinions into
account when they engage in discussion and try to come to a reasonable solution that will
solve assessment concerns.

Page 18 of 394
C3 CS 12/14/04
Standard I-6. The results of the program’s assessments and the actions taken based on the results
must be documented.

D. Program Improvement

Describe your use of the results of the program’s assessments to identify program improvements
and modifications to objectives.
Include:
1. Any major program changes within the last five years
2. Any significant future program improvement plans based upon recent assessments

The curriculum of 324 was changed from following textbook Hennessy and Patterson’s
“Computer Architecture: A Quantitative Approach 2nd Edition” to following “Computer
Systems: A Programmer’s Perspective” by Bryant and O’Hallaron. The latter text takes the
point of view of the system user, or the programmer, rather than the system designer. This
change came after students had expressed confusion at reading the Hennessy and Patterson’s
book. Employers also indicated that they did not feel the content of that book took the right
approach.

The Department decided to separate curriculum on data structures and discrete structures into
courses 235 and 236 respectively. Previous to this time lectures on data structures and
discrete structures were contained in both classes. Senior interviews indicated that students
were confused by having these ideas melded into one course. Employer interviews indicated
that students were not as strong in these areas as they could have been. The faculty believed
that this separation would allow students to more easily digest the concepts.

Due to the changes in classes 235 and 236, there had to be changes to the curriculum in CS
252. The most significant change in this course was offering more hours focused on finite
automata and regular expressions.

The Undergraduate Curriculum Committee noticed a significant amount of students having to


retake 300 and 400-level classes. Many of those students had difficulties because they did not
take the 240 advanced programming prerequisite before entering the course. Because of this
and feedback from senior exit interviews, the curriculum committee decided to make 240 a
gateway into the courses for the rest of the major. This course is enforced more heavily than
other prerequisites because registration for 300 and 400-level courses is blocked to students
who have not completed it. Other prerequisites are not enforced through the University’s
registration system, but students are encouraged to follow them.

A 500-level class on verification and validation was renumbered to 486 because the 500-level
distinction made it sound too intimidating for undergraduates. The course had demonstrable
importance for the undergraduates and this course number change encouraged more
registration. Model checking, which is what the course covers, is an accepted part of the
design flow. The Department felt the class was a good preparation for students who go on to
design processors or protocol. It also gives students an opportunity to see a viable application

Page 19 of 394
C3 CS 12/14/04
of seemingly esoteric theory.

The Department added ECEn 425 as an elective course in order to broaden the range of
subjects that were offered in the elective pool. Senior exit interviews and other forms of
feedback regularly suggested the expansion of the elective course pool.

Because there was a mismatch between the expectations of students who leave 142 and what
actually happens in 235, the Department decided to make the introduction into 235 smoother
by adding more tutorial information to the beginning. These changes were made, for the most
part, after receiving feedback that expressed concern about this transition from senior exit
interviews and semester course assessments.

The curriculum in CS 404 was changed to be more appropriate for the type of students
attending the course. A vast majority of the students in the courses are members of the
Church of Jesus Christ of Latter-day Saints. As such, the course was tailored to help them
appreciate technology and ethics from their sociological context. Sections on the history of
computing were also added as this topic was not covered anywhere else in the curriculum.
Writing workshops were also added to the course in order to sharpen the student's technical
writing abilities.

A modeling and optimization course called CS 412 was also created. There were deficits in
the curriculum such as mastery of top algorithms in linear optimization and fluency in the use
of probabilistic and/or dynamic models. These are useful in areas as diverse as networking,
data communications, AI, and Machine Learning.

CS 405 will be added to the curriculum as an elective course in Fall 2006. C S 405 is
“Software Business” and allows students with aspirations to own or manage a software
business an opportunity to gain skills in management and entrepreneurship. This course came
about from a suggestion that the Department include a business-oriented course in the elective
pool. C S 405 has operated under the 401R course title since Fall 2004.

As the Internet is becoming more of a significant force in the computer industry, the
Department proposed the creation of CS 360, an Internet Programming course that introduces
students to client-server programming, threads and concurrency, web programming, peer-to-
peer networking, and multimedia networking. The course also focuses on providing students
with written and oral communication skills and the ability to perform experiments effectively
and communicate those results to others. The course counts as an optional substitute for core
class 345. It can also count as an elective course. The principle motivation for this course
came from feedback from recruiters and alumni. 360 began in the Winter 2006 semester as a
401R special topics class. It will officially be numbered 360 in Fall 2006 and is proposed to
become a core course Fall 2007.

A bioinformatics emphasis for the major was created in order to serve those students
interested in creating software solutions for biological problems. Students in this emphasis
take most of the core courses in the Computer Science Major as well as several courses in
biology and integrated biology. Senior interviews and alumni feedback indicated that

Page 20 of 394
C3 CS 12/14/04
students need the opportunity to develop more applied computer science skills.

Many graduating seniors expressed concerns that they were not performing strongly in
interviews. Students who had taken the software engineering class CS 428 often reported that
it was the most valuable course they had taken and that it should be required of all students.
They cited many occasions when the material had helped them in getting a job or completing
a project successfully. As a result of this feedback, CS 340 was created as the core software
engineering course beginning Fall 2007. CS 340 will introduce students to the entire process
of designing and implementing a new software solution. The class goes more deeply into
memory management, coding, debugging, design, and testing than the 240 advanced
programming course.

A new CS curricular program was recently proposed which will include CS 340 and CS 360
mentioned above. The program also consolidates what was CS 324 and CS 345: our
advanced hardware and operating systems courses, into one course highlighting the most
relevant curriculum in both areas. These changes to the program was recommended after the
consideration of student and faculty feedback that the program did not prepare students well
enough in skills which most of them will use in their careers: software engineering and
Internet programming.

The CS Minor was recently proposed in order to provide a way for non-majors to get a strong
programming background without going through the rigor of all of the core classes and 400-
level electives. These students will be required to take 9 hours worth of the major’s most
fundamental programming classes. They will then have the option to select two courses
among a few of the other core classes or, with the advisement of the Undergraduate
Coordinator, a 300 or 400-level alternative in order to broaden their computer science
knowledge in an area that is most relevant to them. This minor will provide the department
with an opportunity to serve students in the university who are not CS majors.

E. Program Evolution
1. Describe in what respect, if at all, the philosophy and direction of the computer science
program has changed at your institution during the last five years, or since the last accreditation
visit, whichever is the more recent.

The Department has given greater consideration to building career advisement than ever
before. There has been little or no philosophy change with what fundamental curricular goals
we have. The overriding department philosophy in that area has always been to give our
students a sufficient foundation in programming and development--one that will help them be
competent computer scientists no matter how the technology industry changes. However, we
have tried to prepare student graduates who will be of greater influence in the industry both
through helping them enhance their skill and inspiring them to make better career preparation.

Page 21 of 394
C3 CS 12/14/04
2. Describe any major developments and/or progress made in connection with the program in the
last five years, or since the last accreditation visit, whichever is the more recent, that is not
included in your response to Question I.C.

Course sizes have been reduced significantly through an increased number of faculty
members and the addition of professional faculty members who teach more courses. Smaller
courses have provided the opportunity for faculty members to focus more on individual
students and to improve the quality of skill assessment for all courses.

F. Program Current Status


1. List the strengths of the unit offering the computer science program.

The strengths of the Computer Science Department include the following:

• A committed faculty. Our faculty come from many prestigious schools across the
nation, but their real strength comes from a common commitment to the ideals of BYU
and the desire to put the good of the department before personal ambition. The
camaraderie and interdisciplinary interaction found in the department are unusual and
create a welcoming learning environment for the students.

• Excellent students. At BYU, we are blessed with well-qualified students, with nearly
half of our incoming freshman coming from the top 10% of their high-school classes.
CS students are among the best in the university, largely due to self-selection because
of the challenging nature of the major.

• Quality teaching. Student’s evaluations consistently rate CS courses and instructors in


the “very good” to “excellent” range. This rates slightly below the university in general
(not unexpected for technical disciplines) but higher than our peers in the College of
Physical and Mathematical Sciences. Our faculty are committed to undergraduate
education.

• A rigorous curriculum. Students leave with a strong core of understanding in


theoretical and applied concepts. Perhaps more importantly, they leave with the
confidence to tackle significant projects and the ability to learn new technologies as
they are developed.

• Active research programs. The Computer Science Department has strong funded
research in Graphics, Machine Learning, Data Extraction, and Scientific Computation.
These active research areas integrate undergraduate students into research experiences
that enrich their education. Professors are able to bring insights gained from their
Page 22 of 394
C3 CS 12/14/04
research into the classroom to help students to become excited about the material.

2. List any weaknesses or limitations of the institution or unit offering the computer science
program.

The department’s biggest weakness is large class sizes for 100 and 200-level courses. For
2005 the average 100-level class had 50 students per section and the average 200-level class
had 32 students per section, which is slightly above the recommended class size limit given by
ABET. However, larger class sizes for lower division courses are to be expected since there
are many majors in the University whose students we service at the 100 and 200-level. The
Department has been able to provide teaching assistant support that partially compensates for
the large class size.

Upper-division classes now maintain good student to teacher ratios. In 2005 the average 300-
level course had 19 students and the average 400-level course had 23. These numbers within
the enrollment recommendations suggested by ABET. We have been able to reduce these
section sizes due to a) new faculty positions allocated by the university specifically to address
this problem, and b) a decrease in enrollment over the last few years following the bursting of
the “Internet bubble”. However, employment studies suggest that the demand for CS majors
has returned to levels as high or higher than those several years ago, and our enrollments
usually follow these trends with a lag of 2–3 years. With enrollments expected to return to
normal levels of the next few years, it is essential that we maintain at least the number of
faculty positions we currently have in order to maintain effective section sizes in these upper-
division courses.

3. List any significant plans for future development of the program.

There are a few proposals in place for program development for the upcoming curriculum
evaluation cycle. Foremost is a proposal for a new program core including two new courses:
CS 340, an introduction to software engineering course, and CS 360, an internet programming
course. The program will also include a new CS 345 which is the consolidation of the
Department’s advanced hardware and operating systems courses. The new program will give
students skills that are more valuable in the types of careers the majority of them will be
pursuing.

Page 23 of 394
C3 CS 12/14/04
II. Student Support

Intent: Students can complete the program in a reasonable amount of time. Students have ample
opportunity to interact with their instructors. Students are offered timely guidance and advice
about the program’s requirements and their career alternatives. Students who graduate the
program meet all program requirements.

Standard II-1. Courses must be offered with sufficient frequency for students to complete the
program in a timely manner.

Frequency of Course Offerings

1. List below the course numbers, titles, and semester hours of courses required for the major
that are offered less frequently than once per year.

None

2. Explain how it is determined when they will be offered, e.g., rotation, odd-numbered years,
or whatever.

N/A

3. List below the course numbers, titles, and semester hours of courses allowed for the major but
not required (i.e., either free electives or lists of courses from which students must choose a
certain number), that are offered less frequently than once per year.

None

4.Explain how it is determined when they will be offered, e.g., rotation, odd-numbered years,
or whatever.

N/A
Standard II-2. Computer science courses must be structured to ensure effective interaction
between faculty/teaching assistants and students in lower division courses and between faculty
and students in upper division courses.

B. Interaction with Faculty

1. Describe how you achieve effective interaction between students and faculty or teaching
assistants in lower-division courses, particularly in large sections.

Page 24 of 394
C3 CS 12/14/04
Many of the Department’s courses have mechanisms on their websites to facilitate faculty-
student and TA-student interaction. Among these mechanisms are blogs, announcement
boards, RSS feeds, and discussion groups. Faculty members have office hours every week that
are set aside for student mentoring. They are required to put at least 4-6 hours aside each week
for this purpose. For very large sections, there are help sections held several times a week
conducted by the TA’s where questions regarding the lab assignments are discussed. TAs are
assigned to the laboratories supporting the large undergraduate classes and are available to
assess completed assignments and to answer questions and assist with the use of the laboratory
facilities. This TA coverage is available 14 hours per day in each of the involved laboratories.

2. Describe how you achieve effective interaction between students and faculty in upper-division
courses. Give detailed explanation and/or documentation how you do this for sections with more
than thirty students, if applicable.

Upper-division courses have the same web functions as the lower-level classes. Many of the
courses have blogs, RSS feeds, and discussion boards. Email is the most common medium of
interaction outside of the classroom and office hours. TAs for the upper division courses have
assigned office space and hold regular office hours where they are available for student
consultations. It is rare that an upper-division class has more than 30 students. Because of
this, faculty members are able to devote more one-on-one mentoring to the students during
their office hours.

Standard II-3. Guidance on how to complete the program must be available to all students.

C. Student Guidance

Describe what determines the requirements that a student will follow and how the student is
informed of these requirements.

A student is required to finish the University’s general education requirements and the major
requirements for their program at the time they declare their major. The application for
entrance into degree programs and general student counseling for programs within a specific
college is handled by that college’s advisement center. All of the student’s records and
graduation plan are housed and maintained in the advisement centers and counselors are
available eight hours a day to answer student questions. When a student applies for entrance
to a program they are supplied with a list of the graduation requirements for that particular
program. They are also entered into a database that contains a record of the student’s progress
that they can access at any time through the web. The student may also speak with the
Undergraduate Program Assistant in the Department’s main offices or the Undergraduate
Coordinator concerning their record and requirements for graduation. The Undergraduate
Coordinator, however, generally only sees students on academic probation or those students
who need guidance specifically regarding their career and research pursuits.

Page 25 of 394
C3 CS 12/14/04
Standard II-4. Students must have access to qualified advising when they need to make course
decisions and career choices.

D. Student Advisement

Describe your system of advisement for students on how to complete the program. Indicate how
you ensure that such advisement is available to all students.

The advisement system for students consists of 4 components:

1. The College Advisement Center staffed with 2 full-time and 3 part-time employees.
The full-time staff members are expert in the general education program of the
University and are very familiar with the major requirements for the various
departments in the college. They have a close relationship with the undergraduate
advisors in each of the departments. The part-time staff in the advisement center
handles routine questions and helps the students use the computerized record system to
check the student’s progress in the major.
2. An Undergraduate Program Assistant is available full-time in the department office to
answer student questions on the program and give them advisement on courses and
career preparation.
3. The Undergraduate Coordinator and an Assistant Undergraduate Coordinator (both
faculty members) are available for several hours a day to advise students on the program
and their student academic records. Students who are on academic probation, who want
to receive transfer credit, or who want to test out of courses may visit either of these
coordinators to have their situations addressed.
4. Individual faculty members have the responsibility to meet with and counsel students as
the students seek out their counsel.
5. The computerized advisement system available on the web tracks a student’s progress in
their selected major provides a constant and current record of a student’s academic
transcript.

E. Access to Qualified Advising

When students need to make course decisions and career choices, what is their procedure for
obtaining advising? Do they have adequate access to qualified professionals when necessary?

Students with questions on their academic record or major applications are instructed to visit the
College Advisement Center with their questions. Students with questions on major
requirements or career choices may go to the Computer Science Department offices to speak
with the Undergraduate Program Assistant or either of the Undergraduate Coordinators. Each
of these individuals is very familiar with major requirements. The Undergraduate Coordinators
and the Undergraduate Program Assistant regularly attend Undergraduate Curriculum
Committee meetings where curriculum issues are discussed. The Advisement Center is briefed
on these discussions when necessary. The Undergraduate Coordinators and the Undergraduate
Page 26 of 394
C3 CS 12/14/04
Program Assistant are expected to be updated on the industry and to understand what
occupations are available to students after they graduate. Interaction with alumni and industry
associates facilitates this education. A summary of career and program advisement information
is also available on the department web page.

Standard II-5. There must be established standards and procedures to ensure that graduates meet
the requirements of the program.

F. Meeting the Requirements


Describe your standards and procedures for ensuring that graduates have met all of the
requirements of the program.

The University student record system continuously tracks a student’s progress toward the
completion of a selected degree program. A student must apply for graduation at the beginning
of the semester that they plan to graduate. When their application is submitted, it goes to the
College Advisement Center where the student’s individual record is checked to ensure that all
of the requirements have been met or will be met by the end of the semester. The College
Advisement Center signs off on the completion check and then the application goes to the
University Student Records Office where another check is made on the completion of the
requirements. Only when the certification of the completion of requirements by the two offices
and the meeting of any other obligations the student has incurred while at the university is met,
is the student cleared for graduation. There is one more check at the end of the student’s last
semester when the grades are issued. The student must do satisfactory work in all the courses
that were needed for graduation during the student’s final semester to complete the qualification
for graduation.

Page 27 of 394
C3 CS 12/14/04
III. Faculty

Intent: Faculty members are current and active in the discipline and have the necessary
technical breadth and depth to support a modern computer science program. There are enough
faculty members to provide continuity and stability, to cover the curriculum reasonably, and to
allow an appropriate mix of teaching and scholarly activity.

If different programs have different faculty members, please identify which faculty members are
associated with which program(s), and the percentage of time allotted, if they are associated with
more than one.

Standard III-1. There must be enough full-time faculty members with primary commitment to the
program to provide continuity and stability.

A. Faculty Size

The purpose of this section is to determine whether you have sufficient faculty to offer courses
often enough for students to complete the program in a timely manner.

In Section II you gave the course numbers of courses required for the major which are offered
less frequently than once per year, and those allowed for the major but not required, and
explained how it is determined when they will be offered. Explain (if applicable) any difficulties
you have offering required or optional courses frequently enough, particularly as they might be
affected by faculty size.

Standard teaching loads in our department range from 4 sections/year for faculty actively
engaged in research to 10 sections/year for faculty engaged primarily in teaching. Further
reductions in teaching load are also made as appropriate for additional administrative
responsibilities. (See Attachment VI.)

Current available teaching units are as follows:

Department Chair 1 section/year


Associate Dean 1 section/year
3 faculty 3 sections/year
18 faculty 4 sections/year
5 faculty 9 sections/year on average

Total 128 sections/year

Our normal course offerings are as follows:

CS 100 10 sections
124 2 sections (partnered with ECEN)
142 10 sections
224 0 sections (partnered by ECEN)

Page 28 of 394
C3 CS 12/14/04
235 10 sections
236 8 sections
240 7 sections
252 7 sections
312 7 sections
324 2 sections (partnered with ECEN)
330 7 sections
345 7 sections
404 2 sections
Electives 33 sections
Graduate 22 courses

Total courses/year 134 sections/year

B. Faculty with Primary Commitment

1. Indicate the number of faculty with primary commitment to the program, that is, who regularly
teach courses in the computer science segment of the program: __28___.

The purpose of the next question is to ascertain the continuity and stability provided by the
faculty with primary commitment to the program.

2. Please list below the number (FTE) of faculty with primary commitment to the program in
each academic rank, broken down within rank by tenure status.

Full Associate Assistant Instructor or Other


Professor Professor Professor Lecturer Faculty
Tenured 9 7
Untenured 4 8

Standard III-2. Full-time faculty members must oversee all course work.
Standard III-3. Full-time faculty members must cover most of the total classroom instruction.

C. Faculty Oversight

Full-time faculty must oversee all computer science course work allowed towards the major.
That means each course must be either taught or coordinated by a full-time faculty member with
primary commitment to the program. For those courses with sections not taught by full-time
faculty during the last or current academic year, list the course numbers below and the name of
the full-time faculty coordinator. (The last academic year is the academic year prior to the year in
which this report is prepared.)

Dept Course # Full-time Faculty Coordinator


Page 29 of 394
C3 CS 12/14/04
CS 100 Bill Barrett
CS 124 Paul Roper
CS 142 Roburt Burton
CS 224 Mark Poret
CS 235 Cory Barker
CS 236 David Embley
CS 240 Ken Rodham
CS 252 Michael Goodrich
CS 312 Eric Mercer
CS 324 Eric Mercer
CS 330 Bryan Morse
CS 345 Paul Roper
CS 404 Charles Knutson
CS 405 Bryan Morse
CS 412 Sean Warnick
CS 428 Charles Knutson
CS 431 Cory Barker
CS 450 Bryan Morse
CS 452 David Embley
CS 455 Parris Egbert
CS 456 Dan Olsen
CS 460 Daniel Zappala
CS 462 Phillip Windley
CS 465 Kent Seamons
CS 470 Michael Goodrich
CS 478 Christophe Giraud-Carrier
CS 486 Eric Mercer
CS 557 Thomas Sederberg
CS 579 Irene Geary
CS 611 Michael Jones
CS 650 Bill Barrett
CS 651 David Embley
CS 652 David Embley
CS 653 Dennis Ng
CS 655 Parris Egbert
CS 656 Dan Olsen
CS 660 Daniel Zappala
CS 665 Kent Seamons
CS 670 Michael Goodrich
CS 674 Dan Ventura
CS 677 Kevin Seppi
CS 678 Dan Ventura
CS 684 Quinn Snell
CS 686 Michael Jones
CS 750 Bill Barrett
Page 30 of 394
C3 CS 12/14/04
CS 751R David Embley
CS 786R Michael Jones

Standard III-4. The interests and qualifications of the faculty members must be sufficient to teach
the courses and to plan and modify the courses and curriculum.
Standard III-5. All faculty members must remain current in the discipline.
Standard III-6. All faculty members must have a level of competence that would normally be
obtained through graduate work in computer science.
Standard III-7. Some full-time faculty members must have a PhD in Computer Science.

D. Interests, Qualifications, and Scholarly Contributions

The Criteria states that the interests, qualifications, and scholarly contributions of the faculty
must be sufficient to teach the courses, plan and modify the courses and curriculum, and to
remain abreast of current developments in computer science. This information should be
contained in the faculty vitas attached to this report and need not be repeated here. A sample vita
questionnaire is attached in Section G below. Although it is not necessary to follow this format,
it is important that whatever format is followed contain all the information asked for. And, to
make things easier for the visiting team, please see that all faculty vitas are in the same format,
whichever format is used.

This is an appropriate place to insert a description of general departmental or institutional


activities that promote faculty currency, if such exist.

All faculty are expected to stay current in their areas, and evidence of staying current is part of
the review process. Professorial faculty are expected to demonstrate currency in their
respective areas through peer-reviewed published research. Professional faculty are expected
to stay current through outside involvement such as consulting, involvement with open-source
initiatives, etc.

To assist with staying current, the department funds approximately two trips per year for
faculty to attend conferences and workshops. It also funds membership in national computing
organizations such as ACM, IEEE, and the IEEE Computer Society as well as subscriptions to
relevant journals and other publications. A weekly colloquium series where the department
hosts outside researchers also helps faculty and students stay current. Faculty may also pursue
funded sabbaticals as a means to engage more deeply with current research or practice.

Standard III-8. All full-time faculty members must have sufficient time for scholarly activities
and professional development.

E. Scholarly Activities

Describe the means for ensuring that all full-time faculty members have sufficient time for
scholarly activities and professional development.

Page 31 of 394
C3 CS 12/14/04
The majority of our faculty are actively engaged in scholarly research and have a normal
teaching load of 4 sections/year, giving them time to balance their teaching, service, and
scholarly activities. Faculty who are responsible primarily for teaching naturally carry heavier
teaching loads (up to 10 sections/year) but are still given up to one day per week for scholarly
or professional activities, outside involvement, or professional development. Further
reductions in teaching load are also made as appropriate for additional administrative
responsibilities, curriculum development or other service so that these faculty still have time
for scholarly activities. Administrative positions are rotated every few years so as to not keep
a faculty member from being active in their area of academic research for too long.

Standard III-9. Advising duties must be a recognized part of faculty members’ workloads.

F. Support for Advising

Advising duties must be a recognized part of faculty members’ workloads, which means that
faculty with large numbersof advisees must be granted released time. Explain your advising
system and how the time for these duties is credited.

The advisement system for students consists of 3 components:


1. College Advisement Center. The full- and part-time staff members in the College
Advisement Center are expert in the general education program of the University and
are very familiar with the major requirements for the various departments in the
college. They have a close relationship with the undergraduate advisors in each of the
departments. The part-time staff in the advisement center handles routine questions
and helps the students use the computerized record system to check their progress in
the major.
2. Department Administrative Advisement. The Department provides advisement from
the Undergraduate Program Assistant and the Undergraduate Coordinators about
program requirements, transfers, academic probation, career options, and career
preparation. These individuals all have access to the student’s academic records in the
University system. The Undergraduate Coordinators are both senior faculty members
who have a thorough knowledge of the college’s administrative processes and the
industry. The Undergraduate Program Assistant is also familiar with the administrative
procedures in the college and university and stays abreast of industry trends. The
Undergraduate Program Assistant is a full time position with primary responsibility for
undergraduate advisement. The Undergraduate Advisor is given course load reduction
to handle the advisement load.
3. All faculty members are available to counsel a student in the expectations of the major
and to provide information about a career in the field. They hold office hours each
week in which to meet one-on-one with students. They are particularly accountable to
students in their courses.

G. Information Regarding Faculty Members

(See Attachment VII. For Faculty Vitae)


Page 32 of 394
C3 CS 12/14/04
IV. Curriculum

Intent: The curriculum is consistent with the program's documented objectives. It combines
technical requirements with general education requirements and electives to prepare students
for a professional career in the computer field, for further study in computer science, and for
functioning in modern society. The technical requirements include up-to-date coverage of basic
and advanced topics in computer science as well as an emphasis on science and mathematics.

(Curriculum standards are specified in terms of semester hours of study. Thirty semester hours
generally constitutes one year of full-time study and is equivalent to 45 quarter-hours. A course
or a specific part of a course can only be applied toward one standard.)

A. Title of Degree Program

Give the title of the degree program under review, as specified on the transcript and diploma.

Transcript: BS Computer Science


Diploma: BS Computer Science

B. Credit Hour Definition

One semester hour normally means one hour of lecture or three hours of laboratory per week.
One academic year normally represents from twenty-eight to thirty weeks of classes, exclusive of
final examinations. Please describe below if your definitions differ from these.

No differences

C. Prerequisite Flow Chart

Attach a flow chart showing the prerequisite structure of computer science courses required or
allowed towards the major.

Page 33 of 394
C3 CS 12/14/04
Page 34 of 394
C3 CS 12/14/04
D. Course Requirements of Curriculum (term by term and year by year)

1. Required and elective courses. In the tables on the following pages, list the courses in the
order in which they are normally taken in the curriculum, classified in the appropriate categories.
The data should clearly indicate how the program meets the Intent of the Curriculum Category of
the Criteria for Accrediting Computer Science Programs. These tables are designed for a
semester calendar; they may be easily altered for a quarter calendar.

2. Required courses. List courses by department abbreviation (Math, Chem, CS, etc.), number,
title, and number of semester hours. Apportion the semester hours for each course by category.

3. Elective courses. Designate these courses “elective.” If an elective is restricted to a particular


category, then tabulate the semester hours in that category and indicate the category in the
listing, e.g. “elective—science.” In addition, be sure that you have supplied information
elsewhere in this document indicating how you ensure that students take the course in the
specified category (e. g. advisement, graduation check sheets, etc.). For free electives (i.e., those
not restricted to a particular category), list the semester hours under the heading “Other.” Use
footnotes for any listings that require further elaboration.

4. Individual courses may be split between or among curriculum areas if the course content
justifies the split. For example, a discrete mathematics course may have some of its semester
hours under mathematics and some under computer science. In such cases, assign semester hours
to categories in multiples of one-half semester hour.

Course work for the BS degree


100 through 300-level courses and 404 are considered a part of the CS core required for all
students. 400-level classes, with the exception of 404, are considered part of the pool of
electives.
Core Courses
Complete the Following Courses

Classes Course Title Semester Hours


124 Introduction to Computer Systems 3
142 Introduction to Computer Programming 3
224 Fundamentals of Digital Systems 3
235 Data Structures and Algorithms 3
236 Discrete Structures 3
240 Advanced Programming Concepts 3
252 Introduction to Computational Theory 3
312 Algorithm Analysis 3
324 Computer System Architecture 3
330 Concepts of Programming Languages 3
345 Operating Systems Design 3
404 Ethics and Computers in Society 2

Required CS Courses total 35 semester hours

Page 35 of 394
C3 CS 12/14/04
Elective Courses
Complete 5 from the following courses. Take only one 500-level elective.

Classes Course Title Semester Hours


401R Topics in Computer Science 3
412 Modeling and Optimization 3
428 Software Engineering 3
429 Software Testing 3
431 Algorithmic Languages and Compilers 3
450 Intro to Digital Signal & Image Processing 3
452 Database Modeling Concepts 3
455 Computer Graphics 3
456 Intro to User Interface Software 3
460 Computer Communications & Networking 3
462 Large-Scale Distributed System Design 3
465 Computer Security 3
470 Introduction to Artificial Intelligence 3
478 Intro to Neural Networks & Machine Learning 3
486 Verification and Validation 3
501R Advanced Topics in Computer Science 3
557 Computer-Aided Geometric Design 3
579 Natural Language Processing 3
598R Special Projects 3
EC En 425 Real-Time Operating Systems 3

Elective CS courses total 15 semester hours

Required Math and Statistics Courses


Complete all of the following.

Classes Course Title Semester Hours


Math 112 Calculus 1 4
Math 113 Calculus 2 4
Math 343 Elementary Linear Algebra 3
Stat 321 Elements of Mathematical Statistics 3
CS 236 Discrete Structures 3

Math and Stat hours required 17 semester hours

Page 36 of 394
C3 CS 12/14/04
Required Science courses
Complete all of the following.

Classes Course Title Semester Hours


Phscs 121 Principles of Physics 1 3
Phscs 220 Principles of Physics 3 3

Elective Science courses


Complete 2 of the following.

Classes Course Title Semester Hours


Biol 100 Principles of Biology 3
Biol 220 Biodiversity 2
Chem 105 General College Chemistry 4
Chem 106 General College Chemistry 3
Geol 111 Physical Geology 4
Geol 330 Geology for Engineers 3
InBio 341 Animal Diversity 3
Phscs 123 Principles of Physics 2 3
Phscs 222 Modern Physics 3

Required and elective science hours totals 12-14 semester hours

Additional required courses

Classes Course Title Semester Hours


Engl 316 Technical Writing 3

Required general education and religion in addition to major requirements: 34 hours

TOTAL HOURS REQUIRED BY CS MAJOR AND GENERAL ED 116 HOURS

University total hours required for graduation 120 Hours

Page 37 of 394
C3 CS 12/14/04
Course Requirements of Curriculum (term by term and year by year)

Category (semester hours)

Mathematics
Advanced.

Education
Computer

Computer

General
Science

Science

Science

Other
Core
Year Course
Semester (Dept., Number, Title)
CS 142- Introduction to Programming 3
First English 115-Freshman English 3
Semester Math 112- Calculus 1 4
Freshman Religion Elective 2
Year Science Elective 3

CS 124-Intro to Computer Systems 3


Second CS 235-Data Structures and Algorithms 3
Semester Math 113- Calculus 2 4
Freshman American Heritage 3
Year Religion Elective 2

CS 224-Fund of Digital Systems 3


First CS 236-Discrete Structures 3
Semester Civilization 1 3
Sophomore Phscs 121 3
Year Religion Elective 2

CS 240-Advanced Programming Concepts 3


Second CS 252-Intro to Computational Theory 2 1
Semester Math 343- Linear Algebra 3
Sophomore Stat 321- Principles of Statistics 3
Year Religion Elective 2
General Elective 1
TOTALS 17 - 18 6 18 -

Page 38 of 394
C3 CS 12/14/04
Category (semester hours)

Mathematics
Advanced.

Education
Computer

Computer

General
Science

Science

Science

Other
Core
Year Course
Semester (Dept., Number, Title)
CS 312-Algorithm Analysis 3
First CS 324-Computer Systems Architecture 3
Semester CS 330-Programming Languages 3
Junior Engl 316-Technical Writing 3
Year Religion Elective 2
General Elective 2
CS 345-Operating Systems Design 3
Second CS 404-Ethics and Computers in Society 2
Semester Computer Science Elective 3
Junior HEPE 129 2
Year Phscs 220 3
Religion Elective 2
Computer Science Elective 3
First Computer Science Elective 3
Semester Science Elective 3
Senior Arts & Letters Elective 3
Year Religion Elective 2

Computer Science Elective 3


Second Computer Science Elective 3
Semester Civilization 2 3
Senior Global and Cultural Awareness Elective 3
Year Social & Behavioral Science Elective 3

TOTALS 6 21 - 6 25 2

Page 39 of 394
C3 CS 12/14/04
General
Standard IV-1. The curriculum must include at least 40 semester hours of up-to-date study in
computer science topics.

1. If it is not obvious from the above tables that the curriculum includes at least 40 semester
hours (60 quarter hours) of computer science topics, please explain.

The tables show 44 semester hours of computer science courses.

Standard IV-2. The curriculum must contain at least 30 semester hours of study in mathematics
and science as specified below under Mathematics and Science.

2. If it is not obvious from the above tables that the curriculum includes at least 30 semester
hours (45 quarter hours) of study in mathematics and science, please explain.

Tables show 30 semester hours of math and science courses. (Math 112-4, Math 113-4, CS
236-3, CS 252-1, Math 343-3, Stat 321-3, Science Electives-6, Physcs 121-3, Physcs 220-3)

Standard IV-3. The curriculum must include at least 30 semester hours of study in humanities,
social sciences, arts and other disciplines that serve to broaden the background of the student.

3. If it is not obvious from the above tables that the curriculum includes at least 30 semester
hours (45 quarter hours) of study in humanities, social sciences, arts, and other disciplines
that serve to broaden the background of the student, please explain.

Tables show 43 semester hours of GE courses including humanities, social sciences, arts and
other disciplines.

Standard IV-4. The curriculum must be consistent with the documented objectives of the
program.

Describe the consistency between the documented objectives of the program and the curriculum.
How does the curriculum contribute to the achievement of the documented objectives?

Objective #1- Provide our students with the ability to perform analysis, specification,
design and implementation of quality computer solutions.

CS 240 introduces students to the type of large-scale programming they can anticipate
doing in industry. Our elective courses build on that fundamental large-scale
Page 40 of 394
C3 CS 12/14/04
programming knowledge by applying it to specific areas like software development,
graphics, computer security, user interfaces, and others.

Objective #2- Develop students with theoretical computer science background and the
mathematical and analytical maturity necessary to allow them to adapt to changing
requirements in the job market, or to enter graduate programs in computer science.

In the first two to three years of the program, students are provided with the
fundamental and theoretical knowledge of computer science that acts as a foundation to
the real-world concepts that they will learn in their elective courses. CS 252 and 312
are courses that focus on this theoretical background. The introductory courses 142,
235, and 236 provide students with practical experience in implementing algorithms.

Objective #3- Instill within our students the technical, communication, and character skills
that will prepare them for leadership roles.
Students are given a strong background in mathematics through calculus courses, a
general statistics course, and a linear algebra course. The bridge between their
knowledge of mathematics and programming concepts is built in CS 236 where
students learn discrete mathematics. Advanced courses provide experience in leading
research topics that will allow students to accept leadership responsibilities.

Objective #4- Empower our students with the knowledge and spiritual foundation
necessary to make ethical and responsible choices.

CS 404 is a two credit hour class that introduces students to the ethical implications of
having computers and technology in society. They are taught from a religious
standpoint to demonstrate high levels of personal integrity as individuals who work
with technology. Spiritual and ethical concepts are integrated into many of the
advanced courses.

Computer Science

Standard IV-5. All students must take a broad-based core of fundamental computer science
material consisting of at least 16 semester hours.

4. If it is not obvious from the above tables that the curriculum includes a broad-based core of
fundamental computer science material consisting of at least 16 semester hours (24 quarter
hours), please explain.

Page 41 of 394
C3 CS 12/14/04
The tables show 26 hours of core material in computer science. (124-3, 142-3, 224-3, 235-3,
236-2, 240-3, 252-3, 312-3, 330-3)

Standard IV-6. The core materials must provide basic coverage of algorithms, data structures,
software design, concepts of programming languages and computer organization and
architecture.

5. The core materials must provide basic coverage of the following five areas. Please indicate
below the approximate number of semester hours in the core devoted to each topic. (This
material can be gathered from your course descriptions, but it will ease the job for the
visiting team if you do this in advance.)

Area Semester hours Area Semester hours


Algorithms 3 hours (312) Data structures 3 hours (235)
Software 6 hours (142, 240) Concepts of 3 hours (330)
Design Programming Languages
Computer 9 hours (124, 224)
Organization
and
Architecture

Standard IV-7. Theoretical foundations, problem analysis, and solution design must be stressed
within the program’s core materials.

6. The following areas must be stressed within the program’s core materials. Indicate the course
numbers of courses embodying a significant portion of these areas.

Area Courses (Dept., Number)


Theoretical Foundations CS 252, CS 312, CS 330
Problem Analysis CS 236, CS 240, CS 312
Solution Design CS 142, 235, CS 240, CS 312

Standard IV-8. Students must be exposed to a variety of programming languages and systems
and must become proficient in at least one higher-level language.

7. To what programming languages and operating systems are students exposed?

Languages: Java, C, C++, Scheme (optionally Python, PHP, C#, and Ruby)

Operating Systems: Windows, UNIX (Linux)

Page 42 of 394
C3 CS 12/14/04
8. In what higher-level language(s) do students become proficient?

Java, C++

Standard IV-9. All students must take at least 16 semester hours of advanced course work in
computer science that provides breadth and builds on the core to provide depth.

9. If it is not obvious from the tables above that students take at least 16 semester hours (24
quarter hours) of advanced computer science, please explain.

The tables show 21 hours of advanced computer science topics (324, 345, 5 electives)

10. List below the advanced areas in which your students may study. Make clear by the use of
“and”, “or”, and parentheses which areas are required and which may be chosen from (e. g., A
and two of (B or C or D)).

There are no formal tracks for specialization within the major. Our BS degree is primarily
meant to give students a broad background for further study. However, students may, if they
choose, select electives in such a way as to take four or five courses in one of the following
areas: Graphics and Image Processing, Systems and Networking, Application Development,
Artificial Intelligence and Machine Learning, or Verification and Software Engineering.

Graphics & Image Processing:


Background – 431, 460, 478
Specialty – 450, 455, 456, 557
Systems/Networking:
Background – 428, 450
Specialty – 431, 460, 462, 465
Application Development:
Background – 431
Specialty – 428, 452, 456, 462
Artificial Intel. / Machine Learning:
Background – 431, 450, 460
Specialty – 470, 478, 486
Verification / Software Engineering:
Background – 431, 456, 478
Specialty – 428, 452, 486

Page 43 of 394
C3 CS 12/14/04
Mathematics and Science

Standard IV-10. The curriculum must include at least 15 semester hours of mathematics.

11. If it is not obvious from the tables above that students take at least 15 semester hours (23
quarter hours) of mathematics beyond pre-calculus, please explain.

As the table indicates, there are 15 semester hours of math in the program (Math 112-4, Math
113-4, CS 236-1, Math 343-3, Stat 321-3 =15

Standard IV-11. Course work in mathematics must include discrete mathematics, differential and
integral calculus, and probability and statistics.

12. If it is not obvious from course titles in the above tables, then explain below which required
courses contain discrete mathematics, differential and integral calculus, and probability and
statistics.

Discrete mathematics is taught in CS 236. Differential and integral calculus is taught in Math
112 and 113. Linear algebra concepts are taught in Math 343, and probability and statistics is
taught in Stat 321.

Standard IV-12. The curriculum must include at least 12 semester hours of science.

13. If it is not obvious from the tables above that students take at least 12 semester hours (18
quarter hours) of science, please explain.

As the table indicates, there are 12 semester hours of science required. (Physics 121-3, Physics
220-3, 2-science electives – 6)

Standard IV-13. Course work in science must include the equivalent of a two-semester sequence
in a laboratory science for science or engineering majors.

14. If it is not obvious from the tables above and from course descriptions and/or your catalog
that the science requirement includes a full year (two-semester or three-quarter) sequence in
a laboratory science for science and engineering majors, please explain.

Phscs 121 and Phscs 220 are a two semester sequence in a laboratory science for science or
engineering majors. The science electives include Phscs 123, Phscs 222, Chemistry 105,
Chemistry 106, Biol 220, InBio 341 and Geology 111 which are all courses for science or

Page 44 of 394
C3 CS 12/14/04
engineering majors.

Standard IV-14. Science course work additional to that specified in Standard IV-13 must be in
science courses or courses that enhance the student's ability to apply the scientific method.

Additional Areas of Study

15. If it is not obvious from the tables above and from course descriptions and/or your catalog
that the remainder of the science requirement is met with science courses or courses that enhance
the student’s abilities in the application of the scientific method, please explain. (Mathematics,
statistics, and courses normally considered part of the computer science discipline should not be
included here).

The two science electives enhance the student’s abilities in the application of the scientific
method.

Standard IV-15. The oral communications skills of the student must be developed and applied in
the program.
Standard IV-16. The written communications skills of the student must be developed and applied
in the program.

16. Each student’s oral and written communications skills must be developed and applied in the
program, i.e., in courses required for the major. This information should be included in
course descriptions; please give course numbers below.

Communications skills Developed in Applied in


Oral CS 404-Ethics and Computers CS 404-Ethics and Computers
in Society in Society
Written Engl 316-Technical Writing CS 404-Ethics and Computers
in Society

Standard IV-17. There must be sufficient coverage of social and ethical implications of
computing to give students an understanding of a broad range of issues in this area.

17. Social and ethical implications of computing must be covered in the program. This
information should be included in course descriptions; please give course numbers below.

Covered in Course(s) (Dept., Number)


Social and Ethical Implications CS 404-Ethics and Computers in Society

E. Course Descriptions
Page 45 of 394
C3 CS 12/14/04
COURSE DESCRIPTION

Dept., Number: CS 124 Course Title: Introduction to Computer Systems


Semester Hours: 3 Course Coordinator: Paul Roper
URL (if any): http://students.cs.byu.edu/~cs124ta/

Current Catalog Description


How a computer works, from hardware to high-level programming. Logic circuits, computer
instructions, assembly language, binary arithmetic, C programming, program translation, data
structures, and algorithm analysis.

Textbook
The text for the course is “Introduction to Computing Systems from Bits & Gates to C &
Beyond”, 2nd edition by Yale N. Patt and Sanjay J. Patel.

References
“The C Programming Language”, Second Edition. by Brian W. Kernighan and Dennis M.
Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8

Course Goals
1. Ability to perform computation with Boolean logic
2. Ability to translate C programs into assembly code
3. Ability to write machine code programs
4. Ability to define and test intermediate results when debugging a C or assembly program
5. Ability to program in C
6. Ability to program in assembly
7. Ability to use symbolic debuggers

Prerequisites by Topic
Concurrent registration or previous completion of CS 142.

Major Topics Covered in the Course


This class is designed as a first introduction to computer systems. The student should gain a new
appreciation of the power of abstraction through this course. Modern computing is only possible
with complexity management through abstraction. At the end of the course, the student should
have a basic understanding of:
• Boolean algebra and binary number representation
• Logic gates, storage functions, and their transistor implementations
• Arithmetic and logical operations on binary numbers
• Simple computer architecture
• Computer operations and instructions
• Input-Output (I/O)
• Subroutine linkage and stacks
• Assembly language
Page 46 of 394
C3 CS 12/14/04
• C syntax and basic programming
• Basic data structures
• Recursion

Laboratory projects (specify number of weeks on each)


The following labs begin after the 3rd week of class and one is due each week.
• Lab 1: Micro-architecture Simulator (4%)
• Lab 2: Machine Code (2%)
• Lab 3: Secret Decoder (4%)
• Lab 4: Conversions and Logic Operations (4%)
• Lab 5: Taxes (4%)
• Lab 6: Nim (4%)
• Lab 7: C Calculator (4%)
• Lab 8: LC-3 Simulator, Part I (4%)
• Lab 9: LC-3 Simulator, Part II (5%)
• Lab 10: Mancala (5%)

Estimate Curriculum Category Content (Semester hours)


The focus is on computer organization, not the art of programming. The goal is to understand the
inner workings of a modern computer from binary number representation to how a C program is
compiled, linked, and executed. Lecture material is divided as follows:
• The transistor, logic gates, latches, logic structures, (MUX, decoder, full adder, and gated
latches), culminating in an implementation of memory. (4 lectures)
• Finite state control, its implementation as a sequential circuit, the von Neumann model of
execution, a simple computer (the LC-3), machine language and assembly language
programming. (4 lectures)
• Programming methodology, system calls, subroutines, and stacks. (4 lectures)
• Introduction to C, variables and operators, control structures, and functions. (4 lectures)
• C pointers and arrays. (3 lectures)
• I/O, testing, and debugging. (3 lectures)
• Recursion, elementary data structures. (4 lectures)

Area Core Advanced Area Core Advanced


Algorithms Data Structures
Software Design Prog. Languages
Comp. Arch. 3

Oral and Written Communications


Each student is required to submit 10 written laboratory reports of typically 1 page.
No oral presentations.

In addition to passing off an assignment with a TA, every student is required to submit each lab
assignment via electronic submission before any grade can be awarded. Labs are examined for
technical content, documentation and programming style, and accuracy.
Homework is peer graded and submitted during class time.
Page 47 of 394
C3 CS 12/14/04
Social and Ethical Issues

Approximately 5-10 minutes is spent every class period discussing topics of Honor Code, future
of computing, ubiquitousness of computing, and other related topics. We begin with a relevant
thought and a brain-teaser puzzle.

The Honor Code is discussed often and includes a statement of standards regarding academic
honesty. Academic honesty includes completing your own homework, labs, midterms, and
final. Students may work together to help each other understand material, but should always
turn in their own work. Examples of academic dishonesty include sharing code for labs with
other students, turning in someone else's writing as your own report, and cheating on an exam.
Any violation of academic honesty standards will result in failing the class. All violations of
academic honesty are documented and reported to the Honor Code office.

Grades will be based on lab assignments (40%), homework (20%), and four exams (40%).

Theoretical Content
• Finite state control, its implementation as a sequential circuit, the von Neumann model of
execution, a simple computer (the LC-3), machine language and assembly language
programming. (4 lectures)
• Programming methodology, system calls, subroutines, and stacks. (4 lectures)
• I/O, testing, and debugging. (3 lectures)
• Recursion, elementary data structures. (4 lectures)

Problem Analysis
CS 124 is a "hands on" course with lab assignments needing to be passed off by TAs. There are
ten computer lab assignments designed to emphasize topics discussed in class. The lab
assignments explore programming at various abstraction levels in the computer system.

Solution Design

Lab 0 - Setup
Goals
• Choose a development environment.
• Setup a user account.
• Install and execute the LC-3 micro-architecture simulator.
• Install and execute the LC-3 assembler.
• Install and execute the LC-3 simulator.
Page 48 of 394
C3 CS 12/14/04
• Install and execute a C compiler.
• Create and execute a makefile.
• Practice using an editor of choice.

Page 49 of 394
C3 CS 12/14/04
CS 142 Course Coordinator: Robert Burton

Credit Hours: 3

Current Catalogue Description: Introduction to object-oriented program design and development.


Principles of algorithm formulation and implementation.

Textbook: “Java Software Solutions, Foundations of Program design” by Lewis and Loftus

Prerequisite: A knowledge of algebra

CS 142 Objectives and Topics

Objectives:

1. Primary objective: (90% of the course): Teach students “the nuts and bolts” of programming.
a. Help students understand the rudiments of the environment and the resources available to
help them program (editors, basic computer architecture, compilers, libraries, reference
manuals, online help.)
b. Thoroughly train students to understand and use the basic programming constructs: types
(built in types, basic provided types including arrays and strings, type construction),
values (constants, variables, assignments statements, and expressions), and control
structures (sequential flow, conditional statements, and loops).
c. Train students to understand and use the notion of abstract data types (value
representation, applicable operations, hidden implementations), recursion (recursive
operations, recursive type definition, recursive syntax definition), and I/O (basic output to
the screen and input from the keyboard, file I/O, and graphical user interface).
d. Teach students to be able to assemble a program from an English description.
e. By the end of the course, students should be able to demonstrate that they can
successfully write a program whose complexity reaches a few hundred lines of code.
Along the way, students should write a significant number of programs (one every other
week or so), and the programs should cover all topics up to (and perhaps including) the
advanced topics in the outline.
2. Secondary objective (10% of the course): Introduce students to key programming-related CS
concepts. Students should understand the general idea of each of the following concepts.
a. Abstraction. We program at a particular level of abstraction, which is slowly becoming
higher and higher. (No one thinks about electrons and the uncertainty principle when
programming, nor even about the electronic components or about the computer’s
architectural components, and we no longer think about machine code or assembly
language. WE are currently working with high level languages, and we are rapidly
moving to working with libraries of programming components.)
b. ADTs and Hidden Implementations. Types/classes/objects/ADTs are all essentially the
same thing: a pair (set of values, set of operations) with a hidden implementation.
Abstraction along with the hidden implementation lets us see an ADT as a unit with a
clean interface consisting of value creation/destruction/modification and other operations
and lets us hide the particular way we choose to do the implementation.

Page 50 of 394
C3 CS 12/14/04
c. Correctness. Thee are tools and techniques that help us reason about the correctness of a
program including “playing computer,” testing, boundary cases, loop termination, and
thinking carefully about what each component of a program is doing and how the
components together constitute that yields what we want.
d. Efficiency. Programs that do the same thing can be written in different ways. Some
ways are more efficient than others. Often it is simple to get a rough estimate of the
efficiency of a program.
e. Recursion. Recursion can simplify definitions and programming specifications.
Recursion is a powerful abstraction mechanism.
f. Reuse. We program at higher levels of abstraction by reusing what has already been
developed and placed in libraries and by building reusable components of our own.
g. Translation. We can translate a rough idea for a program into running code. Along the
way we increasingly become more formal. We first understand what is being requested
(analysis); we next translate our analysis into a sketch of what must be done to write the
program, (specification); we then translate our specification into specific data
declarations and control flow (design); and finally we translate ouru design into code.

Topics:

Introduction (1 lecture)
Programming objectiveds
See “nuts and bolts of programming” above
Concept Objectives
See “key programming-related CS concepts” above

Programming (Abstraction, Reuse, Translation) (1 lecture)


The computer
The programming environment—tools
The resources
The process
The program

Input/Output (1 lecture)

Types (ADTs and Hidden Implementation, Abstraction)


Classes—Introduction (1 lecture)
Numbers (1 lecture)
Integers
Reals—Float Class
Expressions
Internal Representation
Characters (1 lecture)
Values and Operations
Internal Representation
ASCII Encoding
Lexical Ordering

Page 51 of 394
C3 CS 12/14/04
Booleans

Control Flow (Correctness, Efficiency)


Sequence

Conditional Statements (1 lecture)


If-Then
If-Then-Else
Switch
Iterative Statements (2 lectures)
While and Do-While
For
Testing and Debugging (1 lecture)

Classes (ADTs and Hidden Implementation, Reuse)


Classes
User-Defined Classes (8 lectures)
References
Instance Variables
Constructors
Methods
Visibility
Built-in Classes (3 lectures)
Arrays
Strings

Recursion (Correctness, Efficiency, Recursion)


Thinking recursively (1 lecture)
Recursive methods (1 lecture)
Recursive types (3 lectures)
Recursive Syntax Definition (1 lecture)

Class Libraries (ADTs and Hidden Implementation, Reuse)


Classes (1 lecture)
Drawings (3 lectures)
Color
Shapes
Fonts
Interfaces (2 lectures)
Events
Components—Widgets
Layout

Advanced Topics
File I/O (1 lecture)
Inheritance (2 lectures)

Page 52 of 394
C3 CS 12/14/04
Incremental modification
Class hierarchies
Overloading & Polymorphism
Overriding & Late Binding
Exceptions (1 lecture)
Threads (1 lecture)
Applets (1 lecture)

Examples/Review (2 lectures)
(all key programming-related CS concepts)

Examples/Review (2 lectures)

Laboratory projects: 13 programming problems, 1 per week.

Estimate ABET Category Content

CS 142

Data Structures-1/2 hour


Algorithms- 1 hour
Software Design- 1 hour
Computer Organization and Architecture-
Concepts of Programming Languages-1/2 hour

Theoretical Content
Minimal

Analysis
There are 12 programming assignments where the problem description is stated as a
description of the problem environment and the need for solution. The student must decide
what he significant elements of the problem are.

Design
Given the problem set and the analysis described above the student must design the
appropriate algorithms to solve the problem.

Page 53 of 394
C3 CS 12/14/04
Dept., Number 224 Course Fundamentals of Digital Systems.
Title
Semester 3 Course Mark Perot
hours Coordinator
URL http://www.et.byu.edu/groups/ece224web/

Current Catalog Description

Digital logic: theory, design, and implementation of combinational and sequential logic.
Laboratory experience in construction of digital logic circuits.

Textbook

Dr. Brent E. Nelson, "Designing Digital Systems". ISBN: 0-7409-3006-0

Prerequisites by Topic

C S 124

Competencies

Ability to design, minimize, and analyze a combinational network.


Ability to design and analyze a sequential network.
Ability to design and test a digital system that includes I/O, state machines and combinational
networks
Ability to design major components of a simple microprocessor.
Ability to use schematic capture tools.

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms Data Structures
Software Design Prog. Languages
Comp. Arch. 3

Page 54 of 394
C3 CS 12/14/04
Oral and Written Communications

Every student is required to submit at least __12___ written reports (not including exams,
tests, quizzes, or commented programs) of typically __2___ pages and to make ___0__ oral
presentations of typically _____ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Theoretical Content

Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.

Boolean logic minimization

Problem Analysis

Please describe the analysis experiences common to all course sections.

Digital design

Solution Design

Please describe the design experiences common to all course sections.

LC-3 digital logic implementation

Page 55 of 394
C3 CS 12/14/04
CS 235 Course Coordinator: Cory Barker

Title: Data Structures and Algorithms

Catalogue Description: Fundamental data structures and algorithms of computer science;


basic algorithm analysis; recursion; sorting and searching; lists,
stacks, queues, trees, hashing; object-oriented data abstraction.

Textbook: ‘Data Structures & Problem Solving 2nd edition’ Mark Allen Weiss

Prerequisites: Introductory programming (CS-1)

Objectives

Students should:
1. Become familiar with the fundamental data types of computing (lists, stacks, queues, priority
queues, sets, maps, trees, etc.)
2. Become familiar with the major techniques for implementing the fundamental data types
(linked lists, binary search trees, hashing, heaps, etc.)
3. Learn to use language-provided data structure libraries
4. Learn basic algorithm analysis
5. Understand how recursion works and how to write recursive algorithms
6. Become familiar with the fundamental sorting and searching algorithms of computing and
how to analyze them
7. Learn to write programs that require ~500 lines of code

Topics

Java Review (4 lectures)


Compiling & running Java programs
Command-line arguments
Basic I/O
Classes
Exceptions
Packages & class paths
Interfaces
Inheritance
Comparable

Fundamental Data Types of Computing (5 Lectures)


Collections
Page 56 of 394
C3 CS 12/14/04
Iterators
List abstract data type
Set abstract data type
Map abstract data type
Stack abstract data type
Queue abstract data type
Priority Queue abstract data type
Deque abstract data type

Recursion (2 lectures)
Definition and rules of recursion
Applications of recursion
Runtime stack

Basic Algorithm Analysis (2 lectures)


Introduction to algorithm analysis
Definition of Big-Oh
Common Big-Oh bounds
Big-Oh analysis rules
Big-Oh analysis examples
Verifying an algorithm analysis
Limitations of Big-Oh analysis

Searching (1 lecture)
Linear search
Binary search

Sorting (4 lectures)
Introduction to sorting
Simple sorts
Insertion Sort
Selection Sort
Merge Sort
Quick Sort
Quick Select
Divide-and-Conquer running times
Lower bound for sorting

List implementations (3 lectures)


Array lists
Singly-linked lists
Doubly-linked lists

Stack and Queue implementations (2 lectures)


Array-based Stacks and Queues
Linked list-based Stacks and Queues

Page 57 of 394
C3 CS 12/14/04
Trees (8 lectures)
General trees
Binary trees
Recursion and trees
Tree iterators
Binary Search Trees
Using BSTs to implement Sets and Maps

Hash Tables (2 lectures)


Hash tables and functions
Chaining
Linear probing
Quadratic probing
Double hashing
Hash tables vs. BSTs
Using hash tables to implement Sets and Maps

Binary Heaps (2 lectures)


Binary heaps
Heap sort
Using binary heap to implement Priority Queues

Laboratory Projects: 7 projects, average of one every two weeks

Estimate of Curriculum Category Content

CORE
Data Structures 2 hrs.
Algorithms 1 hr.

CS 235 is a typical CS-2 course.

Page 58 of 394
C3 CS 12/14/04
CS 236 Course Coordinator: David Embley

Title: Discrete Structures

Catalogue Description: Introduction to grammars and parsing; predicate and propositional


logic; proof techniques; sets, functions, relations, relational data
model; graphs and graph algorithms.

Textbook: "Logic and Discrete Mathematics" by Grassmann and Tremblay.

Prerequisites: CS 235 Data Structures and Algorithms

Objectives

Students should:

1. Understand fundamental mathematical concepts as they apply to computer science by seeing


how mathematics supports CS and how CS concepts can be formalized in mathematics.

2. Enhance their ability to program by seeing how mathematical concepts form the basis for
many common programming problems (e.g. grammars for parsing, predicate calculus for logic
programming, sets and algebras for relational databases, graphs and topological sorting for
automating optimization).

3. Further their ability to write large programs by integrating code from a diverse spectrum of
program components.

Topics

Introduction to Grammars and Parsing (6)


Lexical Analysis; Grammars and Languages
Grammar Formalization, Parse-Tree Construction
Ambiguity and Precedence Grammars, Grammar Reductions
Top-Down Parsing, LL(1) Grammars
Parsing Recursive Grammars
Recursive-Descent Parsing

Predicate and Propositional Logic (6)


Introduction to Logic and Logical Arguments
Logical Propositions and Connectives
Tautologies and Contradictions
Logical Equivalences
Predicate Calculus
Interpretations
Validity and Equivalences

Page 59 of 394
C3 CS 12/14/04
Proof Techniques (8)
Logical Implications and Derivations
Deduction, Proofs
Proof Techniques
Induction
Predicate Calculus Derivations
Resolution with Propositional Calculus; Prenex Normal Form
Resolution with Predicate Calculus
Datalog and Resolution in Datalog

Functions, relations and Sets (6)


Sets and Set Operations
Set Topics and Applications
Relations: Operations and Properties
Closures and Equivalence Relations
Partial Orders
Functions

Relational Databases (4)


Relational Data Model
Relational Algebra
Deductive Databases

Graphs and graph algorithms (7)


Graph Definitions and Applications
Adjacency Matrices
Warshall's and Floyd's Algorithms
Adjacency Lists and Breadth-First Search
Depth-First Search
Dijkstra's Algorithm
Spanning Trees

Laboratory projects: Six medium size projects integrate together into an interpreter for the
Datalog language. The Datalog interpreter answers queries using facts and
rules.

Estimate CSAB Category Content

CORE ADVANCED CORE ADVANCED


Data Structures _____ __________Computer Organization and Architecture____ _________
Algorithms 1 hr. __________Concepts of Programming Languages ½ hr. _________
Software Design ____ __________

Theoretical Content

The course is about 50% theory as described in the topic list. 1.5 hrs.

Page 60 of 394
C3 CS 12/14/04
CS 240 Course Coordinator: Parris Egbert

Course Title: Advanced Programming

Catalogue Description: Advanced software development with an object-oriented


focus. Development and testing of several 1500 to 2000 line modules from formal
specifications. UNIX and C++ environment
Textbook: ‘ • Object-Oriented Programming in C++, Fourth Edition by Robert Lafore
• Code Complete, Second Edition by Steve McConnell

Prerequisite: Data Structures

Objectives

Students should:

1. Have experience in, and be comfortable with, programming large programs (~3,000 LOC).

2. Be familiar with the UNIX operating system.

3. Be familiar with the C++ programming language

4. Be comfortable with separate compilation and linking of modules.

5. Understand the specification, design, implementation and testing phases for creating large
programs, and should incorporate those ideas into their programming.

6. Be familiar with object-oriented design.

7. Be able to apply problem solving techniques to programming.

8. Know and understand debugging strategies for large programs.

Topics

Basic UNIX commands (1 lecture)

Compilation of C++ programs (1 lecture)


Separate module compilation
Linking
Libraries

Basic C++ Syntax (4 lectures)


Main routine
Variable declarations
Assignment statements

Page 61 of 394
C3 CS 12/14/04
Expressions
Loops
Conditional statements
Functions

Makefiles (1 lecture)
Basic concepts
Macros
Targets
Dependencies

Classes (5 lectures)
Syntax for defining classes
Methods
Data members
Access specifiers
Creating instances
Method invocation

Object-Oriented Design (3 lectures)


Procedure oriented design vs. object oriented design
Designing modules
Relationship between modules
The notion of objects
Designing of class hierarchies

Data Encapsulation (2 lectures)


The notions of public, private, and protected members
Data hiding – how and why

Abstract Data Types (2 lectures)


Advantages
How to design

Strategies for Debugging (3 lectures)


Locating errors
Common errors
Unix debuggers

Stream and File I/O (3 lectures)


I/O stream classes
cin, cout
Opening files
File type specifiers

Inheritance (3 lectures)
Base classes vs. derived classes
Page 62 of 394
C3 CS 12/14/04
Member access
Single inheritance

Polymorphism (3 lectures)
Virtual functions
Virtual tables

Testing (3 lectures)
Quality assuance
pre-and post- conditions
Unit testing
Integration testing
Black box testing
White box testing

Exception Handling (3 lectures)


Techniques for error handling
C++ Asserts
C++ Exceptions
try, throw, catch

Templates (3 lectures)
How and when to use templates
Function templates
Class templates
Syntax
Using non-type parameters

Operator Overloading (1 lecture)


Syntax
Usage
Overloading unary operators
Overloading binary operators

Advanced UNIX Commands (1 lecture)

Laboratory Projects: 2 large programs, a web crawler, and an XML based genealogical file.
Approximately 6 weeks for each assignment.

Estimate CSAB Category Content


CORE ADVANCED CORE ADVANCED
Data Structures ½ hr. ____________Computer Organization and Architecture____ _________
Algorithms ____ ____________Concepts of Programming Languages ½ hr. _________

Design

The students design a program based upon a formal set of specifications

Page 63 of 394
C3 CS 12/14/04
CS252 Course Coordinator: Mark Clement

Title: Theory of Computation

Catalogue Description: Finite Automata, regular expressions, grammars, language, Turing


machines, computability.

Textbook: ‘Introduction to Languages and Theory of Computation, 2nd


edition’, John C. Martin

Prerequisites: Discrete Structures I

Objectives

Students should:

1. Examine the theoretical basis of Computer Science. Topics include finite automata, regular
expressions, push-down automata, grammars, formal languages, Turing machines, computability,
and complexity.

2. Learn the real limitations and opportunities in computing. This includes a) what can and
cannot by computed (computability), b) the power of different types of computational systems in
terms of what they can compute (automata classification, recursive function theory, Chomsky
Hierarchy), and c) what is practically computable and the complexity of solving certain classes
of problems (complexity and tractability).

3. Be able to appreciate and gain proficiency with rigorous methods, representations, and proof
techniques.

4. Learn how to apply theoretical concepts to practical problems.

Topics

The number of lectures per topic (provided in parentheses below) is a guideline and need not be
followed exactly. Also, the basic topics need not be covered in the exact order specified. The
schedule below allocates only 37-39 of 25 lectures, leaving 3-5 lectures for emphasis based on
instructor preference. Throughout the course, students should see and do proofs and should be
introduced to the hows and whys of proofs.

Why Theory (1)


What can be computed
What can compute it
What is the complexity

Focused review of set theory and discrete math (1-2) (optional)

Page 64 of 394
C3 CS 12/14/04
Finite State Automata and Regular Languages (5)
Finites state machines – lexical analysis, formal definitions (1)
Limitations of finite state machines – language acceptance defined, pumping, cardinality
proofs (1)
Non-deterministic FSA – attempts to extend power, equivalence to FSA, minimal FSA
(1)
Regular grammars – equivalence proofs (1)
Regular expressions, Kleene’s theorem (1)

Push Down Automata and Context Free Languages (7)


Push down automata – formal definitions
Context free grammars, parse-trees and derivations, equivalence of grammars (2)
Limitations of push down automata – pumping lemma, non deterministic PDA (2)
Lookahead/parsing, LL(k), LR(k) (2)

Turing machine and unrestricted grammars (9)


Turing machines – formal definitions, examples, abstraction for programming (2)
Turing machine extensions – language acceptance, multi-tape, non-deterministic (1)
Unrestricted grammars – equivalence to Turing, Chomsky Hierarchy (2)
Computability – Church’s thesis, TM encoding, universal TM, undecideable (halting) and
uncomputable languages, enumerability, more unsolvable problems (4)

Other variations of finding the all powerful machine (7)


Recursive function theory (1)
Primitive recursive functions (2)
Partial recursive functions (2)
Minimal programming language or other Turing equivalent approaches – prove Turing
equivalence (2)

Complexity (8)
Computation, algorithmic and problem complexity – formal Big O and theta, complexity
classes
Class P – complexity of language acceptance, poly time decidable, proofs (2)
Class NP – formal definition, relation of P and NP, examples, polynomial reduction, NP-
complete, Cook’s theorem, beyond NP (4)

Estimate CSAB Category Content

Theoretical Content

The course is 100% theory as described in the topic list. 3 hrs.

Page 65 of 394
C3 CS 12/14/04
CS 312 Course Coordinator: Douglas Campbell

Title: Algorithm Analysis

Catalogue Description: Analysis of algorithms including searching, sorting, graphs, and


trees.

Textbook: ‘Computer Algorithms/C++’ Horowitz, Sahni, Rajsekaran

Prerequisites: Theory of computation, Advanced programming, Discrete structures II

Objectives

Students should:

1. Understand fundamental computer algorithms and how to analyze them. In particular, students
should understand the five algorithmic paradigms: divide-and-conquer, greedy, dynamic
programming, backtracking, and branch-and-bound.

2. Review and reinforce material encountered earlier in the curriculum on time and space
analysis and complexity theory.

3. See how math supports CS and how CS concepts can be formalized in mathematics (beyond
lectures and the textbook, homework exercises plus though questions related to programming
projects should pull these ideas together).

4. Further their ability to program by writing five programs that illustrate the conflicts of time
efficiency, recursive complexity, and space allocation associated with the five algorithmic
paradigms.

Topics

Review (the equivalent of 2 lectures scattered throughout, as concepts are


encountered)
Big Oh analysis
Recurrence relations
P/NP/NP-complete

Divide-and-conquer (8 lectures)
Mergesort, binary search
Quicksort
Strassen matrix multiplication
Deriving Big Oh bounds on Divide-and-Conquer

Greedy (8 lectures)
Job scheduleing

Page 66 of 394
C3 CS 12/14/04
Fractional knapsack
Heaps and disjoint sets
Minimal spanning trees – Kruskal, Prim
Deriving Big Oh bounds on greedy algorithms
Proving Greedy algorithms work
Proving Greedy algorithms fail

Dynamic Programming (8 lectures)


Matrix chain multiplication
Longest common subsequence
Traveling Salesperson
0-1 knapsack
Reduction of Big Oh bounds for some NP-complete problems

Backtracking (8 lectures)
Traveling Salesperson and kill rules
Colored block problem
Chess problems
Static/dynamic 0-1 knapsack backtracking
Applications to NP-complete problems

Branch-and-bound (8 lectures)
Reduced matrices
Approximations to NP-complete problems
Memory management
Kill rules
Seed heuristics
Big Oh bounds on heuristics

Laboratory projects: The students will implement 5 algorithms, one for each of the types
featured in the course. The implementation produced will be used to solve a problem requiring
that specific type of algorithm.

Estimate CSAB Category Content

CORE ADVANCED CORE ADVANCED


Data Structures _____ __________Computer Organization and Architecture____ _________
Algorithms 2½ __________Concepts of Programming Languages ½ hr. _________
Software Design ____ __________

Theoretical Content

Computability 1 hr.

Design

A problem solution was implemented using a specific algorithmic approach.


Page 67 of 394
C3 CS 12/14/04
Dept., Number ECEn-CS Course Computer System Architecture
324 Title
Semester 3 Course Eric Mercer and James Archibald
hours Coordinator
URL (if http://vv.cs.byu.edu/ecen-cs-324/
any): http://www.et.byu.edu/groups/ece324web/

Current Catalog Description

Performance-directed design principles, advanced pipelining, instruction-level parallelism (super


scalar and VLIW CPUs), compiler optimizations, memory hierarchy design, etc.

Textbook

Computer Systems: A Programmer's Perspective, Randal E. Bryant and David O'Hallaron,


Prentice Hall, 2003

References

The C Programming Language, 2nd Edition. Brian W. Kernighan and Dennis M. Ritchie,
Prentice Hall, 1988.
Computer Systems: A Programmer's Perspective (CS:APP) student website
Linux Documentation on the Computer Science Documentation Project
puTTY SSH client for windows
Xmanager free X-server software package for windows
Google
Accessible computers in the Computer Science Department
Computer Science account setup

Course Goals

Describe how byte ordering affects addressing; use bitwise operators to manipulate integers and
floating point numbers; and identify common mistakes
in using signed, unsigned, and floating point numbers in expressions (rounding, overflow, and
default castings).
• Translate between C and IA32 machine code; describe the memory layout of arrays, structures,
and unions; show how word-alignment affects the size
of structures and unions; demonstrate a buffer overflow attack; and describe techniques to avoid
buffer overflow vulnerabilities in C-code.
• Explain how instructions are executed on a classical von Neumann machine; describe the
general principles of pipelining; identify hazards that cannot
Page 68 of 394
C3 CS 12/14/04
be resolved without stalling; rewrite machine-code to improve performance in a given pipeline
architecture.
• Describe out-of-order execution as it relates to modern processors; use hardware independent
and dependent transformations on C-code to improve
execution time on modern processors; and describe the limiting factors of parallelism in modern
processors.
• Describe how cache anatomy affects program performance; derive cache hit and miss rates in
C-code; and rewrite C-code to be cache friendly.
• Identify common errors that arise in linking and how they can be solved.
• Use UNIX signals and system calls to manage processes.
• Explain the role of virtual memory in the process model; translate virtual addresses into
physical addresses; and describe how virtual memory helps
defend the system from malicious processes.

Prerequisites by Topic

CS 142
ECEn-CS 124

Major Topics Covered in the Course

A tour of computer systems 1


4.5 Representing and manipulating information
3.0 Byte ordering, integer representations, and integer arithmetic
1.5 IEEE Floating point
7.5 Machine-level representation of programs
4.5 Program encodings, control flow, procedures, stack frames, recursion, and register usage.
1.5 Arrays, structures, and unions
9.0 Processor architecture
4.5 Y86 ISA, logic design, and the Y86 sequential implementation
4.5 General principles of pipelining and the Y86 pipeline implementation
3.0 Optimizing program performance
1.5 Loop inefficiencies, functional call overhead, memory references, and understanding modern
processors.
1.5 Loop unrolling and splitting, pointer code, register spilling, memory latency, and code
profiling.
4.5 The memory hierarchy, caches, and writing cache friendly code
1.5 Linking
3.0 Exceptions, processes, and signals
1.5 Measuring program execution time
6.0 Virtual memory
3.0 Address spaces, virtual memory as a cache, memory management, and address translation.
3.0 Case study (Linux/Pentium), memory mapping (fork/execve), and dynamic memory
allocation
Page 69 of 394
C3 CS 12/14/04
Laboratory projects (specify number of weeks on each)

Data lab Students implement operations such as ’<’, ’>’, and ’!’ using a restricted set of bitwise
operators and a restricted number of operations. (2 weeks)
Binary bomb lab Students use gdb to discover the input required by a binary executable. Wrong
input causes email to be sent to the TA that counts
as a deduction in the lab score. (2 weeks)
Buffer overflow lab Students write buffer overflow exploit strings to alter the behavior of a
binary program in specific ways. (2 weeks)
Architecture lab Students use a simple hardware description language and hardware simulator
to add instructions to an existing architecture. Students
rewrite existing assembly code to run more efficiently on the pipeline. Points are awarded
according to the level of performance achieved. (3 weeks)
Performance lab Students rewrite code to improve running time performance on the lab
machines. Students exploit scheduling and memory references (2 weeks)
on the Pentium machines to achieve speedup over reference implementation.
Shell lab Students implement a UNIX shell to create and manage processes in either the
background or foreground of the shell.(3 weeks)

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms Data Structures
Software Design Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least ___0__ written reports (not including exams,
tests, quizzes, or commented programs) of typically __0___ pages and to make ___0__ oral
presentations of typically ___0__ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Social and Ethical Issues

Page 70 of 394
C3 CS 12/14/04
Computer Security: test questions and lab projects (3 weeks)
Software Integrity: test questions and lab projects (3 weeks)

Page 71 of 394
C3 CS 12/14/04
CS 330 Course Coordinator: Bryan Morse

Title: Programming Languages

Catalogue Description: Principles and concepts characterizing high-level computer


programming languages. Process and data abstraction, encapsulation, inheritance, functional
programming, logic programming, scanners and parsers.

Textbook: ‘Essentials of Programming Languages’ Freidman, Wand, and Haynes, 2nd


Edition

Prerequisites: Data structures, theory of computation, know at least two programming languages

Objectives

This course introduces students to the fundamental concepts of programming languages. In


particular, it concentrates on concepts that are not typically found in traditional languages to
which that have already been exposed. It discusses and compares features of several popular
programming paradigms such as imperative, object oriented, functional, and logic programming.
In addition, the students:
Learn the vocabulary of programming language design, syntax, and semantics.
Develop an understanding of how programming languages differ.
Learn how to use BNF to describe concrete syntax and how that syntax derives the structure of
translation programs.
Learn how programs can be represented using abstract syntax (e.g., parse trees) and how that
abstract syntax is manipulated.
Learn to visualize and analyze the dynamic structure of various programming language features
given their static representation.
Learn a functional programming language such as LISP, Scheme, etc.

Topics

Programming paradigms (1 lecture)


Imperative, object-oriented, functional, logic, etc.

Basic components (1 lecture)


Primitives
Means of combination
Abstraction

Inductive structure of a language (3 lectures)


BNF
Parsing (only minimally—should have been covered in 236)
Syntax-directed recursive programming (should have already seen in 235)

Procedures and function (3 lectures)

Page 72 of 394
C3 CS 12/14/04
Delayed evaluation
Closures
Local environments and scoping
Functions as first-class entities, higher-order functions

Variables (2 lectures)
Name binding
Properties
Scoping: static vs. dynamic
Lexical addressing

Logical connectives and conditionals (1 lecture)


Short-circuited evaluation
Special forms

Aggregate data (3 lectures)


Heterogeneous vs. homogeneous
Access by name vs. access by position

Data models (3 lectures)


Expressed vs. denoted values
Direct data models
Indirect data models
First-class vs. second-class types
Scalar types

Parameter passing (3 lectures)


By value
By reference
By value-result
By name and need
Aliasing: problems and methods of avoiding

Functional programming languages (2 lectures)

Object-Oriented languages (5 lectures)


Basics: encapsulation and abstraction, classes, objects, methods
Class vs. instance variables
Inheritance
Of data
Of methods
Static vs. dynamic inheritance

Program translation (6 lectures)


General structure of a translator
Parsing: concrete syntax vs. abstract syntax

Page 73 of 394
C3 CS 12/14/04
Manipulating, evaluating, interpreting, and translating abstract syntax
Unparsing
Built-in functions vs. special forms
Symbol tables and environments
Various ways to add features:
To parser, built-in function, special form, change data model, change to parameter
passing, etc.

Types (2 lectures)
Strong vs. weak typing
Monomorphic vs. polymorphic types
Ad hoc polymorphism: overloading and coercion
Universal polymorphism: inheritance and parametric

This list includes material for 33 of 41 lectures per semester. This leaves 8 lectures for the
instructor to cover the syntax or semantics of specific languages as examples, assign or review
projects, prepare for or review examinations, add additional material, etc. It is also anticipated
that many of the topics listed here will actually introduced as part of introducing new
language(s).

Laboratory projects: There is one very large project written in Scheme dealing with the
declaration and translation of abstract data types.

Estimate CSAB Category Content

CORE ADVANCED CORE ADVANCED


Data Structures____ ____________Computer Organization and Architecture____ _________
Algorithms _____ ____________Concepts of Programming Languages _____ 3 hours
Software design _____ ___________

Theoretical content

Grammars and their implementation

Analysis
Design

The project includes significant analysis and design and the use of a functional language.

Page 74 of 394
C3 CS 12/14/04
CS 345 Course Coordinator: Quinn Snell

Title: Operating Systems

Catalogue Description: Principles and concepts of operating system design and the
implementation of an operating system.

Textbook: ‘Operating Systems Concepts 5th edition’ Siberschatz and Galvin

Prerequisites: Computer architecture, advanced programming

Objectives

Students should:

1. Learn basic principles and components of an Operating System

2. Learn and be familiar with the notion of processes.

3. Understand CPU scheduling, deadlock detection and deadlock avoidance.

4. Understand how memory management is handled in an operating system.

5. Understand how file systems are implemented.

6. Learn about concurrent programming.

7. Program various operating system components, such as drivers, schedulers, interprocess


communication components, file systems and distributed synchronization.

Topics

Introduction, what is an Operating System (1 lecture)


Batch, time-sharing, personal-computer systems
Parallel Systems
Distributed Systems
Real-Time Systems

Operating-System Structures (2 lectures)


System Components
Operating System Services
System Calls
Virtual Machines

Processes (3 lectures)
The process concept

Page 75 of 394
C3 CS 12/14/04
Process sharing
Operations on processes
Cooperating processes
Threads
Interprocess communication

CPU Scheduling (2 lectures)


Scheduling criteria
Scheduling algorithms
Multiple-processor scheduling
Real-time scheduling
Algorithm evaluation

Process Synchronization (3 lectures)


The critical-selection problem
Synchronization hardware
Semaphores
Classical problems of synchronization
Critical regions
Monitors
Atomic Transactions

Deadlock (3 lectures)
Deadlock characterization
Deadlock prevention
Deadlock avoidance
Deadlock detection
Recovery from a deadlock

Memory management (2 lectures)


Logical vs. Physical Address Space
Swapping
Paging
Segmentation

Virtual Memory (3 lectures)


Demand paging
Page replacement algorithms
Thrashing

File-System Interface (2 lectures)


File concept
Access methods
Directory and file-system structure
Protection
Consistency semantics

Page 76 of 394
C3 CS 12/14/04
Free-space management

I/O Systems (3 lectures)


I/O hardware
Application I/O interface
Kernel I/O requests to hardware operations

Secondary Storage Structure (3 lectures)


Disk structure, scheduling, and management
Swap-space management
Disk reliability

Distributed Systems Structures (3 lectures)


Network topology
Network types
Communication
Networking examples
Network operating systems
Distributed operating systems

Distributed File Systems (3 lectures)


Naming and transparency
Remote file access
Stateful vs. stateless service
File replication

Distributed Coordination (3 lectures)


Event ordering
Mutual exclusion
Concurrency control
Deadlock handling
Election algorithms
Reaching agreement

Protection (2 lectures)
Domain of protection
Access matrix
Language-based protection

Security (2 lectures)
The security problem
Authentication
System threats and threat monitoring
Encryption

Case Studies (2 lectures)

Page 77 of 394
C3 CS 12/14/04
The UNIX Systems
The Linux System
Windows NT
Historical perspective

Laboratory Projects: 1 big project, write significant segments of a multitasking


operating system.

Estimate CSAB Category Content

CORE ADVANCED CORE ADVANCED


Data Structures ____ ½ hr. Computer Organization and Architecture____ ½ hr.
Algorithms ____ ½ hr. Concepts of Programming Languages _____ ½ hr.
Software design_____ 1 hr.

Analysis
Design

Significant analysis and design required to produce the operating system segments.

Page 78 of 394
C3 CS 12/14/04
Dept., Number 404 Course Ethics and Computers in Society
Title
Semester 3 Course Charles Knutson
hours Coordinator
URL

Current Catalog Description

Digital logic: theory, design, and implementation of combinational and sequential logic.
Laboratory experience in construction of digital logic circuits.

Textbook

Papers

Prerequisites by Topic

Engl 316

Objectives

1. To provide an opportunity to write about and discuss matters that will impact your future
professioanl life as well as society as a whole.
2. To broaden the perspective of your professional potential in Computer Science.
3. To demonstrate an ability to analyze, write about and discuss the issues and ethical problems
facing your chosen profession.
4. To help you justify and develop a personal professional code of ethics.

Topics

The Digital Age

Knowledge versus Wisdom

Technology and the Church of Jesus Christ of Latter Day Saints


Page 79 of 394
C3 CS 12/14/04
Work and the Workplace

ACM Code of Ethics

Computer History

Open Source

Patent Law

Societal Values: Crime, Ethics, Privacy and Security

File Sharing

Philosophical Frontiers
Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms Data Structures
Software Design Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least __12___ written reports (not including exams,
tests, quizzes, or commented programs) of typically __2___ pages and to make ___1__ oral
presentations of typically __5___ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Social and Ethical Issues

Privacy, patent law, service, intellectual property

Page 80 of 394
C3 CS 12/14/04
Dept., Number 412 Course Modeling and Optimization.
Title
Semester 3 Course Sean Warnick
hours Coordinator
URL

Current Catalog Description

Modeling, learning, and decision/control identified and placed in perspective. Linear


optimization, game theory, operations research, network flows, and Markov processes.

Textbook

An Introduction to Management Science: Quantitative Approaches to Decision Making, by


David Ray Anderson, Dennis J. Sweeney, Thomas Arthur Williams.

Prerequisites by Topic

C S 343

Overview: This course will introduce students to linear optimization and probabilistic
modeling. It will combine mathematical rigor with practical applications to help students
understand how to formulate and solve real problems using these tools. We will study
approaches to the interpretation and analysis of solutions, and introduce algorithms used to solve
linear optimization problems, including the simplex method, which has been named one of the
top ten algorithms of the twentieth century by Computing in Science and Engineering.

Upon completion of the course a student should:

1) Understand operations research/management science as a career possibility that


integrates a computational problem solving background with practical applications

2) Master linear programming as a computational tool


a) Refine mathematical sophistication to connect linear algebra to duality theory
b) Refine algorithmic sophistication to compare and contrast simplex with
alternative LP solutions (primal-dual algorithm, interior point methods, etc.)

3) Be able to apply LP knowledge base


a) Introduction to integer linear and nonlinear programming, including overview
of unconstrained vs. constrained optimization problems

Page 81 of 394
C3 CS 12/14/04
b) Network Flows
c) Two-Player Zero-Sum Games

5) Be familiar with basic probabilistic models and how they are used in
a) Decision Analysis
b) Markov Decision Problems
c) Queuing Theory
d) Inventory Control
e) Forcasting

Possible Texts include:

An Introduction to Management Science: Quantitative Approaches to Decision Making, by


David Ray Anderson, Dennis J. Sweeney, Thomas Arthur Williams.

Introduction to Operations Research, by Frederick S. Hillier, G. J. Lieberman.

Linear and Nonlinear Programming by David G. Luenberger

Introduction to Linear Optimization. by Dimitris Bertsimas and John N. Tsitsiklis.

Linear Programming: Foundations and Extensions Robert J. Vanderbei


Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms 3 Data Structures
Software Design Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least __4___ written reports (not including exams,
tests, quizzes, or commented programs) of typically __2___ pages and to make ___1__ oral
presentations of typically _____ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Theoretical Content

Optimization

Page 82 of 394
C3 CS 12/14/04
CS 428 Course Coordinator: Scott Woodfield

Title: Software Engineering

Catalogue Description: The analysis, design, and testing of significant software systems.

Textbook: ‘Software Engineering, A Practitioner’s Approach (4th edition)’ Roger S.


Pressman

Prerequisites: Advanced Programming

Topic Outline Schedule


Topic

Introduction/Reviews
Project Plan
Configuration Management
Risk Analysis
OSA (Object-oriented Systems Analysis)
ORM OSA Tutorial – ORMs (Object Relationship Model)
OBM OSA Tutorial – OBMs (Object Behavior Model)
OIM OSA Tutorial – OIMs (Object Interaction Model)
User’s Manual, Constraints,
Standards
OO Design – What is it?
OO Design – How to do it
Design Principles
OO Principles
Integration Strategies
Coding Style
QA – Test Strategies
QA – Blackbox testing
QA – Whitebox testing
OO Testing
UML
UML
Formal Techniques
Metrics
Maintenance
Maturity Model
Cost, Schedule Estimation

Laboratory projects: One large project that includes formal documents for plans,
specifications, design, and code
Estimate CSAB Category Content

Page 83 of 394
C3 CS 12/14/04
CORE ADVANCED CORE ADVANCED
Data Structures ____ _____ Computer Organization and Architecture____ ______
Algorithms ____ _____ Concepts of Programming Languages _____ ______
Software design_____ 3 hrs.

Analysis
Design

This course is all about analysis and design. The students must develop a plan based upon the
problem description, the students must prepare a specification, they must implement the
programs required according to the specification and they must test their solution.

Page 84 of 394
C3 CS 12/14/04
CS 431 Course Coordinator: Aurel Cornell

Title: Compilers

Catalogue description: Formal description of algorithmic languages and techniques used


in their compilation: semantics, ambiguities, procedures, replication, iteration, recursion.

Test:

Prerequisites: Algorithm analysis, Programming Languages

Concepts and topics

Part I: Introduction to Compiler Design

1 Introduction
1.1 The Precise Target Language
1.2 The Precise Target Architecture
1.3 What are the advantages of using this book?

2 The components of a compiler


2.1 The components of a compiler
2.1.1 Scanner (Lexical Analyzer)
2.1.2 The Parser
2.1.3 Symbol Tables
2.1.4 Error Messages
2.1.5 Code Optimization
2.1.6 Code Generation
2.1.7 Peephole Optimization
2.2 The Number of Compiler Passes
2.3 The Target Architecture

Part II: The Analysis Phase of Compilation

3 Lexical Analysis
3.1 Overview of a scanner
3.1.1 Regular Grammars
3.1.2 Finite State Automata
3.1.3 Combining FSAs
3.2 SAL Scanner Overview
3.2.1 The SAL Input Interface
3.2.2 Token Representation
3.3 Scanning SAL Tokens
3.3.1 Symbols and Delimiters
3.3.2 Constants
3.3.3 Identifiers and key words

Page 85 of 394
C3 CS 12/14/04
3.3.4 Whitespace
3.3.5 Comments
3.4 Writing a SAL Scanner
3.4.1 Lookahead buffer
3.4.2 Internal helper procedures
3.4.3 General algorithm
3.4.4 Scanner Error Messages and Procedures
3.4.5 Using the Scanner

4 The Parser
4.1 Productions and Syntax Diagrams
4.2 Top-down Recursive Descent Parsing
4.3 Using syntax diagrams in Recursive Descent Parsing
4.4 Coding a Recursive Descent Parser
4.4.1 Using the set, FIRST
4.4.2 A simple parser
4.5 Error checking
4.5.1 Tools to manage FIRST and FOLLOW
4.5.2 Entry and exit synchronization
4.5.3 Maintaining CURRENT
4.5.4 A simple parser with error checking
4.6 A SAL Parser
4.7 Concusion

5 Symbol Tables
Fields
Identifiers
Types
Constants
Variables
Functions
Blocks
Records
Functions
Modules
Arrays
Accessing the table
Examples

Part III: The Synthesis Phase of Compilation

6 Beginning Code Generation


6.1 Assignment and expressions
6.1.1 Setting up and calling rule IdentExpression
6.1.2 Handling Procedure Calls
6.1.3 Evaluating the expression and storing the result

Page 86 of 394
C3 CS 12/14/04
6.2 Evaluating an Expression
6.2.1 Rule Expression
6.2.2 Rule LandExpression
6.2.3 Rule CmpExpression
6.2.4 Rule BandExpression
6.2.5 Rule BitwExpression
6.2.6 Rule AddExpression
6.2.7 Rule MulExpression
6.2.8 Rule UnaryExpression
6.2.9 RuleExpExpression
6.3 Rule Factor
6.3.1 Emitting code for a literal constants
6.3.2 Emitting code for a literal string constant
6.3.3 Other things factor does
6.4 Rule IdentExpr
6.4.1 Symbolic constants
6.4.2 Variables
6.4.3 Type conversion (optional section)
6.4.4 Summary of RuleIdentExpr()
6.5 Arrays and records: Rule Designator
6.5.1 The base identifier
6.5.2 Rule designator
6.5.3 Array subscripts
6.5.4 Record fields
6.5.5 Nesting arrays and records
6.6 The code generation library
6.7 Conclusion
6.8 Artifacts

7 Code Generation for Control Statements


7.1 If statement
7.2 Pre-test Loop
7.3 Post-test Loop
7.4 For Loop
7.5 Select Statement
7.5.1 Rule SelectStatent
7.5.2 Rule Case
7.5.3 Rule CaseLabelList
7.5.4 Summary: Rule SelectStatement
7.6 Input and Output, system calls
7.6.1 The SYS Instructin
7.6.2 Implementing read and write

8 Code Generation for Procedures and Functions


8.1 Procedures and functions
8.1.1 The ENTR Instruction

Page 87 of 394
C3 CS 12/14/04
8.1.2 Storing Parameters
8.1.3 Allocating Local Arrays and Records
8.1.4 Procedure Body
8.1.5 The RTN Instruction and PutCode Text()
8.2 Calling a Procedure
8.2.1 Calling local procedures
8.2.2 Calling external procedures
8.2.3 Calling a nested procedure
8.3 Rule RetrunStatement
8.4 Rule CompilationUnit
8.4.1 Boolean Flag
8.4.2 Calling PrepareObjFile()
8.4.3 Calling ModuleInit()
8.4.4 Generate code for the main procedure
8.4.5 Initialize imported libraries
8.4.6 Allocate local arrays and records
8.4.7 Call RuleStatementSequence()
8.4.8 Finishing the module’s main procedure
8.4.9 Close the object file

Part IV: Advanced Features

9 Designing Classes
9.1 Lightweight classes
9.1.1 External Member Access
9.1.2 External Method Access
9.1.3 Internal Member and Method Access
9.1.4 Implementing Lightweight classes
9.2 Inheritance
9.2.1 Single inheritance
9.2.2 Multiple inheritance
9.2.3 Shared multiple inheritance
9.2.4 Member and Method access in multiple inheritance
9.2.5 Parsing SAL Inheritance
9.2.6 Symbol Tables for SAL Inheritance
9.2.7 Code Generation for SAL Interitance
9.2.8 Meta-Constructors for Arrays and Records
9.3 Conclusion

10 Virtual Methods
10.1 What are virtual methods?
10.1.1 Virtual methods and shadowing
10.2 How virtual methods work
10.2.1 Virtual methods in single inheritance
10.2.2 Virtual methods in multiple inheritance
10.2.3 Virtual methods with shared inheritance

Page 88 of 394
C3 CS 12/14/04
10.3 Implementation of virtual procedures and functions
10.3.1 Parsing for virtual procedures and functions
10.3.2 Symbol tables for virtual procedures and functions
10.4 Conclusion and further reading

11 Constructors and Destructors


11.1 Constructing a class
11.2 The Meta Constructor
11.2.1 Init flag for virtual base classes
11.2.2 Virtual table pointer initialization
11.2.3 Initialize all member classes
11.2.4 Call the constructor of the most-derived classes
11.3 Class constructors
11.3.1 Constructors in SAL
11.3.2 Constructor calling order
11.4 Arrays and records containing classes
11.5 Conclusion

12 Exceptions
Exception overview
Methodologies
SAL Exceptions
Try and Catch
Throw: Unwinding the Stack
Cleanup Local Variables
Catching Values
Using Existing Structure
Basic RTTI Methods

13 Break and Continue

14 Pointers

Laboratory projects: Produce a compiler for the SAL programming language.

CORE ADVANCED CORE ADVANCED


Data Structures ____ ½ hr. Computer Organization and Architecture____ ______
Algorithms ____ ½ hr. Concepts of Programming Languages _____ ______
Software design_____ 1 ½ hrs.

Analysis
Design

Extensive analysis and design required in the creation of a working compiler

Page 89 of 394
C3 CS 12/14/04
Dept., Number 450 Course Introduction to Digital Signal and Image
Title Processing.
Semester 3 Course Bryan Morse
hours Coordinator
URL http://bryan.cs.byu.edu/450/home/index.php

Current Catalog Description

One- and two-dimensional signal-processing fundamentals, including sampling, noise,


transforms, filtering, enhancement, and compression. Hands-on experimentation with speech,
music, still images, and full-motion video.

Textbook

Gonzalez and Woods, Digital Image Processing, 2nd Edition (Ch. 1-8)

Prerequisites by Topic

CS 312

Competencies

Ability to use signal processing and understand the mathematical concepts involved in image
processing.

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms 3 Data Structures
Software Design Prog. Languages
Comp. Arch.

Theoretical Content

Sampling, Interpolation, Neighbors, Spatial Filtering, The Fourier Transform

Page 90 of 394
C3 CS 12/14/04
CS 452 Course Coordinator: David Embley

Title: Database Systems


Catalogue Description: Database models, relational, network, hierarchical, deductive,
object-oriented, Integrity constraints, query languages, database design.
Textbook: ‘Database System Concepts, 3rd Edition’ Silberschatz, Korth, and Sudarshan
Prerequisites: Advanced Programming, Theory of Computation

Lecture Topics
Introduction to Course
Purpose of DBMS, DB Terminology
E-R Model
Relational Model and Algebra
Tuple Calculus and Domain Calculus
Extended Algebra and Modification
SQL
SQL – Set Operations
SQL Queries
SQL – Aggregate Operations
Database Constraints
Assertions and Triggers
FDs
Closure of FDs
Key Finding
Canonical Covers
Relational DB Design and Decomposition
Normalization using FDs
1NF – BCNF
MVDs
4NF
Normalization using MVDs
Logic-based data model
Datalog
Recursion in datalog
Power of datalog
Object-relational databases
Object-relational queries
Object-oriented databases
Object-oriented data modeling
Object-oriented languages (O2)
OO programming languages

Laboratory projects: There are 3 significant programs that are required for the class
dealing with retrieving data, updating data, and aggregating functions.

Page 91 of 394
C3 CS 12/14/04
CS 455 Course Coordinator: Parris Egbert

Title: Computer Graphics

Catalogue description: Interactive computer graphics systems programming and


architecture.

Textbook: ‘Computer Graphics 2nd Edition’ Hearn and Baker

Prerequisites: Algorithm analysis, programming languages

Course Content

This course is an introduction to the field of computer graphics and provides


familiarity with graphics software and hardware systems. The course covers the
following concepts.

Output primitives
Geometric representations
Two- and three-dimensional transformations
Windowing and clipping methods
Segments
Interactive Methods
Modeling Methods
Three-dimensional concepts
Hidden-element removal
Shading
Color models
Computer animation

Laboratory projects: There are 6 software components to the computer graphics generator that
is produced during the semester.

Estimate CSAB Category Content

CORE ADVANCED CORE ADVANCED


Data Structures ____ ½ hr Computer Organization and Architecture____ ______
Algorithms ____ 1 hr Concepts of Programming Languages _____ 1 hr
Software design_____ ½ hr

Analysis
Design

Extensive in the design and implementation of the graphics system program.

Page 92 of 394
C3 CS 12/14/04
Dept. Number CS 456 Course Introduction to User Interface Software
Title
Semester 3 Course Dan Olsen
hours Coordinator
URL (if http://icie.cs.byu.edu/cs456/
any):

Current Catalog Description

Introduction to software architectures and techniques for graphical user interfaces. Input devices,
windowing systems, event-driven programming, interactive geometry.

Textbook

Book in progress as PDFs on the web site

Course Goals

This course will give a student introduction to implementation issues for graphical user
interfaces. The goal is to understand the basic software architectures that govern the
development of modern graphical user interfaces. Students will write programs in Java. In
addition, the basic principles of user interface design and 2D computer graphics will be covered.

Prerequisites by Topic

CS 312 – Algorithms
CS 330 – Programming Languages

Major Topics Covered in the Course

Graphics and Drawing


Coordinate Systems
Windowing Systems
Event handling mechanisms
Widget layout algorithms and geometric constraints
Model-View-Controller and multiple view architectures
Look and Feel issues and basics of visual design
Internationalization
Interface design environments
Drawing geometry and transformations

Page 93 of 394
C3 CS 12/14/04
Interactive techniques for geometric problems
Cut/Copy/Paste and Drag/Drop
UNDO and Command objects
Distributed interaction

Laboratory projects (specify number of weeks on each)

Interactive drawing problem – 2 weeks


Essential geometry – 1 week
Interaction with text and selection – 3 weeks
Multiview interaction – 3 weeks
Drawing program – 2 weeks
Interacting with nested transformations – 4 weeks

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms Data Structures
Software Design 3 Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least _0____ written reports (not including exams,
tests, quizzes, or commented programs) of typically __0___ pages and to make ___0__ oral
presentations of typically __0___ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Theoretical Content

Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.

Geometric transformations and interactive geometry – 15 lecture hours

Solution Design

Please describe the design experiences common to all course sections.

Page 94 of 394
C3 CS 12/14/04
There are several complex software design problems that require clear understanding of
appropriate software architectures that must be translated into specific program solutions.
Each programming project has these characteristics.

Page 95 of 394
C3 CS 12/14/04
CS 460 Faculty Coordinator: Mark Clement

Title: Networking

Catalogue Description: Computer networking, software architecture, organization,


protocols, routing, global networks, internet-working, standards, and application.

Text: ‘Computer Networks’ Peterson and Davies

Prerequisites: Algorithm analysis, operating systems, computer architecture

Concepts and Topics

Requirements, Pthreads
Sockets
Protocols
Protocol Implementation
Networking Hardware
Ethernet (intro lab4)
Bit Stuffing
Reliable Transmission
Sliding Window Implementation
Token Ring
HTTP Protocol
Network Adaptors
Packet switching, forwarding
ARP
Link State Algorithms
Routing Algorithms
IP
ATM
VirtualLANS
CGI
Switching Hardware
Bridges, extended LANS
Satellite Communications
Internet Details
Routing Protocols
IPV6, multicast
Name Resolution
UDP and TCP
Sliding Window
RPC
Presentation Formatting
Data compression
Data security

Page 96 of 394
C3 CS 12/14/04
Congestion control
TCP Congestion control

Laboratory projects: Several—write a significant portion of the TCP/IP protocol stack, produce
a webserver, write a simple CORBA application and do a project the student selects from
a list of suggested projects.

Page 97 of 394
C3 CS 12/14/04
CS 462 Faculty Coordinator: Quinn Snell

Title: Large Scale Distributed System Design

Catalogue description: Designing and implementing client-server enterprise applications.


Web servers, application servers, database connectivity, remote procedure calls,
transactions, messaging, directory, naming services, threads, security, data forms.

Text: ‘Advanced Java Development for Enterprise Applications’ Cliff berg, Prentice Hall
Computer books, ISBN: 0130804614

Prerequisites: Programming Languages, Operating Systems

Introduction

The World Wide Web (WWW) has exploded in recent years and consequently so has the need
for computer scientists who understand how to design and build large web-based applications.
Thus, this call will emphasize web-based systems and the functionality usually associated with a
web-based system, although the techniques are more general than simply building large web
applications.

This course emphasizes two things above all else:

1. Distributed computation as a method for achieving system requirements


2. Large-scale computing
These points differentiate this class from a course in concurrent or parallel programming where
the emphasis is on the how processes communicate and coordinate their efforts to arrive at some
solution to a problem, usually in less time that a single sequential process could. This course is
not about programming per se, but rather about architecting systems. The goal of distributing the
computation is not just better performance (although that is always the heart of any problem) but
to build systems that are

Highly Flexible
Highly Reliable
Highly Scalable
Highly Secure
Highly Available

We call such a large-scale distributed system an enterprise system. By their very nature,
designing and building an enterprise system requires skills and knowledge not generally
associated with smaller scale or non-distributed applications. These include knowledge of how
networks operate, how computer systems work and are structures, security, how database can be
exploited effectively, etc.

Objective

Page 98 of 394
C3 CS 12/14/04
Give students the basic knowledge required to architect and build enterprise systems. Students
will learn what requirements are placed on an enterprise system. Implementing an enterprise
system is an exercise much larger than programming and skills other than programming come
into play. This course will emphasize the exposition and development of those skills.

Content

The following is a rough out-of-order outline of the course content:

Architectural requirements for successful large-scale distributed systems


Flexibility
Scalability
Reliability
Security
Architectural types for distributed systems
Client-server
MVC (Model-View-Controller)
Event-based systems
Basic Knowledge
OO Design
Threads
Interprocess communication: Sockets, RPC, etc.
Security issues:
Message vs. channel encryption
Digital certificates
Virtual private networks
Systems issues
Physical architectures for HA
Deployment of logical structure
Operations
Web servers
HTTP Protocol: GET, POST, and PUT transactions
URLs
Web servers (Apache)
Stateless nature of the web and how to deal with it (cookies, etc)
CGI
GSP
Proxy servers
Servlets
JavaBeans
Connecting components: CORBA, IDL, RMI
Data Stream Formats
HTML
MIME
XML

Page 99 of 394
C3 CS 12/14/04
Document Type Definitions (DTD)
Parsing
Document Object Model (DOM)
Extensions for enterprise
Persistent data storage
JDBC
Indexing and searching repositories
Applications servers EJB
Messaging (JMS)
Transactoin (JTA)
OMG Architecture
Other Issues
Optimization
Legacy data and systems
Mail servers

Lectures

Summaries of lectures given are available online

Prerequisites
Knowledge of Java and OOD
HTML and web basics
Operating systems (CS 345), programming languages (CS 330)

Course Project

The course will require that students complete a semester-long group project emphasizing the
knowledge and skills taught in the course. You will keep a log (written in a bound lab notebook)
of your actions (one per person in your group). The notebook will be reviewed by myself or the
TAs from time to time and is subject to spot review. The logs, along with the performance of
your server, will serve as the basis of for your project grade.

Part 0: Installing FreeBSD


Part 1: Web Servers
Part 2: Intro to CGI
Part 3: JAVA Servlets
Part 4: XML and Cocoon
Part 5: JSP’s, Beans, and the JavaMail API
Part 6: Data persistence (Postgresql and JDBC)
Part 7: The JONAS EJB Server
Part 8: A trace delivery system

Grades

Your grade will be based on the following:

Page 100 of 394


C3 CS 12/14/04
Class (and overall course) participation (10%)
Group project (60%)
Final, written exam (30%)

Class participation will be solely up to my subjective judgment. The final exam will be design
oriented and you will be required to make architecture and implementation decision about a
proposed system. The course project will be your best guide in preparing for this work. If you
don’t participate fully in the project, don’t expect to do well on the exam.

Page 101 of 394


C3 CS 12/14/04
Dept., Number 465 Course Computer Security.
Title
Semester 3 Course Kent Seamons
hours Coordinator
URL http://isrl.cs.byu.edu/classes/2006/winter/cs465/

Current Catalog Description

Introduction to computer security fundamentals: confidentiality, integrity, authentication, and


access control. Secret key and public key cryptography, network security protocols, viruses, and
fire walls.

Textbook

Network Security Essentials, Second Edition


by William Stallings

Prerequisites by Topic

C S 330; 345 or 360. Recommended: C S 404

This course will cover the fundamental principles of computer and network security. We will
study core security concepts and review existing security architectures and systems. We will also
study software security issues. Student learning activities will be comprised of exams,
homework, and programming projects.

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms 3 Data Structures
Software Design Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least __4___ written reports (not including exams,
tests, quizzes, or commented programs) of typically __1___ pages and to make ___0__ oral
Page 102 of 394
C3 CS 12/14/04
presentations of typically _____ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Social and Ethical Issues

Privacy

Theoretical Content

Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.

RSA Encryption

Problem Analysis

Please describe the analysis experiences common to all course sections.

Security Attacks

Solution Design

Lab 1: AES Lab Spec


Lab 2: Modes of Operation
Lab 3: Diffie-Helman
Lab 4: RSA
Lab 5: Unix Passwords
Lab 6: Vigenere Cipher
Lab 7: Stack Smashing and Heap Overflow
Lab 8: Copy Prevention Lab

Page 103 of 394


C3 CS 12/14/04
CS 470 Course Coordinator: Michael Goodrich

Title: Artificial Intelligence

Course description: Introduction to core areas of artificial intelligence; intelligent agents;


problems solving and search, knowledge-based systems, inference, leaning, planning,
uncertainty, and perception.

Textbook: “Artificial Intelligence: A Modern Approach”, Stuart and Norvig

Prerequisites: Algorithm Analysis, Programming Languages, Database Systems

Concepts and Topics

Introduction to Artificial Intelligence: an overview


Problem Solving
Search strategies
Heuristic Search
Logical Reasoning
Representation
Propositional Logic
First Order Logic
Inference
Acting Logically
Planning
Planning and acting
Handling Uncertain Knowledge
Probabilistic Reasoning
Making decisions
Expert Systems and Intelligent Agents
Knowledge Bases
Inference Engines
Expert System Building Tools
Capabilities and Limitations of Intelligent Agents

Laboratory Projects: Several small projects leading up to the development of an intelligent


agent for a specified task.

CORE ADVANCED CORE ADVANCED


Data Structures ____ ½ hr. Computer Organization and Architecture____ ______
Algorithms ____ ½ hr. Concepts of Programming Languages _____ ½ hr.
Software design_____ 1 ½ hrs.

Analysis
Design

Extensive analysis and design required in the creation of the intelligent agent.
Page 104 of 394
C3 CS 12/14/04
Dept., Number 478 Course Introduction to Neural Networks and Machine
Title Learning.
Semester 3 Course Tony Martinez
hours Coordinator
URL http://axon.cs.byu.edu/~martinez/classes/478/

Current Catalog Description

Neural network and machine learning models include Perceptrons, back-propagation, decision
trees, genetic algorithms, and other mechanisms allowing computers to learn without being
programmed.

Textbook

Machine Learning by Tom M. Mitchell

Prerequisites by Topic

C S 252, 312

Goals: Introduction to the philosophy, utility, and models of machine learning, such that
students are able to understand the basic concepts and issues and be prepared to take the next
step of proposing original research with potential follow-up in a graduate research program.
Models covered will include neural networks, decision trees, instance based learning, Bayesian
learning, rule-based learning, genetic algorithms, and others.

Text: The text for the class is Machine Learning by Tom M. Mitchell. We will cover much of
the text following the provided schedule. You are responsible for reading the material for a given
day prior to that day's lecture. Because class time is limited, we may not cover everything in the
text. However, except where specifically noted, you are responsible to know the entirety of each
chapter assigned.

Programming Assignments and Homework: Most tasks will be in the form of programming
assignments and an associated written report. A few written problems will be due as the first
homework assignment. For each of the machine learning models we study in depth, there will be
a programming assignment involving the implementation of the model and experimentation with
its abilities on one or more learning problems. Much of the learning for this class will come in
the development, experimentation, and analysis of the specific models.

A short written report will also be due describing your efforts, results and conclusions. The
report is limited to no more than four single-spaced pages using 12 point font, including all

Page 105 of 394


C3 CS 12/14/04
figures. Figures are not to be hand-drawn and should be large enough to be easily legible.
Anything beyond the four page limit will not be graded! You must work to include all important
information in the allotted four pages. Communicating clearly and concisely what you have to
say is an important skill you will use throughout your career. These programming assignments
will help you gain not only a mastery of the models themselves but also a beginning
understanding of the major issues involved in designing machine learning methods. Finally, by
the end of the course, you will have developed a suite of machine learning algorithms that will be
usable (and useful) in the future. Programming assignments will be graded 90% on positive
completion and technical accuracy in the discussion. Most parts of the assignments require a
clear measurable result (e.g. working program, graphs of results, etc.) and some questions where
you analyze your results. Most of the questions will have objective answers which you are
expected to get right. A few questions are more open-ended and subjective, and in these cases
you will be graded based on perceived effort and thought. Assignments are to be done on a word
processor and be neat and professional. Good writing, grammar, punctuation, etc. are important.
10% of the assignment grade will be on based on these aesthetic issues. All assignments are due
at the beginning of class on the date indicated on the schedule.
CS 478 Assignments

Each written assignment (most of them) is limited to no more than four single-sided, single-
spaced pages (the first should require significantly less) using 12 point font, including all figures.
Figures are not to be hand-drawn and should be large enough to be easily legible. Anything
beyond the four page limit will not be graded! You must work to include all important
information in the allotted four pages. Communicating clearly and concisely what you have to
say is an important skill you will use throughout your career. NOTE: All written assignments are
to be done on a word processor and be neat and professional.

Programming assignments will be graded 90% on positive completion and technical accuracy in
the discussion. Most parts of the assignments require an clear measurable result (e.g. working
program, graphs of results, etc.) and some questions where you analyze your results. Most of the
questions will have objective answers which you are expected to get right. A few questions are
more open-ended and subjective, and in these cases you will be graded based on perceived effort
and thought. Assignments are to be done on a word processor and be neat and professional. Good
writing, grammar, punctuation, etc. are important. 10% of the assignment grade will be on based
on these aesthetic issues. All assignments are due at the beginning of class on the date indicated
on the schedule.

Written Assignment

Answer problems 1.1, 1.2, and 1.4 from the text.

This assignment is worth 4% of your overall Homework and Programming Assignments grade.

Data Set Module Assignment

In this first assignment you will begin implementing the input functionality necessary for
training and testing the various models we will experiment with over the semester. You are to
Page 106 of 394
C3 CS 12/14/04
implement the structures and associated operations necessary to hold and manipulate datasets
and instances.

We will always use ARFF files for our datasets, and we will make the assumption that all data
will fit in RAM. Details on ARFF are here. A collection of data sets already in the ARFF
format can be found here.

Unlike most lab assignments, this one will require you to demonstrate your code for one of the
TAs, so you are responsible for doing so on or before the due date. For the purposes of passing
off the assignment, you must add a few display functions that dump information to the screen
and a "main" function to exercise your functions/methods/whatevers. In order to get full credit,
your "program" must accurately:
• Ask the user to enter the name of an ARFF file (w/o the extension)
• Load the ARFF file into adequate structures in memory
• Display on screen:
◦ The name of the dataset and its size (i.e., number of instances)
◦ The number of attributes and for each attribute: its name and type. If the type is not
continuous, then a list of all possible values
◦ The first 5 instances from the data section of the ARFF file
◦ Randomize the data and display the first 5 instances of the "new" dataset
• The 5 datasets used for testing (and passing off) are as follows:

Labor Negotiation
Iris Plants
Soybean
Tennis Playing
Fitting Contact Lenses

This assignment is worth 5% of your overall Homework and Programming Assignments grade.

Machine Learning System Manager

In this assignment you will implement a user interface for managing all your learning modules,
conducting experiments, and evaluating and reporting results. The general idea is to implement a
high-level module whose role is to
• provide a user-friendly interface
• hide implementation details from the user
• offer uniform access to all learning modules
• control execution

Your shell should allow users to


• select a dataset
• select a learning algorithm
• select an evaluation method
• see a report of the experiment, including
◦ name of dataset, learning algorithm used and evaluation method used (also
Page 107 of 394
C3 CS 12/14/04
display any salient parameters)
◦ sizes of training and test set
◦ predictive accuracy on both training and test set including the number correct
and total number of instances for each output class

The shell should support


• the various methods for evaluation discussed here. These methods should be
implemented for this assignment.
• a function for learning (inducing a model of the user-selected type)
• a function for estimating generalization accuracy (using the user-selected method)

As the semester progresses, we will be adding functionality to the system in the form of learning
modules, evaluation methods, etc. Some thinking now about the design of the system as a whole
will make your life much simpler down the road.

For the purpose of passing off the assignment, you will need to stub out some of your functions
since no learners have been implemented yet. In order to get full credit, you must:
• Hand-in a short document describing your overall design (no more than 2 pages)
• Explain your design philosophy to the TAs (motivation, how things will fit in, etc.)
• Demonstrate your program:
◦ Try various user input selections
◦ Show the results (adequately stubbed out so the TAs know what would have
been executed)

This assignment is worth 7% of your overall Homework and Programming Assignments grade.

Decision Tree Assignment

1. Implement the ID3 decision tree algorithm, including the option for reduced error pruning and
integrate it with your experiment shell. It is a good idea to use a simple data set (like the
lenses data), that you can check by hand, to test your algorithm to make sure that it is
working correctly.

2. Construct an ARFF file for the car evaluation problem using its description and data.

3. Use your ID3 algorithm to induce a decision tree using the entire dataset. Give a visual
representation of the tree. How accurately does it classify the data set (is this a good measure
of predictive accuracy)? Now randomly split the data set into 70% training data and 30% test
data and re-induce the tree using only the training set. How accurately does it classify the
training set? How accurately does it classify the test set? What does this have to do with
estimating predictive accuracy?

4. Repeat your experiments for the congressional voting record problem (you will again need to
create an ARFF file from the description and data).

5. Implement "reduced-error pruning" and use it on the trees generated for the car and voting
Page 108 of 394
C3 CS 12/14/04
problems. In each case, use a validation set (~10%) from the training set to drive the pruning
algorithm. Report the size of your validation set and be sure not to use it for training. Give a
visual representation of the pruned trees. How accurately do they classify the training set?
How accurately do they classify the validation set? How accurately do they classify the test
set?

6. Analyze the data you have collected and thoughtfully answer the following questions:
a) For the car problem, do your best to summarize in English what the decision tree has
learned.
b) For the voting problem, do your best to summarize in English what the decision tree has
learned.
c) For the car problem, do your best to summarize in English what the pruned decision tree
has learned. How is this different than the unpruned tree?
d) For the voting problem, do your best to summarize in English what the pruned decision
tree has learned. How is this different than the unpruned tree?
e) How did you handle unknown attributes in the voting problem? Why did you choose this
approach?
f) Does the pruning algorithm improve the algorithm's performance on either problem? Why
or why not?

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments and addresses the questions posed above (look carefully at everything to make sure
you've covered all the parts of each).

This assignment is worth 12% of your overall Homework and Programming Assignments grade.

Backpropagation Assignment

1. Implement the backpropagation algorithm and integrate it with your experiment shell. Your
implementation should include
◦ batch weight update
◦ incremental weight update
◦ a reasonable stopping criterion
◦ training set randomization at each epoch
◦ an option to include a momentum term

2. Use your backpropagation learner, with incremental weight updates, for the iris classification
problem. Use a 70/30 split of the data for the training/test set. Try some different learning
rates. Graph TSS vs Epochs for the different learning rates. Repeat your experiments for
the vowel identification problem. This time use a 75/25 split for training and testing sets.
Explain your stopping criteria and justify why you used it.

3. Once you have a reasonable learning rate value, experiment with different numbers of hidden
nodes. Start with 2 hidden nodes and double them for each test until you get no more
improvement. For the two datasets Graph TSS vs epochs with training and test set accuracy
for each choice of number of hidden nodes.
Page 109 of 394
C3 CS 12/14/04
4. Repeat both experiments (using only the best number of hidden nodes) using batch update of
weights (true gradient descent). You may need to try different learning rates for batch to get
it to work. How does learning rate affect the results with batch update. Graph TSS vs
Epochs.

5. Add some different momentum terms to your weight updates and repeat experiment 2 (using
the best number of hidden nodes and incremental weight update). Graph TSS vs Epochs.

6. Analyze the data you have collected and thoughtfully answer the following questions:
a) Did the backprop perform significantly better on one of the problems? If so, which one?
Discuss some possible reasons for this.
b) Discuss the effect of different numbers of hidden units on the algorithm's performance.
c) What was the effect of incremental weight update vs. batch weight update?
d) How did learning rate affect your results?
e) How did the momentum term affect your results?
f) On the vowel data, what types of errors are most common for your network? Why?
Suggest some modifications/approaches for improving your results

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments and addresses the questions posed above (look carefully at everything to make sure
you've covered all the parts of each).

This assignment is worth 12% of your overall Homework and Programming Assignments grade.

ID3/BP Comparison Report

1 Update your experiment shell to handle significance testing in form of permutation tests.

2 Visit the UCI Machine Learning Repository and select 10 data sets to which both ID3 and
backpropagation learning can be applied.

3 For each of your 10 data sets, compare the performance of ID3 and backpropagation using a
permutation test.
◦ for ID3 do not use pruning.
◦ for the backprop algorithm, use incremental weight updates, a single hidden layer and
no momentum.
◦ for the permutation tests, obtain 30 accuracy estimates for each model (the best and
easiest way to do this is 30-fold cross-validation) and perform 100,000 permutation
comparisons.

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments. Explain and justify any decisions you make, summarize and analyze your results
and draw conclusions.

This assignment is worth 12% of your overall Homework and Programming Assignments grade.
Page 110 of 394
C3 CS 12/14/04
Naive Bayes Assignment

1 Implement the naive Bayes algorithm and integrate it with your experiment shell.

2 Construct an ARFF file for the nursery problem using its description and data.

3 Use your naive Bayes learner to learn the problem and evaluate its predictive accuracy using
10-fold cross-validation.

4 Repeat your experiment using a 60/40 split of the data for the training/test set.

5 Use your naive Bayes learner for the soybean problem. Use this training set and evaluate
predictive accuracy using this test set.

6 When the assumption of conditional independence holds, the naive Bayes hypothesis is the
MAP (maximum a posteriori) hypothesis. How might you check whether this assumption
holds for a given dataset? Use your method on the nursery problem and decide whether or
not naive Bayes is "safe" on it.

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments and addresses the questions posed above (look carefully at everything to make sure
you've covered all the parts of each).

This assignment is worth 12% of your overall Homework and Programming Assignments grade.

Instance-based Learning Assignment

1 Implement the k nearest neighbor algorithm, including optional distance weighting and
regression, and integrate it with your experiment shell.

2 Use your algorithm for the balanced scale problem using this training set and this test set.
Experiment with odd values of k from 1 to 19. Which value of k is the best?

3 Use the regression variation of your algorithm for the housing price prediction problem using
this training set and this test set. Report Mean Square Error as your accuracy metric for this
case. In this case do it once with no normalization of the input features and then do it again
with each input feature normalized between 0 and 1. Experiment using odd values of k from
1 to 19. Which value of k is the best?

4 Repeat your experiments using distance-weighted (inverse of distance squared) voting.

5 For the best value of k for each dataset (and using the normalized approach for the housing
data), implement a simple "pruning" algorithm that removes data points in some rational
way such that performance drops reasonably slowly on a validation set. Graph performance
on the validation and test sets vs. the number of training examples removed until you are
Page 111 of 394
C3 CS 12/14/04
down to at most 10% of your original data.

6 Analyze the data you have collected and thoughtfully answer the following questions:
a) How well suited is the nearest neighbor algorithm for these datasets? Why?
b) How does distance-weighted voting affect your algorithm's performance? Why?
c) What effect does normalization of the input data have on the housing data set?
d) How well does the simple pruning algorithm work? How many examples can you
eliminate without significantly affecting performance? How would you improve this
simple pruning algorithm?
e) How would you modify your distance metric to handle nominal data? What affects
might this have on your algorithm's performance?

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments and addresses the questions posed above (look carefully at everything to make sure
you've covered all the parts of each).

This assignment is worth 12% of your overall Homework and Programming Assignments grade.

Genetic Algorithm Assignment

1 Implement a genetic algorithm for evolving feed forward neural networks with a single
hidden layer and integrate it with your experiment shell.
◦ The number of inputs and outputs will depend on the problem being solved.
◦ Use 4 hidden nodes for Iris and 8 hidden nodes for Vowel.
◦ Weights should range from -5 to 5 and be represented in the genome as integer values,
ranging from 0 to 1023. Thus each weight is represented by 10 bits (binary or gray scale
encoding). You may use a different encoding as long as it is reasonable and you explain
your justification. If you use a real valued encoding then you should also do a Gaussian
mutation approach, or an approach (explain and justify it) which is similar in concept to the
Gaussian (i.e. higher chance of a small change in the current real value, with a decreasing
chance of larger changes).
• Use crossover (at least single point) and mutation as genetic operators. For crossover
you may break on arbitrary or weight boundaries. Use the basic control flow as shown in
table 9.1 of the text. You may use other variations than 9.1 as long as you explain and give
rationale for your approach.
◦ You will need to use your NN module to compute fitness. You should randomly choose
80% of the data and compute classification accuracy with the NN module on this set as
your fitness score. The remaining 20% should be used as a holdout set (in this exercise we
will not do anything but report results on the holdout set).

2 Using the same two datasets used in the backpropagation assignment (iris and vowel):
◦ Use fitness proportionate selection.
◦ During evolution, graph (on the same graph) over time (every x generations) the best
fitness (classification accuracy) so far in any generation, and the best fitness, worst fitness
and average fitness of your current population. Also, graph (together, on a different graph
than the first) the same items on the 20% holdout set. You may have to run for a while to
Page 112 of 394
C3 CS 12/14/04
get good results.
◦ Experiment with different values for population size, replacement rate and mutation rate
and report your values and results. Try at least 3 values for each variable in either a
permutation or sequential testing approach. Choose those that you think are best and
justify your choices.

3 Using your chosen values for population size, replacement rate and mutation rate, re-run your
experiments using tournament selection. For tournament selection, try three different cases
with probability p = 0.5, 0.7, and 0.9 that the higher fitness wins.

4 Analyze the data you have collected and thoughtfully answer the following questions:
a) Discuss your method of encoding the problem as a genome. What issues did you have to
address and how did you do so?
b) How do the values for population size, replacement rate and mutation rate affect the
performance of the algorithm?
c) Compare the 4 selection methods you used (fitness proportionate selection and the 3
versions of tournament selection)? Explain the differences as best you can?
d) How does the evolved neural network for the iris problem compare with your network
trained using backpropagation? How does the training time for the two approaches
compare? How do their accuracies compare? Include numbers in your discussion.
e) How does the evolved neural network for the vowel problem compare with your
network trained using backpropagation? How does the training time for the two approaches
compare? How do their accuracies compare? Include numbers in your discussion.

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments and addresses the questions posed above (look carefully at everything to make sure
you've covered all the parts of each).

This assignment is worth 12% of your overall Homework and Programming Assignments grade.

Algorithm Comparison Assignment

1 Using the same 10 datasets you selected for your ID3/BP Comparison run experiments and
collect data for each of your learning algorithms (Note that you will need to adjust ID3 and
Naïve Bayes to handle real valued input features. Explain your approach for doing so.):
◦ ID3 (may re-use results from midterm report)
◦ Backpropagation (may re-use results from midterm report)
◦ k-NN with k=3
◦ naive Bayes
◦ genetic algorithm for evolving feedforward neural network

2 For each pair of algorithms (there are 10 such pairs):


◦ Perform significance testing using a permutation test with the same parameters used in
the ID3/BP Comparison.
◦ Give a neat, tabular summary of your results and using this information, try to come up
with an overall ranking of your algorithms.
Page 113 of 394
C3 CS 12/14/04
3 Identify and discuss any potentially interesting patterns in the behavior of your learners on
the set of datasets you selected. Outline any generalizations you think justified about future
performance of your learners on other datasets (i.e., meta-rules).

Turn in a thoughtful, well-written written report (see the guidelines above) that details your
experiments. Explain and justify any decisions you make, summarize and analyze your results
and draw conclusions.

This assignment is worth 12% of your overall Homework and Programming Assignments grade.

Stacking Ensemble Assignment

1. Choose 3 datasets which can be used with Backpropagation, ID3, Naïve Bayes, and k-
nearest neighbor.
2. Train the 3 sets using each of the four algorithms. Choose learning parameters for the
learning algorithms based on your previous experience and state what parameters you use.
Note that you will need to adjust ID3 and Naïve Bayes to handle real valued input features.
Explain your approach for doing so.
3. Create a new training set for each of the 3 applications whose input features are the outputs
of the four trained algorithms and whose output is the same as in the original training set.
4. Train a stacked model (you choose which of the four algorithms you want to use for the
stacked model) on the 3 modified training sets.
5. For each of the three datasets report and compare the results of the stacked ensemble with
the results of each of the four learning algorithms on their own. Discuss your findings.

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms 3 Data Structures
Software Design Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least __11___ written reports (not including exams,
tests, quizzes, or commented programs) of typically __4___ pages and to make ___0__ oral
presentations of typically _____ minute’s duration. Include only material that is graded for
grammar, spelling, style, and so forth, as well as for technical content, completeness, and
accuracy.

Theoretical Content

Page 114 of 394


C3 CS 12/14/04
Neural Networks

Page 115 of 394


C3 CS 12/14/04
Dept., Number 486 Course Verification and Validation.
Title
Semester 3 Course Eric Mercer
hours Coordinator
URL http://vv.cs.byu.edu/cs486/

Current Catalog Description

Implementing formal verification algorithms and using them in protocol and circuit design;
proving both incorrectness and correctness.

Textbook

Model Checking, Edmund M. Clarke, Orna Grumberg and Doron A. Peled, MIT Press, 1999

Prerequisites by Topic

C S 252, 312; 345 or 360

This class examines the foundational concepts in model checking that are common in industrial
tools. The main premise of the course is that "what's under the hood" matters since it affects the
correctness, performance, and utility of model checking programs. The key questions to answer
in this course are:

How do I analyze a threaded or multiprocess system?


What is a race condition? What is a deadlock? Do any of these exist in my concurrent system?
What does it mean for a program to be correct or proved correct?
How do I describe properties of my system design without ambiguity?
I implemented this protocol like my boss asked, how do I analyze it to see if it does what it is
suppose to do?
I really want my threaded or multiprocess program to not have bugs in it when deployed. I know
there are inputs I have not conceived of to test, what can I do?
Model checking is effective in finding obscures bugs, but how do you actually get it to work on
real programs using available tools?
To answer these questions, we will study, implement, and use common model checking
algorithms to explore properties several threaded and multiprocess designs. We will be

Page 116 of 394


C3 CS 12/14/04
programming in Java using the Eclipse framework. Our algorithm implementations are to be
implemented in the Bogor model checker. In doing this, we will be able to arm ourselves with
the tools, knowledge, and skills needed to better analyze concurrent software and system designs
before they are deployed.

This course studies in detail the foundational theory for symbolic and explicit state model
checking while preserving the practical application of model checking through implementing
actual algorithms. At the end of this course, a student will have bridged the theoretical and
practical divide by implementing an actual model checker for CTL symbolic and LTL explicit
state model checking. The premise of the course is that a tool builder is a better tool user with
regard to model checking. As such, the students have a unique experience where they are able to
study theory in the classroom, transform it into an actual implementation in the lab, and apply it
to real designs like the protocol for a PCI bridge

The course is organized to stretch a student's theoretical and programming skills. All problems,
definitions, and algorithms are described precisely in appropriate mathematical terms, and more
importantly, the level of rigor in the reading is extremely high (i.e., more math than english in
many cases). This is scary at first glance, but the class is designed to help students learn the skills
necessary to understanding this level or rigor. The goal is to help students bridge the abstract
mathematical definition to a real implementation.

The course couples several labs with the theoretical class work. Each lab completes a piece of a
larger model checking tool or uses a model checking algorithm to verify a property of a real
design. As such, the students will not be implementing, in any given lab, a single complete
program. Rather, students implement interfaces using Java. The interfaces implement key
components to the model checking tool; thus, students work inside an existing framework to
implement components of a larger tool to simulate a real life software developer environment.
They also apply their tool to real designs to validate properties.

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms 3 Data Structures
Software Design Prog. Languages
Comp. Arch.

Theoretical Content

Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.

Page 117 of 394


C3 CS 12/14/04
Model Checking

Page 118 of 394


C3 CS 12/14/04
Dept., Number CS Course 557
Title
Semester 3 Course Tom Sederberg
hours Coordinator
URL (if http://tom.cs.byu.edu/~557/
any):

Current Catalog Description

Free-form curves and surfaces; mathematical theory and algorithms, Bezier and B-Splines curves
and surfaces, subdivision surfaces, T-Splines, free-form deformation, and intersection
algorithms. Several programming projects.

Textbook

Computer Aided Geometric Design. A book in PDF form written by Thomas W. Sederberg,
available for download at no cost from http://tom.cs.byu.edu/~557/

References

Several links are contained on the course webpage to papers of current interest. These references
can change from year to year.

Course Goals

Provide students with a solid foundation in the mathematics and algorithms of geometric
modeling. Teach the current hot topics in the field. Impart a working knowledge by
implementing several algorithms.

Prerequisites by Topic

CS 240 C++ programming


Math 343 Linear algebra

Major Topics Covered in the Course

Page 119 of 394


C3 CS 12/14/04
Bezier curves and surfaces. B-Spline curves and surfaces. Free-form deformation. Intersection
algorithms. Interpolation. Newton polynomials. Neville’s scheme. Undetermined coefficients.
Lagrange polynomials. Implicitization.

Laboratory projects (specify number of weeks on each)

Bezier curve algorithms. 4 weeks. B-Spline curves, 3 weeks. Curve intersections, 3 weeks.
Free-form deformation, 3 weeks.

Estimate Curriculum Category Content (Semester hours)

Area Core Advanced Area Core Advanced


Algorithms .5 Data Structures .5
Software Design .5 Prog. Languages
Comp. Arch.

Oral and Written Communications

Every student is required to submit at least 0 written reports (not including exams, tests,
quizzes, or commented programs) of typically _____ pages and to make 0 oral presentations
of typically _____ minute’s duration. Include only material that is graded for grammar,
spelling, style, and so forth, as well as for technical content, completeness, and accuracy.

Social and Ethical Issues

Please list the topics that address the social and ethical implications of computing covered in
all course sections. Estimate the class time spent on each topic. In what ways are the students
in this course graded on their understanding of these topics (e.g., test questions, essays, oral
presentations, and so forth)?

Nothing

Theoretical Content

Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.

Page 120 of 394


C3 CS 12/14/04
70% of this course is theory, covering the mathematical foundations of computer adied
geometric design.

Problem Analysis

Please describe the analysis experiences common to all course sections.

The course has ten homework assignments which give the students experience in applying
the theory.

Solution Design

Please describe the design experiences common to all course sections.

Four programming assignments give the students experience in implementing the basic
algorithms of computer aided geometric design.

Page 121 of 394


C3 CS 12/14/04
V. Laboratories and Computing Facilities

Intent: Laboratories and computing facilities are available, accessible, and adequately
supported to enable students to complete their course work and to support faculty teaching needs
and scholarly activities.

In Section VI you will be asked to describe the planning and acquisition processes for laboratory
equipment. Please do not repeat any of that information here; simply refer to that section, if
necessary, to avoid duplication.

A. Computing Facilities

1. Describe the computing facilities used by students in the program. Indicate the types of
software available in each category. Specify any limitations that impact the quality of the
educational experience.

Institutional computing facilities:

Brigham Young University maintains many open access computer laboratories that all students
may use. The labs are filled with PCs running Windows and have a large software distribution
that is standard on all machines. In addition to these laboratories, the University is equipped
with wireless networks that cover most of the buildings on campus. The University library has
open access network ports at every carrol and desk for laptops.

Program computing facilities:

The Computer Science Department currently has 14 open labs for computer science students:
four Windows labs, eight Linux labs, and two labs reserved for facilitating group work with
specific courses. There are 13 research labs. The open labs have 360 machines and the
research labs contain 175 machines including workstations, desktops, servers, and laptops.
Most of these machines are single processor, but there are some that have dual cores on dual
processors.

The memory of our machines range anywhere from 512 MB to 16 GB. Processors range from
around 800 MHz to 4+GHz, dual cores, and dual and quad processors. The machines in both
labs are equipped with numerous software applications including the following:

C S 100 Labs:
7-Zip 4.32, Active Perl 5.8.7, Adobe PhotoShop Elements 4.0, Adobe Premiere Elements 1.0,
Adobe Reader 7.0.5, Adobe Reader 7.0.5 Language Support, Audacity 1.2.4, Easy CD Creator
5 Basic, Extended language Support Fonts Package, HighMAT Extension to Microsoft
Windows XP CD Writing Wizard, J2SE Development Kit 5.0, J2SE Runtime Environment
5.0, LiveUpdate 1.7 (Symantec), Microsoft .NET Framework 1.1, Microsoft .NET Framework
2.0, Microsoft Office Professional Edition 2003, Microsoft Windows Journal Viewer, Mozilla
Firefox, PAF Insight, NVIDIA Drivers &c, PDF Creator, QuickTime, Symantec AntiVirus
Client, TightVNC
Page 122 of 394
C3 CS 12/14/04
Windows Labs:
7-Zip, Active Perl, Adobe Reader & Language Support, Adobe SVG Viewer, Easy CD Creator
5 Basic, Extended language Support Fonts Package, Graphviz, HighMat Extension to
Microsoft XP CD Writing, Intel Network drivers, J2SE Development Kit, J2SE Runtime
Environment, LiveUpdate, Matlab, Microsoft .NET Framework vs. 1.1 & 2.0, Microsoft
DirectX, Microsoft Document Explorer, Microsoft office Power Point Viewer, Microsoft
Office Professional Edition, Microsoft Office Word Viewer, Microsoft Visio Professional,
Microsoft Visual J# Redistributable package, Microsoft Visual Studio, Professional Edition,
Microsoft Windows Journal Viewer, Mozart, Mozilla Firefox, MSDN Library for Visual
Studio, MSXML Parser, Nvidia Drivers &c, PAF Insight, PDF Creator, PLT Scheme, SSH
Secure Shell, Symantec AntiVirus Client, TightVNC, Vim, Windows Installer, Windows
Media Connect, Windows Resource Kit Tools, Openoffice 2.0.

Linux Labs:
4Suite, Adobe reader, Imagemagick, Magicpoint, Guppi, Hermes, Windowmaker, audacity,
bash, bzflag, bzip2, coreutils, cups, curl, cvs, db4, dbh, eclipse, emacs, vim, epic, epiphany,
ethereal, evolution, gnome, gimp, ghostscript, glib, gtk, firefox, gaim, gprolog, iptables, j2sdk,
iputils, java2, lynx, man, metacity, Mozart, mozilla, mplayer, mutt¸ mysql, nautilus, neon,
newt, eclipse, openldap, openoffice, openmotif, openssh, openssl, perl, php, pine, planner, plt-
scheme, postfix, python, qt, procmail, ppracer, rdesktop, ruby, samba-client, sed, sqlite,
subversion, star, thunderbird, tcdump, unix2dos, swig, tk, unzip, vnc, wine, wget, yum.

The labs provide a good environment for learning computer science and are supported well by
the Department. Any software that is needed for a class can be purchased and installed on the
machines for access by the students. The Department chose Windows and Linux because of
their standing as well-accepted operating systems and because of the availability of their
software and programming environments. Most software that is needed for course work can
be installed on either Windows or Linux.

Other computing facilities:

None.

2. Describe the computing facilities planning, acquisition, and maintenance processes and
their adequacy. Include discussion of these topics for university-wide computing facilities
available to all students (if used by your majors), your own laboratories and equipment (if
applicable), and facilities controlled by other departments and/or schools (if used by your
majors).

The University has an Office of Information Technology that is responsible for the acquisition
and maintenance of all technology on campus. Also, the Department has a Computing
Committee made up of 3 faculty members, the Department Operations and Systems Manager,
and the Department’s two full-time Systems Administrators. Access point equipment can be
Page 123 of 394
C3 CS 12/14/04
rotated every three years and the equipment for the open lab is rotated every four years. Half
of the lab equipment is rotated every two years.

3. Discuss how you assess the adequacy of your laboratory and computing support.

We determine our adequacy for support by monitoring the ratio of students/workstation and
the hardware/software needs for each of the courses. We also determine adequacy by the
problems that are submitted; if we have repeat problems and how quickly we are able to
resolve them.

4. Please attach any equipment replacement plans to this report.

Standard V-1. Each student must have adequate and reasonable access to the systems needed for
each course.

B. Student Access

State the hours the various facilities are open. State whether students have access from
dormitories or off campus by direct access, modem, etc., and describe this access quantitatively.

All graduate and open labs are open Monday-Friday 8:00 a.m. to 12:00 a.m. and Saturday 9:00
a.m. to 11:00 p.m. during Fall and Winter semesters. They are open Monday-Friday 8:00 a.m.-
10:00 p.m. and Saturday from 9:00 a.m.-5:00 p.m. during Spring and Summer Terms. Students
can access the Linux machines remotely when they are away from campus.

Standard V-2. Documentation for hardware and software must be readily accessible to faculty
and students.

C. Documentation

Describe documentation for hardware and software systems available to students and faculty in
the computer science program. Explain how students and faculty have adequate and timely
access to the documentation.

The Computer Science Documentation Project (CSDP) is a collection of technical documents


created by BYU CS students, for BYU CS students. The goal is to make this site the primary
place Computer Science students go to find technical information of any kind for use in the labs
and in class. This information along with other technical reference material is available at
http://www.cs.byu.edu/help/

Page 124 of 394


C3 CS 12/14/04
Standard V-3. All faculty members must have access to adequate computing facilities for class
preparation and for scholarly activities.

D. Faculty Access

Describe the computing facilities available to faculty for class preparation and for scholarly
activities. Include specifics regarding resources in faculty offices.

In addition to computing facilities for their research labs, each faculty member is given a
budget with which to purchase computing equipment for their office. This is sufficient to
cover on a 2–3 year replacement cycle a notebook or desktop computer of their choice, a
monitor, and possibly other peripherals (printer, scanner, etc.) depending on the faculty
member. All faculty have access to departmental printers and a copier/scanner. All offices are
equipped with 100 Mbit/s Ethernet.

Standard V-4. There must be adequate support personnel to install and maintain the laboratories
and computing facilities.

E. Support Personnel

1. What support personnel are available to install, maintain, and manage departmental
hardware, software, and networks?

There are two full-time systems administrators who manage department hardware, software,
and networks, supply the department with equipment, troubleshoot, and brainstorm on how we
can keep a more effective system. We have worked with the university to provide
compensation for these positions closer to what is common outside the university, including
the university increasing the level of these positions.

The Department also employs six part-time student computer support people, many of whom
are in the upper-level of the computer science program, who fix problems in our labs, faculty
offices, and department office.

2. Describe any limitations due to this level of support?

Given the number of computer systems we maintain for student and research labs, there is
potential need for a third full-time systems administrator in order to provide adequate support.

Page 125 of 394


C3 CS 12/14/04
3. Are any faculty members expected to provide hardware, network, or software support? If
so, describe this expectation including how such expectations are addressed in evaluation, tenure,
promotion, and merit pay decisions, and indicate what, if any, released time is awarded for this
effort.

The faculty members are not required to provide significant hardware, network, or software
support. Three of our faculty members are on the Department’s Computing Committee, which
handles administrative concerns in regard to our systems. However, this is included as part of
their citizenship and does not require them to personally handle any systems problems.

Standard V-5. Instructional assistance must be provided for the laboratories and computing
facilities.

F. Instructional Assistance

Describe the nature and extent of instructional assistance available to students in the laboratories.

Each class using the laboratories has teaching assistants who spend most of their time in the
laboratories or in an office adjacent. Their primary duty is to assist students in their
programming projects. The number of TA lab hours per expected student lab varies depending
on the class. Please see the following table.

Lower level classes have more than upper level classes. The following table shows for a typical
semester (Fall 2005) the TA hours and the enrollments of each class using the laboratories.

Course Credit Hours TA Hours per Week Enrollment


CS 142 3 214 487
CS 235 3 95 160
CS 236 3 50 92
CS 240 3 70 89
CS 252 3 40 55
CS 312 3 25 54
CS 324 3 35 80
CS 330 3 30 44
CS 345 3 25 56
CS 404 2 20 48
CS 428 3 15 29
CS 431 3 15 8
CS 450 3 15 19
CS 452 3 20 41
CS 455 3 20 39
CS 460 3 30 47
CS 462 3 20 32
CS 465 3 30 54
CS 470 3 30 30
Page 126 of 394
C3 CS 12/14/04
CS 478 3 20 21
CS 486 3 10 11
CS 611 3 10 16
CS 650 3 10 25
CS 653 3 10 9
CS 670 3 10 13
CS 678 3 10 18

Page 127 of 394


C3 CS 12/14/04
VI. Institutional Support and Financial Resources

Intent: The institution’s support for the program and the financial resources available to the
program are sufficient to provide an environment in which the program can achieve its
objectives. Support and resources are sufficient to provide assurance that an accredited program
will retain its strength throughout the period of accreditation.

Standard VI-1. Support for faculty must be sufficient to enable the program to attract and retain
high-quality faculty capable of supporting the program’s objectives.

The Department has a consistent track record of recruiting Ph.D.-level faculty members
who already have publication records. During the last 15 years only one faculty member
has left the department other than by retirement or promotion and tenure action.

Standard VI-2. There must be sufficient support and financial resources to allow all faculty
members to attend national technical meetings with sufficient frequency to maintain competence
as teachers and scholars.
The Department has sufficient funds from the University to offer each faculty member an
average of $3,000 per year for travel. Most faculty take approximately two trips per year:
one international and one domestic. Many faculty members have additional funds that they
have raised from outside the University and travel quite frequently.

Standard VI-3. There must be support and recognition of scholarly activities.

A. Faculty Stability

1. Evidence of the long-term stability of a program is provided by its ability to both attract and
retain high quality faculty. Describe how your program does this. Some topics the description
might address are sabbatical and other leave programs, salaries, benefits, teaching loads, support
for and recognition of scholarly activity (including financial support for attendance at
professional meetings), departmental and institutional ambiance, etc.

The unique nature of BYU both limits our hiring pool and also produces very high retention
rates. Our faculty are exceptionally committed to BYU and its mission. Over the last six years,
eight faculty members have left the department:

7 retired
2 resigned prior to 3rd-year review
1 appointed to the administration

During that same period we have hired 15 new faculty members. Because of retirements and of
additionally allocated faculty positions, we were in a position until just recently where more
than half of our faculty were untenured. To distribute the impact of future retirements, we have

Page 128 of 394


C3 CS 12/14/04
tried where possible to recruit faculty members at various stages of their careers, including five
faculty with prior tenure-track experience, five with significant industry experience, and five
new or recent PhD graduates.

Faculty salaries are maintained at a level slightly lower than the Taulbee salary survey. The
“slightly lower” is intentional, to ensure that faculty take BYU positions because of their
commitment to BYU and not for the money. The department has received salary adjustments
from the university to maintain that salary level. There is every reason to believe that such
adjustments will continue where the data indicates that it is appropriate.

The allocation of salary raises sharply differentiates between those who engage in good
teaching and research and those who do not. This is a long-standing policy that has been
pursued by the last four department chairs.

Faculty are encouraged to participate in sabbatical opportunities as their personal and family
situations allow. Over the last six years we have had four faculty pursue on-campus sabbaticals
or off-campus opportunities at such places as The National Institutes of Health and Cambridge
University.

Faculty members and potential new hires frequently point to the collegial and friendly
environment in the department as one of their primary reasons for joining the department.

2. Give counts of the total number of faculty and the number of resignations, retirements, and
new hires for each of the last five years. Indicate whether there are significant problems
attracting and retaining faculty, and if so, the causes.

Year Total Faculty Resignations Retirements New Hires Administration


2000-2001 28 1 1 3
2001-2002 28 3 4 1
2002-2003 28 2 3
2003-2004 28 1
2004-2005 28 1 4

B. Faculty Professional Activities

Summarize the professional activities of your faculty, attendance at meetings, university and
professional honors won by individuals, etc. Just summarize here; details should appear in
individual faculty vitas.

The large majority of our faculty are actively engaged in their professional communities outside
the university.

Our faculty regularly publish in refereed conferences and journals (typically 75–80 refereed
papers per year). They regularly attend and present at the most critical conferences in their
Page 129 of 394
C3 CS 12/14/04
fields. In addition, the Department encourages faculty to be active in conference organization,
program committees, editorial boards, etc. For example, Dan Olsen has long served on the
editorial committee for ACM SIGCHI and was papers chair for a recent SIGCHI conference.
David Embley serves on the steering committee for the Internal Conference on Conceptual
Modeling and was general chair for ER2000. Michael Goodrich helped organize and served as
one of the chairs for a newly organized conference on Human-Robot Interaction. Our faculty
are regularly asked to serve as reviewers for the top journals and conferences in their respective
areas, and most have served as members of program committees, session chairs, etc. Several
have also served on NSF review panels.

Our faculty have won a number of university awards and external honors. Dan Olsen was
elected in 2004 to the CHI Academy, one of the top career honors in that community (only 5
inducted per year). Tom Sederberg will be receiving the ACM SIGGRAPH Computer Graphics
Achievement Award. This award is given annually to a single recipient to recognize major
research contributions to the field of computer graphics. Next to the Coons Award (which is
awarded every two years), it is the highest professional honor for a researcher in computer
graphics. Several other faculty have received “Best Paper” awards at top conferences in their
fields.

Standard VI-4. There must be office support consistent with the type of program, level of
scholarly activity, and needs of the faculty members.

C. Office Support

Describe the level and adequacy of office support. The description should address secretarial
support, office equipment, and the total group supported by this equipment and staff.

The university provides the following office support staff:


ƒ One full-time administrative staff member to manage budgets and purchasing
ƒ One full-time department secretary

From university funds for student wages we also have the following student support staff:
ƒ Two part-time secretaries
ƒ Two part-time webmasters

In addition, the department funds the following support staff from gift accounts:
ƒ One full-time Undergraduate Program Assistant
ƒ One full-time Graduate Program Assistant

The program is adequately supported by this team of office staff, though there is a need for
greater university support to cover the two full-time positions we are currently funding from
other sources. Our ability to support these positions is only temporary, and we would not be
able to adequately support our program without them.

Page 130 of 394


C3 CS 12/14/04
Standard VI-5. Adequate time must be assigned for the administration of the program.

D. Time for Administration

Describe the adequacy of the time assigned for the administration of the program.

The department is managed by a Chair, Associate Chair, Graduate Coordinator, and


Undergraduate Coordinator. The Chair teaches 1–2 courses per year, and the Associate Chair,
Graduate Coordinator, and Undergraduate Coordinator each teach 3 courses per year. These
reduced loads provide adequate time for administration of the program.

Standard VI-6. Upper levels of administration must provide the program with the resources and
atmosphere to function effectively with the rest of the institution.

E. Adequacy of Resources

Describe the adequacy of the resources and the atmosphere provided by the upper administration
for the program to function effectively with the rest of the institution.

Within the past five years, the university has allocated five additional faculty slots in order to a)
reduce section sizes and b) support the teaching of service courses such as CS 100. The
basement of the west wing of the Talmage Building has been allocated for use by CS, allowing
us to move student labs and TA space into this area and create additional office/lab space for
these new faculty. We are grateful for the increased support of the university and college in
these ways.

We have a sufficient and consistent capital equipment budget. The University and the
University’s Graduate Studies Office have also been supporting of the computer science
graduate program.

Historically, we have not had sufficient budget to cover our TA needs, particularly when the
field and our enrollments were growing. That budget is adequate at the moment due to recent
nationwide decreases in CS enrollment, but we are concerned that TA support is being
reallocated based on enrollments that for us are at their lowest levels in 10 years. As
employment opportunities have rebounded over the last few years, we anticipate enrollments to
likewise return to their previous levels, and we are concerned about adequate TA support.

We are also concerned about what we feel to be inadequate support for office staff. The staff
we have do a tremendous job, but as pointed out in Section VI., Part C, our funded full-time
office support consists of one administrative staff member and one secretary. We are
temporarily funding two other full-time program assistants (one each for undergraduate and
graduate studies), but these are funded from gifts to the departments and cannot be continued
permanently. University funding for these two full-time program assistants would allow us to

Page 131 of 394


C3 CS 12/14/04
keep this level of support and use these gifts to support the program in other ways.

F. Leadership

Positive and constructive leadership at the college/school level and within the program's
department are especially important to the program's quality. Evaluate this leadership and the
interaction between these levels of administration.

Committees in the department function independently to provide feedback on Faculty


Recruiting, Promotion and Tenure, Graduate Affairs and Admissions, PhD Recruiting,
Computing Resources, External Relations, Alumni, Undergraduate Curriculum and Teaching.
These committees report to the department chairman and propose changes to be considered at
faculty meetings. A full faculty vote is necessary for most changes.
The department chairman reports to the college dean and most curriculum changes will be
approved by the college curriculum committee.

The university curriculum committee also approves these changes and provides guidance on the
interaction between curriculum changes that effect other departments.

The department is given freedom to manage the curriculum and faculty with support from the
college and university. The interaction between these levels of leadership has been positive.

Standard VI-7. Resources must be provided to acquire and maintain laboratory facilities that
meet the needs of the program.

G. Laboratory and Computing Resources

Briefly describe the resources available for the program to acquire and maintain laboratory
facilities. Include information on how the institution determines the adequacy of these resources.

The Computer Science Department allots $200,000 dollars a year to keep the computer facilities
within the department current and functional. All hardware and software is rotated every four
years in order to ensure the students have newly-developed hardware and software resources at
their disposal.

Standard VI-8. Resources must be provided to support library and related information retrieval
facilities that meet the needs of the program.

H. Library Resources

Page 132 of 394


C3 CS 12/14/04
Briefly describe the resources available for the support of the library and related information
retrieval facilities. Include information on how the institution determines the adequacy of these
resources.

The Harold B. Lee Library actively supports the Computer Science department. A subject
librarian is assigned as a liaison to the department. He manages an annual budget of $19,500 for
books in this area as well as $54,000 in journal subscriptions. In addition, the library as
subscribed to a number of databases that offer online access to citations, abstracts and full text
information in the field of computer science. These resources represent over $250,000 of annual
expenditures.

Standard VI-9. There must be evidence that the institutional support and financial resources will
remain in place throughout the period of accreditation.

I. Continuity of Institutional Support

Discuss and show evidence of continuity of institutional support for the program in the past, and
problems that have existed or are anticipated in this area, if any.

The Department receives strong overall support from the University in fulfilling the Department
mission. Budgets for capital equipment, TA support, etc. have been consistent. In the past the
Department has not had a sufficient TA budget to cover classes. With the recent drop in
enrollments, the Department has been able to better support larger classes. It has received
assurance from the College that when the expected upturn in enrollments come, there will be an
increase in TA budget. Five years ago, additional FTE were allocated to the Department to help
in new offerings and to especially to help reduce section sizes to be within ABET expectations.
These additional resources have been a tremendous blessing to the students, have decreased
section sizes, and have allowed increased personal interaction between faculty and students. It is
critical that the Department maintain the allocated FTE in order to maintain improved sections
sizes and faculty/student interaction.

Page 133 of 394


C3 CS 12/14/04
VII. Institutional Facilities

Intent: Institutional facilities, including the library, other electronic information retrieval
systems, computer networks, classrooms, and offices, are adequate to support the objectives of
the program.

Standard VII-1. The library that serves the computer science program must be adequately staffed
with professional librarians and support personnel.

A. Library

1. Library Staffing.

Assess the staffing of the library (or libraries) that serves the computer science program. Is the
number of professional librarians and support personnel adequate to support the program?

Supply documentation if possible.

The Harold B. Lee Library actively supports the Computer Science department. A subject
librarian is assigned as a liaison to the department and provides adequate support for the
department.

Standard VII-2. The library’s technical collection must include up-to-date textbooks, reference
works, and publications of professional and research organizations such as the ACM and the
IEEE Computer Society.

2. Library Technical Collection

Assess the adequacy of the library’s technical collection and of the budget for subscriptions, as
well as new acquisitions. The library must contain up-to-date textbooks, reference works, and
publications of professional and research organizations, such as the ACM and the IEEE
Computer Society. It should also contain representative trade journals. Supply documentation,
if possible. Assess the process by which faculty may request the library to order books or
subscriptions.

Compendex (EBSCO) ENGnetBase


IEEE Xplore Applied Science and Safari Tech Books Online
Technology Abstracts
Technology Research (EBSCO)
Database (CSA) ACM Ada Letters
ACM Digital Library
Web of Science (ISI) ACM Transactions on
MathSciNet Computational Logic
Computer Source

Page 134 of 394


C3 CS 12/14/04
ACM Transactions on Computerized Medical Intelligent Enterprise
Database Systems Imaging and Graphics
Interactive Learning
ACM Transactions on Computers Environment Environments
Graphics and Urban Systems
International Journal of
ACM Transactions on Connection Science High Performance
Information and System Computing Applications
Security Data and Knowledge
Engineering International Journal of
ACM Transactions on Human-Computer
Information Systems Data Base for Advances in Interaction
Information Systems
ACM Transactions on International Journal of
Mathematical Software Database for Advances in Intelligent Systems
Information Systems
Acta Informatica International Journal of
Database Programming Neural Systems
AI Magazine and Design
International Journal of
Application Development Distributed and Parallel Parallel Programming
Trends Databases
International Journal of
Applied Artificial Distributed Computing Pattern Recognition and
Intelligence Artificial Intelligence
Expert Systems
Applied Numerical International Journal of
Mathematics Future Generations
Software Engineering and
Computer Systems
Knowledge Engineering
Artificial Intelligence
Graphical Models
International Journal on
Automated Software
Human Computer Digital Libraries
Engineering
Interaction
Journal of Algorithms
Bioinformatics
IEEE
Journal of Bioinformatics
BIT
IEEE Annals of the and Computational
C/C++ Users Journal History of Computing Biology

Component Strategies IEEE/ACM Transactions Journal of Functional


on Computational Biology Programming
Computer Graphics Forum and Bioinformatics
Journal of Intelligent
Computer Languages Information Processing Information Systems
Letters
Computer Vision and Journal of Interactive
Image Understanding Information Systems Learning Research
Computer Vision Graphics Information Systems Journal of Logic
and Image Processing Journal Programming

Page 135 of 394


C3 CS 12/14/04
Journal of Object-Oriented Neural Computation
Programming
Neural Networks
Journal of Parallel and
Distributed Computing Operating Systems
Review
Journal of Strategic
Information Systems Parallel Computing

Journal of Science of Computer


SuperComputing Programming

Journal of Systems and SIGCHI Bulletin


Software
Software Magazine
Journal of the Association
Software Practice and
for Computing Machinery
Experience
Journal of Visual
The International Journal
Languages and Computing
of High Performance
Knowledge-Based Computing Applications
Systems
The Visual Computer
Machine Learning
The VLDB Journal
Machine Vision and
Theoretical Computer
Applications
Science
Microprocessors and
Wired
Microsystems

Page 136 of 394


C3 CS 12/14/04
Standard VII-3. Systems for locating and obtaining electronic information must be available.

3. Library Electronic Access

Assess the library’s systems for locating and obtaining electronic information.

The ACM Digital Library and IEEExplore cover a large proportion of the journal and
conference literature in computer science and since they are in electronic format represent a
major avenue for obtaining information in electronic format. Besides these, the library has
several hundred public access computers for patron use and many areas with hard wire
connection and WiFi connection for personal laptop access to library databases. All these
access points also have access to the Internet. We also have a fast and free Interlibrary loan
service available for students and faculty. Our average circulation rate for computer science
books is about 43% or almost 1.5 times the average for the whole library.

Standard VII-4. Classrooms must be adequately equipped for the courses taught.

B. Classroom Equipment

Describe the equipment typically available in classrooms where you teach your courses. Assess its
adequacy for the purpose.

A typical classroom includes standard equipment such as a chalkboard or whiteboard, writing


instruments, erasers, overhead projectors, etc. In addition, the Office of Information Technology
will deliver nearly any media equipment on a one-time use basis or using a scheduled time
lasting from a couple of days to an entire semester. It is possible to order LCD projectors, audio
equipment, televisions, VCR’s, DVD players, computers, etc.

The majority of computer science courses are taught in technology classrooms (TECrooms).
These rooms contain computers installed in a podium that are connected to the University’s
network, high resolution computer projectors, microphones, speakers, adjustable lighting, and
remote controls for controlling the room’s devises. Also, included in the tech podiums are
DVD and VCR players.

On the whole, the classroom facilities provided to our faculty meet their needs. Anything that is
needed in addition to the TECroom resources, can be ordered through the Office of Information
Technology or can be acquired by purchasing it through the Department.

Standard VII-5. Faculty offices must be adequate to enable faculty members to meet their
responsibilities to students and for their professional needs.

C. Faculty Offices

Discuss and assess the adequacy of faculty offices.

Page 137 of 394


C3 CS 12/14/04
A typical faculty office includes a small conference table and chairs, a whiteboard, a desk area,
filing and shelf space, an IP telephone, two 100 Mbit/s network connections, and a personal
computer or workstation. The type of computer equipment that faculty order is at their
discretion.

This equipment enables faculty to carry out research and other professional activities as well as
develop and manage computer science courses. Space and furniture is provided to consult with
individual students and small groups, though space is limited when meeting with multiple
students or other individuals.

Page 138 of 394


C3 CS 12/14/04
Appendix I
Information Relative to the Entire
Institution

Page 139 of 394


C3 CS 12/14/04
Appendix I. Information Relative to the Entire Institution

A. General Information

Institution Brigham Young University


Department Computer Science Department
Street 3361 TMCB
City Provo
State Utah
Zip 84602
URL www.byu.edu

Name and Title of Chief Executive Officer of Campus (President, Chancellor, etc.)

Cecil O. Samuelson President


(Name) (Title)

B. Type of Control

Private, non-profit X
Private, other
Federal
State
Municipal
Other (specify)
Affiliation, if private Church of Jesus Christ of Latter-day Saints

Check more than one, if necessary. If the above classifications do not properly apply to the
institution, please describe its type of control.

N/A

C. Regional or Institutional Accreditation

Name the organizations by which the institution is now accredited, give dates of most recent
accreditation. Attach a copy of the most recent accreditation action by any organization accrediting
the institution or any of its computer-related programs.

Brigham Young University is accredited by the Northwest Commission on Colleges and


Universities. The most recent accreditation was in April of 2006.

Page 140 of 394


C3 CS 12/14/04
D. Enrollment

Total enrollment for the entire institution (FTE) 27,329 (Fall 2005)
Total faculty for the entire institution (FTE) 1,600

E. Funding Process

Describe the process for allocating institutional funds to the computer science program.

Brigham Young University serves approximately thirty thousand students through 11 colleges
and other academic units and programs. The majority of academic funding is provided by the
university’s sponsor, the Church of Jesus Christ of Latter-day Saints, after the board of trustees
has approved the university’s annual strategic resource plan (budget).

The Strategic Resource Planning process begins at the lowest operating unit level. These
guidelines primarily direct that the board will (1) provide annual guideline increases to certain
budget categories, (2) specifically approve any increases to net square footage of physical
facilities space, (3) specifically approve additions to FTE employees or student enrollment, and
(4) be assured that budgets are closely monitored.

The board then allows the university considerable autonomy and flexibility to reallocate
resources consistent with these guidelines as it seeks to accomplish the institution objectives.

Each unit prepares a three-year plan that begins with a report of its effectiveness in
accomplishing the strategic objectives established during the previous years’ Strategic Resource
Planning process. Units identify specific objectives they desire to accomplish the coming year
and how these objectives contribute to accomplishing their overall three-year plan. The units
then request the resources necessary to carry out their plan. As they evaluate their resource
needs, each unit first assesses its existing resource base and considers reallocating those
resources to meet new objectives.

During each annual Strategic Resource Planning cycle, the university also considers its five-year
fund-raising strategy, identifies that portion attributable to the coming year, and reviews plans to
accomplish fund-raising goals.

Following the annual Strategic Resource Planning process, the university prepares and submits
its annual budget to the board. Once approved by the board, university organizations are notified
of their approved budgets for the coming year. Approved budgets, together with any revisions
subsequently requested, are reviewed by management against actual operating results on a
regular monthly basis through financial reporting provided from the accounting system.

F. Promotion and Faculty Tenure

Page 141 of 394


C3 CS 12/14/04
Summarize the promotion and tenure system and the system for merit salary adjustments. (Give an
overview of actual practice; do not reproduce an entire section from the faculty handbook.)

For a typical new assistant professor, there is a 3rd year review followed by a review for CFS
(continuing faculty status) and promotion to associate professor in the 6th year. After 10 years a
faculty member is typically considered for promotion to full professor. Details of expectations
and the tenure process are found in our faculty expectations document. (See Attachment IX) As
an overview, we expect the faculty to be strong contributors in all three areas of teaching,
scholarship, and citizenship. We have a promotion and tenure committee which oversees the
process and obtains external letters, etc. as the candidate prepares a detailed notebook. The
committee and faculty vote on the candidate and the Chair writes an independent letter.

Salary increases are allocated by the Chair within the budget granted by the University. The
main components in deciding increases are a) quality of teaching, b) quality of scholarship
(publications, students graduated, funding, etc.), and quality of citizenship.

Page 142 of 394


C3 CS 12/14/04
Appendix II
General Information for the Unit
Responsible for Computer Science

Page 143 of 394


C3 CS 12/14/04
Appendix II. General Information on the Unit Responsible for the Computer Science Program

If you are having more than one program evaluated, particularly if the programs are on separate
campuses, the answers to these questions may vary from one program to another. If this is the case,
please use separate copies of this section for each program, and clearly delineate which program is
being described.

A. Computer Science Program Unit

Name Computer Science Department


URL www.cs.byu.edu

If the computer science program unit is not a department reporting to an administrative officer (e.g.,
Dean of College of Arts and Sciences) who in turn reports to president, provost, or equivalent
executive officer, describe the unit.

N/A

B. Administrative Head of Computer Science Program Unit

Tony R. Martinez Department Chair


(Name) (Title)

C. Organization Chart

Attach an organization chart showing how the unit fits into the administrative structure of the
institution.

D. Computer-Related Undergraduate Degree Programs

List all undergraduate computer-related degree programs offered by the institution, beginning with
the program(s) being evaluated.

Page 144 of 394


C3 CS 12/14/04
Years Degree Administrative If accredited, by
Program Title Required Awarded Unit whom
Computer Science 4 BS College of ABET
Physical and
Mathematical
Sciences
Electrical and 4 BS College of ABET
Computer Engineering and
Engineering Technology
Information Systems 4 BS Marriott School ABET
of Management
Information 4 BS College of ABET
Technology Engineering and
Technology

Are these programs adequately differentiated in all university information? Explain how.

Yes. These four programs are listed separately in the University’s Undergraduate Catalog and
have different catalog classifications. The differences between these four programs are
addressed on the Computer Science Department’s website and in all program advisement
materials. All four departments participate in an orientation seminar at the beginning of every
Fall semester where a Department representative from each program gives a presentation on
their program and how it is similar and dissimilar in relation to the others.

Page 145 of 394


C3 CS 12/14/04
Appendix III
Finances

Page 146 of 394


C3 CS 12/14/04
Appendix III. Finances

A. Finances Related to the Computer Science Program(s)


For the computer science program, indicate below the funds expended during the fiscal year
immediately preceding the visit 1.

Institutional Non-recurring or
Funds Outside Funds
Administrative Salaries $199,656
Faculty Salaries $2,983,676 $35,000
Non-teaching Professionals' Salaries2
Support Personnel Salaries & Wages $34,713 Full $61,326 Full
Secretarial $35,000 Stdnt
Technician Student CSR $55,000 Stdnt
Student Lab Watch $27,000 Stdnt
Other (specify) $334,000
Graduate Students $207, 219 $219,771
Operating Expenditures $164,023 $99,662
(Excluding research operations and travel)
Capital Equipment Expenditure:
(Including value of allocated time for
teaching and research):
Teaching
Research
Computer Expenditures: (total, including $374,263 $153
value of allocated computer time for
teaching and research)
Hardware
Software $7,271
Allocated time
Travel Expenditures (non-research funds) $93,615 $21,273
Scholarship Awards (if administered by $135,326 $53,809
the Computer Science Program Unit)
Library (if administered by Computer
Science Program Unit)
Research (if separately budgeted) $90,432 Ugrad
$225,351 Grad
Other (specify)
Total $4,966,545 $490,994
1
It is understood that some of the data may have to be estimated to cover the entire fiscal year. In such case,
unless the differences are insignificant, an updated report should be provided for the evaluation team at the
time of the visit.
2
Non-teaching professionals would include research professors, faculty members on paid sabbatical leave,
post-doctoral research associates, and other degreed professionals.

Page 147 of 394


C3 CS 12/14/04
B. Operating and Computing Expenditures for the Five Fiscal Years Immediately Preceding
that Reported in III A

1. Operating expenses for the computer science program unit.

Fiscal Year 2004 2003 2002 2001 2000


Institutional Funds $182,161 $213,097 $270,718 $227,293 $189,437
Outside Funds $93,113 $40,428 $61,631 $48,528 $62,055

2. Computer hardware/software capital expenditures (excluding equipment used primarily for


research) for the computer science program unit.

Fiscal Year 2004 2003 2002 2001 2000


Institutional Funds $623,583 $129,991 $654,441 $379,445 $350,023
Outside Funds $2,199 $6,371 $3,695 $4,587 $10,995

C. Additional Funding

If additional funds, other than those listed in Table A above, are available to faculty to support
scholarly activities such as travel to technical meetings, e.g., consulting support, give the number of
faculty for whom this type of support is appropriate and an estimate of the amount of support
available.

N/A

Page 148 of 394


C3 CS 12/14/04
Appendix IV
Computer Science Program Personnel
and Policies towards Consulting,
Professional Development and
Recruitment

Page 149 of 394


C3 CS 12/14/04
Appendix IV. Computer Science Program Personnel and Policies Towards Consulting,
Professional Development, and Recruiting

A. Term of Appointment of Administrative Head

9 month 12 Month X Other (specify)

B. Number of Personnel Associated with Program

Part Time
Full-time Total
Number Number FTE FTE
Faculty 28 - - 28
Non-teaching Professionals - - - -
Administrative 1 - - 1
Computer Lab Personnel:
Professionals - - - -
Technicians 2 6 3 5
Secretarial, Accounting, etc. 3 2 1 4
Graduate Teaching Assistants - 10 5 5
Graduate Research Assistants - 56 28 28
Graduate Students Information included above
Undergraduate Students - 83 41.5 41.5

C. Policies

Provide a brief description to give an overview.

1. Describe policy toward private consulting work, sponsored research projects, and extra
compensation.

6. FACULTY AND ADMINISTRATIVE-OUTSIDE EMPLOYMENT

A University faculty or administrative employee’s primary obligation is to the University


through the employee’s regular assignments which must take priority over any other gainful
employment; however, some outside activity may be beneficial if it increases the professional
competence of the faculty or administrative employee or benefits the University or students.

A faculty or administrative employee should not have outside employment or extensive time-
consuming activities of his or her own unless such work is advantageous to the University and
does not interfere with teaching, research or other University duties. Such employment or
outside activities should never be undertaken if there is a conflict of interest between BYU and
the other enterprise or its activity. Outside activities or employment (1) for faculty members
must be approved in writing by the Assistant Academic Vice-President--Personnel on the

Page 150 of 394


C3 CS 12/14/04
written recommendation of the director and supervisor. With prior approval a faculty or
administrative employee may be permitted to engage in outside employment or consultation
not to exceed one day in a six-day working week. Compensation for such work would be
arranged between the faculty or the administrative employee and the outside employer, client,
or agency.

IV. Projects and Research Programs

A. Projects or Research Paid from Outside Sources Administered by the University. Research
grants and other activities funded from outside sources administered by the University may
provide for a time commitment in addition to the regular appointment not to exceed a total of
eleven months of service. This will allow for a full month of vacation. Compensation for such
activities will be limited to the following percentages of base salary per month:

-For eight-month appointments, 12 ½% (and 11.1% if NIH or NSP grants are involved.)

-For nine-month appointments or equivalent, 11.1%

-For ten-month appointments, 10%

Combinations of activities from University-funded sources and from activities funded from
outside sources in addition to the regular appointment should be limited to the eleven-month
total time period. Compensation for time in each activity will be limited to the proportionate
fraction of compensation permitted for the activity.

For example, if a faculty member on a two-semester appointment has a supplementary


appointment for teaching one-half time for a term, his/her compensation would be at the rate of
9% per term or 4 ½ % per month. If there is also outside-funded research for half time for the
same term, compensation would be limited to 12 ½% for the term or 6 ¼% per month. This
would permit a combination compensation of 10 ¾% per month.

B. Research on Released Time During the School Year. A faculty member who does research
on released time during the school year will receive no salary in addition to his/her regular pay.
In certain cases, part pay may be received from the project and part pay from the University
budget, but the total will equal to the regular salary.

2. State the standard teaching, administrative, research, and other loads on the faculty, in general
terms.

Faculty are hired as either “professorial” faculty, who are expected to both teach and pursue
scholarly research, or “professional” faculty, who are expected to have additional professional
experience and are hired primarily to teach.

Professorial faculty typically teach 4 sections/year and are expected to have active ongoing
research programs. These research programs are expected to involve student mentoring and

Page 151 of 394


C3 CS 12/14/04
typically result in 2–3 peer-reviewed publications per year.

Professional faculty typically teach 8–10 sections/year. Although they are not expected to
pursue research they are expected to be engaged with computing professionals outside the
department and university so as to stay current in their areas.

All faculty are also expected to contribute to the administrative operation of the department,
typically serving on 1–4 department, college, or university committees. Some faculty members
with designated administrative responsibilities such as the Chair, Associate Chair,
Undergraduate Coordinator, Graduate Coordinator, or others serving in administrative positions
at the college or university level are given appropriately reduced teaching loads.

3. Describe policies and procedures for recruiting faculty for the computer science program.
Describe any barriers to hiring the appropriate faculty.

In all hiring the university seeks the best-qualified candidates. Preference is given to candidates
who are members in good standing of the Church of Jesus Christ of Latter-Day Saints, but no
other preference is given based on gender, ethnic, or other factors.

All professorial faculty are required to have a PhD and have a track record of successful
research and teaching. All professional faculty are required to have a PhD and/or considerable
professional experience. (The only member of our faculty who does not have a PhD has a
Master’s Degree and more than 25 years experience as a computing professional.)

A year before the targeted hiring date, advertisements are placed in CACM, IEEE Computer,
and in the LDS Church News. In addition, we maintain contact with LDS computer scientists
who have or are pursuing a PhD. We cultivate relationships with potential future candidates by
inviting them to campus to present a colloquium and visit with the faculty and students.

Each year in which we anticipate an open faculty slot, the faculty recruiting committee studies
the list of applicants and summarizes the qualifications of the strongest candidates. These
candidates are then invited to campus for a formal interview. The formal interview visit
consists of a colloquium talk, interviews with most of the CS faculty, the department chair, the
dean, a university vice president, and a general authority of the LDS Church. For professional
faculty members, because of their greater responsibility for teaching, we also have them teach a
section of a course so that we can observe them in the classroom. After all candidates have
been interviewed, the CS faculty meet and select (by vote) which candidates will be offered a
position.

Because of the unique nature of BYU as representative of the Church of Jesus Christ of Latter-
Day Saints, all faculty members are expected to be strongly committed to the standards of the
Church and the mission of BYU as well as to be qualified academically and professionally.
This naturally limits the pool of faculty candidates, but we have nonetheless found that we have
consistently been able to fill available positions with strong, qualified faculty members. LDS
students pursuing PhDs at other universities include those at MIT, Carnegie-Mellon, North
Carolina, George Tech, Stanford, Maryland, and many other top universities.

Page 152 of 394


C3 CS 12/14/04
Appendix V
Computer Science Enrollment and
Degree Data

Page 153 of 394


C3 CS 12/14/04
Appendix V. Computer Science Program Enrollment and Degree Data

If you are having more than one program evaluated, particularly if the programs are on separate
campuses, the answers to these questions may vary from one program to another. If this is the case,
please use separate copies of this section for each program, and clearly delineate which program is
being described.

Give below enrollment figures for the first term of the current and five previous academic years
and the number of undergraduate and graduate degrees conferred. (The current year is the year in
which this report is being prepared.) List data beginning with the most recent year first. If part-
time students are involved, give the number as FTE/actual number, e.g., 10/40.

Institution as a Whole

Enrollment Total Total Degree


AY 1st 2nd 3rd 4th 5th UG Grad BS MS PhD
2006 6473 5455 6178 9192 27298 1741 3599 483
2005 8569 6889 7342 12593 35393 3996 7038 1108
2004 8647 6639 7263 12812 35471 4142 7241 1052 226
2003 8802 6344 7477 13127 35750 3785 7366 1043 215
2002 7854 6446 7344 13037 34681 3671 7359 1071 215
2001 8129 6179 7349 12934 34591 3537 7539 1031 226

Unit offering Computer Science Program(s)—give total enrollment even if not all students are in the
program for which accreditation is requested.

Enrollment Total Total Degree


AY 1st 2nd 3rd 4th 5th UG Grad BS MS PhD
2006 74 68 79 159 380 55 60 6 2
2005 93 104 99 254 550 117 144 26 3
2004 83 117 126 277 603 117 165 32
2003 115 123 138 359 735 106 177 27 1
2002 147 180 144 403 874 93 146 12 1
2001 209 155 205 360 929 88 120 25 1

(See Attachment VI. For additional enrollment data)

Page 154 of 394


C3 CS 12/14/04
If the unit offering the Computer Science Program(s) offers more than one degree, please complete
an additional table for each program for which accreditation is requested:

Program Computer Science Teaching Minor

Enrollment Total Total Degree


AY 1st 2nd 3rd 4th 5th UG Grad BS MS PhD
2006 4 4 2
2005 4 4 1
2004 1 1 2 3
2003 1 1 4 6 1
2002 6 6 3
2001 1 3 4 1

Page 155 of 394


C3 CS 12/14/04
Appendix VI
Admission Requirements

Page 156 of 394


C3 CS 12/14/04
Appendix VI. Admission Requirements

A. Admission of Students

1. Describe the criteria and procedures used for admitting students to the computer science
program(s).

Before a student is admitted to the Computer Science Major, they are required to complete our
Pre-Major Computer Science Fundamentals program which includes six core courses: C S 124,
C S 142, C S 235, Math 112, Math 113, and Physics 121. Students are required to complete
these courses with a GPA of 2.8 or higher cumulatively. The pre-major program is useful to
students because it gives them an understanding of the types of material and the workload they
are going to experience in the program. It also indicates to us which students are likely to
succeed in the program.

The graduate program’s admissions process requires an application that includes academic
transcripts, GRE scores, and letters of recommendation. The TOEFL exam is required for
international students. A committee evaluates these applications and recommends students for
the program who they believe will succeed by measuring the indicators included in the
application. The average GPA for the 2005-2006 year for MS students is 3.58 and for Ph.D
students is 3.82.

2. Describe procedures, including the evaluation of transfer credits, for students admitted to the
program as transfer students.

a. From within the institution

A student who wishes to change majors within the university fills out a form to declare the new
major at the college advisement center. The undergraduate advisor will approve requests for
transfer credits for courses that do not automatically count under the new major’s requirements.

b. From another institution

Students who transfer from another institution will also declare their major at the college
advisement center. The transfer office then determines if the university is accredited and if any
courses could be transferred. The student then submits a proposal to the undergraduate advisor
for specific course transfers. The undergraduate advisor then sends a request to the college
advisement center, and the center makes specific course transfers.

3. Explain the policy of the institution in admitting students with conditions and state how the
conditions must be made up.

Page 157 of 394


C3 CS 12/14/04
The University does not allow conditional admittance.

4. Describe the general policy and methods of the unit offering computer science program(s) in
regard to admission with advanced standing.

Advanced standing students must pay higher tuition, but are not treated differently by the
computer science department.

5. Describe any special admission requirements for entry into the "upper division" in the computer
science program(s).

Students should be admitted to the CS degree program to take upper division courses in the
program. They must also pass CS 240, which is a prerequisite to most upper division courses.

Page 158 of 394


C3 CS 12/14/04
Attachments
Assessment Documentation................160
1. Senior Exit Surveys and Interviews........164
2. Alumni Assessment Surveys and Emails......196
3. Curriculum Committee Meeting Minutes......201
4. Course Assessments........239
5. 2000 Visit Final Statement
6. Unit Review Information
7. Faculty Vitae
8. Sample Student Transcripts
9. Faculty Expectations

Page 159 of 394


C3 CS 12/14/04
Program Assessment Impact
Department of Computer Science
Wednesday, April 5, 2006

Senior Exit Surveys and Interviews


Preceding both the April and August graduation ceremonies, graduating seniors are asked to fill out a
questionnaire related to Department performance. These are collected, compiled, and summarized by the
Department staff and reviewed by the Undergraduate Committee and the faculty as a whole. The
Undergraduate Committee also schedules informal interviews with graduating seniors to provide a free-
form forum for assessment of the Department.

Alumni Surveys
The University surveys alumni who are three years beyond graduation. These results reflect alumni
feedback both on university and departmental issues. The alumni feedback in the most recent survey
identified weaknesses in the level of career and job-finding advisement. It also indicated where the
Department should make fundamental shifts in the curriculum.

Alumni Assessment Emails


The Alumni Assessment Email results included in these attachments were taken from an email sent out to
the alumni at the end of 2005. The Department occasionally sends out emails to alumni asking questions
about their current jobs and their recommendations for the program. The birds-eye view afforded by
these alumni who have seen how their schooling has factored into their jobs is taken into consideration
when curriculum and program changes are discussed.

Course Assessments
In 2002 the department created a concrete set of objectives for the program. At the conclusion of each
semester, the faculty is asked to evaluate how well the students in their classes met the competencies
specified in the objectives document. These results are compiled in a private section of the Department
web page so that improvements can be made from semester to semester to help particular classes to
contribute to the overall objectives of the department.

Several changes have been made to the curriculum as a direct result of feedback received through these
assessment tools.

The following changes have been made as a result of these assessment practices. Each of the changes are
highlighted in a color which is reflected in corresponding feedback in the senior exit surveys and alumni
surveys. The curriculum committee meeting minutes are also color coded to show when these changes
were discussed and implemented.

1) Negotiations have occurred with the Statistics department to make the required statistics class
(Stat 321) more relevant for majors. These changes were the result of feedback from the Senior
Exit Surveys.
2) The ethics course (CS 404) was modified to include more relevant material.

Page 160 of 394


C3 CS 12/14/04
3) The data structures class (CS 235) was modified to provide more concrete experience that
prepares the students better for software development employment.
4) The 2003 survey showed that many of the students felt that the operating systems class required
too much work. The survey also showed that this class was considered most valuable in terms of
preparing students for their career when compared to other required courses. Some of the
material was moved into other classes and the resultant course retains its value and rigor, while
maintaining a more reasonable time requirement.
5) As employment opportunities for CS majors increase, some students commented on the senior
survey that they needed more help in choosing a career. The alumni survey also indicated that In
2005, the department created career advisement documents and now holds an annual career
seminar for students in the program. This seminar also provides help in resume writing and
internships. The Department also created an additional full time position to field student
questions in these areas and increase the availability of advisement for the undergraduate
program.
6) The Department proposed a new program with less hardware courses. Students and alumni
indicated that the emphasis on hardware was too great and that other subjects should be stressed.
7) The new program will contain a core software engineering course. The Department received
quite a bit of feedback indicating that students and alumni believed that software engineering
should be more stressed in the program.
8) Student and alumni surveys also indicated that the Deparatment should stress web development
and programming skills. As a result, the Department also included a core Internet programming
course in the new program.
9) Several students complained that their upper-level classes had too many individuals who couldn’t
keep up with the instruction and were hindering the class. The Department then discovered that
many students were taking upper-level classes without having taken the core classes, specifically
240, which is a vital preparation for students who take upper-division courses. Because of this
problem, the Department decided to enforce the 240 prerequisite for all classes.
10) Due to the suggestions of students in senior exit surveys as well as articles from several top
industry magazines, the Department decided to begin offering an elective course on starting and
managing a software business.
11) Many students had difficulty in registering for senior level courses. This was one of the most
common notations on senior surveys. Through employing professional teaching faculty,
increasing the number of faculty teaching senior level courses and reducing the number of
electives required, the registration problem has largely been eliminated. On the first day of class
for Fall 2003, there were only two courses that were oversubscribed.

The Computer Science Department was accredited by the Accreditation Board for Engineering and
Technology (ABET) organization in December 2001. Several improvements have been made in the
program as a result of the accreditation process. ABET specifies that enrollments in upper division
courses should rarely exceed 30 students. With help from the university in providing additional faculty
positions, the average size of upper division is decreasing. Although introductory courses continue to
have large sections, the average size for senior level classes has been reduced to 31 students. Smaller
sections have allowed for increased faculty mentorship and individualized attention.

Page 161 of 394


C3 CS 12/14/04
AVERAGE SECTION SIZES

100
90
80
70 100-LEVEL
60 200-LEVEL
50 300-LEVEL
40 400-LEVEL
30 TOTAL AVERAGE
20
10
0

E
00

01

02

03

04

05
01

02

03

04

04

05

05
04

05

AG
20

20

20

20

20

20
20

20
20

20

20

20

20
20

20

ER
L

LL

LL

LL
R

ER

ER
R

G
L

L
TE

TE

TE
TE

TE

AV
IN

IN
FA

FA
FA

FA

FA

FA

M
R

R
IN

IN

IN
IN

IN

L
SP

SP

TA
W

W
SU

SU

TO
SEMESTER

The students are asked which classes were most valuable and least valuable to them. When a course appears
on the least valuable list for a significant number of students for a period of time, the Undergraduate
Committee performs a detailed analysis of the course and proposes changes. Although isolated cases are not
viewed as being significant, the Undergraduate Committee does look for large variations and attempts to
address these problems. The “Ethics and Computers in Society course (CS 404) was modified in 2003 in
response to students who felt that the course was not valuable. This data also motivated changes in Stat
321.
Most Valuable Courses

15

13

11
Number Responding

2001
7
2002
2003
5
2004
2005
3

-1
124/143

324/380

Eng 316

Math 343
142

224

235

236

240

252

312

330

345

404

428

431

450

452

455

456

460

462

465

470

478

557

Page 162 of 394


C3 CS 12/14/04
Least Valuable

20

18

16

Number Responding
14

12
2001
10 2002
2003
8
2004
6 2005

0
142

143

224

235

236

240

252

312

324

330

345

404

428

431

450

452

455

456

462

470

Math 119

Bio 100

Stat 321

Math 343
124/143

The department also gathers statistics relative to each of the objectives for the program. Although we
have a limited amount of data to draw conclusions from, this information will be used in the future
to drive Departmental decisions.

Competencies

4.5

3.5
Competency value (1-5)

2.5

Winter 2004
2 Fall 2004
Winter 2005

1.5

0.5

ct
s es s s g
at
a
ur
e S
at
h d ct d g cs n
ur hm ge rin O ce ra ho in hi io
o je ct rit ua ee om ct M an st et rit Et ct
Pr ite fa
ru g o ng
gi
n
au
t d v Ab M W
ti s
St Al la ch A ifi
c
a En ar nt Sa
at S
c ie
D S
Competency type

Page 163 of 394


C3 CS 12/14/04
Senior Exit Survey Winter 2002
Knutson
Clement
Cory
1. What did you like most about your experience in the CS Department at BYU?

• Implementing the theory by writing programs


• 400-level classes.
• Labs are always fun. Help was easy to find.
• Challenging. Didn’t mind the work load. Architecture (143). Broad 400-level classes. Liked
428 (CK: This semester. I swear I didn’t put him up to this.)
• Programs and projects. Learning mostly by doing. Working in groups.
• Solid intro into the science aspect of Computer Science.
• Certain classes (555, 330 w/ Morse), working in the graphics lab.
• Projects!
• CS312 algorithm class. The writing aspect was very helpful.
• Theory
• System Level classes
• 400 level classes
• struggling in difficult programming assignments like 345
• Liked the option of taking 500 level classes to create own specialty
• Friendly atmosphere, students peer learning
• Variety of electives

2. What did you like least about your experience in the CS Department?

• Some of the theory (like Turing machines). Could have been more brief.
• Size of 400-level classes. The smallest was 40+ people.
• Can’t think of anything.
• Some classes were hard to complete without help. Like 235/236. The blue book is horrible,
like reading Greek, laden with mistakes. They would spend hours and then ask the TA and
discover that there was a misprint in the book.
• 330 was not that helpful.
• Difficult to be female in this program. The first step in the door as a young student is tough,
especially if you don’t connect. Connecting with the rest of the student body is more difficult
as a woman. (CK: We talked about the possibility of an engineering organization for women
and she was very excited about that and said she thought it would have been very helpful.)
• Mostly pure computational science (as opposed to what is actually happening in industry).
That’s great if you’re going to grad school in Computer Science or other research, but it’s a
big frustration if you’re going to industry and practical things. It depends on the mission of
the department. If it’s to get you a job, then it’s lacking. Current events are completely
lacking.
• Learning things 20 years old. CS vs. SE degree. People take CS when what they really want
is a Software Engineering job. (CK: I swear I didn’t prime his pump on this at all. He spewed
it just as written here without any prompting from me.)

Page 164 of 394


C3 CS 12/14/04
• 428. Bad group for the entire semester. Material poorly prepared.
• 404 was a waste of time (seconded by another student in the group). Could be valuable, but
run poorly. Scheduling difficulty.
• 462
• Classes too big to make relationships with professors. Hurts when applying to grad school.
• Profs could do better at being available during their office hours.
• Science classes, physics, chem.
• We need better descriptions of 400 level classes. It is hard to determine which classes to
take.
• Too many classes have lab pass offs where you try to match a particular output. You spend
all of your time trying to match the lab version of the code instead of learning concepts.
• 120 TMCB is poor room
• Lack of guidance
• Need better plan, know more about courses

3. Which classes did you find most valuable in preparing you for your career?

• 330. 312 to some extent. 456 and 556.


• 460, 462, 470, 472 (hopes to do grad studies in AI).
• 400-level classes.
• 428 (not just because you’re the teacher). It contains core concepts that they need to
understand. 431 (taking it now from Cornell). Both are good overviews of CS. 380
• 462 (she’s currently using lots of that at work writing servlets and applications).142, 240,
345, 460. 428 helped a great deal with her job, especially the testing experience (CK:
currently in my class).
• 462 (distributed systems). As opposed to 330, which was less valuable. 330 has its place, but
it’s on the MS/PhD path.
• 330 (very key concepts), 345 (already uses this a lot), 460.
• 431.
• 428 and 460 were the two most useful (current 428 student).
• 456 (UI).
• 455, 460 (seconded), 428 (seconded), 345.
• 330 with 431 would be optimal.
• 462.
• 460, 235, 236, 240
• 345, 345, 460, 428, 324, 462
• 460 – programs help you learn, 236 – HW and labs meshed well together
• 428 was really good, looked forward to class
• 428
• 345, 460, 465, 330, 380
• 460, 232, 312
• 431, 345, 460, 470, 462, 452, 428, 465
• 455, 455 OpenGL and is really good 557, 557 good material – teaches concepts and teaches
them well

Page 165 of 394


C3 CS 12/14/04
• 450
• 428, 428
• 470,380,143,240,455,345
• 460, 470
• 431 really taught well

4. Were there any classes that you think should be eliminated?

• 252. Other courses could be modified so you could get rid of 252.
• No.
• No.
• Maybe 330.
• 330. Not effective
• No.
• No. All were needed.
• Didn’t get much out of 330.
• 252.
• 143 too low level, 330, 252, 404
• 252
• 235 – students copy TA answers and don’t understand induction
• 240 needs to have more SE and instruction on program design
• 312 had potential, but didn’t live up to it
• 252 is too theoretical, the concepts are of no practical use in the database field (He works for
a database company)
• 252 – too much theory – not applied
• 235,236,252 have too much overlap. Could eliminate 252 and not miss much.
• 452 not industry standard – hard to apply, 453 should be kept instead of 452
• 450
• 428
• 453, 330
• 330

5. What changes in the curriculum would make the program better?

• The sudden jump in intensity in 240 is a problem. Lots of people had to repeat it. The 1st
project is brutal, new concepts like pointers, etc. The lectures didn’t keep up with the labs. To
do this better you’d have to change other courses. Like maybe have 236 use C++ to support
the C++ in 240 better.
• Requiring Calc 112 and 113 was good.
• Stats class is very lacking. Need a better stats class.
• None.
• 345 (OS) labs. No creativity! No need to build a boot disk and manage your own drivers.
• No.

Page 166 of 394


C3 CS 12/14/04
• Bases are basically covered. But should consider morphing the content so that it’s more
directly applicable to jobs (rather than research).
• Many things have already changed for the good. 252 needs more vision. More programming
projects would help. Tough to see what other theory classes (152-153) were about when they
were being taught. Connect these to vision of why they should care, would help the
experience.
• Would like to see a senior capstone project (seconded).
• Pre-requisites are not enforced which is a problem. Then the class is partially filled with folks
unprepared to be there, which dumbs down the entire experience for everyone else.
• The suggested 4 year plan is impossible unless you want to just kill your grades.
• More business perspective – business management classes
• Smaller classes
• Easier non-major classes, Physics and Math hurt you GPA and take a lot of time while
resulting in little CS learning
• 462 – gave assignment, then you were on your own to figure it out. The lectures didn’t help
you to complete the assignments
• More software engineering in many classes, grade coding style
• Require 428
• Should be more hard-nosed about completing requirements. The requirements are often
changed when students complain.
• Students should be encouraged to find a group to take classes with. It really helps to work
with a group throughout your degree.
• Teach how to code early. Beginning in 142 source code should be graded.
• We were never taught how to write good quality code, good coding style
• Break 142 into advanced in-class content and optional help sections with remedial material.
• Eliminate classes that are too easy and full of busy work, cut down work in classes with too
much work (312 – the work didn’t benefit you, 345 – 2nd file system lab, 460 – drop project)
• More open software (Linux, MySQL)
• More evening courses for people who are working full time
• More discussion would be better (smaller classes)
• More product management – team management – companies ask about working in groups
during interviews – project lifecycle
• Make it easier to get a math minor
• 428 required
• substitute math for science elective

6a. Did you feel good about your relationship with the professors?

• For the most part. They were typically available during their office hours.
• No. Really didn’t get to know any of them. That was probably mostly my fault, but the class
size was definitely a contributor.
• Mostly pretty good.
• Yes. Not a lot of knocking doors. When needed help, it was fine. Professors were willing to
talk. In fact it was great to see actual professors teaching100- and 200-level classes!
• Didn’t really get to know them. But when she did it was very nice and helpful.

Page 167 of 394


C3 CS 12/14/04
• Fine. Few deep relationships. Profs were great! Although some were older, less interested
and more out of date.
• Yes. Not really lots of relationships Never really needed one-on-one.
• Didn’t get to know professors really well.
• Classes were too huge to get to know profs well.
• There is very little interaction with professors.
• 345 with Snell was very good in terms of his availability to students.
• They don’t come to office hours so it is hard to meet with them
• Some come to class and don’t care I didn’t feel welcome in class.
• Dan Ventura was really good at leading class discussions where you discovered things on
your own.
• Most professors were really good, helped you to learn on your own, were easy to meet in
their offices, cared about students
• Professors are accessible and willing to explain
• Most professors appear to like teaching, they care about students
• Some take too long to explain simple concepts

6b. What could the professors do to make you feel more a part of the department?

• Encourage young students with respect to the grad program so they start thinking about it
earlier. Help students focus on educational decisions, so that they connect their early
education to why it’s valuable in the big picture.
• Time to discuss in groups, smaller classes.
• Nothing.
• More effort on the faculty to find opportunities for individual talking.
• Something really good that happened was that one professor had students come to his office
and spend a few minutes one on one. Built good relationship. Showed that he was making an
effort.
• The colloquium that talked about professors and their research was very good.
• Suggest required attendance at certain colloquia so students and faculty could get to know
each other better.
• Didn’t feel a part of the department until became an RA. You ought to provide more
opportunities for students to be involved in research.

7a. Did you feel like the class sizes were appropriate for the material being covered?

• All except 400-level.


• No.
• For the most part.
• No! Registration was a joke. One day late and there are no classes available. First they’re
huge, and then despite that you can’t register for them. More sections?! Large classes also
limited exposure to groups and other students.
• Yes.
• Usually.
• Some.

Page 168 of 394


C3 CS 12/14/04
• Some were OK (252 with 15 students was great, but another section of 252 had 100+ which
was bad).
• OK
• Upper level should be smaller
• 345, 455 were small

7b. If not, which classes were too large?

• Most of the 400-level. Too hard to get in to during registration. Too full!
• 400-level. 460 was ridiculously huge! 12 machines in the lab with 90 students. 470 and 452
were also too large.
• 470 was pretty large.
• Some 400 were really big, like 470 in the summer. But typically OK on size.
• 470.
• 236 was huge, but probably OK for the material.
• 452, 460.
• 452 was too big
• 142, 235, 236 should be small enough that the professor could grade source code
• 470 was too large
• all 400 level classes were too large
• 142, 240
• 235, 236

8a. What are your career plans? Where will you be working?

• Programmer for 2 years, and then grad school (either MBA or MSCS).
• Grad school. Will be looking for work until grad school.
• Take a break. Apply to grad school in the Winter.
• Grad school. Interviewing with companies now.
• Work as a programmer. Works at Nispac.
• Working as a software engineer. Then either business school or law school.
• Grad school (PhD) at UNC.
• Contract work for golf simulation company. But looking for a day job.
• Software simulation company. Current work at BYU.
• Novell working on NDS. Will stick around for grad school.
• Grad school, then NSA, FBI or CIA.
• Nextpage – folio, had a full time job while in school
• Bob Ricks – Grad School – took 7 semesters to graduate over 7 years
• Brock Reeve – National Instruments – took 4 years + 2 summers
• Sean Worsley – No job – took 6 years
• Darren Willis – MBA – 5 years
• Mike Willis – Navy
• Grad School
• Powerglide

Page 169 of 394


C3 CS 12/14/04
• Microsoft
• Navair – Navy Air
• HP Vancouver
• Startup company, MS CS
• Software engineering at attask.com
• Software engineering, data security
• Grad school data security
• PTC Java CAD Tools
• No offer yet

8b. email address?

• thedewster@yahoo.com (David Dewey)


• pc@byu.net (Philip Cook)
• brian@prohosting.com, bcg24@email.byu.edu (Brian Gertsch)
• heather@davidbarney.com (Heather Barney)
• mtb25@email.cs.byu.edu (Marcus Brown)
• blloyd@cs.byu.edu (Brandon Lloyd)
• brannonking@yahoo.com (Brannon King)
• cck@email.byu.edu (Corin Kochenower)
• tlarsen@byu.edu (Timothy Larsen)
• malmgren@cs.byu.edu (Michael Malmgren)

Other Comments?

• The program doesn’t accommodate working students very well.


• There was lots (too much) of repeating classes. It was just expected that students would fail
and repeat multiple classes. Don’t dumb things down, but is the work load too much? 240 is
a good example of this. Three small programs and then two huge projects.
• Hate that they took away 500-level courses. Loved 556! It gave him a glimpse into grad
school. Too bad that’s not available now to seniors!
• Reading code would help with learning.
• Nobody told him about e-recruiting or the career fair in October. An undergrads mailing list
would be really helpful for things like that.
• 142 and 240 are very important. That’s the time to learn to program. Important that someone
teaches those who wants to teach students! Need someone with industry connections who
wants to teach those.
• Stats class needs drastic help. 321 is too much theory but no basic statistics. Too little
practical content.
• The two science requirements are supposed to teach you the scientific method, but we need
to look at the classes that we allow. Some don’t teaching anything about the scientific
method. e.g., Biol 130, Chem 105, etc. We need more options there.
• 330 was well taught

Page 170 of 394


C3 CS 12/14/04
Senior Exit Survey Winter 2003
Graduating Senior Survey
April 1, 2003

The number after an item indicates the number of students who expressed this opinion.

1. What did you like most about your experience in the CS Department at BYU?
• Difficult classes with good teachers-5.
• Group work projects. Helping each other.-5
• The ability to choose 400 level electives-3.
• 400 level classes-3.
• RA Opportunities-2.
• The in-depth approach to computer science, as opposed to the superficial "technical" training
you might get elsewhere.
• Prayer in class.
• Undergrad TA opportunities.
• religion integrated into courses
• (liked the freedom to choose project in 460 and how Dr. Clement helped us acquire the
necessary equipment, went out of way to give undergrads a quality experience. )-2
• Exploring things on my own. Self motivating. It's an important skill for industry.
• Meeting my wife :)
• Facilities good. Computer access, etc. Network administration in Linux labs was good.
• Learning new things. Wide variety of topics – diversity.
• Caught a lot of reworked first run classes, which was mostly good.
• learning, understanding, what going on underneath,
• realworld projects-2.
• set of tools, can't define them, have ability to adapt to any situation.
• professors willing to help-2.
• theory is good, but I didn't know this at first.

2. What did you like least about your experience in the CS Department?
• credit hours don't reflect workload-7,
• reduce 345 workload or increase credit hours-3.
• TA quality is poor. You can count the good TAs in the department on one hand. They made
me feel stupid or like they didn't have time for me. The TAs were generally ill-prepared-7.
• curriculum prepares you well for grad school but not industry-3.
• Classes are too large-2.
• Time Commitment too large-2,
• busy work, no time to explore other topics.
• Since I started the program in 1998, there was no clear-cut outline for pursuing a particular
emphasis. Now there is, so that will help many.
• It was hard to get into 400 level classes and they were too large-2.
• Theory, Linear Algebra – it was all proofs and we didn’t learn how to actually use it.
• lack of focus on undergraduate quality,

Page 171 of 394


C3 CS 12/14/04
• class scheduling difficult for non-traditional students that work, more online classes.
• the 224/324 sequence is not helpful, too much EE.
• too easy to get into the CS major, weak students get in.
• many classes did not give big picture, too much theory, not enough practical-3,
• CS labs should be open 24 hours like in engineering (at least open at 7am), don't close during
holidays and breaks like engineering (give students key codes),
• do a better job advertising undergrad research opportunities.
• CS lab computers don't have word processing software, it would be nice to be able to write
reports while you're looking at your source code,
• experienced many class redesigns and was frequently a guinea pig, too often courses were
disorganized (345, 312, 465), couldn't work ahead because projects weren't available ahead
of time, curriculum changes too often..
• 345 was disorganized, especially the TAs.
• Inductive proofs. Actually any proofs.
• Written homework (rather than programs)
• BYU has squashed all desire to program – ever again! (He was a senior with an undeclared
major and has been taking nothing but CS classes for two years!) I have enjoyed only 3
classes – 428 (Knutson), 470 (Goodrich), 240 (Biggs)
• Programs sometimes not meaningful.
• need pictures in the labs instead of blank walls.
• adjusting after mission Pascal to Java, not enough help-2.
• too much noise in the labs, need labs reserved for quiet work.
• course materials carbon-copied from another teacher.
• classes graded by TAs, not by professors-2.
• should require internship-2.
• most classes not challenging enough.

3. Which classes did you find most valuable in preparing you for your career?

• 142-2, 143, 235-4, 236-2, 240-10, 312-6, 330-2, 345-11, 324-2, 404-2, 428-15, 431-3, 450-3,
455-6, 456-3, 460-27, 462-9, 465-6, 470-2, 472-3, 400 level-6, 555, 557-2
• The beginner classes were very good as I didn't know anything. They laid the groundwork
for the rest.
• 428 - It occurs too late in the curriculum to be useful. (good prep for real-world). really
useful, could have been presented better. focused on the social and business aspect of the
industry, relationships. didn't get enough software design training in other parts of the
curriculum, nobody inspected designs and code for quality. was the most valuable because it
gave overview of the overall process. very relevant to my full-time work. Experience in
internships tells me that it's very applicable to work(Knutson 02). was boring sometimes
(Hamilton) but definitely helped with the interview with Microsoft.
• 345 - taught me how to program (painful but useful). (favorite – I felt a notch better or
higher after), (although I hated it!)
• 330 - the class sort of lost it at the end but understood more about languages.

4. Were there any classes that you think should be eliminated?

Page 172 of 394


C3 CS 12/14/04
• 224, 235-3, 236-2, 252-10,312,330-5,324, 345,Stat 321-5,404-14, 428-6
• 224 - (too in depth)
• 235,236 should be more applied, too much theory background for those going into industry,
not enough practical knowledge. Change 235, too many proofs -6, combine 235 and 236-6.
• 252 - (don't eliminate, but didn't like, had crummy textbook) 252 is extraneous, theory is all
frontloaded in curriculum and never applied thereafter. hated it although the teacher was
good.
• 330 should use perl. didn't find Scheme to be applicable.
• 428 doesn’t require you to use techniques. It is mostly just reports and is not useful.
Valuable, but disjointed. Projects don’t feel real. Need Meatier projects. Disjointed, bugs
are mostly “off by one” errors that are easy to find. is very ambiguous, assignments not very
valuable, needs a lot of work before making it required (Knutson) (didn't take much away,
really general, not much in applicable skills) needs to be changed before requiring.
• 345 should have less programming. It is necessary, but should be revamped so it takes less
time.
• 404 you cant teach ethics, the class presented an abbreviated situation and asked students to
make an ethical decision. This was impossible to do without knowing the background. Get
rid of Zen. Readings were poorly chosen. Class isn’t going to change ethics. A seminar
would be better, reading zen was a waste of time. Standing for something presented nothing
new or controversial. (religion does better job on ethics, Zen is stupid)-2. (told is needed for
accreditation, Hays), whole semester too much time to cover ethics. 404 (we already have
lots of training in ethics) (entire semester is overkill). choice of readings in 404 is bad.
• 142 should not be required if you had CS in High School.
• I didn't like 235 or 236, but I doubt many do. I did learn quite a few important things from
them though. So no, I think all classes added value.
• Stat 321 – Needed statistics for 470, stat 321 didn’t help, would have been better off without
it. I know less for having taken it.
• CS 324 – labs got old

5. What changes in the curriculum would make the program better?


• More hardware experience with real OS calls, Windows programming (MFC) Linux
experience. Didn’t learn how to program well in either OS.
• Create an advanced CS 142 for students who have programming experience.
• More 400 level electives.
• Perhaps expanding 428 into an emphasis with additional classes.
• I know I love programming, but don't want to only do that. I would like to be a project
manager and maybe manage a department someday, but we don't get any of that training here
other than 428. I believe you are better prepared to manage a team of programmers if you
yourself are one, but having the extra training would be nice.
• There was a lot of code sharing. Students work together and turn in the same code.
• Teach Javadoc and software tools earlier.
• 142 should be more rigorous.
• Need word processing on open lab machines.
• Some machines don’t have java editor.
• Make disk quotas more reasonable.

Page 173 of 394


C3 CS 12/14/04
• Windows machines were unreliable and flakey-3.
• Windows logins take forever and half the time you cant log out.
• You often get other peoples desktop and you cant delete the files.
• VC++ wont start up. stress OO design earlier and more often, good habits enforced-2.
• move 428 earlier and require it.
• can't finish in 4 years without breaking pre-reqs, workload too heavy, does anybody follow
course mapping?
• stick with one language,
• move 240 to before 235/236.
• reduce scheduling conflicts.
• make projects more realistic in 345 and 460, too many little pieces without learning how the
entire thing goes together,
• too artificial, build more things from ground-up,
• would be nice to have more in-depth OS, databases, SE, and compiler classes, have classes
build on each other better so that the curriculum is not so disjoint.
• make theory optional for those not going to grad school.
• many classes should be 4 instead of 3 credits (he took 4 CS classes this semester),
• more practical skills (VB, Visual Studio, .NET, Java training).
• offer classes more frequently, more sections (400 and 500 level),
• make better use of technology in classes.
• courses are offered at difficult times for those who work (schedule earlier in morning or later
in afternoon or evening),
• project specifications are vague and poorly written which makes it much more time
consuming to complete projects.
• Math 119 was not enough to do Physics and Stats classes,
• do a better job at enforcing prerequisites (sometimes classes are full because people that don't
fill pre-reqs are allowed in)-2.
• Didn't feel prepared going into 200 level classes. Perhaps Math 190 should be required.
• 324 prereq for 345 should be enforced!
• Lower level classes are often frustrating. 235/6 was a mishmash.
• 240 was a glorified coding class.
• Some important things were not learned until later.
• Too many science classes! Geology is ridiculous. I don't want to be a scientist! Bio 130 was a
waste of time.
• More mainstream marketable technologies – web server stuff, etc-2.
• More programming.
• Material should be new, but all of our books were written in the 70's.
• 428 should be required.
• Open source coverage.
• Don’t ignore Microsoft.
• design patterns, coding style, class about how to do proofs.
• writings class, like a graduate class, help understand grad school.
• Ricks had specific advisor, BYU didn't.
• more guidance about what employers will look for.

Page 174 of 394


C3 CS 12/14/04
• more math and stats required.
• combine 200, 300 level classes, free up credits for more advanced material.
• more intro to research papers earlier.
• less use of textbooks, more use of actual sources.
• More testing other peoples code-2.
• when changes are made, need a transition plan for students.

6. Did you feel good about your relationship with the professors? What could the
professors do to make you feel more a part of the department?
• Fine-14
• They are not approachable if you are shy.
• no connection until a senior,
• too much research, interested more in recruiting grad students than in teaching undergrads,
• knowledgeable, understanding, good teachers rare, use class time ineffectively.
• too much Powerpoint, can't follow without seeing process unfold on whiteboard,
• Goodrich, Knutson great; learned a lot from Goodrich. Seamons excellent, Knutson.
• professors didn't have much time for me, but I don't blame them, classes too large to have
time for individual students.
• didn't get to know any professors very well, professors unforgiving when special
circumstances arose.
• didn't get to know until upper-division.
• Dr. Morse cares sincerely. Dr. Woodfield and Snell as well.
• Good when you found them in office hours. Usually didn't make the effort.
• I absolutely loved Dr. Jones.
• Not much relationship in general.
• Good relationships with Dr. Jones and Dr. Biggs.
• Undergrad research positions are very valuable. More opportunities these days.
• I don't really know any. Maybe it's just part of the major. I don't know any students either.
• Some are better than others.
• I don't even know who the undergrad advisor is. (Editors note: Ha! :)
• Like them, although most probably don't know my name. That's mostly my fault.
• Professors are accessible if you want to take advantage of it.
• Sometimes feel shut down.
• Would be nice to meet with each professor at least once during each course. Best if
encouraged or required by the professor.
• Some professors are overwhelmed by class size and so don't reach out like they could.
• Could help us make a better transition into the job world.
• liked Hayes, he tells it like it is
• bad ones: teach the same as what's in the book
• good ones: Clement, Morse, Ng, Goodrich, Sederberg
• had 240 twice, first time Egbert didn't seem to care about it second time Biggs really cared
but in 455 Egbert was great because he cared about it
• professors need to own the course

Page 175 of 394


C3 CS 12/14/04
• most are willing to help
• Windley for 462 was frustrating (not on campus)
• students have to initiate relationship-2
• Seamons goes out of his way to help
• Egbert, Cornell mentored me, took care of me
• more time for informal meetings, sharing ideas
• don't have any close relationships

7. Did you feel like the class sizes were appropriate for the material being covered? If
not, which classes were too large

452, 462,460-4,428-2,324 ,345-2,252, all 400


OK-13
o Too large! Getting in classes is tough. Panic ensues. People holding classes for
themselves or for friends. It should be a closed major, rather than an open.
o 35-40 should be max for 300-400
o 400 level filled with sophomores

8. What are your career plans?


Microsoft, SQL Database-2, Grad School-19, internet engineering, software engineer-4, grad school
later, network admin, Exactware, work, police academy, Law School, LDS Foundation, Investment
Banking, SPAWAR Military, Northrup, DOD, insurance software, MBA

9. Do you have a job?


NO-25, Yes-18

10. Where will you be working? email address?, Looking for Green Card, Walmart,
Exon, Northrup

Other Comments:
The reason there are more male students is that men grew up with computers, women had other
interests.
11. 460 should be required
12. 428 should be required, but earlier in the curriculum. Needs more information about
design process and good documentation (huge issues in real work)
13. Good job on labs with new technology (latest Linux), new images on the computers,
etc.
14. Can see innovation in classes.
15. Liked experiments in 460
16. Department would be more improved if better TAs.
17. Liked electronic submissions whenever that happened. Sitting down to pass of a
project with a TA was bad.
18. Lots of theory, but jobs want skills! Even certifications are valuable. More geared
toward industry.
19. 452 – Lots of Prolog, little SQL offered. Yet SQL is very valuable.

Page 176 of 394


C3 CS 12/14/04
20. Stay with mainstream software! Windows, COM, MFC, Visual Studio. More of a
tools focus that are marketable.
21. Hard to get into important classes that you need.
22. Maybe programming is a talent and some people have it and other people don't. Not
sure if it's possible for just anyone to develop it.
23. 240 is greatly improved. It's good to do design docs.
24. After college I'll have to go to ITT to get some real job skills. Not lots of legitimate
skills for jobs. Nice for academics, but not practical for jobs. For profs and grad
school, cool.
25. 345 was tough but incredibly valuable. Use it often in upper division classes. People
who wait to take it do themselves a disservice (enforce prereq of 345 to 400s).
However, you could trim the fat (or "trim the FAT" – student claims pun was
unintended).
26. Use labs as a time to gain practical experience. Some labs are way too esoteric.
27. 404 in freshman year, before gigs of pirated software
28. all 3 hours classes are not equal
29. take classes at Utah for credit here
30. keep CS accounts?
31. give alot of info about grad school
32. need to give more information about careers

Page 177 of 394


C3 CS 12/14/04
Senior Exit Survey Fall 2005
Number surveyed: 26
9/22/05

What are your ultimate career plans?


ƒ Aerospace Programming
ƒ Startup Company
ƒ Startup Company
ƒ Research or startup company
ƒ IT-Networking Hardware
ƒ Videogame Programmer or teach high school
ƒ CTO, business
ƒ Development
ƒ Development
ƒ Research (with PDAs)
ƒ Manager of development
ƒ Development-Software Engineering Architect
ƒ Development manager
ƒ Development Manager
ƒ Developer
ƒ PhD/Teach
ƒ PhD/Teach
ƒ Research
ƒ FBI as a Special Agent in computer/technical department

Where are you going next?


ƒ MBA
ƒ Startup
ƒ Industry
ƒ Industry
ƒ IT, Network, Web, MSI
ƒ Internship
ƒ Developer at Novell
ƒ None
ƒ Java Developer
ƒ No idea
ƒ Graduate School
ƒ Blue Coat Systems Proxy Filter
ƒ Industry
ƒ Industry
ƒ MS
ƒ PhD
ƒ Masters
ƒ PhD
ƒ Internship with MoveNetworks as a tester/developer

Page 178 of 394


C3 CS 12/14/04
Which classes were most valuable to you?
Eng 316 (3)
Math 343 (1)
142 (1)
235 (1)
236 (1)
240 (9)
252 (3)
312 (1)
324 (5)
330 (2)
345 (9)
401R- Entrepreneurship (1)
412 (2)
428 (5)
455 (1)
456 (1)
460 (6)
462 (1)
465 (2)
478 (1)

Which classes were least valuable to you?


Eng 316 (1)
142 (1)
143 (2)
235 (1)
224 (1)
252 (4)
312 (8)
330 (11)
345 (2)
404 (2)
412 (1)

How would you change the program?


ƒ More practical applications
ƒ There is a lack of purpose in the labs.
ƒ Do more user interfaces.
ƒ Have more focus on web development and web applications.
ƒ Learn more languages.
ƒ More learning outside of the classroom
ƒ Have emphases outside of department.
ƒ Less busy work (esp. in classes 428 and 455)

Page 179 of 394


C3 CS 12/14/04
ƒ Separate 240 into two classes because it was overwhelming, and the 2nd project was too close
to the end of the semester.
ƒ Promote internships.
ƒ Hard to get into research labs (he emailed professors, but none of them responded)
ƒ Internship helped him with practical skills. Maybe require internship or give class credit for
it.
ƒ If someone can’t get into the internship. Have the labs available for them to do research.
ƒ Promote internships.
ƒ Some technologies aren’t taught like JSP.
ƒ Open labs all of the time.
ƒ More internship component
ƒ Go deeper in specific areas
ƒ Have a senior thesis or capstone
ƒ Networking
ƒ More math
ƒ More math and engineering
ƒ STL
ƒ C#
ƒ Require quality code
ƒ Real ethics class
ƒ Greater range of upper division classes

Other Comments:
ƒ 465 was excellent because it forced us to use object-oriented programming.
ƒ Didn’t like 330, but I did learn about recursion.
ƒ 252 and 312 didn’t give me anything that I could use in the business world.

Page 180 of 394


C3 CS 12/14/04
Senior Exit Survey Winter 2006
April Graduates
Winter 2006

What are your ultimate career plans?


ƒ Get a PhD and do research. No teaching.
ƒ Web Developer for a small company
ƒ Business Owner
ƒ Physician
ƒ Product Development/Project Leader
ƒ Research in industry
ƒ Developer
ƒ Business Consulting
ƒ Patent Law
ƒ Developer
ƒ Project Leader
ƒ MBA
ƒ Hong Kong Consulting
ƒ Special Effects in Hollywood
ƒ Project Management
ƒ Teaching High School or College
ƒ Research in industry
ƒ Web applications
ƒ Product Development
ƒ Product Development
ƒ Product Development
ƒ Patent Law
ƒ Software Engineering
ƒ Product Development-Architecture, Operations Research
ƒ Law School-Technology attorney
ƒ Start my own business
ƒ Management
ƒ Masters and MBA then project lead
ƒ Product development and eventually get a masters
ƒ Software Design/Developing/Testing
ƒ Software Engineering
ƒ Product Development-managing side
ƒ Consulting
ƒ ?
ƒ Software Development in business setting
ƒ Research
ƒ Product Development
ƒ Project management over software development team
ƒ Software architect
ƒ Product Development

Page 181 of 394


C3 CS 12/14/04
ƒ Own gaming business
ƒ Innovate
ƒ Product Development, research/academic

Where are you going next?


ƒ Applying for Masters degree
ƒ 10X Media
ƒ Self-Employed
ƒ Medical School
ƒ Grad School
ƒ Industry
ƒ Microsoft Testing
ƒ Product Development
ƒ Law School
ƒ Industry
ƒ No job yet
ƒ Mayo Clinic
ƒ Graduate Program
ƒ Graduate Program
ƒ Graduate School
ƒ Product Development. Get masters while working.
ƒ Product Development
ƒ L3-Product Development
ƒ Product-L3 Communications
ƒ Law School
ƒ No idea
ƒ No idea
ƒ Graduate school in CS
ƒ Applying to Law School
ƒ Working-Self-employed
ƒ Epic Systems
ƒ Focus-local company
ƒ Amazon.com
ƒ Into industry
ƒ Epic Systems
ƒ Microsoft Program Manager
ƒ Graduate School-PhD
ƒ Internship-National Instruments, grad school
ƒ Bank of America and then MBA
ƒ Industry
ƒ Microsoft
ƒ Programming, Sawtooth Development, MBA
ƒ Software Engineering, Boeing
ƒ Industry
ƒ Graduate School

Page 182 of 394


C3 CS 12/14/04
ƒ Game Development-no job yet
ƒ Software Development at Amazon.com
ƒ Navitare

Which classes were most valuable to you?


ƒ Stat 321 (1)
ƒ Math 343 (1)
ƒ Math 112 (1)
ƒ Math 113 (1)
ƒ 142 (4)
ƒ 224 (1)
ƒ 235 (5)
ƒ 236 (6)
ƒ 240 (14)
ƒ 252 (5)
ƒ 312 (10)
ƒ 316 (1)
ƒ 324 (2)
ƒ 330 (4)
ƒ 345 (10)
ƒ 360 (2)
ƒ 404 (3)
ƒ 405 (3)
ƒ 412 (2)
ƒ 428 (16)
ƒ 450 (1)
ƒ 455 (3)
ƒ 456 (1)
ƒ 460 (4)
ƒ 462 (7)
ƒ 465 (6)
ƒ 470 (5)
ƒ 478 (8)
ƒ 598R (1)
ƒ 670 (1)

Which classes were least valuable to you?


ƒ Stat 321 (4)
ƒ Physics 220 (2)
ƒ 124 (1)
ƒ 142 (3)
ƒ 143 (2)
ƒ 224 (4)
ƒ 235 (1)
ƒ 236 (3)
ƒ 252 (7)

Page 183 of 394


C3 CS 12/14/04
ƒ 312 (5)
ƒ 324 (6)
ƒ 330 (14)
ƒ 345 (3)
ƒ 404 (4)
ƒ 428 (4)
ƒ 452 (3)
ƒ 453 (1)
ƒ 460 (3)
ƒ 462 (1)
ƒ 470 (1)
ƒ 486 (1)

Comments on classes.
ƒ Didn’t learn anything in Stat 321, and it was too fast.
ƒ In 330 there was too much theory. The book was bad. (In Geary’s class).
ƒ There was too much swing in 142.
ƒ 404 wasn’t very valuable, but it was enjoyable.
ƒ The 236 book is useless.
ƒ 452-couldn’t do anything after class. We never did a real database.
ƒ 330-had no clue of anything in the class, restructure the homework. Show applications in
class.
ƒ 142-Class assumed that we already knew a lot. Need to start at a lower level.
ƒ 330-Not useful. Enjoyed end research and other languages.
ƒ 405 should be required.
ƒ 330- Concepts were good, execution was bad. Had to go through 2000 lines of scheme to
look for the bad one.
ƒ 330-Would prefer that it wasn’t done in scheme. Ruby might be better.
ƒ 312-Too deep. Didn’t learn.
ƒ 324-Too redundant.
ƒ 428- Need more application. Didn’t understand web applications.
ƒ 460-The information we covered was very important, but we went so in depth that it was
difficult to get a great understanding of it all.
ƒ 324-An interesting class, but not all of the information was that necessary.
ƒ 330- It was interesting, but not very applicable.
ƒ 312-Didn’t seem grounded. Not a lot of practice in a particular thing.
ƒ 428-Great class, but it was too fast.
ƒ 486-Should be a graduate-level class.

How would you change the program?


ƒ Fix Stats 321.
ƒ Have more application and less theory.
ƒ Have us do a senior project with a company from the community.
ƒ Make a scheduled lab time for classes with group work.
ƒ Learn more Java.
ƒ More oral and written assignments

Page 184 of 394


C3 CS 12/14/04
ƒ Rework the theory classes.
ƒ Have some sunlight in the labs.
ƒ Give resources for things like PHP, Web Architectures, and Software Engineering.
ƒ The lab hours have to be extended earlier.
ƒ Integrate classes with other departments to create tracks. Work together with ISYS
specifically.
ƒ More guidance on program and courses.
ƒ Publicize ORCA and undergraduate research.
ƒ Make a way to avoid 142 if you already have experience.
ƒ More help in the areas of careers and internships.
ƒ Allow more 400-level electives. Take away some 300-level classes.
ƒ More 400-level electives
ƒ More professors who act like they really care about the students.
ƒ Have lab open all night.
ƒ Class teaching tools (Linux, visual studio, etc)
ƒ More help, examples.
ƒ Have TAs with extended office hours.
ƒ There is no advantage to doing labs early because labs don’t work and TAs don’t know how
to do them.
ƒ More activities.
ƒ More ideas of careers.
ƒ The systems administrators are hard to work with.
ƒ Career planning and resume writing helps.
ƒ More applications.
ƒ More web development
ƒ Too many toy programs. Too theoretical.
ƒ Classes take too much time. Can’t be a full time student.
ƒ Labs have too much busy work.
ƒ 240 is too specific-memory management is not covered.
ƒ More group collaboration. Keep labs open at night.
ƒ More help on labs.
ƒ Instruction on how to use tools.
ƒ Allow food in labs.
ƒ Have labs open all night.
ƒ Do more team projects
ƒ Learn CVS
ƒ Architect a big project, not just implement one.
ƒ More Windows, .Net taught.
ƒ Microsoft word on windows machine.
ƒ Drop 404
ƒ Add source control CVS.
ƒ Have fewer required courses. Have tracks.
ƒ Supply a tour of research labs.
ƒ More advisement-had a bad experience with advisor.
ƒ Advisement awareness.
ƒ More disk space.

Page 185 of 394


C3 CS 12/14/04
ƒ Have prospective projects that span multiple classes.
ƒ Have more technologies early (not Java/Linux)
ƒ Expose students to application deployment (e.g. CVS)
ƒ Open source projects for students
ƒ Help students pick their direction sooner, before 400-level classes.
ƒ More real world knowledge needed.
ƒ Less Linux.
ƒ Department should require an internship.
ƒ Split networking class up or cover a smaller amount of material.
ƒ More emphasis on .Net.
ƒ More emphasis on Java in later classes.
ƒ Better description of 400-level electives.
ƒ More emphasis on testing and security.
ƒ Wider range of electives to choose from.
ƒ Teach 142 like the beginning of 240 was taught.
ƒ There is some C# now, but I went through the major and didn’t do anything with C# and
.Net. More should be included.
ƒ CS 324 needs to be totally redone.
ƒ Allow more options for motivated students to get a better education and to shape their
education to what would best meet their goals. Make math a better foundation.
ƒ I would add a capstone, and allow you to specialize more.
ƒ Students should learn PHP and web programming.
ƒ Should learn CVS and work on an open source collaboration project.
ƒ Make 428 and 360 required.
ƒ Very Linux oriented. Need more widely applicable programming-Windows.
ƒ Need an opportunity to go from start to finish on a good system.
ƒ Need more curriculum on programming design and usability.
ƒ Need more web-related programming skills-PHP, Perl, .Net, and more emphasis on high-
level design.
ƒ 100-level class to teach Linux.
ƒ Need to learn more practical skills.
ƒ Need languages besides Java and C++.
ƒ Take away Physics 220.
ƒ Force students through Stat 321.
ƒ Leave labs open 24/7.
ƒ Keep teaching abstract principles so that students get a good foundation.

Page 186 of 394


C3 CS 12/14/04
Senior Informational Survey Winter 2006
50 Responders

Honors
ƒ Heritage Scholarship
ƒ Golden Key Honors Society
ƒ National Merit/Heritage Scholarship
ƒ Dean’s List
ƒ Dean’s list
ƒ Full-tuition academic scholarship
ƒ Half-tuition scholarship
ƒ Dean’s List
ƒ Half-tuition, honor roll
ƒ Full-scholarship, Phi Kappa Phi
ƒ BYU Heritage Scholarship
ƒ Partial Academic Scholarship
ƒ Full-Tuition Scholarship
ƒ Half-tuition Scholarship
ƒ Academic Scholarship
ƒ Goldwater Scholarship, 2 ORCA Grants, Honors
ƒ ½ tuition scholarship, freshman year
ƒ ORCA
ƒ Full tuition scholarship, freshman year, International Student scholarship
ƒ Heritage Scholarship
ƒ University scholarship
ƒ ORCA Grant, Frontiers Undergraduate Mentorship, Dean’s list
ƒ University Scholarship

Number of Languages (besides English)


ƒ 1 (29)
ƒ 2 (4)
ƒ 5 (1)

Languages
ƒ Romanian (1)
ƒ Spanish (10)
ƒ Portuguese (3)
ƒ Mandarin (1)
ƒ Cantonese (1)
ƒ Swedish (1)
ƒ German (1)
ƒ French (1)
ƒ Japanese (1)
ƒ Hungarian (1)

Technology Proficiency

Page 187 of 394


C3 CS 12/14/04
ƒ Java (45)
ƒ SQL (10)
ƒ HTML (7)
ƒ PHP (14)
ƒ CSS2 (2)
ƒ ASP (3)
ƒ JavaScript (7)
ƒ C (37)
ƒ C++ (43)
ƒ UB (1)
ƒ C# (16)
ƒ Flash (1)
ƒ MySQL (1)
ƒ Enterprise Technologies (1)
ƒ Visual Studio (2)
ƒ Open Source/Linux (5)
ƒ Python (15)
ƒ .Net (4)
ƒ XML (4)
ƒ XSLT (1)
ƒ Scheme (4)
ƒ Lisp (1)
ƒ GL (1)
ƒ Prolog (1)
ƒ Pascal (1)
ƒ Perl (6)
ƒ JSP (3)
ƒ Actionscript (1)
ƒ Flex (1)
ƒ Java Server Faces (1)
ƒ Windows (4)
ƒ ESB (1)
ƒ Visual Basic (1)
ƒ Unix (1)
ƒ Coldfusion (1)
ƒ Ruby (1)
ƒ Win32 (1)
ƒ J2EE (3)
ƒ Delphi (1)
ƒ Matlab (1)

Technologies wish learned


ƒ Ruby (2)
ƒ Flash/Actionscript (1)
ƒ Multimedia (1)
ƒ Game Development (1)

Page 188 of 394


C3 CS 12/14/04
ƒ .Net (11)
ƒ C# (4)
ƒ SQL (4)
ƒ PHP (4)
ƒ JSP (1)
ƒ XHTML (1)
ƒ Web Programming (2)
ƒ Scripting languages (2)
ƒ Scheme (1)
ƒ Lisp (1)
ƒ Artificial Intelligence (1)
ƒ Machine Learning (1)
ƒ Database (1)
ƒ STL (1)
ƒ Visual Studio (2)
ƒ Visual Basic (1)
ƒ Distributed Systems Programming (1)
ƒ Software Testing (1)
ƒ AJAX (1)
ƒ Various Frameworks (including rails) (1)
ƒ Perl (1)
ƒ ASP (1)
ƒ J2EE (1)

Internship 36%
Yes (18)
No (32)

Work 90%
Yes (45)
No (4)

Location of work or internship


ƒ 10X Media
ƒ Persona LLC
ƒ BYU Independent Study
ƒ Yoogli, Inc.
ƒ Masters
ƒ Mayo Clinic
ƒ BYU Publications and Graphics Department
ƒ BYU OIT
ƒ Automation Design and Service
ƒ Lincoln Law LLC
ƒ WalMart ISD*
ƒ TA

Page 189 of 394


C3 CS 12/14/04
ƒ BYU CSR and CS TA
ƒ Verio
ƒ Pentagon*
ƒ Novell*
ƒ Amazon.com*
ƒ MTC
ƒ Omaha Public Power District
ƒ Amazon.com*
ƒ Focus Design*, Web Programmer
ƒ Dynix, Excellus, TA, Self-Employed
ƒ NLP Lab
ƒ Parlant Technology
ƒ Lawrence Livermore Labs*
ƒ Novell*
ƒ Symantec*
ƒ BYU TALL Group
ƒ Sandia National Laboratories*
ƒ National Instruments*, NextPage
ƒ Vectura Technology Integrators
ƒ Performance Years Enterprises
ƒ Informera, LLC
ƒ U.S. Bureau of Reclamation
ƒ Self-Employed-Consulting
ƒ Northface University, HP
ƒ Persona LLC
ƒ Tallabs, Inc.
ƒ Bank of America*
ƒ Marketplace.com*
ƒ Boeing*
ƒ Persona, LLC
ƒ Math dept, eBusiness Center, CS department, NLP lab
ƒ IBM *
ƒ Sociology Department
ƒ BYU
ƒ Benson Institute
ƒ TALL
ƒ Lucion Technologies*
ƒ HCML Research Lab

Ultimate Career Plans


ƒ Web Developer
ƒ Business Owner
ƒ PhD
ƒ Industry
ƒ IT Consulting

Page 190 of 394


C3 CS 12/14/04
ƒ Special Effects/Graphics in movies
ƒ Programmer
ƒ Technology and Law
ƒ Development
ƒ Software Engineering or Web Developer
ƒ Research
ƒ Work in Computer Security Industry
ƒ Modeling/Simulator analyst maybe software engineer/architect
ƒ Technology Management
ƒ Project Manager or Consultant
ƒ Teaching
ƒ Manager, Software Development
ƒ Work at LLNL
ƒ Consultation or teaching
ƒ Software-everything but coding
ƒ Software Developer/Design
ƒ Software Engineering
ƒ Software Development Management
ƒ Software Engineer
ƒ Become a Programmer
ƒ Technical Director for Pixar or Software Engineer
ƒ Patent Lawyer
ƒ Operations Research
ƒ Patent Lawyer
ƒ Software Architecture
ƒ Software Engineer in business
ƒ Become a software developer
ƒ Get a PhD in Biotechnology major, do private research
ƒ Move into business side of technology industry
ƒ Software Development
ƒ Project Manager
ƒ Innovate
ƒ Software Architect
ƒ Software Architect
ƒ Game Development
ƒ Software Engineer
ƒ Get a job in the software industry.
ƒ Software Engineer

Areas
ƒ Programming (39)
ƒ Research/Innovation (27)
ƒ Software Engineering (34)
ƒ Systems Design/Analysis (16)
ƒ Network Management/Analysis (6)
ƒ Database Administration/Design (11)

Page 191 of 394


C3 CS 12/14/04
ƒ Internet/Web Professional (17)
ƒ Information Systems (9)
ƒ Testing/Quality Specialist (4)
ƒ Computer Architecture (4)
ƒ Multimedia (7)
ƒ Security (9)
ƒ Information Technology (7)
ƒ Management/Business (15)
ƒ Consulting (12)
ƒ Machine Learning/AI (1)
ƒ Embedded Systems (1)
ƒ Law (3)
ƒ UI (1)
ƒ Graphics (1)

Job Lined Up or Grad School 87%


Yes (26)
No (6)
Just Graduate School (14)

Company
ƒ 10X Media, Web Developer
ƒ Collective Medical Technologies, CTO
ƒ Yoogli, Inc., Programmer
ƒ Mayo Clinic, IS Analyst
ƒ Lincoln Law, IT Manager
ƒ Microsoft*, Tester
ƒ Verio, Developer
ƒ Raytheon*, Software Engineer
ƒ Microsoft*, Developer
ƒ Amazon.com*, Software Development Engineer
ƒ Focus Design *, Web Programmer
ƒ Epic Systems, Programmer
ƒ Parlant Technology, Data Integration Specialist
ƒ Lawrence Livermore Labs *, Computer Scientist
ƒ Microsoft, Program Manager
ƒ Epic Systems*, Software Engineer
ƒ L-3 Communications, Software Engineer
ƒ Navitaire, Senior Software Engineer
ƒ Sawtooth Investment, Software Developer
ƒ Bank of America*, Software Developer/Analyst
ƒ Microsoft*, Software Development Engineer
ƒ Boeing*, Software Engineer
ƒ Amazon.com, Software Development Engineer
ƒ Raytheon, Software Engineer
ƒ Lucion Technologies*, Software Engineer

Page 192 of 394


C3 CS 12/14/04
Same as former work or internship
Yes (12)
No (11)

Salary Range
0-30,000 (3)
30,000-45,000 (2)
45,000-55,000 (4)
55,000-65,000 (5)
65,000-above (9)

Resources to get the job


University Career Placement (6)
Internship (5)
Career Fair (9)
Personal Contacts (12)
Ad (5)
Department Services (3)
Previous Employment (2)

Graduate School
Yes (34)
No (7)
Maybe (2)

Degree
ƒ MBA (7)
ƒ Masters (17)
ƒ PhD (6)
ƒ JD (3)
ƒ MD (1)

Where to attend
ƒ BYU (9)
ƒ University of Washington (2)
ƒ University of Utah (1)
ƒ University of Illinois (1)
ƒ Stanford University (1)

Comments
ƒ Scheduled lab times with the classes that require group work. This would be especially
helpful to students who work while in school.
ƒ Seniors should get projects from community businesses.
ƒ Quieter labs
ƒ Give credit for CS 142 for those who pass programming AP test.

Page 193 of 394


C3 CS 12/14/04
ƒ More group projects so that we can network with other students.
ƒ Better integrate lower level courses.
ƒ Do joint projects with other departments.
ƒ Advertise more about research opportunities.
ƒ Publicize mentoring, counseling, and internship opportunities.
ƒ Help students be more involved in the department and interact more with faculty.
ƒ More extended lab hours.
ƒ Get system administrators who don’t mind answering Linux-specific questions.
ƒ Liked the career and resume workshops, but wishes they were around earlier. Wants
something that could help give a broad vision of what people with computer science degrees
actually do. More guidance for long-term plans.
ƒ Get students more involved together. Make more groups of common interest.
ƒ More theory-oriented with 401R type supplements for practical issues.
ƒ Appreciate the opportunities for undergraduate research.
ƒ Need more TA hours and more teacher office hours.
ƒ Need more space on CS machines.
ƒ More lab hours (24/7)
ƒ A couple of “general TAs” always available that combined know most CS topics.
ƒ Encourage undergrads to participate in the colloquia.
ƒ Better undergraduate advisement system.
ƒ Have the department sponsor open source projects.
ƒ Wish that more professors would take a serious interest in their students.
ƒ Internships should be required of all graduates and then provide a list of companies willing to
hire interns.
ƒ Use real world languages more. Instead of scheme, how about Lisp? Play languages that are
rarely used in industry don’t seem to be beneficial. I want to be competitive with every other
college graduate.
ƒ Some real-world, hands-on training would have been great.
ƒ I wish there were more programs that addressed the current technologies of the day. Any
learning we did was on our own.
ƒ I wish my AP CS test score counted when I started. I could have graduated a year earlier.
ƒ Need more access to industry methods, technologies, etc.
ƒ Allow for time to take electives from other disciplines.
ƒ More teamwork.
ƒ Introduce software design and testing earlier in the curriculum.
ƒ Make sure TAs are actually helpful to students.
ƒ Don’t give in to pressure to make the degree less rigorous and more “real world.” The
languages and technologies of the day may entice, but the principles are constant. Only
interested and trained students can find an answer to the truly important questions of our
domain.
ƒ I wish I had more help getting an internship. I wasn’t given very much help from the CS
department.
ƒ Make 252 more relevant and practical.
ƒ Keep labs open all night. Further internship placement opportunities. Have possible credit
for internships.

Page 194 of 394


C3 CS 12/14/04
ƒ A little more diversity in the languages taught. You could just about get through the program
without learning anything but C and Java.
ƒ It would have been convenient to have the lab hours extended through the night.
ƒ Opportunity to work with different tools like Visual Studio and other things that are being
used at the workplace.
ƒ The tools we were required to become familiar with have low correlation with tools used in
industry. An example is gdb.

Page 195 of 394


C3 CS 12/14/04
Brigham Young University Alumni Questionaire
Administered to the computer science graduates of 2001
Information Released in April 2005
Prepared by BYU Institutional Assessment and Analysis

Q02c1. Evaluate the counseling and advisement you received from each of the following BYU
sources regarding your options for employment after graduation:

Department Resources

Department/College No Very poor Poor Good Very Good Did Not


response Use
Computer Science 29 0 31% 3% 7% 59%
Physical and 65 3% 22% 25% 11% 40%
Mathematical Sciences
University 1287 7% 19% 28% 15% 30%

Observations: The Department noted the high percentage of students who were not utilizing career
advisement as well as the high percentage of those who considered the advisement services poor. In
reaction to this, the Department has been working to promote utilization of this type of advisement
and recently hired an Undergraduate Program Assistant to help with advisement, particularly when
the Undergraduate Coordinators are not present. The Department was also recently assigned a
representative from the University’s Career Services to assist students specifically in computer
science.

Q02c2. Evaluate the counseling and advisement you received from each of the following BYU
sources regarding your options for employment after graduation:

Career Placement Services

Department/College No Very poor Poor Good Very Good Did Not


response Use
Computer Science 29 3% 1414%% 31% 14% 38%
Physical and 65 8% 9% 31% 14% 38%
Mathematical Sciences
University 1285 7% 15% 25% 14% 39%

Observations: Realizing the high percentage of students who utilized neither the Department nor
University’s Career Placement Services, the Deparment has initiated an effort to better inform
students through presentations in classes, career seminars, and department interviews with students
during their sophomore year to let them know what resources are available to them.

Q09b. Indicate the number of semesters you were involved in the following activities:

Page 196 of 394


C3 CS 12/14/04
Off-campus Internships

Department/College No 0 1 2 3 4+
response
Computer Science 36 69% 11% 3% 0% 17%
Physical and 131 71% 15% 6% 3% 5%
Mathematical Sciences
University 2549 60% 23% 11% 3% 3%

Observations: The Department has recently moved to devote more resources to promoting
internships. It is encouraging each student to be involved in an off-campus internship before
graduation. The Department is doing this in a number of ways: giving presentations promoting
internships during classes, including internships in the program and career advisement it offers,
including more services directed toward helping students find good internships, and making valuable
contacts in an effort to get more students placed in useful internships.

Department Questions:

Assess the importance of each of the following areas to your success in your profession:

Digital Logic, Computer Architecture


Not Somewhat Moderately Very Essential No
Important Important Important Important Response
Undergraduate 8% 14% 28% 28% 22% 36
Graduate 0% 20% 0% 40% 40% 10
Total 7% 15% 22% 30% 26% 46

Software Engineering
Not Somewhat Moderately Very Essential No
Important Important Important Important Response
Undergraduate 6% 3% 14% 31% 47% 36
Graduate 0% 0% 10% 40% 50% 10
Total 4% 2% 13% 33% 48% 46

Web based systems, Networking, Data Security


Not Somewhat Moderately Very Essential No
Important Important Important Important Response
Undergraduate 6% 3% 14% 33% 44% 36
Graduate 0% 10% 20% 30% 40% 10
Total 4% 4% 15% 33% 43% 46

Observations: The Department recently decided to revamp their curriculum because of the above
feedback from the University’s alumni survey as well as feedback received at senior exit interviews.

Page 197 of 394


C3 CS 12/14/04
According to the information presented above, only 50% of the alumni surveyed believed that
computer architecture is either very important or essential in the curriculum. However, 78% of
alumni believe software engineering is either very important or essential and 77% believe that web
based systems belong in these categories. Accordingly, the faculty voted to cut back on the number
of credit hours devoted to computer architecture to make way for core courses on software
engineering and web based systems and networking.

Page 198 of 394


C3 CS 12/14/04
Alumni Survey Results
08/31/2005

Observations:
1.Careers fall under the following categories:
(junior to senior) software engineer (10)
programmer (9)
project manager (2)
professor (2)
researcher (2)
systems administrator (1)
security systems administrator (1)
consultant (1)
technical marketer (1)
executive management (1)

2. Salaries:
Before 1980: 2
average salary: $97,500

1980-1989: 9
average salary: $96,027

1990-1999: 13
average salary: $82,791

2000-current: 6
average salary: $60,250

Total average salary: $84,142

3. Job activities:
Programming, documentation, papers, teaching, testing, database work, computer security, install
OS, design, software requirements, team management, build and produce demos, research, meetings,
consulting, executive management, image processing, advisement, debugging, compilers, network
configuration, produce project timelines, continued education, lifecycle methodologies,
troubleshooting

4. Skills Used:
Most common languages listed:
(21 individuals responded with a list of languages)
C/C++: 8/21
C#: 8/21
Java: 6/21
.NET: 6/21
SQL: 5/21

Page 199 of 394


C3 CS 12/14/04
Unix/Linux: 4/21

Communications Skills: 16/31


Writing Skills: 9/31
Being able to plan project lifecycle: 8/31 (I was surprised at how adamantly some of the respondents
emphasized this.)
Business Knowledge: 6/31

Other skills mentioned: database knowledge, critical thinking, problem-solving, design,


troubleshooting, debugging, decision-making, presentation skills, language skills, logic, continuous
learning, graphics, intellectual property, analytical thinking, user interface design, electronics design,
creativity, signal processing, usability principles, math, prioritization, understanding protocol specs,
web development, data modeling.

5. Preparation:
Do internships, understand business, open source projects, real-world programming projects, large-
scale programming, develop soft skills, learn analysis and design, more software engineering
preparation, public speaking experience, do continued maintenance of your own code, work with a
group, sharpen technical writing skills, source control experience, learn to produce good estimates,
work with professors on research, compiler writing, network with classmates and professors, learn
Microsoft-style C++, understand project cycles, get exposure to other student's methods of coding.

Page 200 of 394


C3 CS 12/14/04
ugradcomm] CS 404
MarkClement clement@cs.byu.edu
Tue, 3 Dec 2002 16:19:19 -0700
• Previous message: ugradcomm] Meeting Today 2:00
• Next message: ugradcomm] CS 404
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

This is a multi-part message in MIME format.

------=_NextPart_000_0030_01C29AE5.8C048550
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Tony,
Here are a couple of updates on items that the undergraduate committee
has been discussing.

Stat 321: We spent a lot of time looking at text books and trying to
find one that includes probability and Bayesian analysis. After several
discussions we decided that the class should really be focused on
statistics an potentially add the other topics as supplementary
material. The best statistics book also has some probability in the
introduction, but no Bayes. I met with David Whiting, who will probably
end up teaching it in the stats department and he thought that it would
be possible to include some of the topics we are requesting in the
class. He indicated that nothing will be changing in the class until
Fall 2003, but that he would like to work with us on tailoring the class
to our needs. I would like to help in developing the class so that it
has CS examples and gives the students experience in using statistical
tools to solve problems that they will be encountering in their careers.
I may be team teaching the first section of the new class with David
Whiting depending on how things work out with his department chairman.

CS 404: We have talked a lot about this class. Although it is tempting


to eliminate the class since we don=92t have a permanent instructor to
supervise it, we really think that there are some critical concepts that
should be taught in the class that our students would miss out on if it
were eliminated. The Accreditation requirements also require computer
specific ethical discussions that we don=92t have in any of the religion
classes our students will take. As I see it, we have two options:

1) Keep the class and put the work into making it a really good
experience for our students. Chuck has volunteered to teach it and is
excited about the topics that could be covered in the class. I know
that he is in demand for other assignments, but he would do a great job
with it and would enjoy it. It will be a lot of work to create
materials so that part-time faculty can also teach it in a consistent
way.

2) Move the content into another class. Unfortunately, there are no


good candidates. There are probably about 6 lectures that are critical
to preparing our students to make good decisions on privacy, risk

Page 201 of 394


C3 CS 12/14/04
management and other CS specific ethical questions. All of our required
classes are packed full of content and the ethics content really =
doesn=92t
fit in any of them.

We suggest that Chuck should be given a shot at the class. If that


doesn=92t work out, we can think about where to move the content.

Mark

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
=A0=20

Page 202 of 394


C3 CS 12/14/04
ugradcomm] Minutes from ugrad meeting
MarkClement clement@cs.byu.edu
Tue, 3 Dec 2002 16:24:19 -0700
• Previous message: ugradcomm] CS 404
• Next message: ugradcomm] undergrad committee meeting about 142
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

This is a multi-part message in MIME format.

------=_NextPart_000_0084_01C29AE8.6E978870
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

We spent most of the time talking about CS 142. Todd reported that the
class currently covers far too much material. 90% of the class seems to
be spent in introducing new java syntax and GUI programming. Many of
the students don=92t seem to be able to write code to solve even simple
problems unless they can find a similar example in the text.

We identified the following elements that should be covered in the class

1) Object Oriented programming


2) Problem Solving
3) Debugging
4) Testing
5) Java Syntax (20% of the class)
6) How the virtual machine and compiler work

Todd thinks that we should nuke the GUI programming altogether. Mark
thinks that we need some simple gui instruction on the order of 1
lecture. The problem is that GUI is event driven and would require a
different set of skills than are necessary for non-event driven
programming. I really think that we can give them some help to make it
through a simple GUI experience.

Quinn used to teach the class by giving them a problem, letting them
write the code for 15 minutes and then having someone write their code
on the board and analyze it in class. It seems like this in-depth
approach may be better than trying to cover all of Java syntax.

We have also talked about moving away from JPAD since students don=92t
seem to understand what is really going on under the covers.

Cory is teaching the class Winter 03, and is reluctant to make major
changes when he is also making major changes to 235. We would like to
meet next week to make a decision on any changes that might need to be
made with the class.

We also talked a little about 404. With Dan leaving, we will have no
permanent instructors for the class. Most faculty that I have talked to
think that we should eliminate the class for this reason. The real
ethical concepts that we want to teach the students may be limited

Page 203 of 394


C3 CS 12/14/04
enough that we could include them in another class. The ABET
requirements state:

- The oral communications skills of the student must be developed and


applied in the program.

- The written communications skills of the student must be developed and


applied in the program.

- There must be sufficient coverage of social and ethical implications


of computing to give students an understanding of a broad range of
issues in this area.

I don=92t think that we could really fulfill the last requirement with =
the
religion classes our students take. I also think that it is important
for them to have this material somewhere. I think that our options are
to move some computing ethics into another class, or to continue to
teach 404.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
=A0=20

Page 204 of 394


C3 CS 12/14/04
ugradcomm] Exit Interviews
MarkClementclement@cs.byu.edu
Mon, 9 Dec 2002 14:30:06 -0700
• Previous message: ugradcomm] FW: undergrad committee meeting about 142
• Next message: ugradcomm] Exit Interviews
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

This is a multi-part message in MIME format.

------=_NextPart_000_0010_01C29F8F.68A552C0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Before I launch into this message, remember our ugrad meeting Tuesday at
2:00. I would really like to have everyone there since we will be
discussing CS142 and have invited Robert and Quinn.

I just interviewed a couple of seniors who are graduating in December


who really wanted to give us some feedback on the program.

I thought you guys might be interested in their comments.

1) Require 428 and make it happen after 240 in the program. They had
the class from Scott and thought it was really valuable. They mentioned
that the reason they took the class is that they ask their manager at
Microsoft to give them some feedback on which senior level classes to
take and he suggested that they should take a Software Engineering
class.

2) They thought CS404 was a waste of time. They are both TAs for the
class too, so they have had an in-depth exposure to the class. They
didn=92t think that anything could be done to reform it and suggested =
that we really didn=92t need it because we have the other religion classes.

3) They also mentioned that Chuck should pay them more money for saying
these things :)

4) Additionally, they mentioned that they wished we would develop real


applications in classes. They said that in all of their classes (except
for mine of course) they build small throwaway code. They would like a
senior project class or projects for classes that are real enough that
they want to take them with them when they enter the workforce. Many
times we rationalize that we will not be able to cover as much material
if we have them program a large project and tend to just give toy
problems. From their perspective, they would have rather put in a
little more time, or covered less material in order to do real
programming projects.

Anyway, I am supposed to take 10-15 minutes in our faculty meeting to


talk about Stat 321 status and CS 404. I sent Tony the following
summary:

Page 205 of 394


C3 CS 12/14/04
>CS 404: We have talked a lot about this class. Although it is tempting

>to eliminate the class since we don't have a permanent instructor to=20
>supervise it, we really think that there are some critical concepts=20
>that should be taught in the class that our students would miss out on=20
>if it were eliminated. The Accreditation requirements also require=20
>computer specific ethical discussions that we don't have in any of the=20
>religion classes our students will take. As I see it, we have two=20
>options:
>
>1) Keep the class and put the work into making it a really good=20
>experience for our students. Chuck has volunteered to teach it and is=20
>excited about the topics that could be covered in the class. I know=20
>that he is in demand for other assignments, but he would do a great job

>with it and would enjoy it. It will be a lot of work to create=20


>materials so that part-time faculty can also teach it in a consistent=20
>way.
>
>2) Move the content into another class. Unfortunately, there are no=20
>good candidates. There are probably about 6 lectures that are critical

>to preparing our students to make good decisions on privacy, risk=20


>management and other CS specific ethical questions. All of our=20
>required classes are packed full of content and the ethics content=20
>really doesn't fit in any of them.
>
>We suggest that Chuck should be given a shot at the class. If that=20
>doesn't work out, we can think about where to move the content.

I think that we should have a third option. Have Chuck overhaul CS 404
and make it a software engineering class with about 6 lectures of ethics
included. We may just want to push for letting Chuck have the class and
let it happen without telling anyone, but perhaps some truth in
advertising ...

What do you think?=20

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
=A0=20

Page 206 of 394


C3 CS 12/14/04
ugradcomm] 404 Discussion
MarkClementclement@cs.byu.edu
Tue, 25 Feb 2003 14:00:49 -0700
• Previous message: ugradcomm] Ugrad Meeting Today at 4
• Next message: ugradcomm] No ugrad Meeting Monday
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Here are a few of my notes from the 404 discussion today.

Encourage Feedback during class


Grade writing carefully
Structured curriculum is important
Ask students to give 60 second review in front of class
How can you use your CS degree to serve the church?
Have faculty members give lectures, not industry
This is just like 391R which failed miserably
Nuke the class, it will always be a waste of time. Kelly and Mike had a
similar class in EE.
Make the class bigger, it is the most important thing we teach in the
department.

Bill was given the assignment to talk to Dan Johnson and other teachers
about their experiences. Bill had the following suggestions:
1) Break the class into small groups to discuss ethical issues. Then
have a representative from each group present their ideas to the class.
This may have failed in the past because it was taught in small
sections. They would feel more motivation to do a good job if they were
presenting in front of a large section.
2) Have the class come up with topics they think are interesting.
3) Teach them the role they should play in building the church and how
computing could impact that. They will all make enough money, what else
should they be focusing on?
4) The class should focus on ethics instead of the history of computing
and other topics.

I think that it was good to bring up the topic so that everyone knows
what we are thinking about. I don t think that there were many people
who were in favor of the class I tried to present.

Chuck, could you start an email discussion about 404? It would be good
to get some additional feedback before you go too far in prepping the
class. Make sure you touch bases with Bill. He has a lot of good ideas
that we need to incorporate into the class. We also ought to talk to
Scott, Mike Jones, Dan Ventura and Bryan. They all had strong opinions
about where the class should go.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 207 of 394


C3 CS 12/14/04
ugradcomm] ABET Stuff
MarkClementclement@cs.byu.edu
Mon, 10 Mar 2003 15:58:49 -0700
• Previous message: ugradcomm] Meeting Today
• Next message: ugradcomm] Suggestions for prereq problem
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

CRITERIA FOR ACCREDITING COMPUTING PROGRAMS


http://www.abet.org/images/Criteria/C1%2003-04%20CAC%20Criteria%2011-7-0
2.pdf

IV-15. The oral communications skills of the student must be developed


and applied in the
program.
IV-16. The written communications skills of the student must be
developed and applied in the
program.
IV-17. There must be sufficient coverage of social and ethical
implications of computing to give
students an understanding of a broad range of issues in this area.

GUIDANCE FOR INTERPRETING THE CRITERIA FOR ACCREDITING COMPUTING


PROGRAMS
http://www.abet.org/images/Criteria/C1A%2003-04%20CAC%20Guidance%2012-10
-01.pdf

9. Oral and written communications skills may be developed in any part


of the curriculum, but should be applied in computer science courses.
[IV-15, IV-16]
10. There should be the equivalent of at least one semester-hour of
coverage of social and ethical implications of computing. [IV-17]

Computing Curricula 2001 Computer Science Final Report (December 15,


2001)http://www.computer.org/education/cc2001/final/cc2001.pdf

Many strategies currently exist for incorporating professional practice


into the curriculum. One of the most common characteristics of these
strategies are courses that help students strengthen their
communication, problem-solving, and technical skills.
These skills may be fostered in computing courses or, alternatively, in
courses outside the computer science department, such as a speech class
in a communication department or a technical writing class in an English
department. Accreditation bodies, however, usually require not only that
students acquirethese skills either through general education
requirements or through courses required specifically for computer
science but also that students applythese skills in their later courses.

The level of coverage assigned to professional practice varies depending


on institutional commitment, departmental resources, and faculty
interest. For example, in 1999, Laurie King (Department of Mathematics
and Computer Science at Holy Cross College) conducted an informal survey
concerning the inclusion of ethics in curricula through the ACM SIGCSE
list. Of the 74 schools that reported back, 40 schools had enough

Page 208 of 394


C3 CS 12/14/04
coverage of ethics that would meet CSAB Criteria 2000 [CSAB2000].
Although many schools clearly did not consider this material to be
essential, it is encouraging that more than half of the schools did.
With the growing emphasis on professionalism in accreditation criteria,
it is likely that other schools will strengthen their commitment to
teaching professional practice.

Professionalism, ethics, and law courses. These courses are one semester
long and expose students to issues of professional practice, ethical
behavior, and computer law.
Topics included may be history of computing, impact of computers on
society, computing careers, legal and ethical responsibilities, and the
computing profession.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 209 of 394


C3 CS 12/14/04
ugradcomm] Suggestions for prereq problem
MarkClementclement@cs.byu.edu
Tue, 11 Mar 2003 08:11:02 -0700
• Previous message: ugradcomm] ABET Stuff
• Next message: ugradcomm] Ugrad Meeting Today
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

We have found a problem with students who retake classes without really
trying the first time. It is unfair for them to have the final grade be
equal to other students who worked to pass it the first time. Retakes
also cause us to teach more sections than we would otherwise have to
teach. It also causes us to lower expectations.

If we enforce the prerequisite that 240 must be taken before 300 or 400
level classes, it seems to eliminate most of the other prerequisite
problems. Few students take 236 without 235, but many take 400 level
classes without 240.

Another suggestion is take 142, 235, 240 and require a minimal grade B-
with only a few retakes.

Mark will come up with spreadsheet that will allow us to answer:


What if we had a min GPA of 3.0 on 142, 235, 240, who would be
eliminated?
What if we had only 2 retakes, who would be eliminated?

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 210 of 394


C3 CS 12/14/04
ugradcomm] Minutes from today's Meeting
MarkClementclement@cs.byu.edu
Mon, 24 Mar 2003 17:55:50 -0700
• Previous message: ugradcomm] Ugrad Meeting today at 4
• Next message: ugradcomm] Minutes from today's Meeting
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

A) CS 404
We talked with Kent Huff about the CS 404 section he will be teaching
during Spring semester. He has really done a lot of work to prepare for
the class. It looks as though he has read 5 or 6 books and several
articles. His suggestions probably were a little more drastic than we
are comfortable with (at least the futuristic ones), but I think that he
will do fine in teaching the class with a little guidance. Chuck is
going to work with him on experimenting with at least part of the class.

We asked him to include:


1) A spiritual basis for making CS ethical choices
2) Some case studies of legal and ethical CS decisions
3) An opportunity for students to respond to ethical problems in the
class

Bottom Line: I think that he would like a lot more guidance than we gave
him. I don t think that we really know what the class should be so we
aren t really in a position to give him more guidance at this time.

B) CS 486
Mike Jones and Eric Mercer talked to us about the model checking class.
I wasn t convinced that it should be moved from the 500 to 400 level.
After listening to them, I think that they really have a vision that
will serve the students. They would like to make the move because they
think that the 500 level designation makes the course seem too
intimidating for undergraduates. They would like to make the course
more accessible so that students will try out the class and use the
methods to verify their code/processors/algorithms in their future
employment. I didn t get a vote from Ken before he had to leave, but
Chuck, Bill and I all were favorably impressed. Unless Ken and Cory
object, I think that we should indicate that the undergraduate committee
approves of the class and send it up for a vote in faculty meeting.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 211 of 394


C3 CS 12/14/04
ugradcomm] Student feedback from my interviews
CharlesKnutsonknutson@cs.byu.edu
Thu, 10 Apr 2003 17:55:14 -0600
• Previous message: ugradcomm] Coding Style/Design Standards
• Next message: ugradcomm] Senior Interview Feedback
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

This is a multi-part message in MIME format.

------=_NextPart_000_0001_01C2FF8A.5733AF90
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Here's my summary of the notes I took during student interviews. I


figured everyone might be interested. I've put it in a Word doc so you
have an archive for the anecdotal evidence file.

Quick summary of some highlights and common themes that emerged:

1) They want *practical* skills that will get them jobs!!


2) They value 345 even when they hate it.
3) TAs seem to be a common problem.
4) Enforce prerequisites!! Includes 240 for 300-level *and* 345 for
400-level. I hadn't realized how many seniors are taking 345 *after*
their 400 classes.
5) Recommended courses to change are basically those we are all over
trying to change :)
6) These students in general do not have jobs waiting for them! Very new
phase of life for this major.

There are other lessons in the notes, but these are high points that
jump out at me.
Chuck

Page 212 of 394


C3 CS 12/14/04
ugradcomm] Minutes from our last meeting
MarkClementclement@cs.byu.edu
Fri, 30 May 2003 11:36:28 -0600
• Previous message: ugradcomm] Undergrad Meeting
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

2) Coding Style http://ncl.cs.byu.edu/ugrad.html


We talked about the new web pages in the undergraduate part of the
department home page. The following changes were suggested

- In the page on working together add


"If you have any questions about the appropriateness of working
together, you should talk to your professor."

"Don t use old exams or homework unless the professor approves


this use."

- In the Coding Style section add

Tutorial with examples of good code and bad code and a quiz that
asks them to grade code.

3) Prereq filters (the most recent proposal was to add 240 to the
fundamentals list and enforce the fundamentals prerequisite)

We voted to change the Fundamentals major to


You must get a 3.0 GPA in 142, 235, 240. Can take 1-200 classes as a
fundamentals student. Only Real CS majors can take 300-400 classes.

Students should know as quickly as possible if they will be accepted


into the major. This way they know after 3 semesters. It is plausible
to add 124 to mix, but we want to keep the number of classes small so
that we can be strict on compliance. Tony suggested adding 124.
Benefits include:
Students will not take 300 or 400 level classes until they are
fairly good programmers (they passed 240).
We wont have to deal with making exceptions to allow students
into the major (we currently have ~20 students/semester who have
completed the fundamentals courses, but don t have a good GPA.
Students will be motivated to not retake as many classes. There
wont be anything else for them to take if they have too many repeats.

Mark will change the MAP and catalog to reflect the changes. We will
then take it to the faculty.

4) New CS142 labs and approach - No action required

5) New objectives for CS252 after 235/236 changes. - Dr Clement will


send the materials from last years retreat to Dan Ventura to see if they
fit into the current 252. Done.

6) Complete a draft of the CS Department objectives


http://ncl.cs.byu.edu/Objectives.pdf. Mark is going to finish a draft

Page 213 of 394


C3 CS 12/14/04
of this for us to work on.

8) New Course Objectives for CS 124 - Please take a look at these. I am


going to be meeting with the ECE faculty to discuss this class so we
ought to have an idea of what we want to get out of the class.

Find out if we can change our science electives without accreditation


trouble.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 214 of 394


C3 CS 12/14/04
ugradcomm] CS 404
MarkClementclement@cs.byu.edu
Wed, 18 Jun 2003 12:48:47 -0600
• Previous message: ugradcomm] New Fundamentals Proposal
• Next message: ugradcomm] CS 404
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

I just talked to Brother Huff about his experience with CS 404 Spring
semester.

He assigned 5 papers of 2-3 pages each on major topics he covered in the


course. He also assigned on current events news item per week that each
student was supposed to post on a web page.

He had them read "Cathedral and the Czar" and the "Future of Ideas" and
thought that both books were good. They read the whole Raymond book and
part of the other one.

He liked the Computers in society book. He had students present


articles from the book. He found that this overlapped the material in
Computer Ethics too much so he only spent 1/2 hour on the computer
ethics book.

He had them read 10 conference talks and thought this went well.

He also assigned 3 chapters from a Business Law book. It talked about


intellectual property and patents. He thought the students really liked
the IP discussions.

He also thought that the Open Source discussions went particularly well.

He also really liked talking about current news events.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 215 of 394


C3 CS 12/14/04
ugradcomm] Ugrad Minutes
MarkClementclementatcs.byu.edu
Tue Jul 29 23:55:45 MDT 2003
• Previous message: FW: ugradcomm] Ugrad Items
• Next message: ugradcomm] RE: abet requirements
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Issues:
Can we keep labs open later at night to create a culture of students
working more and later? Maybe one big lab that is public access.

Set flag to allow reg in 300 and 400 that have 240 as a prereq if
Fundamentals and 240, We don’t give C- or better in 240 unless we want
them in 300 and 400.

Add 240 to fundamentals. Set flag for students who have taken 240 if
they are a major or other major. For all classes that list 240 as a
prereq, the flag has to be set for them to register. It is up to the
professor to enforce other prereqs.

In the future we need to look at specialties again.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 216 of 394


C3 CS 12/14/04
ugradcomm] Prerequisite enforcement (please respond quickly)
MarkClementclementatcs.byu.edu
Mon Aug 25 10:15:56 MDT 2003
• Next message: ugradcomm] FW: slap on the back email
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

(Please review this announcement. I would like to send it to the


faculty in general on Wednesday so we can discuss it at the retreat.)

We have talked at length in the past about problems with students who
are unprepared to take upper division courses. The undergraduate
committee would like to make the following proposal to address these
problems:

1) Enforce the Fundamentals major mechanism. Students who have not


satisfied the requirements of the fundamentals major will not be allowed
to register for upper division courses. This will not be a change in
the requirement, but only in the enforcement. The requirement currently
states that Fundamentals students should only take the fundamentals
courses until they have entered the normal major program.

2) Enforce the CS 240 prerequisite. Enrollment in all courses that


currently have CS 240 as a prerequisite will be limited to students who
have passed CS 240 with a C- or better. Non-majors will also have to
pass CS 240 to be allowed to register for these courses.

Mechanism: When students pass CS 240 with a C- or better, and are not
fundamentals majors, we will have the secretaries set a flag on their
records indicating that they can take upper division courses.
Registration in upper division courses that have CS 240 as a
prerequisite will then be automatically limited to students who have
this flag set.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 217 of 394


C3 CS 12/14/04
ugradcomm] Ugrad Meeting 10:00am Thursday
MarkClementclement@cs.byu.edu
Wed Sep 24 17:58:08 MDT 2003
• Previous message: ugradcomm] RE: undergrad committee assignment
• Next message: ugradcomm] Minutes from our meeting
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

We will be meeting at 10:00am Thursday.

The bulk of the meeting will spent in discussing the Competencies.

Mark

1) Department Objectives - Sean and Kevin will report

10) Required 328 - Chuck

7) Science electives in light of new GE requirements. I am getting a


copy of the new GE requirements.

2) New CS142 labs and approach - Should we standardize on Windows or


Linux. What should the objectives be for the class (does it included
learning Microsoft tools?)

4) New Course Objectives for CS 124, 224, 324

11) 312 adapting? ( I cant remember what we talked about here, but
someone wanted it on the agenda)

3) New objectives for CS252 after 235/236 changes. - Dr Clement will


send the materials from last years retreat to Dan Ventura to see if they
fit into the current 252. Done. I need to check back with him on this.
I checked back with him and he indicated that the current 252 fulfills
all of the requirements.

5) Can we keep labs open later at night to create a culture of students


working more and later? Maybe one big lab that is public access.

6) Honors 142 and 235

8) Prerequisite Enforcement Progress. Done, we need to implement and


evaluate it.

9) Coding Style http://ncl.cs.byu.edu/ugrad.html What do we want in the


undergraduate part of the department home page.

Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 218 of 394


C3 CS 12/14/04
ugradcomm] FW: slap on the back email
CharlesD.Knutsonknutson@cs.byu.edu

Tue Aug 26 17:52:51 MDT 2003

• Previous message: ugradcomm] Prerequisite enforcement (please respond quickly)


• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Just wanted to pass this on. Unsolicited email from a recent M.S.
graduate (not my grad student!). He took 428 from me as a grad student
at my urging. He now works for Microsoft and has been there less than a
month.

Yes, I *do* plan on continuing my quest for 428 to become 328 and be
required. I think it's an unacceptable disservice to any of our
graduates who go off to industry jobs to allow them to leave unprepared
with this material. We'll talk more when Fall kicks in, but I've
revamped 428 entirely and Ken taught from the new course this Summer. I
don't expect to bring this up at the retreat on Friday, but probably one
of the first faculty meetings this Fall (September or October).
Chuck

-----Original Message-----
From: [student]
Sent: Tuesday, August 26, 2003 4:09 PM
To: knutson at cs.byu.edu
Subject: slap on the back email

Dr. K.,

First off - I am absolutely loving my job and the area. Second - I


couldn't sleep another night soundly w/o an important admission - brace
yourself for a "see I told you so" moment. Thus far in my job, CS 428
has been about the most important class I took while at BYU. Having
some foreknowledge and context of different software engineering
principles has been absolutely invaluable. Thanks for urging me to take
it. Anyway, I just thought I'd let you know.

Cheers,
[student]

Page 219 of 394


C3 CS 12/14/04
ugradcomm] Some insight from ACM Code of Ethics
CharlesD.Knutsonknutsonatcs.byu.edu
Tue Oct 7 08:48:43 MDT 2003
• Previous message: ugradcomm] ugrad meeting tomorrow at 10:00am
• Next message: ugradcomm] ugrad meeting at 10
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

If we have time this week I'm going to begin my localized pitch for
requiring CS 328. The following relates to that.

In CS 404 we're reading and discussing the "ACM Code of Ethics and
Professional Conduct". It's not a long document (8 pages), but it
contains the following statements:"An essential aim of computing professionals
is to minimize negativeconsequences of computing systems, including threats to
health andsafety."

"To minimize the possibility of indirectly harming others, computing


professionals must minimize malfunctions by following generally accepted
standards for system design and testing."

"The computing professional must strive to achieve quality and to be


cognizant of the serious negative consequences that may result from poor
quality in a system."

"Ensure that users and those who will be affected by a system have their
needs clearly articulated during the assessment and design of
requirements; later the system must be validated to meet requirements.
Current system users, potential users and other persons whose lives may
be affected by a system must have their needs assessed and incorporated
in the statement of requirements. System validation should ensure
compliance with those requirements."

In reviewing these statements, you will notice that the only place in
our curriculum which prepares our graduates to live these portions of
the ACM Code of Ethics is CS 428. The following are related lectures:
Lectures 3-4: Requirements
Lectures 5-10: Modeling, analysis and design
Lectures 11-12: Verification and Validation, Inspections and
Reviews
Lectures 18-22: Software testing
Lectures 25-26: Design patterns
Lectures 38-39: Safety critical issues

I'm pleased that all of the ethical issues described in this Code of
Ethics are being covered in the current incarnation of CS 404, and all
the Software Engineering elements are well-covered in CS 428. Of course,
the gap is that we require CS 404, but not CS 428.

I believe that all Computer Science graduates from our department should
leave prepared to live these portions of the ACM Code of Ethics,
irrespective of their chosen career path.

Chuck

Page 220 of 394


C3 CS 12/14/04
ugradcomm] Undergrad meeting today 3:00pm
MarkClementclementatcs.byu.edu
Mon Feb 9 08:30:42 MST 2004
• Previous message: ugradcomm] Honors section of CS 404
• Next message: ugradcomm] Fwd: [Fwd: Undergraduate Database]
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

AGENDA:
Kent would like to have us review CS 235 as a committee today. He will
bring materials for us to examine so that we all understand where the
course currently sits. If we have time after we are finished with 235,

Honors Section of 404


Review 404, look into making it a capstone class

Agenda for Feb 23rd:


I invited the alumni to give us suggestions. I will have many written
responses as well as one alumni that will probably be participating
with us over the phone.

Let me know if you have additional items.

Mark

Dr. Mark Clement


Computer Science
Brigham Young University
3370 TMCB
Provo, Utah 84602
(801) 422-7608
clement at cs.byu.edu

Page 221 of 394


C3 CS 12/14/04
ugradcomm] CS 345
Mark Clement clement at cs.byu.edu
Thu Feb 26 15:11:40 MST 2004
• Previous message: ugradcomm] Undergrad meeting next week
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

As an undergraduate committee, we would like to take time to examine


each of the required courses in the department to determine topics
covered, objectives and how the course fits into the overall
curriculum. We will be talking about CS 345 during our faculty meeting
on March 8th at 3:00pm. We would appreciate it if you could attend
this meeting and share your insights and vision for the class. This is
not a very formal process, but we would like to answer the following
questions as a result of our meeting:

1) Are there changes that need to be made to the department objectives


to reflect the way the class is currently taught?
2) Are there new technologies or theoretical concepts that have evolved
to the point that they should be included in this class?
3) Do you think that the prerequisite courses do an adequate job of
preparing students for this class?

As a committee, we have also wondered about industry leading platforms


that we dont give students experience with in our curriculum. I know
that in the past we exposed students to the Microsoft development
platform and operating system during the course. Do you think that the
change to Linux has been beneficial? Do you think that we should
include more Microsoft (or other commercial software) in this or other
classes?

Lots of questions, but we would appreciate your feedback on these and


other topics during this meeting. If you know of other people that
should be involved in this discussion let me know. If you cant attend,
perhaps you could respond to this email with some of your ideas.

Thanks,
Mark

Dr. Mark Clement


Computer Science
Brigham Young University
3370 TMCB
Provo, Utah 84602
(801) 422-7608

Page 222 of 394


C3 CS 12/14/04
ugradcomm] Ugrad Meeting Today at 3
Mark Clement clement at cs.byu.edu
Mon Mar 1 14:29:22 MST 2004
• Next message: ugradcomm] Ugrad Minutes
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

During our undergraduate meeting on Monday, I would like to finish our


discussion of where we see holes in our curriculum. Put some thought
into it between now and then. Current agenda items include:

1) Are there holes in our curriculum


Testing, software engineering, using Microsoft tools, exposure to
multiple operating systems etc

2) How do we help students who are immature and flunk out of 235.
There seems to be a mismatch between students leaving 142 and
expectations for 235. Some of them give up and take the class again,
when with a little encouragement they could pass.
a) They dont know how to use object oriented or other good development
techniques
b) They need encouragement
c) Have TAs talk about labs and good design
d) Student mentors
e) Interview everyone each year

3) Senior interviews - Could each of you send me an hour between March


29-April 2 when you could meet with graduating seniors. I will have
the secretaries set up a schedule for us.

4) Enforce 240 as a prerequisite to upper division courses


I talked to Lynn and she thinks we can do it. We would flag every
student who has taken CS 240 and not let them register for upper
division classes unless they had passed 240.

5) Review CS 345 (March 8th Meeting)

Thanks,
Mark

Page 223 of 394


C3 CS 12/14/04
ugradcomm] Ugrad Meeting today at 3
Mark Clement clement at cs.byu.edu
Mon Mar 8 14:38:28 MST 2004
• Previous message: ugradcomm] [Fwd: Re: FYI]
• Next message: ugradcomm] Undergrad Agenda Items
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Just a reminder, we will be discussing CS 345 today at 3pm

As an undergraduate committee, we would like to take time to examine


each of the required courses in the department to determine topics
covered, objectives and how the course fits into the overall
curriculum. We will be talking about CS 345 during our faculty meeting
on March 8th at 3:00pm. We would appreciate it if you could attend
this meeting and share your insights and vision for the class. This is
not a very formal process, but we would like to answer the following
questions as a result of our meeting:

1) Are there changes that need to be made to the department objectives


to reflect the way the class is currently taught?
2) Are there new technologies or theoretical concepts that have evolved
to the point that they should be included in this class?
3) Do you think that the prerequisite courses do an adequate job of
preparing students for this class?

As a committee, we have also wondered about industry leading platforms


that we dont give students experience with in our curriculum. I know
that in the past we exposed students to the Microsoft development
platform and operating system during the course. Do you think that the
change to Linux has been beneficial? Do you think that we should
include more Microsoft (or other commercial software) in this or other
classes?

Lots of questions, but we would appreciate your feedback on these and


other topics during this meeting. If you know of other people that
should be involved in this discussion let me know. If you cant attend,
perhaps you could respond to this email with some of your ideas.

Current Objectives:

CS345 Objectives and Topics

This document is not a syllabus. Instead, for ALL offerings of this


course, this document states the expected objectives and topics for the
course and the approximate number of 50-minute lectures to be devoted
to each topic. Faculty members teaching this course should adhere to
these objectives and topics. Students taking this course can expect to
achieve the objectives and cover the topics specified, and faculty
members teaching follow-on courses can expect students to have been
appropriately exposed to the prerequisite material as stated.

Page 224 of 394


C3 CS 12/14/04
Objectives

Students should:

1. Learn basic principles and components of an Operating System.


2. Learn and be familiar with the notion of processes.
3. Understand CPU scheduling, deadlock detection and deadlock avoidance.
4. Understand how memory management is handled in an operating system.
5. Understand how file systems are implemented.
6. Learn about concurrent programming.
7. Program various operating system components, such as drivers,
schedulers, interprocess communication components, file systems and
distributed synchronization.

Topics

Introduction, what is an Operating System (1 lecture)


Batch, time-sharing, personal-computer systems
Parallel Systems
Distributed Systems
Real-Time Systems

Operating-System Structures (2 lectures)


System Components
Operating System Services
System Calls
Virtual Machines

Processes (3 lectures)
The process concept
Process scheduling
Operations on processes
Cooperating processes
Threads
Interprocess communication

CPU Scheduling (2 lectures)


Scheduling criteria
Scheduling algorithms
Multiple-processor scheduling
Real-time scheduling
Algorithm evaluation

Process Synchronization (3 lectures)


The critical-section problem
Synchronization hardware
Semaphores
Classical problems of synchronization
Critical regions
Monitors
Atomic transactions

Deadlock (3 lectures)
Deadlock characterization
Deadlock prevention

Page 225 of 394


C3 CS 12/14/04
Deadlock avoidance
Deadlock detection
Recovery from a deadlock

Memory Management (2 lectures)


Logical vs. Physical Address Space
Swapping
Paging
Segmentation

Virtual Memory (3 lectures)


Demand paging
Page replacement algorithms
Thrashing

File-System Interface (2 lectures)


File concept
Access methods
Directory and file-system structure
Protection
Consistency semantics
Free-space management

I/O Systems (3 lectures)


I/O hardware
Application I/O interface
Kernel I/O subsystem
Transforming I/O requests to hardware operations

Secondary Storage Structure (3 lectures)


Disk Structure, scheduling, and management
Swap-space management
Disk reliability

Distributed Systems Structures (3 lectures)


Network topology
Network types
Communication
Networking examples
Network operating systems
Distributed operating systems

Distributed File Systems (3 lectures)


Naming and transparency
Remote file access
Stateful vs. stateless service
File replication

Distributed Coordination (3 lectures)


Event ordering
Mutual exclusion
Concurrency control
Deadlock handling
Election algorithms
Reaching agreement

Protection (2 lectures)

Page 226 of 394


C3 CS 12/14/04
Domain of protection
Access matrix
Language-based protection

Security (2 lectures)
The security problem
Authentication
System threats and threat monitoring
Encryption

Case studies (2 lectures)


The UNIX System
The Linux System
Windows NT
Historical perspective

Here are the


Dr. Mark Clement
Computer Science
Brigham Young University
3370 TMCB
Provo, Utah 84602
(801) 422-7608
clement at cs.byu.edu

Page 227 of 394


C3 CS 12/14/04
ugradcomm] Entrepreneur Class
Mark Clement clement at cs.byu.edu
Thu Jul 8 16:32:01 MDT 2004
• Previous message: ugradcomm] Undergrad Conclusions
• Next message: ugradcomm] Undergraduate Meeting July 29th 2pm
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Tony wants to just get an up or down vote on offering the business


class for a couple of years as an experiment to see how it works. It
would count as a 400 level elective. We will be voting on it in our
faculty meeting on July 14.

It seems as though most of our discussion in the undergrad committee


was fairly positive towards this class, but we really wanted more
structure in the 400 level for future classes.

If I am mistaken, let me know.

I talked to him about reviewing all of the options and discussing the
pros and cons of each (offering the course with different numbers, not
giving 400 level credit for it, offering it in another department etc),
but he thought that would probably be a tarball that would be hard to
extract ourselves from during a faculty meeting.

I think that I agree with him, and think that we should come up with a
well thought out proposal for 400 level structure before we discuss it
in faculty meeting. In the mean time, this would just be a test case
to give us some more data. I would like to survey the students with
questions like "would you have taken this class if you didnt receive
400 level credit?" and others to get more information as the class
progresses if it is approved.

Mark

Page 228 of 394


C3 CS 12/14/04
ugradcomm] Undergrad Committee Goals
Dan Olsen olsen at cs.byu.edu
Fri Sep 17 08:45:43 MDT 2004
• Previous message: ugradcomm] Ugrad meeting today at 4
• Next message: ugradcomm] Undergrad Committee Goals
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Having listened to yesterday's discussion I see the following goals that we


should pursue.

1) Training software developers.


a. Charge the ad hoc committee to develop a specific syllabus for CS 340
that addresses single programmer design, debugging and testing
skills. The syllabus should include
1. course goals (including differences from 240)
2. topics to be covered
3. Assignment types and evaluation strategies to ensure that
the goals have been achieved.
After this is done we can consider how it will be placed in the
curriculum (required of all, optional, emphasis only, etc)
b. Software Engineering Emphasis
1. Charge the ad hoc committee with preparing a WRITTEN document
that clearly spells out the perceived inadequacies of our current
curriculum with respect to training software developers.
2. In light of that document develop proposals for an appropriate
curriculum response.
c. Develop a capstone course(s) with the following attributes.
1. Mentoring relationship between faculty and students. (we must
publicize this)
2. Clear goals for the course(s) that all specific instances must address
3. Faculty would see teaching the course as a boon to their personal
efforts rather than a drain.
4. Students and employers will be excited about the results. (High profile,
competitive, high excitement)
5. Optional (there is nothing more draining than dragging unwilling,
uninspired,
unprepared students through a required mentoring experience)
2) Broadening the core
a. Looking at how CS340 would fit. (When and if it is designed)
b. Developing CS360 - Programming the Internet. Principles and experience in
programming applications that must span networks including security,
protocols, web-based applications, web servers, media services and other
stuff I didn't think of. There should be heavy programming and this should
be in parallel with CS345 as a requirement.
c. Developing CS3?? - Information Analysis. Principles and programming of
algorithms and techniques for answering questions from large amounts of
data. This would include applied statistics, machine learning, numerical
methods.
This would be an alternative core course for those who are not pursuing
software development as their career goal.

3) Computational Biology (Stepping beyond software as a degree target)


a. Look at the current Bioinformatics major as well as other

Page 229 of 394


C3 CS 12/14/04
computing/biomed degrees
around the country. Document summarizing what they require.
b. Look at where such graduates might go with such a degree and what they
will need.
c. Develop a curriculum that
1. clearly prepares the students for our chosen targets
2. does not increase the department teaching load
3. is really cool and exciting.
4) Look beyond software development
a. What other potential partnerships exist? How do we develop them?
b. How might we include some of them in our elective pool.
What restructuring of that elective pool is required if we do include them?

That is an agenda that can keep us busy for at least one year. We have
members of the committee that are clearly interested in each of these and
can take the lead in making them happen. I propose that at the next meeting
we discuss who will lead each of these and what we expect them to deliver
by what date. That will certainly get things going.

Dan R. Olsen Jr. - Brigham Young University - Computer Science

Page 230 of 394


C3 CS 12/14/04
ugradcomm] No ugrad meeting today
Mark Clement clement at cs.byu.edu
Thu Nov 18 11:45:16 MST 2004
• Previous message: ugradcomm] Ugrad Meeting today at 4 in the library
• Next message: ugradcomm] CS 401R Software business class
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

I will be out of town, I guess we wont meet next week either so our
next meeting will be Dec 2.
The agenda will be
1) Guidelines for emphases (we are scheduled in a faculty meeting in
January to talk about this again)
2) CS 360 - We need to get the other players involved in course outline
and approving 360 as an alternate to 345. Dan Z could you contact
Quinn Snell, Phil Windley and Paul Roper so we can come up with a
proposal that represents consensus.

One more assignment:


We need to make a report to the faculty about how 401R Entrepreneur is
working out. I get the feeling that the overall faculty response is
souring. We could probably wait until after student evaluations are
back.

Dan, have you contacted the secretaries to warn students about the
prerequisites?

Thanks,
Mark

Page 231 of 394


C3 CS 12/14/04
ugradcomm] CS 401R Software business class
Dan Olsen olsen at cs.byu.edu
Thu Nov 18 13:24:06 MST 2004
• Previous message: ugradcomm] No ugrad meeting today
• Next message: ugradcomm] CS 401R Software business class
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Having thought about this, I would like to recommend the following.

1) Look at the student evaluations for the Fall course


2) I have talked with Dale about upgrading the content and expectations
of the course. Let's look at what he comes up with for Winter.
3) Not schedule the course in Fall of 2005.
4) Do a complete review of the course during the summer of 2005
to see if after 2 tries it is meeting our goals, both undergrad
and grad
5) If we decide to keep the class, submit it with a real catalog number
and real prerequisites for Winter 2006.

Dan R. Olsen Jr. - Brigham Young University - Computer Science

Page 232 of 394


C3 CS 12/14/04
ugradcomm] Undergrad Committee Meeting Thursday at 4pm
Mark Clement clement at cs.byu.edu
Wed Dec 1 08:28:43 MST 2004
• Next message: ugradcomm] Undergrad Committee Meeting Thursday at 4pm
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Since this is our last committee meeting for the year, we need to
finish some things up for January.

1) The most pressing is to finalize the emphases framework. We have


time in the January faculty meeting and will only have a couple of
other meetings before then. At the very least, we ought to look at the
revised bioinformatics emphasis (keep 324) to see if we feel good about
it. I havent seen a lot of enthusiasm for making any other 300 level
course optional (besides 330, but that is another story).

2) I havent seen any announcements encouraging students to take the


prerequisites for 401R entrepreneur. Although we are going to evaluate
the class after this semester, we still ought to warn students that
they will need the prerequisites if the class is offered next fall. If
the class isnt offered, the business class will still be good for them
if they are really interested in business.

3) CS 360 has a lot of support among faculty members I have talked to.
We need to follow up on Daniels efforts to get together with Quinn,
Phil, Paul etc to get consensus on what the class will look like so we
can make a formal proposal to the faculty. Since this will be a
required class, we will need a lot more detail than a normal 400 level
class proposal.

Mark

Page 233 of 394


C3 CS 12/14/04
ugradcomm] CS 360 course information
Daniel Zappala zappala at cs.byu.edu
Mon Jan 24 16:22:54 MST 2005
• Previous message: ugradcomm] Contacting Faculty
• Next message: ugradcomm] CS 360 course information
• Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Hi,

I've created a website at:

http://ilab.cs.byu.edu/cs360

that contains the proposed CS 360 course information, including a more detailed
schedule of topics.

Let me know if this looks OK and I will send email to the faculty alias.

Also, if anyone has a quick copy (or pointer to) a CS 345 syllabus, I can add
some information on how much overlap there is.

--
Daniel Zappala

Page 234 of 394


C3 CS 12/14/04
Undergraduate Curriculum Committee Meeting Minutes
11.07.05

Action Items:
• Everyone: Come up with 3 or 4 options for the program that we can present to the faculty.

Items for future discussion:


• The big picture
• CS 340
• Dealing with complaints about Stat 321
• Software Engineering Emphasis
• Capstone

1) Theory courses 252 and 312


a) Is it essential for our students to learn this much theory in the core?
b) Is taking these courses necessary for all of our students or only those who are going on to get
graduate degrees?
c) 312 may not necessarily be a theory class. It may be just as related to software engineering
as it is to theory.
2) What belongs in the core?
a) The core has a tendency to get too big. We don’t want to require every course. We want to
give the students some flexibility.
b) If we do include more courses in the core, however, we will be able to force the students to
have more breadth.
c) Is it best to give the students more freedom to choose the areas they want to go into, or do we
want to ensure that they get the breadth of education that they need? Maybe it is more
important to give them depth than breadth?
3) Stat 321
a) We want the statistics class to be more tuned to the needs of our students particularly. We
could create a Stat class for CS students that we team teach with the Statistics faculty.
4) CS 224
a) It is generally acknowledged that CS 224 needs to be eliminated.
b) However, eliminating 224 from the core does not give us any new resources. The only way
we would gain resources from getting rid of this course is if the ECE faculty were willing to
drop those sections to take on a few of our 345 sections.
c) During Scott Woodfield’s analysis of the program, he noted that we could reduce the number
of sections taught in 400 level courses because enrollment in many of those classes is low.
This would free up some resources.
5) Adding 340
a) If we taught 7 sections of 340, the faculty wouldn’t notices a dramatic difference in demand.
The only change would be a higher enrollment in their existing classes.
b) 3 ways we can add 340:
i) Bite the bullet

Page 235 of 394


C3 CS 12/14/04
ii) Get rid of some classes
iii) Rearrange number of classes offered.
c) We could possibly have an option where a student gets to choose core classes from a pool.
6) Should 345 and 360 fulfill the same requirement?
a) 345 and 360 are similar in that they both treat building an OS. One focuses on building a
desktop OS. The other focuses on building an internet OS. However, this similarity is only
conceptual. The actual course materials differ.
b) Enrollment will probably favor 360. Part of that may be that the students believe it is easier,
though word will probably get around after the first couple of semesters that it isn’t. The
other factor is that students may think it is more relevant to know about Internet
programming than desktop OS.
7) Tracks or Electives option
a) For some students, taking courses 345 and 360 is more beneficial than 312 and 252. Would a
student have to take everything or could they choose according to their future career plans?
Would we do tracks or push these options up into the 400-level elective pool?
b) For each student one option will probably help them out more than another. We don’t want
to restrict them too much.
8) 5/7, 6/7, 7/7 Models
a) Hesitation about giving them more flexibility because there are some topics that are
necessary for a CS graduate to know such as OS.
b) Anyone who wants to go to grad school is going to need to have 252. We could take it out of
the core and put it into an elective pool for those who have that ambition.
c) We could do 6/7 and allow the student the option to take the 7th that they skipped as an
elective.
d) Which two would you pick if you could make 2 core classes elective courses?
i) 252,345
ii) 252,324
iii) 330,345
iv) 330,252
v) 324,345
e) Another way that we could get more credit hours is if we take one credit hour out of 330.
Students say that it should only be a 2 credit hour class.
9) Menu options
a) We should have 3 or 4 different ways that our program could look worked out so that we can
present those to the faculty at faculty meeting.

Page 236 of 394


C3 CS 12/14/04
Undergraduate Curriculum Committee Meeting Minutes
02.01.06

Future agenda items: Classes to adjust/evaluate


Curriculum Guardianship
Paperwork Capstone
Prerequisites Emphases
New courses Early use of tools
Accreditation 404
CS Minor

10) New Undergraduate Curriculum


a) Paperwork is due in October, but we should probably start having discussions with ECE
immediately. Tony will talk with them. Get the paperwork in immediately after we have
discussions with ECE. That way it can gel on the college level for awhile.
b) We should pass this by Dana before we turn in a curriculum change form, but only after
we have gotten support from ECE.
11) Prerequisites
a) We should look at the 236-240 concurrency problem. Do the analysis again for this year.
b) We don’t need to have the suggested schedule for the new program until fall.
c) 124 should be a prerequisite for 240.
d) Debi-take a shot at putting the new curriculum into a prerequisite chart, and then we can
discuss problems/possibilities with prerequisites.
12) New courses
a) 413 (Sean)
b) 479 (Eric R.)
c) 484 (Quinn)
13) Permanent Items
a) Preparing students to be influential technical software developers, and IT renaissance
workers.
14) Accreditation
15) CS minor
16) 301R
a) 301R will be a placeholder like 401R has been. However, this class won’t allow grad
students to take newly introduced courses meant for undergraduates.
17) Adjustment to classes
a) 142, 252, 330, 312
b) Stat 321
c) Who controls the courses? Should there be a course guardian? Who should that guardian
be?
d) We should have a rule that you have to be teaching the course if you are to be the course
guardian.

Page 237 of 394


C3 CS 12/14/04
e) The change of course objectives should always go to the curriculum committee. All
other concerns can be taken to the course guardian. Any appeals should go to the
committee.
f) Course guardians only apply to 100-300-level courses. 400-level course instructors are
responsible for their own course.
g) Do we need a guardian for courses in other departments like Stat 321?
h) There is always the question of who we would pick. Why bless one instructor and not the
other?
i) We will have to encourage collegial feelings amongst those who teach a course and the
course guardian. If we can produce that, the system will most likely work.
18) Course evaluation
a) Irene’s 330 needs to be evaluated. We should probably wait till the end of the semester
to do the evaluation so that we have two semester’s worth of data to look at.
b) 142 needs to be evaluated because students usually use templates and insert their code,
and they don’t ever see how the pieces work together.
c) It would be difficult to take templates out of the curriculum because automatic testing
makes it hard to pass a lab without templates.
19) Changes to the list of agenda items
a) Capstone on the agenda
b) 301R off
c) Emphases on
d) Honors off
20) More additions to the agenda
a) Early use of tools
b) 404—this course needs curriculum with a stamp of approval from the committee so any
professor can teach it more easily. The course is very much dependent on teaching style.
We should ask accreditation team what would happen if we took it out of the curriculum.
c) Minor: We should offer a minor to students who have gone through the first couple of
years of the major but can’t get through 240. This will help them move on to another
major without feeling like they have wasted their time. Also, when enrollments go up,
we can declare many of our sections service courses and use that as a bargaining chip.

Page 238 of 394


C3 CS 12/14/04
Course Assessments

C S 100
Competencies
1) Students should be comfortable with several computer science concepts and computer applications and including:
word processors, spreadsheets, html, javascript, PowerPoint, photoshop, audition, and premier.

2) The students should understand basic computer concepts including architecture, lists, trees, arrays, and
programming control structures.

3) The students should understand basic algorithms for each of the computer science concepts and applications.

Winter 2005
A) Assessment
1) Almost all students who finish the course complete the assignments associated with the computer science
concepts and computer application.

2) The test scores (which measure concept comprehension and understanding of basic algorithms) show that the
students understand about 77% of the material.

B) Suggestions
1) Change the assignments so that they are more meaningful to the students. We intend to use a family history
theme to do this. Changes should be made this fall.

2) Identify those concepts that students have difficulty with and spend more time on those concepts. This is
especially true with algorithms.

CS 142
Competencies
1) Ability to write small (100-200 lines) programs in Java using variables, expressions, class library classes,
selection, iteration, and arrays.

2) Ability to write larger (400-500 lines) programs in Java using control abstraction and data abstraction (methods
and classes). These program will integrate a number of programming concepts including implementing interfaces,
using inheritance, reading and writing text files, and throwing and catching exceptions.

3) Create an environment which the students will become "competent" Java programmers

4) Provide a pleasant/fun/enjoyable introduction to computer science - where the students experience the joy of
programming

5) Provide a foundation sufficient for the further study of computer science

Fall 2003
Assessment
1) I think 142 as it stands does an excellent job of teaching students how to write small programs that don't need
abstraction. No changes are needed to meet this objective.

2) I believe 142 fails to provide students with the ability to use abstraction and write larger programs. As a result
students are not well prepared for the projects they will face in 235. The 142 course should provide a number of
projects that integrate and build upon each other.

Winter 2004

Page 239 of 394


C3 CS 12/14/04
1) Students are "required" to write 15 complete programs - 12 for labs and 3 for exams. This can be done either by
cheating or by becoming a "competent" Java programmer; we hope for the latter

2) I assume that programming is fun and that students derive satifaction from producing working working programs

3) I have familiarized myself with the expectations of CS 142 and CS 235, to see that the expected concepts are
covered in CS 142 and to verify that these are suf

Winter 2005
Assessment
Students tend to do very well or to withdraw unofficially from the course (i.e. "drop out"), with few students in
between.

CS 142 faces a significant challenge: students come to the course with a wide spectrum of preparation, some as
competent programmers, and some with no previous programming experience of any kind. The course is not
designed as a "filter course," so it begins on the assumption of no previous experience. This accommodates the
students with no experience, but may bore the students with significant prior experience, at least preliminarily.
Throughout, the course offers two exposures to the material: 1) the class lectures and 2) the course text, either of
both of which the students can use to learn the material. All students complete 12 laboratory assignments and 3
substantial programming exams. All are open-book, open-notes, etc., but the students may not consult other
"humans" when doing the exams.

The objectives and assessment continue as before.

Spring/Summer 2005
Assessment
1) A higher-than-usual percentage of the students met the objectives successfully

Fall 2005
Assessment
1) The vast majority of the students met the objectives.
2) We had insufficient TA coverage; we are taking specific steps to correct this situation.

CS 235
Competencies
1) Become familiar with the fundamental data types of computing and the major techniques for implementing them
2) Learn basic algorithm analysis

Fall 2003
Assessment
1) The primary measurement of this competency is the programming projects. 65% of my students completed at
least 8 of the 9 programming projects.
2) The primary measurement of this competency is the midterm exam. 67% of my students passed the midterm
exam.

Winter 2004
Assessment
1) I believe the current 235 course gives students a good nderstanding of data structures and the ability to use data
tructures in programming.
2) The current 235 course also gives students significant experience with implementing data structures.
3) The students reported an average of 13 hours spent out of class compared to an average of 8 hours for CS courses
in general suggesting the workload in the course is too high.

Fall 2004
Assessment

Page 240 of 394


C3 CS 12/14/04
Barker
1. The primary measurement of this competency is the programming projects. 76% of my students completed all of
the programming projects.
2. The primary measurement of this competency is the midterm exam. 90% of my students passed the midterm
exam.

Sederberg
1. 80% of the students who completed the course successfully implemented at least five projects, which suggests
that they learned how to implement data structures and sorting algorithms.
2. 80% of the students who completed the course received 75% or higher on their exams.

Winter 2005
Assessment
Sederberg
1) The primary measurement of this competency is the programming projects. 160 of 225 students (71%) completed
all 7 projects.

2) The primary measurement of this competency is the midterm exam. 185 of 225 students (82%) passed the
midterm exam (scored 70% or better). The average score on the midterm exam was 78%.

Barker
1. The course covers all of the fundamental data types in detail, with illustration and exercises both in class and as
homework assignment to support the learning.

2. The students implemented several projects of variable size, that both implemented some of the data structures
discussed in class or using libraries containing these. The projects covered lists, maps, recursion, trees, sorting,
hashing, etc.

3. There were two exams, a midterm and a final, which allows the students to test their knowledge of the concepts
learned in class. Much emphasis was placed on algorithm analysis, which I believe they understood for the most
part. Recursion, always a tricky subject, was used over and over in small class exercises, in the exams and in the
projects. Overall, I am satisfied that competency was achieved by those who were serious with the class and put in
the required effort.

4. I think I could have spent a bit more time in class discussing the projects, although I felt the TAs did fine with
that. But this might help some of the students and bring out questions early on.

5. 28 out of 77 (who completed the course) got 100% on the programming assignments. An additional 25 had
between 92% and 99%. So, overall 53/77 had over 90%, which clearly shows competency in programming the
concepts.

6. Over the full course, 34 of the 77 received an A or an A- for the class.

Fall 2005
Assessment:
1. The course covers all of the fundamental data types in detail, with illustration and exercises both in class and as
homework assignment to support the learning.

2. The students implemented several projects of variable size, that both implemented some of the data structures
discussed in class or using libraries containing these. The projects covered lists, maps, recursion, trees, sorting,
hashing, etc.

3. There were two exams, a midterm and a final, which allows the students to test their knowledge of the concepts
learned in class. Much emphasis was placed on algorithm analysis, which I believe they understood for the most
part. Recursion, always a tricky subject, was used over and over in small class exercises, in the exams and in the

Page 241 of 394


C3 CS 12/14/04
projects. Overall, I am satisfied that competency was achieved by those who were serious with the class and put in
the required effort.

4. I think I could have spent a bit more time in class discussing the projects, although I felt the TAs did fine with
that. But this might help some of the students and bring out questions early on.

5. 28 out of 77 (who completed the course) got 100% on the programming assignments. An additional 25 had
between 92% and 99%. So, overall 53/77 had over 90%, which clearly shows competency in programming the
concepts.

Over the full course, 34 of the 77 received an A or an A- for the class.

CS 236
A) Competencies
1) Ability to use Simple Grammars and Parsing, Graphs, Trees and Relations (Relational Algebra) in programming.
2) Understanding of propositional Logic and Predicate Logic
3) Ability to write Proofs

Fall 2003
B) Assessment
1) I believe the programming projects in the current 236 course provide students with the ability to use these
important structures in programming.
2) I feel students have ample opportunity to practice working with logic and gain sufficient competency in this
important area.
3) Students do not learn how to write proofs in 236. My experience in the current version of the course is that we do
not have enough time to spend working on proofs. I believe we should find more time to give to this important
competency in 236.

Winter 2005
B) Assessment
1) The interesting demographic of this class is a bi-modal grade distribution. Either students get A's or B's or they
get D's and E's. The latter is caused almost exclusively by students who do not finish the assignments and drop out.
Thus, an inability to construct and test larger programs seems to be the determining factor.
2) Based on project and testing results, those who do finish projects seem to do well in the all of the competency
areas except proofs. They typically receive about a mid 80's on their tests.
3) Though the students seem to "get it", they appear to just be going through the motions with respect to proofs and
logic.

C) Suggestions
1) Make the project specifications clearer.
2) Rewrite the homeworks so that they are more applicable to the material. Many students don't see how the
homework problems apply to the material.
3) Teach the students to do a better job of software design.
More time in class and TA help is needed here. However, we cannot "give" the students the design.

CS 240
Fall 2003
Competencies
1. Learn to design, implement, test, and debug large programs
2. Learn the C++ programming language

Assessment
1 & 2. The primary measurement of both competencies is passing the class. 70% of my students passed the class.

Page 242 of 394


C3 CS 12/14/04
Winter 2004
Assessment
1 & 2. The primary measurement of both competencies is passing the class.
62% of my students passed the class.

Fall 2004
Assessment
1 & 2. The primary measurement of both competencies is passing the class.
71% of my students passed the class.

Winter 2005
Assessment
1 & 2. The primary measurement of both competencies is passing the class.
69% of my students passed the class.

Fall 2005
Assessment
1. 69% of the students completed a project design for the first and second projects.
2. 68% of the students who started the class completed the first programming project. 58% of the students
completed the second programming project.

CS 252
A) Competencies
1) Understand what is computable
2) Understand complexity issues of computable functions

Fall 2003
B) Assessment)
1) They learned the classes of functions computed by Finite Automata, Push Down Automata, and Turing Machines.
We did not cover Parsing and we need to coordinate with other CS courses which do parsing to see what is needed.
2) They learned about the infinite set of function not computable by Turing Machines.
3) They learned basic complexity classes and the classes P and NP
4) They learned about reducibility and NP-completeness. Next time I will teach reducibility in a different order so
that it will be more intuitive.

Spring 2004
(1) Understand DFAs, NFAs, and regular languages.
Student scores on exam questions in these areas averaged around 85% correct. This indicates that the students
understood these concepts well enough. It would be helpful to have some practical examples for when it is
necessary to convert from an NFA to a DFA, or from a regular language to a DFA. Olsen has some examples of this
that I will try and introduce next year.

(2) Understand PDAs and context free languages.


Student scores on exam questions in these areas averaged around 85% correct. This indicates that the students
understood these concepts well enough. It would be helpful to have some practical examples for when it is
necessary to convert between a regular language to a PDA. I will try and use some of the examples that Dave
Embley has suggested.

(3) Understand the limitations of PDAs and NFAs.


Students did very poorly on questions involving the pumping lemma (less than 50% correct). I have some ideas
about teaching this by writing out long "non-pumpable" strings on the white board and using these to do a case-by-
case study of how all possible string parsings can't be pumpted. I also want to write out long "pumpable" strings and
show how various parsings can be pumpted.

Page 243 of 394


C3 CS 12/14/04
(4) Understand complexity.
Students did acceptably well on this topic on exams --- between 70 and 90% correct. I will try and use some
anecdotes from faculty members (e.g., Mike Jones) to motivate the relevance of this material.

(5) Understand computability.


About half of the students really got this material. This is partly because it is just really hard to get, and partly
because I didn't motivate it as

Winter 2005
B) Assessment - How successful was the class as a whole at achieving each of those competencies? Are there things
could be changed to make the class better next semester.

(NOTE: Assessments are based on performance on the final exam.)

(1) Most (>90%) students mastered DFAs and NFAs, and most mastered regular languages. 80-90% mastered how
to use the pumping lemma to show that a given language is not regular.

(2) Most (>90%) students mastered PDAs, and most mastered context free languages. 75-85% mastered how to use
the pumping lemma to show that a given language is not context free.

(3) 80-90% of the students mastered Turing Machine design. 80-90% mastered the difference between decidable,
recognizable, and unrecognizable languages. Only 50-60% mastered the reduction technique. To address this, I'm
going to take an "example first" approach to teaching reduction next year rather than a "theroy first" approach like I
did this year. I also plan on condensing the time I spend on automata theory to leave more time for computability
topics.

(4) 80-90% mastered the definition of time complexity. We don't discuss techniques for determining time
complexity because this is done in CS312.

Spring 2005
Assessment
1) Most of the algorithms covered in class were implemented as project assignments, which enhanced the students'
understanding of the concepts covered in the algorithms. Overall, close to 80% of the students completed all their
project assignments and received full score.

2) The automata theory and applications were well-covered, whereas some theoretical topics, such as P/NP and
complexity theory, were not,which will be emphasized heavily in the future.

Fall 2005
Assessment
1) The primary measurement of this competency is the first exam.
In section 3, 11 of 13 students (85%) passed (70% or better).

2) The primary measurement of this competency is the final exam.


In section 3, 9 of 13 students (69%) passed (70% or better).

3) The primary measurement of this competency is the second exam.


In section 3, 11 of 13 students (85%) passed (70% or better).

CS 312
Competencies
1) Be fluent in some basic analysis tools, including asymptotic notation, elementary probability theory, and
difference equations.

Page 244 of 394


C3 CS 12/14/04
2) Understand, implement, and compare/contrast the performance of different algorithmic solutions (from all the
major paradigms discussed in class) on a specific problem.

Fall 2003
Assessment
1) Although there were significant growing pains, and some students became openly angry about having to do
"math" in a CS class, by the end of the course most of the class appeared to have developed a level of fluency with
all of these concepts. Many students became very enthusiastic about the rigor of the material and felt that they were
really learning new things, but they requested more written homework to develop their skills next time.

2) We used travelling salesperson as a test-problem to compare solutions from all algorithmic paradigms discussed
in class. Most students verified the obvious points, and I was a little dissappointed that more students didn't delve
deeper than they did. The reason appears to be that the class was taking too much outside time. I was very
impressed with some projects, though, that clearly reflected significant creativity and mastery of the core material. I
think allowing them to code in Java or C created too much focus on language-specific issues in thier outside-of-class
time, but perhaps working through those is an important part of the experience. I would prefer if those issues were
handled in a different class, and this one focused on algorithmics and design abstractions--the students really felt
pressed for time.

Winter 2004
Assessment
We did six projects and six exams. The first project, crossing the desert, was a difficult greedy algorithm that
pushed the students to design and implement an efficient and non-obvious greedy algorithm. The other projects
seemed pretty straightfoward. The students wrote 1 paragraph answers to "burning questions" that attempted to
highlight important theoretical or emperical performance questions. I wasn't real thrilled with the burning questions
and their answers.

I think a return to "implement the textbook algorihtm, then think of a way to make it faster/smaller, then implement
your extension and show that it does or does not improve performance" papers will be better for the students. This
will require more grading but significantly improve achievement of the objectives.

Linear programming made a brief appearance at the end of the class. Now I get what Sean Warnick has been saying
all this time. They are a great topic to end the course with because they bring the class full circle back to greedy
algorithms in a different problem formulation. I'd like to see linear programming be elevated to the sixth paradigm
in 312.

The Brassard/Brately treatment of reccurance relations didn't thrill me. I didn't enjoy the derrivation of the Master
Theorem and don't think its particularly useful. Instead, I liked the tree method of the Cormen, Leiserson, Rivest
book better. The tree method is more visual and intuitive, can be used to derrive the master theorem and easier for
students to remember long term.

The purpose of the six exams was to assess learning independent of other students or study groups. It give a nice
spread to grades in the class. I would do it again.

Students continue to struggle with the fact that proving membership in NP is neccesary for proving NP
completeness.

Fall 2004
Assessment
1. I changed my presentation of difference equations and like the results. The "vector space" nature of solutions
made sense to many students, as shown by their exam scores.
2. The classes TSP projects were much better than last year. The direct comparison of many approaches to the
same problem was important for many students.
3. Moving randomized algorithms between divide and conquer and dynamic programming was a good move.
Will do it again.
4. Linear programming still needs more work. An extra lecture would help.
Page 245 of 394
C3 CS 12/14/04
Winter 2005
Assessment
1) Students completed labs and performed well on tests. They seemed to really grasp the different algorithmic
strategies. They also seemed to be able to identify when and how to apply the different strategies.
2) Tests showed students to know these core algorithms.
3) The introduction of Visual Studio nullified all the empirical analysis the existed in previous iterations of the
course. This stems from running in the .NET.

CS 330
Competencies
1) Learn how to program in a functional paradigm.
2) Understand general programming language concepts, including functions, variables, parameter passing,
conditionals and control structures, and types.
3) Learn how to use induction.
4) Be able to perform program translation, and read and write an interpreter.

Winter 2004
Assessment
1) Student still have a hard time seeing how the material is useful to their career, inspite of many and varied attempts
I made to explain how.
2) Students could use more Scheme exercises, especially related to mapping across a list.

Fall 2005
Assessment
Overall, I believe the students achieved the objectives this semester as well, on average, as they have in past
semesters, and their grades on the corresponding assignments bear this out. The average course grade was an
85.4%. However, in some respects, I don't think the assignments are adequate measures of success. My anecdotal
reasons for thinking this are the following:

For the second time, a group of students that did their final project presentation on Prolog reported incorrectly that it
used "pass-by-value" as its main parameter passing mechanism. These students could successfully do interpreter-
oriented homework assignments and answer exam questions that distinguished different parameter passing
mechanisms, but weren't able to correctly apply their knowledge in understanding other languages.

I have had at least 2 students work as RAs in my lab who had taken 330 in our department. I needed them to write
code in Lisp (a language closely related to Scheme). In both cases, the students felt inadequately prepared to write
Lisp code, and demonstrated a poor grasp of functional-style programming, including the use of higher-order
functions. They also showed a strong tendency to use C/Java style loops rather than recursion.

I'm currently working with a student who took 330 this Fall on an ORCA-based project to translate a particular
representation into MySQL queries.

CS 345
A) Competencies
1) Implement virtual memory simulator
2) Implement FAT file system

Fall 2003
Assessment
1) The labs instructions seem to be helping students complete the labs in less time. The course workload is still too
high.
2) I find that other textbooks (Tannenbaum or Sibershatz) fill in gaps in the Stallings textbook. I recommend that
we consider switching textbooks.

Page 246 of 394


C3 CS 12/14/04
CS 404
Competencies
1. To write about and discuss matters that will impact each student's future professional life as well as society as a
whole.
2. To broaden each student's perspective of their professional potential in Computer Science.
3. To analyze, write about and discuss issues and ethical problems of computing professions.
4. To help each person develop and justify a personal professional code
of ethics.

Fall 2003
Assessment
We measured these in the following ways (numbers correlate):
1. We held in-class discussions, students did verbal position statements in front of the class, and students submitted
written insights in
a variety of forms.
2. A variety of readings provided discussion fodder, and related to their professional preparation. Also the instructor
shared relevant insight, tying the material to the future careers of the students.
3. Students delivered Daily Insight papers on their readings, plus a couple other papers exploring the ethical and
social issues being discussed.
4. Individuals were encouraged to consider their own personal professional code of ethics, but were not required to
deliver anything specific.

Suggestions
1. The discussions in class were very involved and animated. The verbal position statements seemed to give good
experience to the students, and varied a bit in quality. Written insights were generally quite good and I was pretty
pleased with the result. Students generally started weak, and them improved after
2. Selected readings were hit and miss. The best ones were retained for the following semester, and the weaker ones
were swapped out for presumably better readings.
3. The intent of the writing was to reinforce the skills obtained in English 316. I think it did this fairly successfully.
We figured that some of the assignments were too long, especially the final paper, and so we shortened them to a
perceived optimal length.
4. We didn't do anything specific to force them to consider a personal code of ethics, other than some discussion in
lecture. I'm still not sure whether I think we should do something there or simply drop the objective.

CS 431
A) Competencies
1. Write a compiler.

2. Write a large program that uses interesting data types and algorithms.

3. Learn how techniques and tools used in compiler construction can be applied to other problems.

4. Remove the mystery about how code is actually built and executed.

Fall 2005
Assessment
1. The primary measure of the competencies are the programming projects. 6 of 7 students (86%) completed at least
9 of the 10 projects.

2. A secondary measure of the competencies are the exams. 6 of 7 students (86%) passed (70% or better) both
exams.

CS 450
Competentcies
Page 247 of 394
C3 CS 12/14/04
Mathematical foundation and working understanding of Digital Signal and Image Processing algorithms and tools.
Emphasize implementation in lab assignments with clear demonstration of digital filters, filter design and transform
processing.

Fall 2003
I think I enjoyed the class more than ever before. Good Spirit. Good Choir. Mathematically challenging for at least
half of the students ... but a spoonful of sugar makes the medicine go down. Class survival rate is improving.

CS 452
Competencies:
(1) Become familiar with the terminology and fundamental concepts of relational databases and database
management systems.
(2)Obtain a feel for and be able to analyze secondary storage characteristics.
(3) Be able to design and develop database applications.
(4) Learn about some of the current challenges facing database professionals (e.g., XML, XQuery, information
extraction, data integration, family-history technology).

Fall 2003
Assessment:
Objective (1): 100%
Objective (2): 100% of those completing project 2 (~85%)
Objective (3): 100% of those completing projects 3-5 (~95%)
Objective (4): 100% of those who continued attending to the end (~80%)

Winter 2004
1) My CS 452 students should feel comfortable in using any relational databases and write any application
programs accessing internet databases using PHP and Oracle DBMS.

2) They are familiar with the fundamental design issues in database management system.

Summer 2004
1) This (summer) term my CS 452 students are required to learn another widely used relational database system,
i.e., MySQL, in additonal to Oracle. They should know the differences between the SQL languages implemented by
the two database systems, which should further enhance their understanding on different versions of SQL in the
market.

2) Whenever the next edition of the textbook being used by our class becomes available (probably in early 2005), I
will cover two new topics: data mining and information retrieval on unstructured data. As a side effect, I would
drop two of the (less important) topics from my course lectures, which are the nested relational model and O2
database model.

Fall 2004
Assessment:
Objective (1): 100%
Objective (2): 100% of those successfully completing the homework on these topics (~80%) and projects 1 and 4
(~85%)
Objective (3): 100% of those completing project 2 (~75%)
Objective (4): 100% of those successfully completing the homework on these topics (~70%) and project 3 (~90%)
Objective (5): 100% of those who completed project 4 (~85%) continued attending to the end (~80%)

CS 460
Competencies
1) Students can implement a layered network architecture as a large programming project.
Page 248 of 394
C3 CS 12/14/04
2) The ability to describe their work effectively orally and in writing.

Winter 2004
Assessment
1) 75% of the students completed the TCP/IP protocol stack
2) The writing is improving. I only had trouble with around 15% of the written reports.

Fall 2004
Assessment
1) 85% of the students completed the TCP/IP protocol stack
2) The writing is improving. I only had trouble with around 5% of the written reports.

This was an exceptional course. The really didnt complain about any of the work and seemed to be better prepared
than prior classes.

Winter 2005
Assessment
1) 90% of the students completed the TCP/IP protocol stack. They were able to bolt their own web server onto the
top of the stack and then have normal web browsers access their files. I think this was really satisfying for the
students. I think this was an exceptional class. They seemed to be better than the norm.

2) They are still really poor at writing. I tried to give them more examples, but they still need a lot of editorial help.
We should look into a way of having them take their work to the writing center before they submit it.

Winter 2006
Assessment
1) Average score on the two midterms and exams: 84%, 78%, 73%. This includes one student who did not attempt
any exams, and three more who did not attempt the final.

2) Average scores on the six programs were 79%, 68%, 78%, 70%, 76%, and 77%. This includes 6 students who
did not attempt all or most of the programs.

3) The course included material on research in the areas of peer-to-peer networking, multicast routing, and mobile
wireless networks. The scores on the exams indicate that the students understood this material.

4) The written exams were generally of good quality. Several programming assignments required written reports,
with students showing competency to excellence in their writing skills.

Comments
Some students are not able to grasp the concepts in the peer-to-peer assignment (primarily Program #2) and the TCP
implementation (Program #4). The peer-to-peer assignments will be revamped and will build off the material in CS
360. The TCP assignments will be re-ordered so that students are able to simulate and understand TCP first, then
implement their own version.

CS 465
CS 465
A) Competencies
1) Implement RSA encryption
2) Understand and be able to explain common software security vulnerabilities (buffer overflow, race conditions)

Fall 2003
Assessment
1) Spend less time on the underlying theory of cryptography and introduce practical guidelines for implementing
secure systems.

Page 249 of 394


C3 CS 12/14/04
2) Students need more hands-on experience using cryptographic primitives to better understand hashing,
conventional encryption, public key encryption, and digital signatures. Some students are still not able to explain
how these primitives work together in secure email or TLS to achieve security properties such as confidentiality and
integrity.

CS 470
Competencies:
(1) Students understand and can use the two parts of decision theory: probability theory and utility theory.
(2) Students understand and can use well-known algorithms for finding solutions.
(3) Students are exposed to the basics of game theory.

Fall 2004
Assessment:
(1) Two labs were designed for probability theory. Based on lab scores, roughly 90% of the students in the class
were able to complete a lab on Bayesian reasoning and Kalman filtering. Exam questions were written for utility
theory. Exam scores show that roughly 75% of the students understood the basics of utility theory.
(2) A search lab and a potential fields lab were designed to test this. Lab scores show that roughly 95% of the
students were able to code these algorithms. Exam scores show that roughly 85% of the students understand the
theoretical underpinnings of these algorithms.
(3) Exam scores show that roughly 60% of the students understood the basics of game theory.

CS 478
Competencies
1. We will study and implement several machine learning models including neural networks, decision trees, rule-
based systems, instance-based learning, Bayesian learning, and genetic algorithms.

2. You will gain the knowledge and skills necessary to compare, contrast and adequately apply machine learning
techniques to attribute-based tasks.

Fall 2004
Assessment
1. The students implemented 5 learning algorithms in a kind of uniform ML manager system. They also wrote two
reports comparing performances and discussing the algorithms. They all did very well on that part, with the average
being 833 pts out of 871 possible. Many went beyond the call of duty and earned extra credit.

2. The reports demonstrate their ability to compare and contrast in terms of performance. They also had two exams,
1 midterm closed book no time limit and 1 final open book 3hrs. They were surprised by the style of the exams and
their length. Overall and given my expectations, most of them did fine and I am satisfied that competency was
achieved for the majority of them. The averages are low, which is what bothered them but the results are fine as per
my expectation. I should probably state more clearly to them what my exams are like and that "bad" grades are
actually not bad given the high expectations, so they are better prepared for their raw grades.

Winter 2005
Assessment
1. The students implemented 5 learning algorithms in a kind of uniform ML manager system, each accompanied by
a short report of main findings. They all did rather well on that part despite the shortness of time over Summer,
with the average being 486 pts out of 600 possible.

2. The students also wrote a report comparing performances among and discussing the algorithms. The reports
demonstrate their ability to compare and contrast in terms of performance. They also had two exams, 1 midterm
and 1 final. Overall and given my expectations, most of them did fine and I am satisfied that competency was
achieved for the majority of them. (11 out of 25 who completed the class got an A or A-).

This was the first time we taught CS 478 over a term. This did not cause problems in terms of materials to cover,
but was rather challenging for the students. I did not change the programming assignments, simply removed
Page 250 of 394
C3 CS 12/14/04
one intermediate report whose value was questionable anyway. I thought the class went well and can be taught
successfully over a term, so long as students are well aware that it will be time consuming.

CS 486
Fall 2004
Competencies
1) Ability to describe and implement the algorithms and data structures used in symbolic model checking.
2) Ability to describe the steps and implement the algorithms used for on-the-fly automata model checking starting
from a first order representation of the system and a property automata.
3) Ability to read and understand theoretical descriptions of systems and algorithms and then transform those
descriptions into real implementations.

Fall 2004
B) Assessment
1) The average score on the final symbolic model checker lab was 86.1%. The primary obstacle in completing the 4
projects involved with this competency was the binary decision diagram (BDD) package where some students ran
out of time. The average score for BDD lab was 75%. The midterm average covering the entire notion of symbolic
model checking including BDDs was 86%.

2) The average score on the final symbolic model checker lab was 64% because 2 people did not complete the lab
due to poor time management (i.e., they did not start until the last day). Excluding those scores, the average
becomes 80%. The average on the final that tested the complete notion of on-the-fly model checking was 76%. The
principle obstacle was a lack of homework problems that help students connect the several steps involved in on-the-
fly model checking.

3) Not sure how to assess this yet; but students did comment that they were able to better read the text as the
semester progressed. They were not, however, able to always see an implementation even after they understand the
theoretical foundation.

General observation from student comments:

* The students lost sight of the big picture in the theoretical details; they were not sure where they were going as we
covered various parts of the model checking problem. The all agreed that it would help to better tie what they do in
the labs to solving real verification problems aside from the trivial mutex examples.

* The students really wanted more practice writing temporal logic properties for real systems.

* Better homework! We need homework that lets students better practice and prepare for the labs.

Winter 2005
Assessment:
The new change to Bogor has brought significant depth to the out-of- class programming exercises, and it has
introduced a level of software engineering that is extremely beneficial to the students. The labs, however, need to be
better suited to an undergraduate, and the labs need to include room for a graduate student to explore. The mix of
undergraduate and graduate student in the class did cause tension at times.

The exams need to be better written to help distinguish students. Time management and early start are important.

Page 251 of 394


C3 CS 12/14/04
Cory Barker
Associate Teaching Professor of Computer Science
Professional Faculty
Not Tenured
Brigham Young University

Academic History
2001-present Associate Teaching Professor Computer Science Department
Brigham Young University
1994-2001 Assistant Professor Computer Science Department
Brigham Young University

Education
1989-1994 Ph.D. in Computer Science Brigham Young University
1980-1982 B.S. in Computer Science Brigham Young University

Relevant Employment
1990-1992 Software Engineer Nichols Research
1987-1989 Software Engineer Microcosm
1985-1986 Software/Hardware Engineer Tektronix
1983-1985 Software Engineer Logicon

Principle Publications
Jargalsaihan, B. and Barker, J.C. “A Comparison of Eclectic Learning and Stagger.”
Proceedings of the International Joint Conference on Neural Networks, Washington,
D.C., July 1999.
Barker, J.C. and Martinez, T.R. “Generalization by Controlled Expansion of Examples.”
Proceedings of the Seventh International Symposium on Artificial Intelligence,
Monterrey, Mexico, October 1994.
Barker, J.C. and Martinez, T.R. “Efficient Construction of Networks for Learned
Representations with General to Specific Relationships.” Proceedings of the Third
Golden West International Conference on Intelligent Systems, Las Vegas, Nevada, June
1994.
Barker, J.C. and Martinez, T. R. “Proof of Correctness for ASOCS AA3 Networks.”
IEEE Transactions on Systems, Man, and Cybernetics, Vol. 24, No 3, Mar. 1994.
Barker, J.C. and Martinez, T.R. “Generalization by Controlled Intersection of Examples.”
Proceedings of the Sixth Australian Joint Conference on Artificial Intelligence,
Melbourne, Australia, November 1993.
Barker, J.C. and Martinez, T.R. “Learning and Generalization Controlled by
Contradiction.” Proceedings of the International Conference on Artificial Neural
Networks, Amsterdam, Netherlands, September 1993.
Barker, J.C. and Martinez, T. R. “GS: A Network that Learns Important Features.”
Proceedings of the World Congress on Neural Networks, Portland, Oregon, July 1993.

Page 252 of 394


C3 CS 12/14/04
Martinez, T.R., Barker, J.C., and Giraud-Carrier, C. “A Generalizing Adaptive Discriminate
Network.” Proceedings of the World Congress on Neural Networks, Portland, Oregon, July
1993.

Courses Taught 2005-2006


Winter 2005- C S 235 sections 001-004
Fall 2005- C S 252 section 003
CS 431 section 001
Winter 2006- CS 235 sections 001-003
C S 252 section 003
Summer 2006 C S 236 section 001
C S 431 section 001
Fall 2006 C S 235 sections 003-004
C S 240 section 001

Other Duties

Member of the Teaching Committee


Serve as the Assistant Undergraduate Coordinator

Page 253 of 394


C3 CS 12/14/04
Robert P. Burton
Professor of Computer Science
Professorial
Tenured
Brigham Young University

Academic History
1982-present Professor of Computer Science Brigham Young University
1977-1982 Associate Professor of Computer Science Brigham Young University
1974-1977 Assistant Professor of Computer Science Brigham Young University

Education
1969 HBA-Bachelor of Arts and Physics University of Utah
1973 Ph.D. in Computer Science University of Utah

Professional Development
McGraw Hill Workshop

Related Experience
1992-present Subject Matter Expert Various
1985-1988 Software Development Ford Motor Company
1987 Course Development and Instruction UNISYS
1983-1993, 2004 Course Development and Instruction IBM Corporation
1973-1974 Experimental Systems Engineering Bell Laboratories

Principle Publications
Laboratory Manual for use with Java Program Design, Robert P. Burton and Lara Burton,
McGraw-Hill High Education, Copyright © 2004 by the McGraw-Hill Companies, Inc., ISBN 0-
07-294865-5.

Scholarly Activities
(2004) IBM Joint Study: Extension of Star Coordinates to 3 Dimensions

Courses Taught 2005-2006

Every Fall and Winter:


• CS 142 sections 001-005
• CS 455

Every Spring:
• CS 142 section 001

Other Duties

Page 254 of 394


C3 CS 12/14/04
Member, Computer Science Department Advancement in Rank and Continuing Employment
Committee
Chair, Computer Science Department Faculty Awards
Chair, College Advancement in Rank and Continuing Employment Committee

Advisement

2 M.S. Students

Scholarly Research and Time Division

10%, devoted to hyperdimensional graphics research

Page 255 of 394


C3 CS 12/14/04
William Barrett
Professor of Computer Science
Tenured
Brigham Young University

Academic History
1993-present Professor of Computer Science Brigham Young University
1986-1993 Associate Professor of Computer Science Brigham Young University
1978-1981 Postdoctoral Fellow National Institutes of Health

Education
1978 Ph.D in Medical Biophysics and Computing University of Utah
1974 B.A. in Mathematics University of Utah

Computer Science Background

Took several courses in computer science while pursuing doctoral degree.

Professional Development

- Reviewer for leading conferences and journals


- Founded, chaired, and supervised Family History Technology workshop since 2000

Relevant Employment

1982-1986 Director of Medical Image Processing HealthCare Affiliates


1982-1985 Senior Engineer ADAC Laboratories

Consulting

-Consult for Adobe, Inc.

Principle Publications
Luke A. D. Hutchison and W. Barrett: “Fourier–Mellin registration of line-delineated tabular
document images,” Volume 8, Numbers 2-3, International Journal on Document Analysis and
Recognition, pp. 87 - 110. (2)

H. Nielson and W. Barrett: “Consensus-based table form recognition of low-quality historical


documents,” Volume 8, Numbers 2-3, International Journal on Document Analysis and
Recognition, pp. 183 – 200. (2)

W. A. Barrett and A.S. Cheney: “Object-Based Image Editing,” ACM Transactions on


Graphics, July, 2002, Vol. 21, Number 3, (Proceedings of ACM SIGGRAPH 2002), pp. 777-
784,. (1)

Page 256 of 394


C3 CS 12/14/04
Eric N. Mortensen and William A. Barrett: "Interactive Segmentation with Intelligent
Scissors,” Graphical Models and Image Processing, 60, pp. 349-384, September, 1998. (1)
William A. Barrett and Eric N. Mortensen: "Interactive live-wire boundary extraction,”
Medical Image Analysis, Volume 1, number 4, pp. 331-341, September, 1997. (Invited Paper)
(1)

John M. Boone, J. Antony Seibert, William A. Barrett, and Eric Blood: "Analysis and
Correction of Imperfections in the Image Intensifier-TV-Digitizer Imaging Chain,” Journal of
Medical Physics, Vol. 18, No. 2, pp. 236-242, March/April, 1991. (1)

Shawn C. Becker, William A. Barrett, and Dan R. Olsen Jr.: "Interactive Measurement of 3D
Objects Using a Depth Buffer and Linear Probes," ACM Transactions on Graphics, Vol. 10, No.
2, pp. 200-207, April 1991. (1)

Elizabeth Cluff, Robert P. Burton, and William A. Barrett: "A Survey and Characterization of
Multidimensional Presentation Techniques,” Journal of Imaging Technology, Vol. 17, Number
4, pp. 142-153, August/September, 1991. (3)

Sidney M. Petersen, William A. Barrett, and Robert P. Burton: "A System for Automated
Interpolation and Visualization of Height Grids from Contour Images,” Journal of Imaging
Technology, Vol. 17, No. 4, pp. 195-200, August/September, 1991. (3)

Alan E. Richardson, Robert P. Burton, and William A. Barrett: "SCULPTBOX -


A Volumetric Environment for Interactive Design of Three-Dimensional Objects,” Journal of
Imaging Technology, Vol. 17, No. 4, pp. 188-194, August/September, 1991. (3)

Jerome A. Broekhuijsen, Robert P. Burton, and William A. Barrett: "Interactive Editing of 3-D
Volumetric Objects,” Journal of Imaging Technology, Vol. 17, Number 6, pp. 269-273,
December, 1991. (3)

Sai P. Raya, Jayaram K. Udupa, and William A. Barrett: "A PC-Based 3D Imaging
System: Algorithms, Software, and Hardware Considerations." Journal of Computerized
Medical Imaging and Graphics, Vol. 14, Number 5, pp. 353-370, March, 1990. (2)

J.F. Cornhill, William A. Barrett, Ed E. Herderick, R.W. Mahley, and D.L. Fry:
"Topographic Study of Sudanophilic Lesions in Cholesterol Fed Minipigs by Image
Analysis," Journal of Arteriosclerosis, Vol. 5, No. 5, pp. 415-426, 1985. (1)

William A. Barrett, P.D. Clayton, and H.R. Warner: "Determination of Left Ventricular
Contours: A Probabilistic Algorithm Derived from Angiographic Images," Computers and
Biomedical Research, 13, pp. 522-548, 1980. (1)

William A. Barrett, P.D. Clayton, C.R. Lambson, and A.H. Morris: "Computerized
Roentgenographic Determination of Total Lung Capacity," American Review of Respiratory
Disease, 113, pp. 239-244, 1976. (1)

Page 257 of 394


C3 CS 12/14/04
Conference Publications
Published
Douglas J. Kennard and William A. Barrett, “Separating Lines of Text in Free-Form
Handwritten Historical Documents,” IEEE Proceedings, 2nd International Conference on
Document Image Analysis for Libraries (DIAL 2006), pp. 12-23, Lyon, France, April, 2006. (2)

Elisa H. Barney Smith, Henry Baird, William Barrett, Frank Le Bourgeois, Xiaofan Lin,
George Nagy, and Steve Simske, “DIAL 2004 Working Group Report on Acquisition Quality
Control,” IEEE Proceedings, 2nd International Conference on Document Image Analysis for
Libraries (DIAL 2006), pp. 373-376, Lyon, France, April, 2006. (2)

W. A. Barrett, L. Hutchison, D. Quass, H. Nielson, and D. Kennard, “Digital Mountain: From


Granite Archive to Global Access,” IEEE Proceedings, International Workshop on Document
Image Analysis for Libraries (DIAL 2004), pp. 104-121, Palo Alto, CA, January, 2004. (1-2)

L. Hutchison and W. A. Barrett, “Fast Registration of Tabular Document Images Using


Fourier-Mellin Transform,” IEEE Proceedings, International Workshop on Document Image
Analysis for Libraries (DIAL 2004), pp. 253-269, Palo Alto, CA, January, 2004. (1-2)

D. J. Kennard and W. A. Barrett, “Just-In-Time Browsing for Digitized Microfilm and Other
Similar Image Collections, 7th International Conference on Document Analysis and Recognition
(ICDAR), pp. 233-237, Edinburgh, Scotland, August, 2003. (1)

H. Nielson and W. A. Barrett, “Consensus-Based Table Form Recognition, 7th International


Conference on Document Analysis and Recognition (ICDAR), pp. 906-910, Edinburgh, Scotland,
August, 2003. (1)

E. N. Mortensen, W. Yan, and W. A. Barrett, "Edge Modeling for Analysis and Manipulation of
Object Boundaries," in Proc. of Vision Interface (VI '03), pp. 243-250, Halifax, Canada, June
2003.(2)

L. J. Reese , E. N. Mortensen,, and W. A. Barrett, "Image Editing with Intelligent Paint,"


Eurographics, Vol. 21, No. 3, p. 714-724, 2002. (2)

W. A. Barrett, L. J. Reese, and E. N. Mortensen: “Intelligent Segmentation Tools,” IEEE


International Symposium on Biomedical Imaging, pp. 217-220, July, 2002. (2)
W. A. Barrett and K.D. Petersen: “Houghing the Hough: Peak Collection for Detection of
Corners, Junctions and Line Intersections,” Computer Vision and Pattern Recognition 2001, Vol.
2, p. 302-309, December, 2001. (1)

K. Duffin and W. A. Barrett: “Fast Focal Length Solution in Partial Panoramic Image
Stitching,” Computer Vision and Pattern Recognition 2001, Vol. 2, P. 690-695, December, 2001.
(1)
E.N. Mortenson, W.A. Barrett “A Confidence Measure for Boundary Detection and Object
Selection,” Computer Vision and Pattern Recognition 2001, Vol. 1, P. 477-484, December,
2001. (1)

Page 258 of 394


C3 CS 12/14/04
D. J. Kennard and W.A. Barrett: “Just-In-Time Browsing for Digital Images,” Accepted for
publication in IEEE Data Compression Conference (DCC 2001), Snowbird, Utah, March 2001.
(2)

E. N. Mortensen, L. J. Reese, and W. A. Barrett, "Intelligent Selection Tools," in Proc. IEEE:


Computer Vision and Pattern Recognition (CVPR '00), Vol. II, pp. 776-777, Hilton Head, SC,
June 2000. (1)

E. Sokolowsky, P.K. Egbert, K.L. Duffin, and W.A. Barrett: “Image Origami,” Proceedings of
the Fifth International Conference on Virtual Sytstems and Multimedia, pp. 14-23, Dundee,
Scotland, September 1, 1999. (2)

Eric Mortensen and William Barrett: “Toboggan-Based Intelligent Scissors with a Four-
Parameter Edge Model,” IEEECVPR99 Proceedings, pp. 452-458, June, 1999. (1)

William Barrett and Rex Barzee: “Posting Paper on the Web,” Proceedings Vision Interface ‘98,
pp. 381-388. (2)

Kirk Duffin and William Barrett: “Globally Optimal Image Mosaics,” Proceedings Graphics
Interface '98, pp. 217-222. (1+)

David Tam, William Barrett, Bryan Morse and Eric Mortensen: “Breakpoint Skeletal
Representation and Compression of Document Images,” IEEE Data Compression Conference
(DCC ‘98), pp. 75, Snowbird, Utah, March 1998. (2)

William Barrett and Eric Mortensen: “Fast, Accurate, and Reproducible Live-Wire Boundary
Extraction,”Visualization in Biomedical Computing ‘96, pp. 183-192, Hamburg, Germany,
September 1996. (1)

Gene Ware, Steve Houston, Doug Chabries, Mary Miller, Karl Taube, Bealriz de la Fuente,
William Barrett and Kirk Duffin: “Infrared Imaging, Photography, and Computer Composition
of Precolombian Murals at Bonampak Mexico: an Interdisciplinary Perspective on Ancient Art,”
Utah Academy of Sciences, Arts, & Letters, April 1996. (3)

Eric Mortensen and William Barrett: “Intelligent Scissor for Image Composition,”Computer
Graphics (SIGGRAPH ‘95 Proceedings), pp. 191-198, (Los Angeles, CA, August 6-11, 1995).
(1)

David Taylor and William Barrett: “Image Segmentation using Globally Optimal Growth in
Three Dimensions with an Adaptive Feature Set,” Visualization in Biomedical Computing ‘94,
Mayo Clinic, October, 1994. SPIE Vol. 2359 pp. 98-107. (1)

William Barrett, Eric Mortensen and Eric Bess: “Interpolation by Directed Distance
Morphing,” Visualization in Biomedical Computing ‘94, Mayo Clinic, October, 1994. SPIE Vol.
2359, pp. 110-121. (1)

Page 259 of 394


C3 CS 12/14/04
Kirk Duffin and William Barrett: “Spiders: A New User Interface for Intuitive Rotation and
Visualization of N-dimensional Point Sets,” IEEE Proceedings of Visualization ‘94, October,
1994, pp. 205-211. (2)

William Barrett and Eric Bess: “A New Approach for Grayscale Interslice Image
Interpolation”, AAAI (American Association of Artificial Intelligence) - Stanford Spring ’94
Symposium on “Applications of Computer Vision to Medical Image Processing,” pp. 80-83,
March, 1994. (2)

David C. Taylor and William A. Barrett: “An Algorithm for Continuous Resolution
Polygonalization of a Discrete Surface,” Graphics Interface ‘94, pp. 33-42, 1994. (1+)

David C. Taylor and William A. Barrett: “Flyby over Banff,” Graphics Interface ‘94,
Electronic Theatre - header piece and show piece. (1+)

William Barrett, Eric Mortensen, and David Taylor: “An Image Space Algorithm for
Morphological Contour Interpolation,” Graphics Interface ‘94, pp. 16-24, 1994. (1+)

Russell Stringham and William A. Barrett: "Shape-Based Interpolation of Grayscale Serial Slice
Images", SPIE Vol. 1898, Medical Imaging VII 1993: Image Processing, pp. 105-115, Newport
Beach, February, 1993. (1.5)

Eric Mortensen and William A. Barrett: "Morphological Interpolation Between Contours", SPIE
Vol. 1898, Medical Imaging VII 1993: Image Processing, pp. 501-510, Newport Beach,
February, 1993. (1.5)

Winston L. Williams and William A. Barrett: "Optical Flow Interpolation of Serial Slice
Images", SPIE Vol. 1898, Medical Imaging VII 1993: Image Processing, pp. 93-104, Newport
Beach, February, 1993. (1.5)

Kevin Christiansen and William Barrett: “An Improved Method for Color Quantization,”
IEEE Data Compression Conference (DCC ‘93), Presented at Snowbird, Utah, March, 1993. (2)

Russell Stringham, William Barrett, and David Taylor: “Probabilistic Segmentation Using Edge
Detection and Region Growing,”Visualization in Biomedical Computing ‘92, pp. 40-51, Chapel
Hill, North Carolina, October, 1992. (1)

J.K. Udupa, S. Samarasekera, W.A. Barrett: “Boundary Detection Via Dynamic


Programming,” Visualization in Biomedical Computing ‘92, pp. 33-39, Chapel Hill, North
Carolina, October, 1992. (1)

Eric Mortensen, Bryan Morse, and William Barrett: “Adaptive Boundary Detection Using ‘Live-
Wire’ Two-Dimensional Dynamic Programming,” IEEE Computers in Cardiology, pp. 635-638,
Durham, North Carolina, October, 1992. (2)

Page 260 of 394


C3 CS 12/14/04
Shawn C. Becker and William A. Barrett: "Interactive Morphometrics from Three-
Dimensional Surface Images." IEEE Proceedings of The First Conference on Visualization in
Biomedical Computing, pp. 418-425, May, 1990. (1)

Jayaram K. Udupa and William A. Barrett: "A PC-Based 3D Imaging System for Biomedical
Data." IEEE Proceedings of The First Conference on Visualization in Biomedical Computing,
pp. 295-303, May, 1990. (1)

Kelly L. Anderson and William A. Barrett: "Context Specification for Text Recognition in
Forms." SPIE Advances in Intelligent Systems: High-Speed Inspection Architectures,
Barcoding, and Character Recognition, Boston, November 6-10, 1990. (3)

Sidney M. Petersen, William A. Barrett, and Robert P. Burton: "A New Morphological
Algorithm for Automated Interpolation of Height Grids from Contour Images." SPIE
Stereoscopic Displays and Applications, Volume 1256, pp. 62-72, February, 1990. (3)

Alan E. Richardson, Robert P. Burton, and William A. Barrett: "SCULPTBOX -


A Volumetric Environment for Interactive Design of Three-Dimensional Objects."
SPIE Stereoscopic Displays and Applications, Volume 1256, pp. 198-209, February, 1990. (3)

Tim Heaton, Shawn Becker, Kelly Anderson, and William Barrett: "Fast Automated Object
Detection Using Signature Parsing." SPIE Intelligent Robots and Computer Vision VIII:
Algorithms and Techniques, Volume 1192, pp. 33-42, November, 1989. (2.5)

William A. Barrett and Bryan S. Morse: "A Relaxation Algorithm for Segmentation of the
Endocardial Surface from Cine CT." IEEE Proceedings of Computers in Cardiology, pp. 95-98,
Jerusalem, September, 1989. (2)

Shawn C. Becker and William A. Barrett: "Interactive Measurement of Three-Dimensional


Cardiac Morphology." IEEE Proceedings of Computers in Cardiology, pp. 429-432, Jerusalem,
September, 1989. (2)

Jerome A. Broekhuijsen, Shawn C. Becker, and William A. Barrett: "Probabilistic


Segmentation of Myocardial Tissue by Deterministic Relaxation." IEEE Proceedings of
Computers in Cardiology, pp. 99-102, Jerusalem, September, 1989. (2)

William A. Barrett, Sai P. Raya, and Jayaram K. Udupa: "A Low-Cost PC-Based Image
Workstation for Dynamic Interactive Display of Three-Dimensional Anatomy", SPIE
Proceedings of Medical Imaging III: Image Capture and Display, Vol. 1091, pp. 346-355, 1989.
(2)

William A. Barrett: "Interactive Measurement and Display of Three- and Four- Dimensional
Anatomy", SPIE Proceedings of Biostereometrics '88, Volume 1030, pp. 155-162, Basel,
Switzerland, 1988. (2)

Page 261 of 394


C3 CS 12/14/04
Scott R. Cannon, Steven J. Allan, and William A. Barrett: "A Parallel-Processing Subsystem for
Rapid 3-D Interpolation of CT Images, IEEE Proceedings of Computers in Cardiology, pp. 75-
78, Bethesda, MD., 1988. (2)

William A. Barrett and Jayaram K. Udupa: "Dynamic Display and Quantitative Analysis of
Three-Dimensional Left Ventricular Pathology", IEEE Proceedings of Computers in
Cardiology, pp. 7-12, Bethesda, MD., 1988.

William A. Barrett and H. Eisenberg: "Dynamic Three- and Four-Dimensional Display of


Skeletal and Cardiac Anatomy", Invited Paper, NCGA, pp. 35-44, Philadelphia, March, 1987.
(2)

William A. Barrett: "High Speed Interactive 3D Display of Contracting Cardiac and Rotating
Skeletal Anatomy", Invited Paper, IEEE Proceedings of Engineering in Medicine and Biology,
pp 1944-5, Fort Worth, Texas, 1986. (2)

William A. Barrett: "Dynamic Three-Dimensional Shaded Surface Display of the Rotating,


Beating Left Ventricle, Atrium, and Aorta from Cine CT, "IEEE Proceedings of Computers in
Cardiology, (4 pages), Boston, MA, October, 1986. (2)

William A. Barrett: "Automated Determination of Geometric and Videodensitometric Percent


Stenosis from DSA Images," Presented at the Radiological Society of North America, Scientific
Sessions, 1985. (1)

William A. Barrett and John M. Boone: "The Effect of Beam Hardening and Scatter on
Videodensitometric Determination of Percent Stenosis," IEEE Proceedings of Computers in
Cardiology, (6 pages), Linkoping,Sweden, 1985. (2)

William A. Barrett, H. Eisenberg, B.A. Arnold, J.M. Boone, R.M. Malcolm and P. Scheibe:
"Quantitative Cardiovascular Measurements from Digital Subtraction Angiography," RSNA
Scientific Exhibits, Washington, D.C., 1984. (2)

William A. Barrett, J.S. Seibert, H. Hines, and P. Scheibe: "Automated Detection of Coronary
Arteries and Quantitation of Percent Stenosis from DSA Images: A Comparison of Geometric
and Videodensitometric Techniques," IEEE Proceedings of Computers in Cardiology, pp. 123-
126, Park City, UT, September, 1984. (2)

Ben Arnold, Harvey Eisenberg, and William Barrett: "Dynamic Digital Subtraction and
Quantitative Cardiac Angiography," RSNA Scientific Exhibit, Honorable Mention Award,
Chicago, IL, November, 1983. (1)

William Barrett, H. Hines, P. Scheibe, B.A. Arnold, and H. Eisenberg: "Digital Angiographic
Determination of Relative Blood Flow from a Single Injection," IEEE Proc. of Computers in
Cardiology, pp. 335-338, Aachen, Germany, October, 1983. (2)

Ben Arnold, Harvey Eisenberg, William Barrett, and P. Scheibe: "Applications of Digital

Page 262 of 394


C3 CS 12/14/04
Subtraction Radiography," Presented at the International Symposium of Electronic Imaging in
Medicine, San Antonio, TX, March, 1983. (2)

Ben Arnold, Harvey Eisenberg, William Barrett, and P. Scheibe: "Digital Video
Radiography: A Technical Overview of Clinical Applications," presented at the 68th
Scientific Sessions of the RSNA, November, 1982. (1)

William A. Barrett, H. Eisenberg, B. Arnold, and P. Scheibe: "High-Speed Processing of


Digital Intravenous Angiocardiographic Images for Enhancement of Coronary Bypass Grafts and
Quantitation of Left Ventricular Function," IEEE Proceedings of Computers in Cardiology, pp.
101-104, Seattle, WA, October, 1982. (2)

Ben Arnold, Harvey Eisenberg, William Barrett, and P. Scheibe: "Digital Video Radiography:
Applications in IVP and GI Examinations," SPIE Medicine X, New Orleans, LA, May, 1982. (2)

William A. Barrett: "An Iterative Algorithm for Multiple Threshold Detection," IEEE Proc. On
Pattern Recognition and Image Processing, pp. 273-278, Dallas, TX, 1981. (1)

Harvey Eisenberg, Ben Arnold, Paul Scheibe, and William Barrett: "Intravenous Angiography in
the Evaluation of Tumor Circulation," Presented at the 67th Scientific Sessions of the RSNA,
November, 1981. (1)

Ben Arnold, Paul Scheibe, Harvey Eisenberg, Dave Borger, and William Barrett: "Noise
Analysis in Digital Video Radiography," Presented at the 67th Scientific Sessions of the RSNA,
November, 1981. (1)

William A. Barrett, J.M. DeLeo, J.F. Cornhill, and D.L. Fry: "A System for Automated
Analysis of Plaque Formation in Experimental Atherosclerosis," Presented at the 53rd
Scientific Sessions of the American Heart Association, November 19, 1980. (1)

Fred Cornhill,William Barrett, and Don Fry: "Quantitative Topography of Experimental


Atherosclerosis," Proceedings of Hemodynamics and the Arterial Wall, Houston, TX,
Novembver, 1980. (1)

William A. Barrett: PhD Dissertation: " A Stochastic Model for Probabilistic Determination of
Left Ventricular Borders," University of Utah. William A. Barrett, P.D. Clayton, and H.R.
Warner: "A System for Evaluation and Refinement of Left Ventricular Border Recognition
Algorithms," IEEE Proceedings of Computers in Cardiology, pp. 251-254, St. Louis, MO,
October, 1976. (2)

Scholarly Activities

Funding
Grant/Proposal Funding Agency Funding Period Amount
Fellowship Eliza R. Snow 2005-2006 $ 10,000

Page 263 of 394


C3 CS 12/14/04
Research Agreement Adobe 9/05 - 9/2006 $ 60,000
Digital Microfilm MEG 2004 - 2005 $ 12,000
Research Agreement Adobe 9/04 - 9/2005 $ 45,000
Relationship Finder Boy Scouts 2004 - 2005 $ 1,900
Research Agreement Adobe 9/03 - 9/2004 $ 60,000
Research Agreement Family History Dept. 2003 - 2004 $ 30,000
Research Agreement Adobe 3/02 - 3/2003 $129,000
Research Agreement Adobe 3/01 - 3/2002 $171,680
Research Agreement Adobe 3/00 - 3/2001 $247,752
Research Agreement Adobe 3/99 - 3/2000 $277,870
State Centers of Excellence State of Utah 7/99 - 7/2000 $110,000
State Centers of Excellence State of Utah 7/98 - 7/99 $100,000
Research Agreement Adobe 3/98 - 3/99 $281,940
Research Agreement Adobe 3/97 - 3/98 $207,000
State Centers of Excellence State of Utah 7/97 - 7/98 $100,000
State Centers of Excellence State of Utah 7/96 - 7/97 $100,000
Software Purchase Adobe - $600,000
Open Research Grant Novell open $ 40,000
Scanning & Enhancement Family History Dept. 1/1/94 - $ 6,000
of Genealogical Microfilm
Document Exploitation, WordPerfect 1/1/94 - 12/31/94 $ 55,000
Collaboration Tools, and
Creation of/Interaction Novell 1/1/94 - 12/31/94 $ 56,000
with 3-D Real World Models
Distributed Multi-media Novell 11/92 - 11/93 $ 56,000
for Visualization
Document Understanding WordPerfect 12/92 - 12/93 $ 77,000
Instructional Multi-Media Bureau of Reclam. 7/92 - 6/93 $ 10,000
Interactive Visualization and IBM 9/90 - 9/93 $ 15,000
Measurement of 3D Anatomy + loaner system
Interactive Measurement of American Heart 7/1/89 - 7/1/90 $ 5,000
3-D Cardiac Morphology Association
Total: $2,864.142

Honors and Awards


2005 Eliza R. Snow Fellowship – Latter-day Saint perspectives in academics
2000 Karl G. Maeser Research and Creative Arts Award
1996-2000 Utah State Center of Excellence Awards
1998 Sigma Xi Lecturer
1997 Outstanding Achievement in Technology Transfer
1990-2002 Research covered by KSL-TV, KBYU, KSL Radio, newspapers
1983 Honorable Mention, RSNA, Scientific Sessions

Scientific and Professional Societies


IEEE (Institute of Electrical and Electronics Engineers)
ACM (Association for Computing Machinery)

Page 264 of 394


C3 CS 12/14/04
Referee for the following Journals/Organizations
SIGGRAPH
Graphical Models and Image Processing
Computer Vision and Image Understanding
ACM Transactions on Graphics
ACM Transactions on Information Systems
ACM Computing Reviews
Computerized Medical Imaging and Graphics
IEEE Transactions on Medical Imaging
IEEE Transactions on Pattern Analysis and Machine Intelligence
IEEE Computer Graphics and Applications
Computers and Biomedical Research
Physics in Medicine and Biology, Journal of Medical Physics
NSF

Courses Taught 2005-2006

Winter 2005: C S 100 sections 001, 002


Fall 2005: C S 100 section 001
C S 450 section 001
Winter 2006: C S 100 section 003
C S 750 section 001

Other Duties

- Chair, Faculty Advisory Council last 2 years (served on last 4 years)


- Chaired Faculty University Awards committee

Academic Advisor

- currently PhD (2), MS (5), Undergrad (2)

Scholarly Research and Time Division

- Research 30% Teaching 30% Administration, Committee Work 15% Prep, other 25%

Page 265 of 394


C3 CS 12/14/04
Mark Clement
Professor of Computer Science
Tenured
Brigham Young University

Education

Ph.D. Computer Science Oregon State University 1994


Dissertation: Analytical Performance Prediction of
Parallel Programs Advisor: Michael J. Quinn
M.S. Electrical Brigham Young University 1989
Engineering
B.S. Electrical Brigham Young University 1985
Engineering

Experience

2000- Associate Professor, Department of Computer Science, Brigham Young


current University
Principle Investigator, Networked Computing Laboratory
1994-2000 Assistant Professor, Department of Computer Science, Brigham Young
University
Research includes Parallel Processing and Networking
1993 Pentium Pro Design Engineer, Intel Corporation
Microarchitecture Division and Supercomputer Systems Division
1990-1991 Principal Software Engineer, Digital Equipment Corporation
Developed multimedia applications and UNIX Kernel drivers for ISDN
1986-1990 Senior Software Engineer, Icon International Inc.
UNIX Kernel Programmer for BSD 4.2, 4.3 and AT\&T V.3.2, V.4
systems. Project leader for Motorola 88010 UNIX software, X.25, SNA,
TCP/IP
1985-1986 Digital Design Engineer, Icon International Inc.
Designed memory subsystem for first generation UNIX system.

Journal Publications

“Taking the First Steps Towards a Standard for Reporting on Phylogenies: Minimal
Information About a Phylogenetic Analysis (MIAPA)”, Jim Leebens-Mack, Todd
Vision, Eric Brenner, John E. Bowers, Steven Cannon, Mark J. Clement, Clifford
W. Cunningham, Claude, dePamphilis, Rob deSalle, Jeff J. Doyle, Jonathan A.
Eisen, Xun Gu, John Harshman, Elizabeth A. Kellogg, Eugene V. Koonin, Hervé
Philippe, J. Chris Pires, Yin-Long Qiu, Seung Y. Rhee, Kimmen Sjölander,
Douglas E. Soltis, Pamela S. Soltis, Peter Stevens, Dennis W. Stevenson, Tandy
Warnow, and Christian Zmasek, OMICS A Journal of Inegrative Biology

Page 266 of 394


C3 CS 12/14/04
"Jumpstarting Phylogenetic Analysis", Jesse Mecham, Mark Clement, Todd Freestone,
Quinn Snell, Kevin Seppi, Keith Crandall, International Journal of Bioinformatics
Research and Applications, 2(1) 2006.

"Application Placement Using Performance Surfaces", André Turgeon, Quinn Snell,


Mark Clement, Cluster Computing Journal, Vol. 4, Issue 3 (July 2001)

Conference Publications

"Phylogenetic Analysis of Large Sequence Data Sets", Hyrum Carroll, Mark Clement,
Quinn Snell, Keith Crandall, Biotechnology and Bioinformatics Symposium, pp 20-
25, Colorado Springs, CO, October 2005.

“Phylograph: Real-time Interactive Visualization of Phylogenetic Searches”, Jesse Mecham,


Mark Clement, Quinn Snell, Keith Crandall, 1st International Conference on Geometric
Modeling, Visualization & Graphics (GMV), pp 1713-1716 , Salt Lake City, UT, .July 2005,

“Jumpstarting Phylogenetic Analysis”, Mark Clement, Quinn Snell, Keith Crandall, Kevin
Seppi, Biotechnology and Bioinformatics Symposium, September 2004, page 17-25.

“A Survivable Multi-agent Approach to Network Routing”, Casey T. Deccio, Mark Clement,


Quinn Snell, International Conference on Communications in Computing, June 2004, page 9-
13.

“Temporal Difference Learning in Network Routing”, Reid Broadbent, Casey T. Deccio, Mark
Clement, International Conference on Communications in Computing, June 2004, page 14-
20.

“A Piecewise Linear Approach to Overbooking”, Feng Huang, Casey Deccio, Robert Ball, Mark
Clement, Quinn Snell, High Performance Switching and Routing, April 2004, p 326-330 .

“Aggressive Telecommunications Overbooking Ratios”, Robert Ball, Mark Clement,


Feng Huang, Quinn Snell, Casey Deccio, IEEE International Performance
Computing and Communications Conference, April 2004, p 31-38.

"Complex Performance Analysis Through Statistical Experimental Design: An


Evaluation of Parameters Associated with Speed in Parallel Phylogenomics", David
G. Whiting, Quinn Snell, Rebecca R. Nichols, Megan L. Porter, Kevin Tew, Keith
A. Crandall, Michael F. Whiting, Mark Clement, Hawaii International Conference
on Computer Science, January 2004, p 615-629.

“TCS: Estimating Gene Genealogies”, M. Clement, Q. Snell, P. Walker, D. Posada and


K.A. Crandall, International Workshop on High Performance Computational
Biology, April 2002.

Page 267 of 394


C3 CS 12/14/04
"Preemption Based Backfill", Quinn Snell, Mark Clement, David Jackson, Job
Scheduling Strategies for Parallel Processing, Editors: Dror G. Feitelson and Larry
Rudolph, Springer Verlag, LNCS, 2002.

“An Enterprise-Based Grid Resource Management System”, Quinn Snell, Kevin Tew,
Joseph Ekstrom, Mark Clement, Proceedings of the Tenth IEEE International
Symposium on High Performance Distributed Computing (HPDC-11), Edinburgh
Scotland, August 2002.

“Effective Bandwidth Route Selection”, Xiaofeng Lu, Mark Clement, Quinn Snell,
Proceedings of the 2001 International Symposium on Performance Evaluation of
Computer and Telecommunication Systems, San Diego, CA, July 2002, pp 132.

“Using Fourier Transform for RED’s Active Queue Management”, Lichen Dai, Peter
Walker, Mark Clement, Quinn Snell, Proceedings of the 2001 International
Symposium on Performance Evaluation of Computer and Telecommunication
Systems, San Diego, CA, July 2002, pp 188.

“Performance of Finite Field Arithmetic in an Elliptic Curve Cryptosystem”, Zhi Li,


John Higgins, Mark Clement, Proceedings of MASCOTS 2001, Cincinnati, Ohio,
August 15-18, 2001

“Core Algorithms of the Maui Scheduler”, David Jackson, Quinn Snell, Mark Clement.
Job Scheduling Strategies for Parallel Processing, Editors Dror G. Feitelson and
Larry Rudolph, Springer Verlag, LNCS Vol. 2221, pages 87-102, June 2001

“Livelock Avoidance for Metaschedulers”, John Jardine, Quinn Snell, Mark Clement.
Proceedings of the Tenth IEEE International Symposium on High Performance
Distributed Computing (HPDC-10), San Francisco, CA, August 2001.

“The YGuard Access Control Model: Set-Based Access Control,” Ty van den Akker,
Quinn O. Snell, and Mark Clement. Proceedings of SACMAT 2001, Chantilly,
Virginia, May 2001.

“Random Early Detection Parameter Tuning,” Peter Walker, LiChen Dai, Mark
Clement, Quinn Snell, Chris Chase. Proceedings of the 2001 International
Symposium on Performance Evaluation of Computer and Telecommunication
Systems, Orlando, Florida, July 2001.

“The Impact of Hardware Characteristics on Firewall Performance,” Bradley J. Baird,


Mark Clement, Charles Knutson, Quinn Snell. Proceedings of the 2001
International Symposium on Performance Evaluation of Computer and
Telecommunication Systems, Orlando, Florida, July 2001.

Page 268 of 394


C3 CS 12/14/04
“Fairness in TCP Networks”, Xiaofeng Lu, Mark Clement, Quinn Snell, Proceedings of
the 2001 International Conference on Internet Computing, Las Vegas, Nevada,
June 2001, page 366-371.

"Effective Bandwidth for Traffic Engineering", Rob Kunz, Seth Nielson, Mark Clement,
Quinn Snell, Proceedings of the IEEE Workshop on High Performance Switching
and Routing (HPSR 2001), Dallas, TX, May 2001.

“Load Balancing in a Parallel Chess Program”, Reid Broadbent, Quinn Snell, Mark
Clement, Proceedings of the 2001 International Conference on Parallel and
Distributed Techniques and Applications, Las Vegas, Nevada, June 2001, page 324-
330.

Grants

Total $2,838,552
Fall 2002 Overbooking for Frame Relay Networks $95,000
AT&T
With Quinn Snell
Winter 2002 Hexapod Phylogeny $1,300,000
NSF
With Michael Whiting, Keith Crandall, Quinn Snell

Technical Presentations

Oct 2005 Conference Presentation BIOT


Phylogenetic Analysis of Large Sequence
Data Sets
Nov 2004 NSF Tree of Life Conference ATOL
Hexapod Phylogeny
Sept 2004 Conference Presentation BIOT
Jumpstarting Phylogenetic Analysis
June 2004 Conference Presentation CIC
Network Survivability
April 2004 Conference Presentation HPSR
Piecewise Linear Overbooking
July 2003 Professional Seminar AT&T

July 2002 Conference Presentation SPECTS


Effective Bandwidth Route Selection
July 2002 Conference Presentation SPECTS
Using Fourier Transform for RED’s Active
Queue Management
April 2001 Professional Seminar AT&T
RED Tuning
Page 269 of 394
C3 CS 12/14/04
December Professional Seminar AT&T
2001 Network Traffic Engineering

Awards and Positions

General Chairman Biotechnology and Bioinformatics October 2006


Symposium
Program Committee Biotechnology and Bioinformatics October 2005
Member Symposium
Program Committee Biotechnology and Bioinformatics September
Member Symposium 2004
Session Chair International Conference on June 2004
Communications in Computing
Editorial Board Phyloinformatics, Journal for Nov 2003-
Taxonomists present
Program Committee Cluster Computing in the Sciences February
Member Conference 2001

Graduate Degrees Supervised

Jeremy Goold M.S. Apr Network Security


2005
Casey Deccio M.S. Aug Network Survivability
2004
Lichen Dai M.S. Aug Frequency Domain RED
2002
Peter Walker M.S. Apr RED Tuning
2002
Xiaofeng Lu M.S. Dec MPLS Network QoS
2001
Rob Kunz M.S Aug Traffic Engineering
2001
David M.S. Apr Supercomputer Scheduling
Jackson 2001

Courses Taught
Winter 2006
Religion C 325 Doctrine and Covenants
Integrative Biology 465 Bioinformatics
Fall 2006
CS 601R Computational Biology
Integrative Biology 365 Computational Biology
Spring 2005
CS 460 Computer Networks
Winter 2005
Page 270 of 394
C3 CS 12/14/04
Religion C 325 Doctrine and Covenants
Integrative Biology 465 Bioinformatics

Other Duties
Undergraduate Advisor
Undergraduate Committee
College Curriculum Committee
College Scholarship Committee

Advisement
I am the undergraduate advisor for most of the students in the department. Cory Barker
works with students when I am not available.

Scholarly or Research Activities


My current research into Computational Biology takes about 50% of my time. Most of
this time is spent in supervising graduate and undergraduate researchers, writing papers,
organizing conferences and preparing grant proposals.

Page 271 of 394


C3 CS 12/14/04
Parris K. Egbert
Professor in Computer Science
Tenured
Brigham Young University

Academic History
Professor, Brigham Young University, Computer Science Department, April 2004 - present.
Associate Professor, Brigham Young University, Computer Science Department, April 1999 –
April 2004.
Assistant Professor, Brigham Young University, Computer Science Department, July 1992 -
April1999

.Education
Ph.D. Computer Science University of Illinois at Urbana-Champaign 1992
M.S. Computer Science University of Illinois at Urbana-Champaign 1990
B.S. Computer Science, Mathematics Utah State University 1986

Professional Development
Regular attendance at SIGGRAPH, Visualization, Eurographics and other conferences.

Professional Experience
Computer Architect, Hewlett-Packard, July 1986 - August 1987.
Computer Architect, Hewlett-Packard, July 1985 - September 1985.
Application Programmer, Call America Inc., June 1984 - August 1984.

Consulting
StorageTek 2004 Supervised work in using GPU hardware for compression
algorithms.
IArchives 2001 -2003 Designed and wrote software for image processing applications.
SingleTrak 1994-1996 Supervised work in vector field usage in computer graphics.
IBM 1993-1995 Taught OpenGL courses for IBM corporation.

Recent Publications (2001 – 2006)


David Cline, Justin Talbot and Parris K. Egbert, "Energy Redistribution Path Tracing,"
ACM Transactions on Graphics 24:3 (Proceedings of ACM SIGGRAPH 2005), (July
2005).

Justin Talbot, David Cline and Parris K. Egbert, "Importance Resampling for Global
Illumination," In Rendering Techniques 2005 (Eurographics Symposium on Rendering),
pp. 139-146, (June 2005).

Jonathan Dinerstein and Parris K. Egbert, "Fast Multi-Level Adaptation for Interactive
Autonomous Characters," ACM Transactions on Graphics, 24:2, pp. 262-288, (2005).

Jonathan Dinerstein, Dan Ventura, and Parris K. Egbert, "Fast and Robust Incremental
Page 272 of 394
C3 CS 12/14/04
Action Prediction for Interactive Agents," Computational Intelligence, 21:1, pp. 90-110,
(2005).

Kevin Steele and Parris K. Egbert, "Correspondence Expansion for Wide Baseline Stereo."
In IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2005), San
Diego, CA, Vol 1, pp.1055-1061, (June 20-26, 2005).

Kevin Steele, David Cline, Parris K. Egbert, and Jonathan Dinerstein, “Modeling and
Rendering Viscous Fluids,” Journal of Computer Animation & Virtual Worlds, 15(3-4), pp.
183-192, July 2004.

Jonathan Dinerstein and Parris K. Egbert, “Improved Behavioral Animation Through


Regression,” International Conference on Computer Animation & Social Agents, pp.
231-238, July 7-9, 2004.

Jonathan Dinerstein, Parris K. Egbert, Hugo De Garis, and Nelson Dinerstein, ”Fast and
Learnable Behavioral and Cognitive Modeling for Virtual Character Animation,” Journal
of Computer Animation and Virtual Worlds, 15(2), pp. 95-108, 2004.

Jonathan Dinerstein and Parris K. Egbert, "A Neural Net Approach to Improving Interval
Arithmetic." Journal of Neural Information Processing -- Letters and Reviews, 1(2),
2003.

Jonathan Dinerstein, Miklos Hoffmann, Parris K. Egbert, Kathryn Turner, "Planar


Grouping for Fast Affine Transformation and Clipping,” Journal for Geometry and
Graphics, 7(2), 2003, pp. 221-236.

Justin Talbot and Parris K. Egbert, “VTVS – A Complete Implementation of a Virtual


Terrain Visualization System,” in Proceedings Visualization, Imaging, and Image
Processing, pp. 981-986, September 2003, Benalmadena, Spain.

Geoffrey M. Draper and Parris K. Egbert, “A Gestural Interface to Free-Form


Deformation”, in Proceedings Graphics Interface 2003, pp. 113-120, June 11-13, 2003,
Halifax, Nova Scotia.

Jonathan Dinerstein, Parris K. Egbert, Nelson Dinerstein, Hugo DE GARIS, "Neural


Interval Arithmetic,” IEEE Electro/Information Conference, Indianapolis, Indiana, June
5-6, 2003.

Jonathan Dinerstein, Parris Egbert and Nelson Dinerstein, "Fast and Accurate Interval
Arithmetic through Neural Network Approximation", 3IA International Conference on
Computer Graphics and Artificial Intelligence, pp. 137-164, May 14-15, 2003, Limoges,
France.

Page 273 of 394


C3 CS 12/14/04
Brandon Lloyd and Parris K. Egbert, "Horizon Occlusion Culling for Real-time Rendering
of Hierarchical Terrains", In Proceedings IEEE Visualization 2002, pp. 403-409, October
27 – November 1, 2002.

Brandon Lloyd and Parris K. Egbert, "Histogram Painting for Better Photomosaics", in
Computer Graphics and Imaging, pp. 174-179, August 12-14, 2002.

Jonathan Dinerstein and Parris Egbert, "Practical Collision Detection in Rendering


Hardware for Two Complex 3D Polygon Objects", 20th Eurographics UK Conference
2002, pp. 129-135, June 11-13, 2002, De Montford University, Leicester, UK

Jonathan Dinerstein, Parris K. Egbert, and Hugo de Garis, "Improved Computer Graphics
Animation with a New Neural Net Model (DePo)," 3IA International Conference on
Computer Graphics and Artificial Intelligence, pp 165-169, May 14-15, 2002, Limoges,
France.

Jonathan Dinerstein and Parris Egbert, "Improved Linear Grouping", 3IA International
Conference on Computer Graphics and Artificial Intelligence, pp. 137-141, May 14-15,
2002, Limoges, France.

Brian Zaugg, Parris K. Egbert, “Voxel Column Culling: Occlusion Culling for Large
Terrain Models,” VisSym 2001- Eurographics/IEEE Symposium on Visualization, May 28
– 30, 2001.

Eric Sokolowsky, Parris K. Egbert, William A. Barrett, Kirk L. Duffin, “Image Origami,”
Proceedings of the International Conference on Augmented Virtual Environments and 3D
Imaging, May 30 – June 1, 2001.

David Cline and Parris K. Egbert, “Terrain Decimation through Quadtree Morphing,” IEEE
Transactions on Visualization and Computer Graphics, 7(1), pp. 62-29, 2001.

Research Grants (2001 – 2006)


Parris K. Egbert, “Automatic Transitioning in Computer Animation,” Electronic Arts,
September 2004 – August 2005, $30,000.

Parris K. Egbert, “Using Commodity Graphics Boards To Accelerate Data Compression,”


StorageTek, September 2003 – March 2004, $40,764.

Parris K. Egbert, “Virtual Terrain Fitness System,” Park City Entertainment, September
2001 – December 2001, $11,500.

William A. Barrett, Bryan Morse, Parris K. Egbert and Thomas Sederberg, “Intelligent
Computer Tools," State of Utah Centers of Excellence, July 2000 to June 2001, $110,000.

Courses Taught (2005 – 2006)


Winter 2005 CS 655
Fall 2005 CS455
Page 274 of 394
C3 CS 12/14/04
Winter 2006 CS 240
CS655

Other Duties
Department Graduate Coordinator

Student Advisement (2006)


PhD Students 2
MS Students 3
Undergrad Students 1

Scholarly Research
My research focuses on four main areas in the field of computer graphics. These are: global
illumination for photorealistic image synthesis, image based modeling and rendering,
cognitive modeling for animation and fluid flow simulation.

Time spent on research: 35%

Page 275 of 394


C3 CS 12/14/04
David W. Embley
Professor of Computer Science
Tenured
Brigham Young University

Academic History
1986-present Professor of Computer Science Brigham Young University
Jan. 1999-May 1999 Sabbatical Dortmund University
1982-1986 Associate Professor of Computer Science Brigham Young University
1981-1982 Associate Professor of Computer Science University of Nebraska
1976-1981 Assistant Professor of Computer Science University of Nebraska

Education
1976 Ph.D. in Computer Science University of Illinois, Urbana
1972 M.S. in Computer Science University of Utah
1970 B.A. in Mathematics University of Utah

Principle Publications
Publications—Books
Object Database Development: Concepts and Principles, Addison-Wesley, Reading,
Massachusetts, 1998.

D.W. Embley, B.D. Kurtz and S.N. Woodfield, Object-oriented Systems Analysis: A Model-
driven Approach , Japanese translation, Tokyo Denki University Press, Tokyo, 1998.

D.W. Embley, B.D. Kurtz and S.N. Woodfield, Object-oriented Systems Analysis: A Model-
driven Approach , Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1992.

Publications—Recent Articles

W.Y. Mok and D.W. Embley, Generating compact redundancy-free XML documents from
conceptual model hypergraphs, IEEE Transactions on Knowledge and Data Engineering , (in
press).
D.W. Embley, M. Hurst, D. Lopresti and G. Nagy, Table processing paradigms: A research
survey, International Journal on Document Analysis and Recognition , (in press).

M.J. Al-Muhammed and D.W. Embley, Resolving underconstrained and overconstrained


systems of conjunctive constraints for service requests, Proceedings of the 18th International
Conference on Advanced Information Systems Engineering (CAiSE’06, LNCS 4001) ,
Luxembourg City, Luxembourg, 5-9 June 2006, 223-238, (in press).

D.W. Lonsdale, C. Tustison, C.G. Parker, and D.W. Embley, Formulating Queries for Assessing
Clinical Trial Eligibility, Proceedings of the 11th International Conference on Applications of
Natural Languages to Information Systems (NLDB 2006) , Klagenfurt, Austria, 31 May – 2 June
2006, (in press).

Page 276 of 394


C3 CS 12/14/04
L. Xu and D.W. Embley, A composite approach to automating direct and indirect schema
mappings, Information Systems , (in press).

D.W. Embley, D. Lopresti, and G. Nagy, Notes on contemporary table recognition,


Proceedingsof the Seventh International Association for Pattern Recognition Workshop on
Document Analysis Systems, (DAS 2006, LNCS 3872) , Nelson, New Zealand, February 2006,
164-175.

Y.A. Tijerino, D.W. Embley, D.W. Lonsdale, Y. Ding and G. Nagy, Toward ontology generation
from tables, World Wide Web: Internet and Web Information Systems , Volume 8, Number 3,
September 2005, 261-285.

M. Al-Muhammed, D.W. Embley, and S.W. Liddle, Conceptual model based semantic web
services, Proceedings of the Twenty Fourth International Conference on Conceptual Modeling
(ER’05), Klagenfurt, Austria, 26-28 October 2005, 288-303.

R. Al-Kamha, D.W. Embley, and S.W. Liddle, Representing generalization/specialization in


XML schema, Proceedings of the Workshop on Enterprise Modeling and Information Systems
Architectures (EMISA’05), Klagenfurt, Austria, 24-25 October 2005, 250-263.

D.W. Embley, C. Tao and S.W. Liddle, Automating the extraction of data from HTML tables
with unknown structure, Data & Knowledge Engineering , Volume 54, Number 1, July 2005, 3-
28.

A. Wessman, S.W. Liddle and D.W. Embley, A Generalized Framework for an Ontology-Based
Data-Extraction System, Proceedings of the 4th International Conference on Information
Systems Technology and its Applications (ISTA’05) , Palmerston North, New Zealand, 23-25
May 2005, 239-253.

D.W. Embley, L. Xu and Y. Ding, Automatic direct and indirect schema mapping: Experiences
and lessons learned, SIGMOD Record , Volume 33, Number 4, December 2004, 14-19.

Y.A. Tijerino, M. Al-Muhammed and D.W. Embley, Toward a flexible human-agent


collaboration framework with mediating domain ontologies for the semantic web, Proceedings of
the ISWC-04 Workshop on Meaning Coordination and Negotiation Hiroshima, Japan, 8
November 2004, 131-142.

R. Al-Kamha and D.W. Embley, Grouping search-engine returned citations for person-name
queries, Proceedings of the ACM Sixth International Workshop on Web Information and
Data Management (WIDM 2004 ), Washington, DC, 12-13 November 2004, 96-103.

D.W. Embley, S.W. Liddle and R. Al-Kamha, Enterprise modeling with conceptual XML,
Proceedings of the 23rd International Conference on Conceptual Modeling (ER’04), Shanghai,
China, 8-12 November 2004, 150-165.

Page 277 of 394


C3 CS 12/14/04
X. Chen, D.W. Embley and S.W. Liddle, Query rewriting for extracting data behind HTML
forms, Proceedings of the International Workshop on Conceptual Model-directed Web
Information Integration and Mining , Shanghai, China, 8-12 November 2004, 335-345.

T. Walker and D.W. Embley, Automatic location and separation of records: A case study in the
genealogical domain, Proceedings of the International Workshop on Conceptual Model directed
Web Information Integration and Mining , Shanghai, China, 8-12 November 2004,
302-313.

D.W. Embley and L. Xu, Combining the best of global-as-view and local-as-view for data
integration, Proceedings of the 3rd International Conference on Information Systems
Technologyand its Applications , Salt Lake City, Utah, 15-17 July 2004, 123-136.

D.W. Embley, Toward semantic understanding—an approach based on information extraction


ontologies, Proceedings of the Fifteenth Australasian Database Conference Dunedin, New
Zealand, 18-22 January 2004, 3-12.

Y.A. Tijerino, D.W. Embley, D.W. Lonsdale and G. Nagy, Ontology generation from tables,
Proceedings of the 4th International Conference on Web Information Systems
Engineering,Rome, Italy, 10-12 December 2003, 242-249.

L. Xu and D.W. Embley, Using domain ontologies to discover direct and indirect matches for
schema elements, Workshop on Semantic Integration, 20 October 2003, Sanibel Island,
Florida, 105-110.

D.W. Embley, D. Jackman and L. Xu, Attribute match discovery in information integration:
exploiting multiple facets of metadata, Journal of the Brazilian Computing Society, Volume 8,
Number 2, November 2002, 32-43.

D.W. Embley and W.Y. Mok, On guaranteeing “good” properties for XML, invited session on
Dependency Theory on the Web at Proceedings of the 7th World Multiconference on Systemics,
Cybernetics and Informatics (SCI 2003), Volume IX, Orlando, Florida, 27-30 July
2003, 195-198.

S.W. Liddle, K.A. Hewett and D.W. Embley, An integrated ontology development environment
for data extraction, Proceedings of the 2nd International Conference on Information
SystemsTechnology and its Applications (ISTA2003), Lecture Notes in Informatics, Vol. P-30,
Kharkhiv, The Ukraine, 19-21 June 2003, 21-33.

L. Xu and D.W. Embley, Discovering direct and indirect matches for schema elements,
Proceedingsof the 8th International Conference on Database Systems for Advanced Applications
(DASFAA 2003), Kyoto, Japan, 26-28 March 2003, 39-46.
J. Biskup and D.W. Embley, Extracting information from heterogeneous information sources
using ontologically specified target views, Information Systems, Volume 28, Number 3, 2003,
169-212.

Page 278 of 394


C3 CS 12/14/04
K.M. Tubbs and D.W. Embley, Recognizing records from the extracted cells of microfilm tables,
Proceedings of the Symposium on Document Engineering (DocEng 2002), McLean, Virginia, 8-
9 November 2002, 149-156.

D.W. Embley, S.W. Liddle, D.T. Scott, and S.H. Yau, Extracting data behind web forms,
Proceedings of the Workshop on Conceptual Modeling Approaches for e-Business: A Web
Service Perspective (eCOMO’2002), Tampere, Finland, 11 October 2002, 38-49.

D.W. Embley, C. Tao and S.W. Liddle, Automatically extracting ontologically specified data
from HTML tables with unknown structure, Proceedings of the 21st International Conference
onConceptual Modeling (ER’02), Tampere, Finland, 7-11 October 2002, 322-327.

I.M.E. Filha, A.S. da Silva, A.H.F. Laender and D.W. Embley, Representing and querying
semistructured web data using nested tables with structural variants, Proceedings of the 21st
International Conference on Conceptual Modeling (ER’02), Tampere, Finland, 7-11 October
2002, 135-151.

D. Lonsdale, Y. Ding, D.W. Embley and A. Melby, Peppering knowledge sources with SALT:
Boosting conceptual content for ontology generation, Proceedings of the AAAI Workshop:
Semantic Web Meets Language Resources Edmonton, Alberta, Canada, 28 July 2002, 30-36.

I.M.E. Filha, A.S. da Silva, A.H.F. Laender and D.W. Embley, Using nested tables for
representing and querying semistructured web data, Proceedings of the Fourteenth International
Conference on Advanced Information Systems Engineering (CAiSE 2002), and also Lecture
Notes in Computer Science #2348, A.B. Pidduck, J. Mylopoulos, C.C. Woo, and M.T. Ozsu
(editors), Toronto, Ontario, Canada, 27-31 May 2002, 719-723.

D.W. Embley and W.Y. Mok, Developing XML documents with guaranteed “good” properties,
Proceedings of the 20th International Conference on Conceptual Modeling (ER’01), Yokohama,
Japan, 27-30 November 2001, 426-441.

D.W. Embley and Y.-K. Ng and L. Xu, Recognizing ontology-applicable multiple-record web
documents, Proceedings of the 20th International Conference on Conceptual Modeling
(ER’01),Yokohama, Japan, 27-30 November 2001, 555-570.

D.W. Embley, S.W. Liddle and S.H. Yau, On the automatic extraction of data from the hidden
web, Proceedings of the International Workshop on Data Semantics in Web Information
Systems (DASWIS-2001), Yokohama, Japan, 27-30 November 2001, 106-119, also printed
as Conceptual Modeling for New Information Systems Technologies (LNCS 2465), Springer
Verlag, 2002, 212-226.

D.W. Embley, D. Jackman and L. Xu, Multifaceted exploitation of metadata for attribute match
discovery in information integration, Proceedings of the International Workshop on Information
Integration on the Web (WIIW’01), Rio de Janeiro, Brazil, 9-11 April 2001, 110-117.

Page 279 of 394


C3 CS 12/14/04
D.W. Embley and L. Xu, Locating and reconfiguring records in unstructured multiple-record
web documents, The World Wide Web and Databases, Lecture Notes in Computer Science,
Volume 1997, D. Suciu and G. Vossen (eds.), Springer Verlag, 2001, 256-274.

J. Biskup and D.W. Embley, Mediated Information Gain, International Database Engineering
and Applications Symposium (IDEAS2000), Yokohama, Japan, 18-20 September 2000, 360-370.

D.W. Embley and L. Xu, Record location and reconfiguration in unstructured multiple-record
web documents, Proceedings of the Third International Workshop on the Web and Databases
(WebDB2000), Dallas, Texas, 18-19 May 2000, 123-128.

Plus over 100 publications prior to 2000.

Scholarly Activities
Editorial Board for Data & Knowledge Engineering (2005-present).

Editorial Board for Journal of Data Semantics (2002-present).

Editorial Board for World Wide Web: Internet and Web Information Systems (2000-2004).

Program Co-chair for the 26th International Conference on Conceptual Modeling (ER’06).

Chair of the Steering Committee for the International Conference on Conceptual Modeling (Oct
2002 - Oct 2004).

Vice Chair of the Steering Committee for the International Conference on Conceptual Modeling
(Oct 2000 - Oct 2002).

Steering Committee Member for the International Conference on Conceptual Modeling (1997-
present).

General Chair for the 19th International Conference on Conceptual Modeling (ER2000), Salt
Lake City, Utah, 9-12 October, 2000.

Program Committee Member for dozens of conferences/workshops since 2000.

Plus much more service prior to 2000.

Recent Conference, Seminar, Colloquia, and Workshop Appearances


Paper Presentation, “Conceptual Model Based Semantic Web Services,” at the Twenty Fourth
InternationalConference on Conceptual Modeling (ER’05), Klagenfurt, Austria, 26-28 October
2005.

Colloquium talk, “Toward Semantic Understanding—An Approach Based on Information


Extraction Ontologies,” presented at the Technical University of Vienna, Austria, 24 October
Page 280 of 394
C3 CS 12/14/04
2005. Panelist for the Family History Technology Workshop panel, Brigham Young University,
24 March 2005.

Colloquium talk, “Toward Semantic Understanding—An Approach Based on Information


Extraction Ontologies,” presented at the Polytechnic University of Valencia, Valencia, Spain, 24
February 2005.

Colloquium talk, “Toward Semantic Understanding—An Approach Based on Information


Extraction Ontologies,” presented at the Swiss Federal Institute of Technology, Lausanne,
Switzerland, 21 February 2005.

Invited talk, “Toward Tomorrow’s Semantic Web—An Approach Based on Information


Extraction Ontologies,” presented at the Dagstuhl Seminar, “Machine Learning for the Semantic
Web,” Dagstuhl Castle, Germany, 17 February 2005.

Panel moderator for the panel entitled ”Hot Research Topics: How Conceptual Modeling Can
Contribute” at the 23rd International Conference on Conceptual Modeling (ER2004), Shanghai,
China, 8-12 November 2004.

Paper Presentation, Query rewriting for extracting data behind HTML forms, at the International
Workshop on Conceptual Model-directed Web Information Integration and Mining, Shanghai,
China, 8-12 November 2004.

Keynote Address, “What Do You Want—Semantic Understanding? (You’ve Got to be


Kidding)” presented at the Fifteenth Australasian Database Conference, Dunedin, New Zealand,
January 18-22, 2004.

Colloquium talk, “Automating Schema Matching,” Massey University, Palmerston North, New
Zealand, 16 January 2004.

Paper Presentation, “On Guaranteeing ‘Good’ Properties for XML,” at the 7th World
Multiconference on Systemics, Cybernetics and Informatics (SCI 2003), Orlando, Florida, 27-30
July 2003.

Paper Presentation, “Discovering Direct and Indirect Matches for Schema Elements” at the 8th
International Conference on Database Systems for Advanced Applications (DASFAA 2003),
Kyoto, Japan, 26-28 March 2003.

Paper Presentation, “Recognizing Records from the Extracted Cells of Microfilm Tables,” at the
Symposium on Document Engineering (DocEng 2002), McLean, Virginia, 8-9 November 2002.

Paper Presentation, “Automatically Extracting Ontologically Specified Data from HTML Tables
with Unknown Structure,” at the 21st International Conference on Conceptual Modeling
(ER2002), Tampere, Finland, 7-11 October 2002.

Page 281 of 394


C3 CS 12/14/04
Colloquium talk, ”Automating Schema Matching for Data Integration,” Federal University of
Minas Gerais, Belo Horizonte Brazil, 20 June 2002.

Colloquium talk, ”Automating Schema Matching for Data Integration,” WhizBang!, Provo, Utah
and, by teleconferencing, Pittsburgh, Pennsylvania, 7 May 2002.
Paper presentation, “Recognizing Ontology-Applicable Multiple-Record Web Documents” at the
Twentieth International Conference on Conceptual Modeling (ER2001), Yokohama, Japan, 27-
30 November 2001.

Panelist for the panel: “Semantic B2B Integration: is Modeling the Superior Approach over
Programming?” at the Twentieth International Conference on Conceptual Modeling (ER2001),
Yokohama, Japan, 27-30 November 2001.

Colloquium talk, “Computer Science Research for Family History and Genealogy,” introduced a
coordinated series of student presentations (Heath Nielson, Mike Rimer, Luke Hutchison, Ken
Tubbs, Doug Kennard, Tom Finnigan), Brigham Young University, 8 November 2001.

Presentation, ”Milestones in the Research Proposal Process”, New Faculty Seminar, session for
new faculty in the College of Physical and Mathematical Sciences, 8 May 2001.

Paper presentation, “Multifaceted exploitation of metadata for attribute match discovery in


information integration,” at the International Workshop on Information Integration on the Web
(WIIW’01), Rio de Janeiro, Brazil, 9-11 April 2001.

Colloquium talk, “Extracting and Structuring Web Data,” University of Nebraska, Lincoln,
Nebraska, 3 November 2000 Panelist for the session, “Metadata: Adding Value to Content,” at
the 19th International Conference on Conceptual Modeling, Salt Lake City, Utah, 9-12 October
2000.

Paper presentation, “Record Location and Reconfiguration in Unstructured Multiple-Record


Web Documents,” at the Third International Workshop on the Web and Databases
(WebDB2000), Dallas, Texas, 19 May 2000.

Plus many more appearances prior to 2000.

Courses Taught 2005-2006


Winter 2005: none
Spring 2005: CS751R section 001
Fall 2005: CS236 section 003
CS452 section 001
Winter 2006: CS236 sections 001 and 002

Other Duties
Chair of department Undergraduate Curriculum Committee and member of the Promotion,
Tenure, and Leave committee.

Page 282 of 394


C3 CS 12/14/04
Academic Advisor
4 Ph.D. students
4 M.S. students

Scholarly Research and Time Division


35% of time is spent on research and scholarly activities.
Research interests include database systems, model-driven software development, information
extraction from semistructured and unstructured documents, and the semantic web.

Page 283 of 394


C3 CS 12/14/04
J. Kelly Flanagan
Professor of Computer Science
Tenured
Brigham Young University

Academic History
2002-present Information Technology Vice President and CIO
Brigham Young University
1993-present Faculty Member, Computer Science Department
Brigham Young University
1993-1994 Professional leave to join high performance computer architecture group
Intel
1994 Instructor of High Performance Computer Architecture
Oregon State University

Education
1993 Ph.D in Electrical and Computer Engineering Brigham Young University
1989 M.S. in Electrical Engineering Brigham Young University
1988 B.S. in Electrical Engineering Brigham Young University

Computer Science Background (if you don’t have one educationally)


Took several computer science courses while pursuing degrees in electrical engineering.

Principle Publications
Journal Publications
M. Clement, G. Judd, B. Morse, and K. Flanagan, Performance Surface Prediction
for WAN-based Clusters, Journal of Supercomputing, Vol 13, 1999.
K. Flanagan, J. Archibald, and J. Su, Low Power Memory Hierarchies: An
Argument for Second-Level Caches, Microprocessors and Microsystems, Vol 21,
No. 5, February 1998.

K. Grimsrud, J. Archibald, M. Ripley, K. Flanagan, and B. Nelson, BACH: A


Hardware Monitor for Tracing Microprocessor Based Systems, Microprocessors
and Microsystems, Vol 17, No. 8, October, 1993.
T. Li, B. Nelson, and K. Flanagan, CMOS Implementation of a Correlator for
Delta-Modulated Signals, International Journal of Electronics, Vol 67, No. 2,
1989.

Conference Publications

Page 284 of 394


C3 CS 12/14/04
Myles G. Watson and J. Kelly Flanagan, Does Halting Make Trace Collection Inaccurate? A
Case Study Using Pentium 4 Performance Counters and SPEC2000, In Proceedings of the
Seventh IEEE Annual Workshop on Workload Characterization, October 2004.

Elizabeth S. Sorenson and J. Kelly Flanagan, Evaluating Synthetic Trace Models Using
Locality Surfaces, Fifth Annual IEEE Workshop on Workload Characterization (WWC-5),
Austin Texas, November 2, 2002, pp 23-33.

Myles Watson and J. Kelly Flanagan. Simulating L3 Caches in Real Time Using Hardware
Accelerated Cache Simulation (HACS): a Case Study with SPECint 2000, In Proc. 14th
Symposium on Computer Architecture and High Performance Computing (SBAC-PAD),
Vitoria, ES, Brazil, October 2002, pp. 108-114.

Elizabeth S. Sorenson and J. Kelly Flanagan, Cache Characterization Surfaces and Predicting
Workload Miss Rates, Fourth Annual IEEE Workshop on Workload Characterization
(WWC-4), Austin Texas, December 2, 2001.
Elizabeth S. Sorenson and J. Kelly Flanagan. Using Locality Surfaces to Characterize the
SPECINT 2000 Benchmark Suite. In Lizy Kurian John and Ann Marie Grizzaffi Maynard,
editors, Workload Characterization of Emerging Computer Applications, pages 101-120.
Kluwer Academic Publishers, 2001
Niki C. Thornock and J. Kelly Flanagan, Facilitating Level Three Cache Studies Using Set
Sampling, Proceedings of the 2000 Winter Simulation Conference, Volume 1, pp 471-479.

Niki C. Thornock and J. Kelly Flanagan, Using the BACH Trace Collection Mechanism to
Characterize the SPEC 2000 Integer Benchmarks, Third Annual IEEE Workshop on
Workload Characterization (WWC), Austin Texas, September 16, 2000.

Elizabeth S. Sorenson and J. Kelly Flanagan, Using Locality Surfaces to Characterize the
SPECint 2000 Benchmark Suite, Third Annual IEEE Workshop on Workload
Characterization (WWC), Austin Texas, September 16, 2000.

Jeff Penfold and J. Kelly Flanagan, A First Year Computer Organization Course on the Web:
Make the Magic Disappear, IEEE Workshop on Computer Architecture Education (WCAE),
Vancouver, BC, June 10, 2000.

F. Sorenson, E. Sorenson, K. Flanagan, H. Zhou, A System-Assisted Disk I/O Simulation


Technique, IEEE International Workshop on Modeling, Analysis and Simulation of
Computer and Telecommunication Systems (MASCOTS '99), College Park, Maryland,
October 24-28, 1999.
S. Peng, K. Flanagan, and F. Sorenson, Client-Based Web Prefetch Management, The Eighth
International World Wide Web Conference, Toronto, Canada, May 11-14, 1999.
K. Flanagan and F. Sorenson, A National Trace Collection and Distribution Resource, 1999
SPEC Workshop, San Jose, California, January 25, 1999.
Page 285 of 394
C3 CS 12/14/04
G. Judd, M. Clement, J. Peterson, B. Morse, and K. Flanagan, Performance Surface
Prediction for WAN-Based Clusters, 31st Hawaii International Conference on System
Sciences, Hawaii, January 6-9, 1998.
N. Thornock, X. Tu, and K. Flanagan, A Stochastic Disk I/O Simulation Technique, 1997
Winter Simulation Conference, Atlanta, December 7-10, 1997.
M. Clement, B. Morse, K. Flanagan, W. Wei and P. Crandall, The Chordal Spoke ATM
Interconnection Network, Proceedings of the 1997 International Conference on Parallel
and Distributed Techniques and Applications, Las Vegas, Nevada, June 1997.
M. Clement, K. Flanagan, and M. Steed, Cost Optimal Analysis for Workstation Clusters,
Proceedings of the 1996 International Conference on Parallel and Distributed Processing
Techniques and Applications, December, 1996.
K. Flanagan, B. Nelson, J. Archibald, and G. Thompson, The Inaccuracy of Trace-Driven
Simulation Using Incomplete Multiprogramming Trace Data, IEEE International
Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication
Systems, February 1996
G. Thompson, B. Nelson, and K. Flanagan, Transaction Processing Workloads -- A
Comparison to the SPEC Benchmarks Using Memory Hierarchy Performance Studies,
IEEE International Workshop on Modeling, Analysis and Simulation of Computer and
Telecommunication Systems, February 1996.
W. Wei, M. Clement, and K. Flanagan, The Round Table ATM Interconnection Network,
Proceedings of the 1995 International Conference on Parallel and Distributed Processing
Techniques and Applications, November 1995.
K. Flanagan, B. Nelson, J. Archibald, and K. Grimsrud, Incomplete Trace Data and Trace
Driven Simulation, IEEE International Workshop on Modeling, Analysis and Simulation
of Computer and Telecommunication Systems, January 1993.
K. Grimsrud, J. Archibald, B. Nelson, and K. Flanagan, BACH: A Hardware
Measurement Tool for Microprocessor Systems, Invited paper for IEEE Asilomar
Conference, October 1992.
K. Flanagan, B. Nelson, J. Archibald, and K. Grimsrud, BACH: BYU Address Collection
Hardware, The Collection of Complete Traces, In Proceedings of the 6th International
Conference on Modeling Techniques and Tools for Computer Performance Evaluation,
September 1992.
B. Nelson, J. Archibald, and K. Flanagan, Performance Analysis of Inclussion Effects in
Multi-level Multiprocessor Caches, IEEE symposium on Parallel and Distributed
Processing, December 1991.
K. Grimsrud and K. Flanagan, PARACHUTE: An Implementation of the Chordal Ring
Architecture, Norddata 91, Norway, June 1991.

Page 286 of 394


C3 CS 12/14/04
K. Flanagan, D. Morrell, R. Frost, C. Read, and B. Nelson, Vector Quantization
Codebook Generation Using Simulated Annealing, IEEE International Conference on
Acoustics, Speech, and Signal Processing, May 1989.
C. Read, D. Chabries, R. Christansen, and K. Flanagan, A Method for Computing the
DFT of Vector Quantized Data, IEEE International Conference on Acoustics, Speech,
and Signal Processing, May
1989.
K. Flanagan and B. Nelson, Microprocessor Design Using Path Programmable Logic,
IEEE International Conference on Computer Design / VLSI in Computers, October 1988.
T. Li, B. Nelson, K. Flanagan, and C. Read, A Multiprogrammed Parallel Architecture fir
Digital Signal Processing, IEEE International Conference on Acoustics, Speech, and
Signal Processing, April 1987.
Other Publications
Niki C. Thornock and J. Kelly Flanagan, A National Trace Collection and Distribution
Resource, ACM SIGARCH Computer Architecture News, June 2001, Volume 29, Issue
3.
Elizabeth S. Sorenson and J. Kelly Flanagan, Using locality surfaces to characterize the
SPECint 2000 benchmark suite, Workload Characterization for Emerging Computer
Applications, pages 101-120, Kluwer Academic Publishers, 2001.
C. Rose and K. Flanagan, Complete Instruction Traces from Incomplete Address Traces
(CITCAT), Poster Presentation, 1997 Winter Simulation Conference, Atlanta, December
7-10, 1997.
C. Rose and K. Flanagan, Complete Instruction Traces from Incomplete Address Traces
(CITCAT), Computer Architecture News, December 1996.

Scholarly Activities
Professional Societies and Organizations
Member of the Association for Computing Machinery (ACM) and IEEE
Member of SIGARCH and SIGMETRICS
Awards and Honors
1998 Computer Science Department Teacher of the Year
2000 Golden Key Award, Utah Citizen of the Year
2005 Award for Distinguished Contributions to Accessibility

Page 287 of 394


C3 CS 12/14/04
Funded Grant Proposals
1998 Hewlett-Packard: $42,500
IA-32 Trace Collection and Workload Characterization
1998 National Science Foundation: $1,529,978
A National Trace Collection and Distribution Resource
1998 Hewlett-Packard: $26,000
Performance Evaluation of Multiprocessor Architectures
1997 Sprint: with M. Clement and B. Morse $150,000
Performance Surface Analysis of Wide Area Distributed Systems
1996 Sprint: with M. Clement and B. Morse $100,000
Using ATM Networks for High Performance Computing
1996 Intel Corporation: $30,000
Analysis of I/O Activity in Novell NetWare Clients and Servers
1996 Tandem Computer: $25,000
Generating R4400 Instruction Traces
1995 Intel Corporation: $30,000
Analysis of Disk Activity in A Novell NetWare Environment

Courses Taught 2005-2006


No classes taught during this time because of administrative duties.

Other Duties
Serve as the Information Technology Vice President and CIO for the University.

Academic Advisor
2005 Elizabeth S. Sorenson, Cache Characterization and Performance Studies
Using
Locality Surfaces, Dissertation.
2005 Christopher R. Slade, On-Disk Sequence Cache (ODSC): Using Excess
Disk Capacity to
Increase Performance, Thesis.

Page 288 of 394


C3 CS 12/14/04
2004 Myles G. Watson, Does the Halting Necessary for Hardware Trace
Collection Inordinately Perturb the Results? Thesis.
2004 Hyrum Carroll, A Trace-Driven Simulator For Palm OS Devices, Thesis.
2004 Franklin E. Sorenson, PODS: Physical Object Devices, Thesis.
2004 Vernon H. Mauery, Inheritance Models in Object-Oriented Hardware
Using Physical Object Devices, Thesis.
2004 Darren Hart, Using Hardware Objects in Object Oriented Software
Design, Thesis.
2001 Briton Barker, Cache Memory Analysis: Effects of the Kernel and the
Justification of
Associativity, Thesis.
2001 Elizabeth S. Sorenson, Locality Surfaces, Thesis.
2001 Alen Peacock, Dynamic Detection of Deterministic Disk Access Patterns,
Thesis.

Page 289 of 394


C3 CS 12/14/04
Christophe Giraud-Carrier
Associate Professor of Computer Science
Not tenured
Brigham Young University

Academic History
2004-present Associate Professor of Computer Science Brigham Young University

Education
1994 PhD in Computer Science Brigham Young University
1993 MS in Computer Science Brigham Young University
1991 BS in Computer Science Brigham Young University

Professional Development
BYU Faculty Development Series

Relevant Employment
2001-2004 Project Manager/Senior Project Manager
ELCA Informatique SA, Switzerland
1994-2001 Lecturer/Senior Lecturer University of Bristol, UK

Consulting
Ongoing Data Mining projects with several industrial sponsors.

Principle Publications
Tran, N., Giraud-Carrier, C., Seppi, K. and Warnick, S. (2006). Cooperation-based Clustering
for Profit-Maximizing Organizational Design. To appear in Proceedings of International Joint
Conference on Neural Networks.
Giraud-Carrier, C. and Ventura, D. (2005). Effecting Transfer via Learning Curve Analysis.
NIPS Workshop on Inductive Transfer: 10 Years Later. (electronic version only).
Vilalta, R., Giraud-Carrier, C. and Brazdil, P. (2005). Meta-learning. In Maimon, O. and
Rokach, L. (Eds.), Data Mining and Knowledge Discovery Handbook, Springer, 731-748.
Fall, C.J. and Giraud-Carrier, C. (2005). Searching Trademark Databases for Verbal Similarities.
World Patent Information, 27(2):135-143.Thie, C. and Giraud-Carrier, C. (2005). Learning
Concept Descriptions with Typed Evolutionary Programming. In IEEE Transactions on
Knowledge and Data Engineering, 17(12):1664-1677.
Dahl, T.S. and Giraud-Carrier, C. (2005). Incremental Development of Adaptive Behaviors
using Trees of Self-Contained Solutions. Adaptive Behavior, 13(3):243-260.
Giraud-Carrier, C., Vilalta, R. and Brazdil, P. (2005). Proceedings of the ICML-2005 Workshop
on Meta-learning.
Giraud-Carrier, C., Brazdil, P. and Vilalta, R. (2004). Special Issue on Meta-learning. Machine
Learning, 54(3). Bogacz, R., Brown, M.W. and Giraud-Carrier, C. (2001). Model of

Page 290 of 394


C3 CS 12/14/04
Familiarity Discrimination in the Perirhinal Cortex. Journal of Computational Neuroscience,
10:5-23.
Dahl, T. and Giraud-Carrier, C. (2004). Evolution-inspired Incremental Development of
Complex Autonomous Intelligence. In Proceedings of the Eighth International Conference on
Intelligent Autonomous Systems (IAS’04), 395-402.
Giraud-Carrier, C. and Povel, O. (2003). Characterising Data Mining Software. Journal of
Intelligent Data Analysis, 7(3):181-192.Bogacz, R., Brown, M.W. and Giraud-Carrier, C.
(2001). Emergence of Motion-sensitive Neurons' Properties by Learning Sparse Code for
Natural Moving Images. In Advances in Neural Information Processing Systems (Proc. of
NIPS-2000), 13:838-844.
Giraud-Carrier, C. and Keller, J. (2002). Meta-learning. In Meij, J. (Ed.), Dealing with the Data
Flood: Mining Data, text and Multimedia. STT 65, STT/Beweton, The Hague, 832-844.
Giraud-Carrier, C. (2002). Unifying Learning and Evolution Through Baldwinian Evolution and
Lamarckism: A Case Study. In Zimmermann, H-J., Tselentis, G., van Someren, M. and
Dounias, G. (Eds.), Advances in Computational Intelligence and Learning: Methods and
Applications. The Kluwer International Series in Intelligent Technologies, Vol. 18, 159-168.
Dahl, T. and Giraud-Carrier, C. (2001). Evolution, Adaption and Behavioural Holism in
Artificial Intelligence. Advances in Artificial Life (Proceedings of the Sixth European
Conference, ECAL 2001), J. Kelemen and P. Sosik (Eds.), LNAI 2159, 499-508.
Bogacz, R., Brown, M.W. and Giraud-Carrier, C. (2001). A Familiarity Discrimination
Algorithm Inspired by Computations of the Perirhinal Cortex. In Wermter, S., Austin, J. and
Willshaw, D. (Eds.), Emergent Neural Computational Architectures based on Neuroscience.
Springer-Verlag, 435-448.
Bogacz, R., Brown, M.W. and Giraud-Carrier, C. (2001). Model of Co-operation between
Recency, Familiarity and Novelty Neurons in the Perirhinal Cortex. In Neurocomputing
(Proc. of CNS-2000), 38:1121-1126.

Courses Taught 2005-2006


CS 601R Data Mining - Winter 2005
CS 478 Machine Learning - Summer 2005
CS 235-3 Data Structures - Fall 2005
CS 235-4 Data Structures - Fall 2005
CS 478 Machine Learning - Spring 2006
CS 601R Data Mining - Spring 2006

Other Duties
Graduate Committee Member
External Funding Committee Chair

Academic Advisor
4 MS students and 4 undergraduate students

Scholarly Research and Time Division


Page 291 of 394
C3 CS 12/14/04
50%-70%

Research in Machine Learning/Data Mining, esp. meta-learning, incremental learning and


applications to family history. Writing for publication. Participation in Program Committees for
international conferences (paper reviews).

Page 292 of 394


C3 CS 12/14/04
Michael A. Goodrich
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
2004-present Associate Professor Computer Science Department
Brigham Young University
1999-2004 Assistant Professor Computer Science Department
Brigham Young University
1998-1999 Research Assistant Professor Computer Science Department
Brigham Young University
1996-1998 Research Associate Nissan Cambridge Basic Research

Education
Ph.D. 1996 Electrical and Computer Engineering Brigham Young University
M.S. 1995 Electrical and Computer Engineering Brigham Young University
B.S. 1992 Electrical and Computer Engineering Brigham Young University

Computer Science Background


My degrees are in Electrical and Computer Engineering which is a very closely related field. I
studied several CS topics since joining the faculty to become more familiar with the curriculum.

Professional Development
BYU mid-career faculty development seminar -- spring 2005.

Principle Publications
Journal Publications (Peer Reviewed since 2000)
ƒ J. K. Howlett, T. W. McLain, and M. A. Goodrich. Learning Real-Time A* Path
Planner for Unmanned Air Vehicle Target Sensing. AIAA Journal of Aerospace
Computing, Information, and Communication. Volume 3, Number 3, pp. 108-122,
March 2006.
ƒ J. W. Crandall, M. A. Goodrich, D. R. Olsen, and C. W. Nielsen. Validating Human-
Robot Interaction Schemes in Multi-Tasking Environments. IEEE Transactions on
Systems, Man, and Cybernetics —Part A: Systems and Humans, Vol. 35, No. 4, July
2005, pp.438-449. Special Issue on Human-Robot Interaction.
ƒ R. Beard, D. Kingston, M. Quigley, D. Snyder, R. Christiansen, W. Johnson, T. McLain,
M. A. Goodrich, Autonomous Vehicle Technologies for Small Fixed Wing UAVs.
AIAA Journal of Aerospace Computing, Information, and Communication, (to appear).
ƒ M. A. Goodrich and E. R. Boer. Model-Based Human-Centered Task Automation: A
Case Study in ACC Design. IEEE Transactions on Systems, Man, and Cybernetics ---
Part A: Systems and Humans, 33(3), 325-336, May 2003.
ƒ R. W. Beard, T. W. McLain, M. A. Goodrich, and E. P. Anderson. Coordinated Target
Assignment and Intercept for Unmanned Air Vehicles. IEEE Transactions on Robotics
and Automation, 18(6), December 2002.

Page 293 of 394


C3 CS 12/14/04
ƒ W. C. Stirling, M. A. Goodrich, and D. J. Packard. Satisficing Equilibria: A Non-
Classical Approach to Games and Decisions. In Game Theory and Decision Theory in
Agent-Based Systems, S. Parsons and P. Gymtrasiewicz, eds. Kluwer Academic
Publishers, Boston, 2002.
ƒ W. C. Stirling, M. A. Goodrich, and D. J. Packard. Satisficing Equilibria: A Non-
Classical Approach to Games and Decisions. Autonomous Agents and Multi-Agent
Systems Journal , v5:305-328,2002.
ƒ M. A. Goodrich and E. R. Boer. Designing Human-Centered Automation: Tradeoffs in
Collision Avoidance System Design. IEEE Transactions on Intelligent Transporation
Systems, v.1,no.1, March 2000.
ƒ M. A. Goodrich, W. C. Stirling, and E. R. Boer. Satisficing Revisited. Minds and
Machines , v.10, no.1:79-109, February 2000.

Conference Publications (Peer Reviewed since 2000)


ƒ C. W. Nielsen and M. A. Goodrich. Comparing the Usefulness of Video and Map
Information in Navigation Tasks. In Proceedings of the 2006 Human-Robot Interaction
Conference. To appear.
ƒ A. Steinfeld, T. Fong, D. Kaber, M. Lewis, J. Scholtz, A. Schultz, and M. Goodrich.
Common Metrics for Human-Robot Interaction. In Proceedings of the 2006 Human-
Robot Interaction Conference. To appear.
ƒ J. A. Atherton, B. Hardin, and M. A. Goodrich. An Interaction Scheme for Multi-Agent
Teams on Mars: Coordinating Perspectives from Multiple Robotic Agents. In
Proceedings of the AAAI 2006 Spring Syposium: To Boldly Go Where No Human-Robot
Team Has Gone Before. To appear.
ƒ Q. Duan, C. Knutson, and M. A. Goodrich. Axiomatic Multi-Transport Bargaining: A
Quantitative Method for Dynamic Transport Selection in Heterogeneous Multi-Transport
Wireless Environments Proceedings of the 2006 IEEE Wireless Communications and
Networking Conference. To appear.
ƒ J. W. Crandall and M. A. Goodrich. Learning to Compete, Compromise, and Cooperate
in Repeated General-Sum Games. Proceedings of the 2005 International Conference on
Machine Learning. Bonn, Germany, August 7-11.
ƒ M. Quigley, B. Barber, S. Griffiths, and M. A. Goodrich. Towards Real-World
Searching with Fixed-Wing Mini-UAVs. Proceedings of the 2005 IEEE/RSJ
International Conference on Intelligent Robots and Systems. Edmonton, Alberta,
Canada. August 2-6.
ƒ C. W. Nielsen, M. A. Goodrich, and R. J. Rupper. Towards Facilitating the Use of a Pan-
Tilt Camera on a Mobile Robot. Proceedings of IEEE International Workshop on Robots
and Human Interactive Communications. Nashville, TN. 2005.
ƒ M. A. Goodrich, R. J. Rupper, and C. W. Nielsen. Perceiving Head, Shoulders, Eyes and
Toes in Augmented Virtuality Interfaces for Mobile Robots. Proceedings of IEEE
International Workshop on Robots and Human Interactive Communications. Nashville,
TN. 2005.
ƒ M. Quigley, M.A. Goodrich, S. Griffiths, A. Eldredge, and R.W. Beard. Target
Acquisition, Localization, and Surveillance using a Fixed-Wing, Mini-UAV and
Gimbaled Camera. Proceedings of ICRA 2005, April 18-22, 2005, Barcelona, Spain.

Page 294 of 394


C3 CS 12/14/04
ƒ M. A. Goodrich, M. Quigley, and K. Cosenzo. Task Switching and Multi-Robot Teams.
Proceedings of the Third International Multi-Robot Systems Workshop, March 14-16,
2005, Washington, DC.
• M. A. Goodrich and M. Quigley. Satisficing Q-Learning: Efficient Learning in Problems
with Dichotomous Attributes. Proceedings of ICML-A 2004, December 16-18, 2004,
Louisville, Kentucky. Winner of best paper award.
• B. Ricks, C. W. Nielsen, and M. A. Goodrich. Ecological Displays for Robot Interaction:
A New Perspective. Proceedings of IROS 2004. Sept 28-Oct 2, 2004, Sendai, Japan.
• M. Quigley, M. A. Goodrich, and R. W. Beard. Semi-Autonomous Human-UAV
Interfaces for Fixed-Wing Mini-UAVs. Proceedings of IROS 2004. Sept 28-Oct 2, 2004,
Sendai, Japan.
• M. A. Goodrich, E. R. Boer, J. W. Crandall, R. W. Ricks, and M. L. Quigley. Behavioral
Entropy in Human-Robot Interaction. Proceedings of PERMIS 2004. Aug 24-26, 2004,
Gaithersburg, Maryland.
• H. R. Duffin, C. D. Knutson, and M. A. Goodrich. Prioritized Soft Constraint
Satisfaction: A Qualitative Method for Dynamic Transport Selection in Heterogeneous
Wireless Environments. Proceedings of the IEEE Wireless Communication and
Networking Conference (WCNC 2004), Atlanta, Georgia, March 21-25, 2004.
• J. W. Crandall and M. A. Goodrich. Measuring the Intelligence of a Robot and Its
Interface. Proceedings of PERMIS 2003, September 2003.
• D. R. Olsen, Jr., and M. A. Goodrich. Metrics For Evaluating Human-Robot Interactions.
Proceedings of PERMIS 2003, September 2003.
• J. L. Stimpson and M. A. Goodrich. Learning To Cooperate in a Social Dilemma: A
Satisficing Approach to Bargaining. ICML 2003 Proceedings. Washington D.C., USA,
August 2003.
• J. Howlett, M. A. Goodrich, and T. McLain. Learning Real-Time A* Path Planner for
Sensing Closely-Spaced Targets from an Aircraft. To appear in AIAA Guidance,
Navigation, and Control Conference.
• J. L. Stimpson and M. A. Goodrich. Learning To Cooperate in a Social Dilemma: A
Satisficing Approach to Bargaining. In ICML 2003 Proceedings. Washington D.C.,
USA, August 2003.
• C. N. Nielsen, M. A. Goodrich, and J. W. Crandall, Experiments in Human-Robot
Teams. In proceedings of the 2002 NRL Workshop on Multi-Robot Systems, Available in
Eds. A. C. Schultz and L. E. Parker, MultiRobot Teams: From Swarms to Intelligent
Automata. Volume 2, 2003, Kluwer Academic Publisher.
• J. W. Crandall and M. A. Goodrich, Characterizing Efficiency of Human Robot
Interaction: A Case Study of Shared-Control Teleoperation. In proceedings of the 2002
IEEE/RSJ International Conference on Intelligent Robots and Systems.
• T. J. Palmer and M. A. Goodrich, Satisficing Anytime Action Search for Behavior-Based
Voting. In proceedings of the 2002 International Conference on Robotics and
Automation.
• R. W. Beard, T. W. McLain, and M. A. Goodrich. Coordinated Target Assignment and
Intercept for Unmanned Air Vehicles. Proceedings of the 2002 International Conference
on Robotics and Automation.

Page 295 of 394


C3 CS 12/14/04
• J. L Stimpson, M. A. Goodrich, and L. C. Walters, Satisficing and Learning Cooperation
in the Prisoner's Dilemma. In proceedings of 2001 International Joint Conference on
Artificial Intelligence.
• J. Tang, Y.K. Ng, and M. A. Goodrich. A Binary-Categorization Approach for
Classifying Multiple-Record Web Documents Using Application Ontologies and a
Probabilistic Model. In proceedings 7th International Conference on Database Systems
for Advanced Applications (DASFAA 2001) , Hong Kong, April 18-20, 2001.

Scholarly Activities
Professional Societies
Senior Member, IEEE
Member, ACM
Member, AAAI

Reviewed papers for the following journals:


International Journal of Robotics Research
Pattern Analysis and Applications
International Journal of Human Computer Studies
IEEE Transactions on Systems, Man, and Cybernetics.
IEEE Transactions on Fuzzy Systems
Journal of Multi-Agent Systems
IEEE Transactions on Robotics

Conference Session Administration (Since 2000)


General Chair, 2006 Human Robot Interaction Conference. A newly created conference
sponsored by the ACM SIGCHI/SIGART in cooperation with AAAI, HFES, and IEEE Systems,
Man, and Cybernetics Society.
Steering Committee Co-Chair, Human Robot Interaction Conference.
Program Committee, 2005 AAMAS Workshop on Intelligent and Adaptive Agents.
Panel Organizer 2004 Conference on Human Factors in Computing systems panel on human
interaction with automobiles.
Panelist 2004 Conference on Human Factors in Computing systems panel on human interaction
with robots.
Co-organizer 2002 AAAI Fall Symposium on Human-Robot Interaction.
Session Chair 2001 IEEE International Conference on Systems, Man, and Cybernetics
2000 IEEE International Conference on Systems, Man, and Cybernetics

Courses Taught 2005-2006


Winter 2005: C S 252 sections 001 and 002
Fall 2005: C S 470 section 001
C S 670 section 001
Winter 2006: C S 252 sections 001 and 002
Page 296 of 394
C3 CS 12/14/04
C S 601R section001

Other Duties
Supplemental research -- 4 hours per week for 6 months -- Army Research Lab
Conference committee service -- 12 hours per week for 3 months -- Human-Robot Interaction
Chair of department teaching committee.
Member of faculty recruiting committee.

Academic Advisor
Philip Cook Ph.D. Current Multi-agent learning
Lanny Lin Ph.D. Current Artificial Intelligence
Alan Atherton Ph.D. Current Ecological robot displays
Curtis Nielsen Ph.D. Jan 2006 Ecological Interfaces for UGVs
Jacob Crandall Ph.D. Dec 2005 Multi-agent learning
Joseph Cooper M.S. Current Interfaces for UAVs
Ben Hardin M.S. Current Human factors of multi-tasking
Randall Rupper M.S. Current Interactive learning
Bob Ricks M.S. August 2004 Ecological robot displays
Jacob Crandall M.S. September 2003 Neglect tolerant robotics
Curtis Nielsen M.S. January 2003 Topological robot maps
Jeff Stimpson M.S. July 2002 Satisficing multi-agent learning
Thomas J. Palmer M.S. July 2001 BRUVO robot architecture
June Tang M.S. March 2001 Probabilistic data categorization

Scholarly Research and Time Division


Scholarly work: 40%
Research area:
1: Human-Robot Interaction: Designing interfaces and conducting human factors
research for air and ground robots.
2: Multi-Agent Learning: Creating and analyzing algorithms that allow multiple learning
agents to learn quality solutions.

Page 297 of 394


C3 CS 12/14/04
Michael D. Jones
Assistant Professor of Computer Science
Not Tenured
Brigham Young University

Academic History
2001-present Assistant Professor of Computer Science Brigham Young University

Education
Ph.D., Computer Science, University of Utah: December 2001. Dissertation: Formal
Verification of Parameterized Protocols on Branching Networks. Advisor: Ganesh
Gopalakrishnan.
M.S., Computer Science, Brigham Young University, August 1997. Thesis: Representing
Abstract Theories Using Predicate Types, Advisor: Phillip J. Windley.
B.S., Computer Science, Mathematics Minor, Brigham Young University, April 1995.

Professional Development Activities


Computing Research Associates New Faculty Workshop. Washington, D.C.. January 2002.
BYU New Faculty Seminar. Provo, Utah. Spring 2002.

Refereed Journal Publications


K. Seppi, M. Jones and P. Lamborn, “Guided model checking with a Bayesian Meta-
Heuristic”, Fundamentae Informatica. Vol. 70(1,2), pp. 111-126. March 2006
M. Jones and J. Sorber, “Parallel Search for LTL Violations”, Software Tools for
Technology Transfer, Vol 7(1), pp. 31-42. January 2005.

Refereed Conference Publications


M. Lewis and M. Jones. “A Dynamic Dead Variable Analysis for Explicit Model
Checking”, 10th International ACM Workshop on Partial Evaluation and Program
Manipulation (PEPM’06), Charleston, South Carolina, January 2006.

M. Jones and E. Mercer. “Model Checking Machine Code with the GNU Debugger”,
12th International SPIN Workshop on Model Checking of Software (SPIN 2005), San
Francisco, California, August 2005.

T. Bao and M. Jones. “Time-efficient Model Checking with Magnetic Disk”, Tools and
Algorithms for the Construction and Analysis of Systems (TACAS 2005). Edinburgh,
Scotland, April 2005.

M. Jones, D. Delorey and A. Benson. “Using Refinement to Show Compatibility”


Theorem Provers in Higher-Order Logic (TPHOLs 2004). Park City, Utah, September
2004.

B. Smith, K. Seamons and M. Jones “Responding to Policies at Run Time: The Design
and Implementation of a Complete Strategy for Automated Trust Negotiation in
TrustBuilder” 5th IEEE International Workshop on Policies for Distributed Systems and
Page 298 of 394
C3 CS 12/14/04
Networks. Yorktown Heights, New York, June, 2004.

M. Jones and E. Mercer. “Explicit state model checking with Hopper” 11th International
SPIN Workshop on Model Checking of Software, Barcelona, Spain, April 2004.

M. Jones, E. Mercer, T. Boa, R. Kumar, P. Lamborn, “Benchmarking Explicit State


Parallel Model Checkers”, PDMC03: International Workshop on Parallel and
Distributed Model Checking. Boulder, Colorado, July 2003.

A. Weinzoepflen, M. Jones, D. Mery, D. Cansell and G. Gopalakrishnan, “Incremental


proof of the producer/consumer property for the PCI protocol” ZB2002: Formal
Specification and Development in Z and B. Grenoble, France, January 2002.

Funding
“Algorithm Visulation for CS 312”, Funded by the Microsoft Corporation in the amount
of $3,610. January 2006.

“Design Technology for Protocols”, Funded by Strategic CAD Labs, Intel Corporation in
the amount of $24,000. April 2002.

Courses Taught
Winter Semester 2006
CS 686: Advanced Model Checking
CS 312: Algorithm Analysis
Fall Semester 2005
CS 786R: Readings in Model Checking
CS 611: Computability and Complexity Theory
Winter Semester 2005
CS 686: Advanced Model Checking
CS 312: Algorithm Analysis

Students Advised
Tonglaga Bao. PhD expected in Spring 2007.
Kevin Simonson, PhD expected in Spring 2007.

Time Allocation
40% Teaching, 60% Research.

Major Scholarly Activities


Model checking with magnetic disk. The central limiting factor in explicit state enumeration
model checking is the amount of space available for storing visited states. One way to increase
storage space is to use magnetic disk. Doing so requires new algorithms for efficiently using
magnetic disk in addition to random access memory.

Data abstraction for software model checking. Predicate abstraction, which is the dominant data
abstraction technique for software model checking, is usually done in a manner that also requires
Page 299 of 394
C3 CS 12/14/04
control abstraction. Data abstraction techniques, including specialized forms of predicate
abstraction, that do not require control abstraction result in more accurate results while saving
computational resources.

Verification of feedback controller implementations. Feedback control is grounded in a rich


theory which includes sophisticated analysis techniques for reasoning about the behavior of
mathematical description of a controller design. Unfortunately, these analysis techniques are of
little value when reasoning about the dynamics of an actual controller implementation on a
microprocessor. Combinations of feedback control theory and explicit model checking can
provide some assurance that a specific implementation does or does not have certain properties.

Page 300 of 394


C3 CS 12/14/04
Charles D. Knutson
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
2006-present Associate Professor of Computer Science, Brigham Young University
2000-2006 Assistant Professor of Computer Science, Brigham Young University
1999-2000 Senior Instructor, Computer Science, Oregon State University

Education
PhD Computer Science Oregon State University January 1998
MS Computer Science Brigham Young University August 1994
BS Computer Science Brigham Young University April 1988

Professional Development
Vice President , Research and Development Counterpoint Systems Foundry, Inc.

Relevant Employment
1996-1999 Vice President , Research and Development
Counterpoint Systems Foundry, Inc.
1994-1996 Software Quality Consultant, ComSoft Consulting
1991-1994 Development Engineer/Technical Lead, NetWare Products Division
Novell, Inc.
1990-1991 System Test Manager, Client Software, NetWare Products Division, Novell, Inc.
1989-1990 System Test Supervisor/Technical Lead, NetWare Products Division, Novell, Inc.
1990-1990 Columnist, LAN Times
1990-1990 Contributing Editor, NetWare Technical Journal
1988-1989 Development Engineer, Personal Computer Group, Hewlett-Packard

Consulting

I've done consulting for companies including Hewlett-Packard (Infrared data communication
specifications), Zilog (Infrared data communication specifications), Motorola (legal consulting,
Bluetooth-enabled medical equipment), Novell (legal consulting), Helius (legal consulting), and
Extended Systems (infrared data communication specifications, training courses).

Principle Publications
Journal Publications
Seth James Nielson and Charles D. Knutson. "Design Dysphasia and the Pattern Maintenance
Cycle." Information and Software Technology, Accepted for publication, To appear Winter
2006.

Academic Conference Publications

Page 301 of 394


C3 CS 12/14/04
Qiuyi Duan, Lei Wang, Charles D. Knutson, and Michael A. Goodrich. "Axiomatic Multi-
Transport Bargaining: A Quantitative Method for Dynamic Transport Selection in
Heterogeneous Multi-Transport Wireless Environments." Proceedings of the IEEE Wireless
Communication and Networking Conference (WCNC 2004), Las Vegas, Nevada, April 3-6,
2006.

Timothy W. van der Horst, Tore Sundelin, Kent E. Seamons, and Charles D. Knutson.
"Mobile Trust Negotiation: Authentication and Authorization in Dynamic Mobile Networks."
Proceedings of the Eighth IFIP TC-6 TC-11 Conference on Communications and Multimedia
Security (CMS 2004), Cumbria, England, September 15-18, 2004.

Seth J. Nielson and Charles D. Knutson. "OO++: Exploring the Multiparadigm Shift."
Proceedings of the Workshop on Multiparadigm Programming with Object-Oriented
Languages (MPOOL 2004), Oslo, Norway, June 15, 2004.

Charles D. Knutson, Ryan W. Woodings, Shannon B. Barnes, Heidi R. Duffin, and Jeffrey M.
Brown. "Dynamic Autonomous Transport Selection in Heterogeneous Wireless
Environments." Proceedings of the IEEE Wireless Communication and Networking
Conference (WCNC 2004), Atlanta, Georgia, March 21-25, 2004.

Heidi R. Duffin, Charles D. Knutson, and Michael A. Goodrich. "Prioritized Soft Constraint
Satisfaction: A Qualitative Method for Dynamic Transport Selection in Heterogeneous
Wireless Environments." Proceedings of the IEEE Wireless Communication and Networking
Conference (WCNC 2004), Atlanta, Georgia, March 21-25, 2004.

Casey T. Deccio, Joseph Ekstrom, D. Ryan Partridge, Kevin B. Tew, and Charles D. Knutson.
"A Study of the Suitability of IrOBEX for High-Speed Exchange of Large Data Objects."
Proceedings of the IEEE Global Communications Conference 2003 (GLOBECOM 2003),
San Francisco, California, December 1-5, 2003.

David K. Vawdrey, Tore L. Sundelin, Kent E. Seamons, and Charles D. Knutson. "Trust
Negotiation for Authentication and Authorization in Healthcare Information Systems."
Proceedings of the 25th Annual International Conference of the IEEE Engineering in
Medicine and Biology Society, Cancun, Mexico, September 17-21, 2003.

David K. Vawdrey, Eric S. Hall, and Charles D. Knutson. "A Self-Adapting Healthcare
Information Infrastructure Using Mobile Computing Devices." Proceedings of the 5th IEEE
International Workshop in Enterprise Networking and Computing in Healthcare Industry
(HealthCom 2003), Santa Monica, California, June 6-7, 2003.

Shannon B. Barnes, Ryan W. Woodings, and Charles D. Knutson. "Transport Discovery in


Wireless Multi-Transport Environments." Proceedings of the IEEE Wireless
Communications and Networking Conference 2003 (WCNC 2003), New Orleans, Louisiana,
March 17-19, 2003.

Page 302 of 394


C3 CS 12/14/04
James C. Funk, Heidi R. Duffin, Lichen Dai, and Charles D. Knutson. "Inverse Multiplexing in
Short-Range Multi-Transport Wireless Communications." Proceedings of the IEEE Wireless
Communications and Networking Conference 2003 (WCNC 2003), New Orleans, Louisiana,
March 17-19, 2003.

Eric S. Hall, David K. Vawdrey, and Charles D. Knutson. "RF Rendez-Blue: Easing the
Bluetooth Power and Delay Burdens in Mobile Systems." Proceedings of the Eleventh IEEE
International Conference on Computer Communications and Networks (IC3N '02), Miami,
Florida, October 14-16, 2002.

James Funk and Charles D. Knutson. "Evaluating the Capacity of RLL Encoding for High
Bandwidth Infrared Channels." Proceedings of the 3rd International Symposium on
Communication Systems, Networks and Digital Signal Processing (CSNDSP '02), Stafford,
England, July 15-17, 2002.

Ryan Woodings, Derek Joos, Trevor Clifton, and Charles D. Knutson. "Rapid Heterogeneous Ad
Hoc Connection Establishment: Accelerating Bluetooth Inquiry Using IrDA." Proceedings of
the Third Annual IEEE Wireless Communications and Networking Conference (WCNC '02),
Orlando, Florida, March 18-21, 2002.

Michael G. Robertson, Scott V. Hansen, Franklin E. Sorenson, and Charles D. Knutson.


"Modeling IrDA Performance: The Effect of IrLAP Negotiation Parameters on Throughput."
Proceedings of the Tenth IEEE International Conference on Computer Communications and
Networks (ICCCN '01), Phoenix, Arizona, October 15-17, 2001.

Bradley J. Baird, Mark Clement, Charles D. Knutson, and Quinn Snell. "The Impact of
Hardware Characteristics on Firewall Performance." Proceedings of the 2001 International
Symposium on Performance Evaluation of Computer and Telecommunication Systems,
Orlando, Florida, July 15-19, 2001.

Stephane Chatre, Charles D. Knutson, Dragos Margineantu, and Carsten Schulz-Key.


"Improving DLX Performance by Taking Some of the Reduction out of RISC." Proceedings
of the Conference on Technical Informatics, Timisoara, Romania, November 14-16, 1996.

Charles D. Knutson. "Where did the System Test Department Go? (Or Through the Hourglass
and What Novell Found There)." Proceedings of the Fourteenth Annual Pacific Northwest
Software Quality Conference (PNSQC '96), Portland, Oregon, October 28-30, 1996.

Charles D. Knutson, Timothy A. Budd, and Curtis R. Cook. "Multiparadigm Patterns of Thought
and Design." Proceedings of the Third Annual Conference on the Pattern Languages of
Programs (PLOP3), Monticello, Illinois, September 4-6, 1996.

Charles D. Knutson. "Software Testing in a Network Environment." Proceedings of the


International Conference on Achieving Quality in Software (AQUIS '91), Pisa, Italy, April
22-24, 1991.

Page 303 of 394


C3 CS 12/14/04
Magazine Publications
David K. Vawdrey, Eric S. Hall, Charles D. Knutson, James K Archibald. "Enabling Remote
Access to Personal Electronic Medical Records. " IEEE Engineering in Medicine and
Biology Magazine, vol. 22, no. 2, May/June 2003.

Charles D. Knutson, David K. Vawdrey, Eric S. Hall. "Bluetooth: An Emerging Technology for
Wireless Personal Area Networks." IEEE Potentials Magazine, October/November, 2002.

Charles D. Knutson, Timothy A. Budd, and Hugh Vidos. "Multiparadigm Design of a Simple
Relational Database." ACM SIGPLAN Notices, 35(12):51-61, December 2000.

Tutorials and Panels


Charles D. Knutson (Moderator), Roberto Aiello, Nick Epperson, Larry Mittag, Darrell Simms
(Panelists), "Wireless Personal Area Networks (Panel)." Proceedings of the 2002
International Telemetering Conference, San Diego, California, October 21-24, 2002.
Charles D. Knutson. "Short-Range Ad Hoc Point-to-Point Wireless Communication: Standards
from the Infrared data Association (IrDA)." Tutorial presented at The ACM SIGMOBILE
Seventh Annual International Conference on Mobile Computing and Networking (MobiCom
'01), Rome, Italy, July 16-21, 2001.

Trade Conference Publications


Glade Diviney and Charles D. Knutson. "Introduction to Short-Range Wireless Data
Communications." Proceedings of the 2005 Embedded Systems Conference, San Francisco,
California, March 6-10, 2005. (Reprinted from ESC 2004 Proceedings.)

Charles D. Knutson and Sam Carmichael. "Verification and Validation for Embedded Software."
Proceedings of the 2005 Embedded Systems Conference, San Francisco, California, March 6-
10, 2005. (Reprinted from ESC 2001 Proceedings.)

Glade Diviney and Charles D. Knutson. "Introduction to Short-Range Wireless Data


Communications." Proceedings of the 2004 Embedded Systems Conference, San Francisco,
California, March 29-April 1, 2004.

Charles D. Knutson and Sam Carmichael. "Verification and Validation for Embedded Software."
Proceedings of the 2004 Embedded Systems Conference, San Francisco, California, March
29-April 1, 2004. (Reprinted from ESC 2001 Proceedings.)

Charles D. Knutson. "Infrared Data Communications with IrDA: A Tutorial." Proceedings of the
2002 Embedded Systems Conference, San Francisco, California, March 12-16, 2002.
(Reprinted from ESC 2001 Proceedings)

Charles D. Knutson and Sam Carmichael. "Verification and Validation for Embedded Software."
Proceedings of the 2002 Embedded Systems Conference, San Francisco, California, March
12-16, 2002. (Reprinted from ESC 2001 Proceedings.)

Page 304 of 394


C3 CS 12/14/04
Charles D. Knutson. "Fundamentals of Wireless Personal Area Networks (WPANs) for Portable
Device Designers." Proceedings of the 2002 Portable Design Conference, Santa Clara,
California, January 15-17, 2002.

Charles D. Knutson and Sam Carmichael. "Verification and Validation for Embedded Software."
Proceedings of the 2001 Embedded Systems Conference, San Francisco, California, April 9-
13, 2001. (Reprinted from ESC 2000 Proceedings.

Charles D. Knutson. "Infrared Data Communications with IrDA: A Tutorial." Proceedings of the
2001 Embedded Systems Conference, San Francisco, California, April 9-13, 2001. (Reprinted
from ESC 2000 Proceedings.)

Charles D. Knutson and Sam Carmichael. "Safety Critical Issues for Embedded Software."
Proceedings of the 2000 Embedded Systems Conference, San Jose, California, September 24-
28, 2000.

Charles D. Knutson and Sam Carmichael. "Verification and Validation for Embedded Software."
Proceedings of the 2000 Embedded Systems Conference, San Jose, California, September 24-
28, 2000.

Charles D. Knutson. "Infrared Data Communications with IrDA: A Tutorial." Proceedings of the
2000 Embedded Systems Conference, San Jose, California, September 24-28, 2000.
(Reprinted from ESC 1999 Proceedings.)

Charles D. Knutson. "IrDA Application Profile: Point and Shoot." Proceedings of the Seventh
Annual Portable by Design Conference, San Jose, California, February 22-25, 2000.

Charles D. Knutson. "Infrared Data Communications with IrDA: A Tutorial." Proceedings of the
1999 Embedded Systems Conference, San Jose, California, September 26-30, 1999.

Anthony Gregory, Lee Glover, Charles D. Knutson. "HP JetSend Mobile Technology."
Proceedings of the 1999 Embedded Systems Conference Summer, Danvers, Massachusetts,
June 28-30, 1999.

Charles D. Knutson and Brad Folsom. "IrMC: Infrared Solutions for Mobile Communications."
Proceedings of the 1999 Embedded Systems Conference Summer, Danvers, Massachusetts,
June 28-30, 1999.
Charles D. Knutson and Dan Pinson. "IrDA for Embedded Devices." Proceedings of the Wind
River Systems Developer Conference, San Francisco, California, May 10-13, 1999.

Charles D. Knutson, Eng Tan, and Glade Diviney. "IrReady: IrDA Interoperability Update."
Proceedings of the Sixth Annual Portable by Design Conference, San Jose, California,
February 22-26, 1999.

Page 305 of 394


C3 CS 12/14/04
Charles D. Knutson and Glade Diviney. "Infrared Data Communications with IrDA."
Proceedings of the International Conference and Exhibition on Portable Design, San Diego,
California, February 1-4, 1999.

Charles D. Knutson and Glade Diviney. "Walk Up, Point and Shoot: IrDA Interoperability."
Proceedings of the International Conference and Exhibition on Portable Design, San Diego,
California, February 1-4, 1999.

Charles D. Knutson. "Infrared Communications in Embedded Devices." Proceedings of the Wind


River Systems Developers Conference, San Francisco, California, May 11-13, 1998.

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "IrDA Infrared


Communications: An Overview." Proceedings of the Fifth Annual Embedded Systems
Conference East, Boston, Massachusetts, March 10-12, 1997.

Book Publications
Edward Leibing, Charles D. Knutson, and Michael Day. NetWare Workstation Troubleshooting
& Maintenance Handbook. New York: McGraw-Hill, 1990.

Charles D. Knutson with Jeffrey M. Brown. IrDA Principles and Protocols: The IrDA Library,
Volume 1. Salem, Utah: MCL Press, 2004.

Standards Documents
Nick Thomas (Editor), Amitabh Awasthi, Murray Baker, Ron Brown, Ben Bostwick, Bill Chen,
Ray Chock, Jae Chyun, Peter Eastwood, Nick Epperson, Lawrence Falkner, Damon
González, Charles D. Knutson, Dan McKay, Brett McCleary, Gavin Peacock, Jagdeep
Sahota, Dave Suvak, Nick Thomas, Merul Patel (Contributors). "Infrared Financial
Messaging Point and Pay Profile revision 1.0." Infrared Data Association, Walnut Creek,
California, January 29, 2002.

Charles D. Knutson (Editor), Yoshinobu Akimoto, Pete Bramhall, Eric Edwards, Melinda Grant,
Bryce Jeppsen, Gontaro Kitazumi, Yusuke Kushida, Rob Lockhart, Tim Looney, Lars
Novak, Hiroshi Ono, Gary Parham, Gavin Peacock, James Scales, Mike Sloane, Richard
Stow, David Suvak (Contributors). "IrDA Point and Shoot Profile revision 1.0." Infrared
Data Association, Walnut Creek, California, January 12, 2000.

Mitsuji Matsumoto (Author), Ken-ichiro Shimokura, Tatsuo Arai, Don Liechty, Gontaro
Kitazumi, Shuichiro Ono, Takahiro Imai, Akihiro Kikuchi (Key Contributors), Charles D.
Knutson, Eng Tan, Keming Yeh, Toshihiko Wakahara, Taku Onishi, Mizue Watanabe
(Contributors). "Infrared Data Association IrTran-P: Infrared Picture Transfer, Conformance
Tests and InterOperability Tests Guideline, revision 1.0." Infrared Data Association, Walnut
Creek, California, April 12, 1999.

Stephen Holmstead (Author), Kris Dahl, Anthony Gregory, Charles D. Knutson, Jeff Kunz, Pat
Megowan, Adrian Pfisterer, Kevin Smith, David Suvak (Contributors). "JetSend Protocol on

Page 306 of 394


C3 CS 12/14/04
IrDA Application Note, revision 1.0." Infrared Data Association, Walnut Creek, California,
January 28, 1999.

Charles D. Knutson (Editor), Yoshinobu Akimoto, Chuck Branson, Tom Brough, Lawrence
Faulkner, Vanessa Hutchison, Dave Jollota, Dave Lehman, Kerry Lynn, Mitsuji Matsumoto,
Pat Megowan, John Petrilla, Eng Tan, Lichen Wang, Maru Wang, Keming Yeh
(Contributors). "Infrared Data Association Interoperability Test Plan and Process, revision
1.2." Infrared Data Association, Walnut Creek, California, September 28, 1998.

Eng Tan (Editor), Yoshinobu Akimoto, Chuck Branson, Lawrence Faulkner, Vanessa Hutchison,
Dave Jollota, Charles D. Knutson, Dave Lehman, Kerry Lynn, Mitsuji Matsumoto, Pat
Megowan, John Petrilla, Lichen Wang, Maru Wang, Keming Yeh (Contributors). "Infrared
Data Association Interoperability Test Plan and Process, revision 1.0." Infrared Data
Association, Walnut Creek, California, February 28, 1998.

Technical Reports
Ryan W. Woodings, Shannon B. Barnes and Charles D. Knutson. "Transport Independence and
Multi-Transport Issues in Protocol Design," Brigham Young University, Mobile Computing
Laboratory, Technical Report BYU-MCL-02-02, September, 2002.

Shannon B. Barnes and Charles D. Knutson. "Transport Information Exchange Using Native
Service Discovery Mechanisms," Brigham Young University, Mobile Computing
Laboratory, Technical Report BYU-MCL-02-01, September, 2002.

Charles D. Knutson, Scott N. Woodfield, and Ben Brown. "Suitability Criteria for LAN-based
Unconstrained Distributed Objects." Technical Report 97-60-5, Oregon State University,
1997.

Charles D. Knutson, Hugh Vidos, and Timothy A. Budd. "Multiparadigm Design of a Relational
Database: A Preliminary Study." Technical Report 97-60-1, Oregon State University, 1997.

Charles D. Knutson, Timothy A. Budd, and Curtis R. Cook. "Multiparadigm Iteration Patterns."
Technical Report 96-60-14, Oregon State University, 1996.

Trade Journal Publications


Charles D. Knutson, Ryan W. Woodings, Derek Joos. "Access Isn't Always the Killer
Application." Wireless Systems Design, December, 2004.

Charles D. Knutson and Sam Carmichael. "Verification and Validation." Electronic Engineering
Times - China, July 15, 2002. (Chinese translation. Reprinted from Embedded Systems
Programming.)

Charles D. Knutson and Sam Carmichael. "Verification and Validation." Electronic Engineering
Times - Korea, June 1-15, 2002. (Korean translation. Reprinted from Embedded Systems
Programming.)

Page 307 of 394


C3 CS 12/14/04
Charles D. Knutson and Sam Carmichael. "Verification and Validation." Electronic Engineering
Times - Asia, June, 2002. (Reprinted from Embedded Systems Programming.)

Charles D. Knutson and Sam Carmichael. "Verification and Validation." Embedded Systems
Programming, 14(6):24-36, June 2001.

Charles D. Knutson. "Just My Opinion: Guest Editorial." The IrDA Bulletin, 3(1), January 2001.

Charles D. Knutson and Sam Carmichael. "Safety First: Avoiding Software Mishaps." Embedded
Systems Programming, 13(12):28-40, November, 2000.

Charles D. Knutson. "Infrared Communications with IrDA." Embedded Systems Programming,


13(6):69-86, June, 2000.

Charles D. Knutson. "Tips for Successful IrDA Design." Portable Design Magazine, 5(6):46,
June 1999.

Charles D. Knutson. "The Promise of IrDA." Communications Systems Design, 4(7):72, July,
1998.

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "Overview of IrDA


Specifications, Part 2." ComputerOEM Online, June 29, 1998. (Reprinted from Wireless
Design Online)

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "Overview of IrDA


Specifications, Part 1." ComputerOEM Online, June 8, 1998. (Reprinted from Wireless
Design Online)

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "Overview of IrDA


Specifications, Part 2." Medical Design Online, June 1, 1998. (Reprinted from Wireless
Design Online)

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "Overview of IrDA


Specifications, Part 2." Wireless Design Online, May 27, 1998.

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "Overview of IrDA


Specifications, Part 1." Medical Design Online, May 15, 1998. (Reprinted from Wireless
Design Online)

Patrick J. Megowan, David W. Suvak, and Charles D. Knutson. "Overview of IrDA


Specifications, Part 1." Wireless Design Online, May 15, 1998.

Charles D. Knutson. "WinProbe 95." PC Computing, 10(5):240, May, 1997.

Charles D. Knutson. "Fix-It." PC Computing, 10(5):230, May, 1997.

Page 308 of 394


C3 CS 12/14/04
Charles D. Knutson. "Qwirks." PC Computing, 10(4):219, April, 1997.

Charles D. Knutson. "LucasArts Afterlife." PC Computing, 10(3):206, March,1997.

Charles D. Knutson. "Building the Model Network." Byte, 21(10):101-104, October, 1996.

Charles D. Knutson. "Developing Quality." Byte, 21(9):93-96, September, 1996.

Charles D. Knutson. "Application Testing Improves on Networks." LAN Times, 8(7):41-45, April
1, 1991.

Charles D. Knutson. "Installing the OS/2 Requester, Part 2." LAN Times, 7(7):100-102, July,
1990.

Charles D. Knutson. "Manipulating the Bindery from the OS/2 Requester." NetWare Technical
Journal, 2(3):117-121, July, 1990.

Charles D. Knutson. "Installing the OS/2 Requester, Part 1." LAN Times, 7(6):108-109, June,
1990.

Charles D. Knutson. "Getting OS/2 Up and Running." LAN Times, 7(5):100-104, May, 1990.

Charles D. Knutson. "Connecting OS/2 to NetWare." LAN Times, 7(5):62-64, May, 1990.

Charles D. Knutson. "NetWare Utilities for OS/2." LAN Times, 7(4):94-95, April, 1990.

Matthew G. Brooks and Charles D. Knutson. "The NetWare Requester Meets OS/2 v1.2."
NetWare Technical Journal, 2(2):115-118, April, 1990.

Charles D. Knutson. "Tech Talk--OS/2 SQL Engines and NetWare LANs." InfoWorld, March,
1990.

Charles D. Knutson. "OS/2 Workstation Hardware." LAN Times, 7(3):103-106, March, 1990.

Charles D. Knutson. "NetWare Requester for OS/2." LAN Times, 7(2):95-97, February, 1990.

Charles D. Knutson. "Writing to SPX for OS/2." NetWare Technical Journal, 2(1):67-72,
January, 1990.

Danny Brand and Charles D. Knutson. "Novell Named Pipes." SQL Server Environment,
September, 1989.

Charles D. Knutson. "Working on the Pipeline." NetWare Technical Journal, 1(3):90-99, July,
1989.

Page 309 of 394


C3 CS 12/14/04
Scholarly Activities
Conferences

Publications Chair, Organizing Committee, The Sixth IEEE Wireless Communications and
Networking Conference (WCNC), New Orleans, Louisiana, March 13-17, 2005.

Session Chair, The Fifth IEEE Wireless Communications and Networking Conference (WCNC),
Atlanta, Georgia, March 21-25, 2004.

Technical Program Committee, The Fifth IEEE Wireless Communications and Networking
Conference (WCNC), Atlanta, Georgia, March 21-25, 2004.

Technical Program Committee, The Twelfth IEEE International Conference on Computer


Communications and Networks (IC3N), Dallas, Texas, October 20-22, 2003.

Technical Program Committee, IEEE Vehicular Technology Conference 2003 Symposium on


Integrated Heterogeneous Wireless Networks, Orlando, Florida, October 4-9, 2003.

IEEE TCCC Representative to INFOCOM 2003, San Francisco, California, March 30-April 3,
2003

Technical Program Committee, The Fourth IEEE Wireless Communications and Networking
Conference (WCNC), New Orleans, Louisiana, March 17-19, 2003

Technical Program Committee, IEEE Symposium on Ad Hoc Wireless Networks (SAWN) 2002
in conjunction with GLOBECOM 2002, Taipei, Taiwan, November 17-21, 2002

Reviewer, GLOBECOM 20002 General Symposium, Taipei, Taiwan, November 17-21, 2002

Panel Moderator, International Telemetering Conference (ITC '02), San Diego, California,
October 21-24, 2002

Session Chair, The Eleventh IEEE International Conference on Computer Communications and
Networks (IC3N), Miami, Florida, October 14-16, 2002

Technical Program Committee, The Eleventh IEEE International Conference on Computer


Communications and Networks (IC3N), Miami, Florida, October 14-16, 2002

Session Chair, The Tenth IEEE International Conference on Computer Communications and
Networks (ICCCN), Phoenix, Arizona, October 15-17, 2001

Technical Program Committee, Pacific Northwest Software Quality Conference (PNSQC) 2001,
Portland, Oregon, October 15-17, 2001

Reviewer, ACM Symposium on Mobile Ad Hoc Networking & Computing (MobiHoc) 2001,
Long Beach, California, October 4-5, 2001

Page 310 of 394


C3 CS 12/14/04
Technical Program Committee, Pacific Northwest Software Quality Conference (PNSQC) 2000,
Portland, Oregon, October 2000

Publications

Reviewer, IEEE Transactions on Information Technology in Biomedicine, November 2003 –


Present

Reviewer, Information and Software Technology, July 2003 – Present

Reviewer, IEEE Transactions on Wireless Communications, April 2002 – Present

Reviewer, Pattern Languages of Program Design 4, Neil Harrison, Brian Foote, and Hans
Rohnert, Eds., Reading, MA: Addison-Wesley, 2000

Contributing Editor, NetWare Technical Journal, Feb 1990 – Aug 1990

Infrared Data Association

Member, IrDA Architecture Council, Jan 2002 – Present

Member, IrOBEX Working Group, Jan 2002 – Present

Member, IrDA Financial Messaging Working Group, Feb 2001 – Present

Chair, IrDA Test and Interoperability Committee, Feb 1998 – Oct 1999

Member, IrDA Architecture Council, Feb 1998 – Oct 1999

Convenor, Digital Imaging SIG, Oct 1997 – Oct 1999

Co-Convenor, IrOBEX Interop Working Group, Feb 1998 – Oct 1998

Convenor, Test Frames Working Group, Feb 1998

Member, Interoperability Test Council, Jul 1997 - Feb 1998

Academic Honors

Sigma Xi, International Honor Society of Scientific & Engineering Research, Inducted May 1999

Upsilon Pi Epsilon, National Computer Science Honor Society, Inducted February 1998

President, Computer Science Graduate Student Association, Oregon State University, 1994-1995

Page 311 of 394


C3 CS 12/14/04
Teaching Honors

Outstanding Computer Science Instructor of the Year, National University, San Jose, California,
1988-1989

Outstanding Computer Science Course of the Year, National University, San Jose, California,
1988-1989

Professional Honors

Jesup High School (Jesup, Iowa) established the Charles Knutson Mathematics Award for
outstanding student mathematics achievement, 2004-2008

Affiliations

Member, IEEE Communications Society Technical Committee on Computer Communications,


April 2002 – Present

Member IEEE (Computer Society, Communications Society)

Member ACM (SIGMOBILE, SIGCOMM, SIGSOFT, SIGCSE)

Other Professional Activities

Review Panel, National Science Foundation, 2004

Team Member, Submission Evaluation Team, IEEE Computer Society International Design
Competition (CSIDC) 2002

Courses Taught 2005-2006


Winter 2005
CS 428 – Software Engineering
CS 404 – Computers and Society
CS 668 – Wireless Data Communications

Fall 2005
CS 404 – Computers and Society

Winter 2006
CS 404 – Computers and Society
CS 428 – Software Engineering

Other Duties
Chair of department Alumni Relations committee.
Member of department External Relations and Teaching Committees.
Page 312 of 394
C3 CS 12/14/04
Academic Advisor
Currently advisor to 9 students.

Scholarly Research and Time Division


Approximately 60% of my time is devoted to scholarly and/or research activities.

Research focus has been on wireless data communications, particularly in the area of the
intelligent, autonomous management of intra-device transport heterogeneity.

Page 313 of 394


C3 CS 12/14/04
Eric Mercer
Assistant Professor of Computer Science
Not Tenured
Brigham Young University

Academic History
2002-present Assistant Professor of Computer Science Brigham Young University

Education
2002 Ph.D. In Electrical and Computer Engineering University of Utah
1999 M.S. in Electrical Engineering University of Utah
1996 B.S. in Computer Engineering University of Utah

Computer Science Background


Took several computer science courses while pursuing degrees.

Principle Publications
Papers in Refereed Journals
- Q. Zheng, E. G. Mercer, and C. J. Myers, “Modular verification of timed circuits using
automatic abstraction,” IEEE Transactions on Computer-Aided Design of Integrated Circuits,
22(9):1138-1153, September, 2003.
- T. Kitai, Y. Oguro, T. Yoneda, E. Mercer, and C. Myers, “Partial order reduction for timed
circuit verification based on a level oriented model”, in IEICE Transactions on Fundamentals of
Electronics Communications and Computer Sciences, E86-D(12): 2601-2611, 2003.
- T. Yoneda, E. G. Mercer, and C. J. Myers, “Modular Synthesis of Timed Circuits using Partial
Order Reduction,” IEICE Transactions on Fundamentals of Electronics Communications and
Computer Sciences, E85-A(12): 2684-2692, 2002.

Papers in Refereed Conferences


- N. Rungta and E. G. Mercer, “A Context-sensitive Structural Heuristic for Guided Search
Model Checking”, 20th IEEE/ACM International Conference on Automated Software
Engineering, Long Beach, USA, pages 410-413, November 2005.
- E. G. Mercer and M. D. Jones, “Model Checking Machine Code with the GNU Debugger”,
SPIN Workshop on Model Checking of Software, San Francisco, USA, pages 251-265, August
2005.
- M. D. Jones and E. Mercer, “Explicit State Model Checking with Hopper,” SPIN Workshop on
Model Checking of Software, Barcelona, Spain, pages 146-150, May 2004.
- T. Kitai, Y. Oguro, T. Yoneda, E. G. Mercer, and C. J. Myers, “Level oriented Formal Model
for Asynchronous Circuit Verification and its Efficient Analysis Method,” in Proceedings of
Pacific Rim International Symposium on Dependable Computing, pages 210-220, 2002.
- E. G. Mercer, C. J. Myers, and T. Yoneda, “Modular Synthesis of Timed Circuits using Partial
Order Reduction,” in Proceedings Theory and Practice of Timed Systems, Electronic Notes in
Theoretical Computer Science, vol. 65.6, 2002.
- H. Jacobson, P. Kudva, P. Bose, P. Cook, S. Schuster, and E. G. Mercer, “Synchronous
Interlocked Pipelined CMOS,” in Proceedings of International Symposium on Asynchronous
Circuits and Systems, pages 3-12, April 2002.
Page 314 of 394
C3 CS 12/14/04
- Q. Zheng, E. G. Mercer, and C. J. Myers, “Automatic Abstraction for Verification of Timed
Circuits and Systems,” in Proceedings of International Conference on Computer Aided
Verification, pages 182-193, July 2001.
- K. C. Killpack, E. G. Mercer, and C. J. Myers, “A standard-Cell self-timed multiplier for power
and area critical synchronous systems,” in Advanced Research in VLSI, pages 188-201, March
2001.
- E. G. Mercer and C. J. Myers, “Stochastic cycle period analysis in timed circuits,” in
Proceedings of International Symposium on Circuits and Systems, May 2000.
Invited papers
- C. J. Myers, W. A. Belluomini, K. C. Killpack, E. G. Mercer, and E. Peskin, “Timed circuits: a
new paradigm for high-speed design,” in Proceedings of Asia and South Pacific Design
Automation Conference, pages 335-340, January 2001.

Papers in Refereed Workshops


- R. Kumar and E. G. Mercer, “Load Balancing Parallel Explicit State Model Checking”, in
Proceedings Parallel and Distributed Model Checking, pages 21-36, 2004.
- M. Jones, E. G. Mercer, T. Bao, R. Kumar, and P. Lamborn, “Benchmarking Explicit State
Parallel Model Checkers,” in Proceedings Parallel and Distributed Model Checking, pages 86-
100, 2003.
- E. G. Mercer, C. J. Myers, and T. Yoneda, “Improved POSET Timing Analysis in Timed Petri
Nets,” in Proceedings of International Workshop on Synthesis and System Integration of Mixed
Technologies, pages 26-29, October 2001.
- T. Yoneda, E. G. Mercer, and C. J. Myers, “Modular Synthesis of Timed Circuits using Partial
Order Reduction,” in Proceedings of International Workshop on Synthesis and System
Integration of Mixed Technologies, October 2001.
- E. G. Mercer and C. J. Myers, “Stochastic cycle period analysis in timed circuits,” In
Proceedings of International Workshop on Logic Synthesis, June 1999.

Invited seminars
- E. G. Mercer, “Using the runtime stack and static calling context to improve distance heuristics
in directed model checking”, Directed Model Checking, Dagsuhl Seminar Number 06172, April
26-29, 2006, Steffan EdelKamp and Seffan Leue.

Courses Taught 2005-2006


Winter 2005: C S 312 section 001
Fall 2005: C S 324 sections 001 and 002
C S 486 section 001
Winter 2006: C S 486 section 001

Other Duties
- Ph.D. Recruiting Committee Chair
- University Graduate Recruiting Council Member

Academic Advisor
- Joseph Edelman, M.S. Candidate
- Dritan Kudra, M.S. Candidate
Page 315 of 394
C3 CS 12/14/04
- Rahul Kumar, Ph.D. candidate
- Neha Rungta, Ph.D. candidate
- Joel Self, M.S. Candidate

Scholarly Research and Time Division


- Teaching, 35%
- Research, 45%
- Citizenship, 20%

My research objective is to make explicit state model checking (ESMC) a viable verification
technique in commercial tool flows for embedded systems software development.

Page 316 of 394


C3 CS 12/14/04
Bryan S. Morse
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
2005-present Associate Chair, Computer Science Dept. Brigham Young University
2000-present Associate Professor of Computer Science Brigham Young University
1994-2000 Assistant Professor of Computer Science Brigham Young University

Education
1995 Ph.D. in Computer Science University of North Carolina at Chapel Hill
1990 M.S. in Computer Science Brigham Young University
1986 B.S. in Computer Science Brigham Young University

Relevant Employment
1990–1994 Graduate Research Assistant Department of Computer Science
University of North Carolina
At Chapel Hill
1989–1990 Programmer IBM Educational Systems Division
1986–1988 Systems Engineer/Programmer IBM Federal Systems Division

Professional Development
Conferences, workshops, and professional development participation
(in addition to the papers/presentations listed in my CV):
• Regular attendee and participant at
o CVPR (primary computer vision conference)
o SIGGRAPH (primary computer graphics conference)
• Occasional attendance and participation at
o International Conference on Image Processing (1998, 2003)
o Shape Modeling International (2001, 2004)

Principle Publications
Papers in Refereed Journals
T. Sederberg, B. Morse, and X. Yu, “Image Reconstruction Using Data-Dependent Triangulation”,
Computer Graphics and Applications, March 2001.

M. Clement, G. Judd, B. Morse, and K. Flanagan, “The Performance Surface Paradigm for WANBased
Computing”, Journal of Supercomputing, Vol. 13(3), March 1999, pp. 267–282.

B. Morse, S. Pizer, D. Puff, C. Gu, “Zoom-Invariant Vision Of Figural Shape: Effects on Cores of
Image Disturbances”, Computer Vision and Image Understanding 69: 55–71, January 1998.

S. Pizer, B. Morse, D. Eberly, D. Fritsch, “Zoom-Invariant Vision Of Figural Shape: The Mathematics Of
Cores”, Computer Vision and Image Understanding, 69: 72–86, January 1998.

Page 317 of 394


C3 CS 12/14/04
C. Burbeck, S. Pizer, B. Morse, D. Ariely, G. Zauberman, J. Rolland, “Linking Object Boundaries At
Scale: A Common Mechanism for Size and Shape Judgments”, Vision Research 36(3): 361–372, 1996.

D. Eberly, R. Gardner, B. Morse, S. Pizer, and C. Scharlach, “Ridges for Image Analysis”, Journal of
Mathematical Imaging and Vision, 4:351–371, 1994.

B. Morse, S. Pizer, and Alan Liu, “Multiscale Medial Analysis of Medical Images”, in Information
Processing in Medical Imaging XIII (IPMI’93), H. H. Barrett and A. F. Gmitro, Eds. Lecture Notes in
Computer Science, 687: 112–131. Springer-Verlag, 1993. In revised form in Image and Vision
Computing, 12:327–338, July, 1994.

S. Pizer, C. Burbeck, J. Coggins, D. Fritsch, B. Morse, “Object Shape Before Boundary Shape:
Scale-Space Medial Axes”, presented at Shape in Picture (NATO Advanced Research Workshop),
September 1992. Journal of Mathematical Imaging and Vision, 4:303–313, 1994.

Papers at Refereed Conferences

D. Chen, B. Morse, B, Lowekamp,T. Yoo, “Hierarchically Partitioned Implicit Surfaces for Interpolating
Large Point Set Models”, to appear in Proceedings Geometric Modeling and Processing, 2006.

K. Steele, P. Egbert, and B. Morse, “Histogram Matching for Camera Pose Neighbor Selection”,
to appear in Proceedings Third International Symposium on 3D Data Processing, Visualization
and Transmission, 2006.

B. Morse, W. Liu, T. Yoo, and K. R. Subramanian, “Active Contours Using a Constraint-Based


Implicit Representation”, Computer Vision and Pattern Recognition, 2005.
N. Toronto, D. Ventura, and B. Morse, “Edge Inference for Image Interpolation”, International Joint
Conference on Neural Networks, 2005.

B. Morse, W. Liu, and L. Otis, “Empirical Analysis of Computational and Accuracy Tradeoffs Using
Compactly Supported Radial Basis Functions for Surface Reconstruction”, Shape Modeling International
2004.

T. Howard and B. Morse, “Interactive Level-Set Smoothing for Photo Editing”, Proceedings International
Conference on Image Processing (ICIP 2003), October 2003.

B. Morse and D. Schwartzwald, “Image Magnification Using Level-Set Reconstruction”, Proceedings


IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR) 2001.

B. Morse, T. Yoo, P. Rheingans, D. Chen, and K. R. Subramanian , “Complex Models Using Interpolated
Implicit Surfaces”, Shape Modeling International 2001.

T. Yoo, B. Morse, K. R. Subramanian, P. Rheingans, and M. Ackerman, “Anatomical Modeling


from Unstructured Samples Using Variational Implicit Surfaces”, Medicine Meets Virtual Reality
2001.

B. Morse, J. Wilkes, and P. Egbert, “Hough Transform Assisted Rectangle Extraction”, Proceedings of
the IASTED International Conference on Signal and Image Processing (SIP’99).

B. Morse, T. Howard, S. Larson, M. Bastian, and E. Mortensen “Color Quantization and Dithering
Gamuts”, Proceedings of the IASTED International Conference on Signal and Image Processing (SIP’99).
Page 318 of 394
C3 CS 12/14/04
B. Hansen and B. Morse, “Multiscale Registration Using Scale Trace Correlation”, Proceedings
IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’99).

S. Yu, M. Clement, Q. Snell, and B. Morse, “Parallel Algorithm and Processor Selection Based
on Fuzzy Logic”, Proceedings of the 7th International Conference on High Performance Computing and
Networking Europe, Amsterdam, The Netherlands, April 1999. Lecture Notes in
Computer Science, Springer-Verlag, Vol. 1593, pp. 441–449.

B. Morse, D. Ashton, and M. Bastian, “A Bayesian Exclusionary Rule for Hough Transforms”,
Proceedings International Conference on Computer Vision, Pattern Recognition, and Image Processing
(CVPRIP’98) in Joint Conference on Information Sciences (JCIS’98).

E. Sokolowsky, C. Songer, B. Morse, and P. Egbert, “User-Assisted Localized Line Segment Extraction
Using the Hough Transform”, Proceedings International Conference on Computer Vision, Pattern
Recognition, and Image Processing (CVPRIP’98) in Joint Conference on Information Sciences (JCIS’98).

B. Morse and D. Schwartzwald, “Isophote-Based Interpolation”, 1998 International Conference on Image


Processing (ICIP’98).

B. Morse, “Analysis of the Interpolation Error Between Multiresolution Images”, 1998 International
Conference on Image Processing (ICIP’98).

B. Morse and B. Hansen, “Scale Trace Correlation”, 1998 International Conference on Imaging
Science, Systems, and Technology (CISST’98).

M. Clement, S. Yu, Q. Snell, and B. Morse, “Parallel Algorithms for Image Convolution”, Proceedings of
the 1998 International Conference on Parallel and Distributed Processing Techniques and Applications
(PDPTA’98), Las Vegas, Nevada, July 1998.

M. Clement, B. Morse, J. K. Flanagan, W. Wei, and P. Crandall, “The Chordal Spoke ATM
Interconnection Network”, Proceedings of the 1997 International Conference on Parallel and Distributed
Processing Techniques (PDPTA’97), Las Vegas, Nevada, June 1997, pp. 1249–1258.

C. Duncan, M. Clement, and B. Morse, “Simulation and Analysis of Credit- and Rate-Based Switch
Interoperability in an ATM Network”, Proceedings of the Fifth International Conference on
Telecommunication Systems, Nashville, Tennessee, March 1997, pp. 265–269.

A. Liu, S. Pizer, D. Eberly, B. Morse, J. Rosenman, E. Chaney, E. Bullitt, and V. Carrasco, “Volume
Registration Using The 3D Core”, Visualization in Biomedical Computing ’94, SPIE 2659:217–226,
1994.

B. Morse, S. Pizer, and C. Burbeck, “General Shape and Specific Detail: Context-Dependent Use of Scale
in Determining Visual Form”, in Aspects of Visual Form Processing, 374–383, C. Arcelli, L. Cordella,
and G. Sanniti di Baja, Eds. World Scientific, Singapore, 1994. Presented at the Second International
Workshop on Visual Form.

D. Fritsch, S. Pizer, B. Morse, D. Eberly, and A. Liu, “The Multiscale Medial Axis And Its Applications
To Image Registration”, Pattern Recognition Letters, 15:445–452, 1994.

Page 319 of 394


C3 CS 12/14/04
S. Pizer, C. Burbeck, D. Fritsch, B. Morse, A. Liu, S. Murthy, and D. Puff, “Human Perception and
Computer Image Analysis of Objects in Images”, Proceedings Conference of Australian Pattern
Recognition Society (DICTA-93), 1993.

B. Morse, S. Pizer, and D. Fritsch, “Robust Object Representation Through Object-Relevant Use Of
Scale”, SPIE Medical Imaging ’94, 1994.

S. Pizer, D. Fritsch, B. Morse, D. Eberly, and A. Liu, “Multiscale Medial Axis Approaches for Object
Definition and Registration in Medical Images”, Proceedings International Conference on
Volume Image Processing, Dept. of Radiology, University of Utrecht, The Netherlands, 1993.

E. Mortensen, B. Morse, W. Barrett, J. Udupa, “Adaptive Boundary Detection Using ‘Live-Wire’


Two-Dimensional Dynamic Programming”, IEEE Proceedings Computers in Cardiology, 1992.

W. Barrett and B. Morse, “A Relaxation Algorithm for Segmentation of the Endocardial Surface
From Cine CT”, IEEE Proceedings Computers in Cardiology, September, 1989.

Books
Weixel, Fulton, Morse, Morse, and Barksdale, Multimedia Basics, Course Technologies, 2003.
Morse, Morse, Uibel, and Barksdale, Introductory Adobe Photoshop CS 2 Basics, Course Technologies,
2006.

Other Publications
Mark Clement, Bryan Morse, Glenn Judd, and Joy Peterson, “Performance Surface Analysis of
WAN-Based Clusters”, Proceedings of the 31st Hawaii International Conference on System
Sciences, January 6–9, 1998, Vol. 7, pp. 564–573.

D. Tam, W. Barrett, B. Morse, E. Mortensen, “Breakpoint Skeletal Representation and Compression of


Document Images”, IEEE Data Compression Conference (DCC’98), pp. 75, Snowbird, Utah, March
1998.

Other Presentations
B. Morse, “Applications of Radial Basis Functions to Surface Reconstruction”, invited presentation at
SIAM Conference on Geometric Design and Computing, November, 2003.

T. Howard and B. Morse, “Interactive Level-Set Tools for Photo Editing”, Technical Sketch presented at
ACM SIGGRAPH, 2002.

Thesis and Dissertations Written


“Trainable Automated Boundary Tracking Using Two-dimensional Graph Searching with Dynamic
Programming”, M.S. Thesis, Brigham Young University, August 1990.

“Computation of Object Cores from Grey-level Images”, Ph.D. Dissertation, University of North
Carolina at Chapel Hill, August 1994.

Technical Reports
S. Pizer, J. Coggins, D. Fritsch, B. Morse, “Image Object Description Without Explicit Edge-
Finding”, Technical Report #91-049. Department of Computer Science, University of North
Carolina at Chapel Hill, 1991.

Page 320 of 394


C3 CS 12/14/04
B. Morse, S. Pizer, and C. Burbeck, “A Hough-like Medial Axis Transform”, Technical Report #91-044.
Department of Computer Science, University of North Carolina at Chapel Hill, 1991.

Scholarly Activities
Honors:
BYU College of Physical and Mathematical Sciences, Teaching Award (under 10 years), 2001.

Professional Societies and Organizations:


Member, Association for Computing Machinery
Member, IEEE Computer Society
Research Funding

External Funding:
National Science Foundation (2005-2008)
$501,426, “UAV-EnabledWilderness Search and Rescue: A Human-Centered Approach”,
Michael Goodrich, Bryan Morse, and Tim McLain.
Adobe Systems, Inc. (1998–2006)
$71,000, “Integrated Color Quantization and Dithering.”
$35,500, “Resolution Enhancement Through Geometric Reconstruction.”
$52,800, “Resolution Enhancement Through Combined Geometric Reconstruction and
Datadependent
Triangulation”, with Tom Sederberg (co-PI).
$37,000, “Comparison of Hierarchical Toboggoning to Data Sieve Segmentation”.
$37,000, “Level-Set Based Global Sharpening”.
$77,000, “Interactive Filling-In Tools”.
$40,000, “Enhanced Interactive Level-Set Tools”.
$40,000, “Interactive Image Repair”.
$45,000, “Image Magnification”.
$45,000, “Image Magnification (cont’d)”.
Utah State Centers of Excellence Program (1996–2001)
$600,000, “Center for Research in Interactive Visual and Imaging Technologies (RIVIT)”,
William A. Barrett (PI), Bryan S. Morse, Parris Egbert, and Tom Sederberg.
Sprint Corporation (1996–1998)
$99,900, “Using ATM Networks For High Performance Computing”,
Bryan S. Morse, Mark Clement, and J. Kelly Flanagan (co-PIs).
$150,000, “Performance Surface Analysis of Wide-Area Distributed Systems”,
J. Kelly Flanagan, Mark Clement, and Bryan S. Morse (co-PIs).
$30,000, “Distributed Computing Services for WAN Based Environments”,
Mark Clement, Bryan S. Morse, and Quinn Snell (co-PIs).

Courses Taught 2005-2006


Winter 2005: C S 450 section 001
C S 750 section 001
Fall 2005: C S 330 section 002
C S 650 section 001
Winter 2006: C S 450 section 001

Page 321 of 394


C3 CS 12/14/04
Other Duties
Serve as the Associate Chair for the Department as well as the Chair of the External Relations
Committee.

Academic Advisor
I currently serve as academic advisor for 8 graduate students and am mentoring one
undergraduate student.

Approximately 40% of my time is spent in research or other scholarly activities. The products of
these activities are reflected in the publications, presentations, and grants received as listed in my
CV. My current research focuses primarily on the following:
• vision algorithms for UAV-enabled search and rescue
• image magnification using level-set and PDE-based methods in a Bayesian framework
• implicit surface modeling using radial basis functions
• active contours models using these RBF-based implicit surfaces
• image-based color selection

Scholarly Research and Time Division


Computational vision, image processing, and computer graphics.
Secondary interests in pattern recognition, parallel processing, and distributed systems.

Page 322 of 394


C3 CS 12/14/04
Dennis Ng
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
• Brigham Young University, Associate Professor of Computer Science, September 1997
- Present.
• Brigham Young University, Assistant Professor of Computer Science, September 1991
- August 1997.

Education
Kansas State University, Ph.D., Computer Science, June 1991.
Brigham Young University, M.S., Computer Science, December 1984.
Brigham Young University, B.S., Computer Science, August 1982.

Publications (last 5 years):


• Journals

1. Xiaochun Yang and Yiu-Kai Ng, “Answering Form-Based Web Queries Using the
Data-Mining Approach,” to appear in Journal of Intelligent Information Systems
(JIIS), Kluwer Academic Publishers, 2006. (Category 2)

2. Lihua Zhang and Yiu-Kai Ng, “A Query Engine for Retrieving Information from
Chinese HTML Documents,” in International Journal of Computer Processing
of Oriental Languages (IJCPOL), World Scientific Publishers, Volume 17,
Number 3, September 2004, pp. 135-164. (Category 2)

3. Jerry Gao, Dallan Quass, and Yiu-Kai Ng, “Selective-Splitting and Cache-
Maintenance Algorithms for Associative-Client Caches,” Journal of Distributed
and Parallel Databases, Volume 16, Number 1, Kluwer Academic Publishers,
July 2004, pp. 5-43. (Category 1)

4. Quan Wang and Yiu-Kai Ng, “An Ontology-Based Binary-Categorization Approach


for Recognizing Multiple-Record Web Documents Using a Probabilistic Retrieval
Model,” Journal of Information Retrieval, Vol. 6, No. 3-4, September
- December, 2003, Kluwer Academic Publishers, pp. 295-332. (Category 1)

5. Linus Kwong and Yiu-Kai Ng, “Performing Binary-Categorization on Multiple-


Record Web Documents Using Information Retrieval Models and Application Ontologies,”
Journal of World-Wide Web, Vol. 6, No. 3, September 2003, Kluwer
Academic Publishers, pp. 281-303. (Category 2)

6. Seung-Jin Lim and Yiu-Kai Ng, “A Hybrid Fragmentation Approach for Distributed
Deductive Database Systems,” Journal of Knowledge and Information
Systems, Springer, Vol. 3, No. 2, pp. 198-224, May 2001. (Category 2)
Page 323 of 394
C3 CS 12/14/04
• Book Chapters

1. Seung-Jin Lim and Yiu-Kai Ng, “Extracting Structures of HTML Documents Using
a High-Level Stack Machine,” in Information Networking in Asia (H. Higaki, Y.
Shibata, and M. Takizawa, eds.), Chapter 16, pp. 177-188, Gordon and Breach
Science Publishers, Newark, New Jersey, February 2001. (Category 2)

• Workshop Proceedings

1. Kelvin Lau and Yiu-Kai Ng, “A Client-Based Web Prefetching Management System
Based on Detection Theory,” in Proceedings of the 9th International Workshop
on Web Caching and Content Distribution (WCW9), pp. 129-143, LNCS 3293, October
18-20, 2004, Beijing, China. (Category 2)

• Conference Proceedings

1. Xiaochun Yang, Lin Li, Yiu-Kai Ng, Bin Wang, and Ge Yu, “Associated Load
Shedding Strategies for Computing Multi-Joins in Sensor Networks,” to appear
in Proceedings of the 11th International Conference on Database Systems for Advanced
Applications (DASFAA 2006), LNCS 3882, pp. 50-64, Singapore, April
2006. (Category 2)

2. Rajiv Yerra and Yiu-Kai Ng, “A Sentence-Based Copy Detection Approach for
Web Documents,” in Proceedings of the Second International Conference on Fuzzy
Systems and Knowledge Discovery (FSKD’05), Springer’s LNAI 3613, pp. 557-570,
Changsha, China, August 2005. (Category 2)

3. Rajiv Yerra and Yiu-Kai Ng, “Detecting Similar HTML Documents Using a Fuzzy
Set Information Retrieval Approach,” in Proceedings of the IEEE International
Conference on Granular Computing (IEEE GrC’05), IEEE Press, pp. 693-699,
Beijing, China, July 2005. (Category 2)

4. SeungJin Lim and Yiu-Kai Ng, “Categorization and Information Extraction of


Multilingual HTML Documents,” in Proceedings of the 9th International Database
Engineering and Application Symposium (IDEAS’05), IEEE Computer Society, pp.
415-422, Montreal, Canada, July 2005. (Category 2)

5. Nathaniel Gustafson, SeungJin Lim, and Yiu-Kai Ng, “Categorization of Web


Documents Using Character Encodings,” in Proceedings of the 2005 International
Conference on Digital Archive Technologies (ICDAT 2005), pp. 175-189, Taipei,
Taiwan, June 2005. (Category 3)

6. SeungJin Lim and Yiu-Kai Ng, “Change Discovery of Hierarchically Structured,


Order-Sensitive Data in HTML/XML Documents,” in Proceedings of the 2004 International
Symposium on Applications and the Internet (SAINT 2004), pp. 178-

Page 324 of 394


C3 CS 12/14/04
187, IEEE Computer Society, Tokyo, Japan, January 2004. (Category 2)

7. Xiaochun Yang, Bin Wang, and Yiu-Kai Ng, “A Protein Secondary Structure Prediction
Framework Based on the Support Vector Machine,” in Proceedings of the
Fourth International Conference on Web-Age Information Management (WAIM
2003), pp. 266-277, LNCS 2762, Chengdu, China, August 2003. (Category 2)

8. Kelvin Lau and Yiu-Kai Ng, “A Client-Based Web-Cache Management System,” in


Proceedings of the Third International Conference on Web-Age Information Management
(WAIM’02), pp. 379-386, LNCS 2419, Beijing, China, August 2002. (Category
2)

9. Seung-Jin Lim, Yiu-Kai Ng, and Xiaochun Yang, “Integrating HTML Tables Using
Semantic Hierarchies and Meta-Data Sets,” in Proceedings of the International
Database Engineering and Applications Symposium (IDEAS’02), pp. 160-169,
IEEE Computer Society, Edmonton, Canada, July 2002. (Category 2)

10. D.W. Embley, Yiu-Kai Ng, and Li Xu, “Recognizing Ontology-Applicable Multiple-
Record Web Documents,” in Proceedings of the 20th International Conference on
Conceptual Modeling (ER 2001), pp. 555-570, Yokohama, Japan, November 2001.
(Category 2)

11. Seung-Jin Lim and Yiu-Kai Ng, “An Automated Integration Approach for Semi-
Structured and Structured Data,” in Proceedings of the 3rd International Symposium
on Cooperative Database Systems for Advanced Applications (CODAS’01),
pp. 15-24, Beijing, China, April 2001. (Category 2)

12. June Tang, Yiu-Kai Ng, and Michael Goodrich “A Binary-Categorization Approach
for Recognizing Multiple-Record Web Documents Using Application Ontologies
and A Probabilistic Model,” in Proceedings of the 7th International Conference
on Database Systems for Advanced Applications (DASFAA 2001), pp. 58-65,
April 2001. (Category 2)

13. Seung-Jin Lim and Yiu-Kai Ng, “An Automated Change-Detection Algorithm for
HTML Documents Based on Semantic Hierarchies,” in Proceedings of the 17th
International Conference on Data Engineering (ICDE 2001), pp. 303-312, Heidelberg,
Germany, April 2001. (Category 1)

Paper Presentations

1. “A Sentence-Based Copy Detection Approach for Web Documents,” Second International


Conference on Fuzzy Systems and Knowledge Discovery (FSKD’05), Changsha,
China, August 28, 2005.

2. “Detecting Similar HTML Documents Using a Fuzzy Set Information Retrieval Approach,”
IEEE International Conference on Granular Computing (IEEE GrC’05), Beijing,

Page 325 of 394


C3 CS 12/14/04
China, July 25, 2005.

3. “Categorization and Information Extraction of Multilingual HTML Documents,” 9th


International Database Engineering and Application Symposium (IDEAS’05), Montreal,
Canada, July 27, 2005.

4. “Categorization of Web Documents Using Character Encodings,” 2005 International


Conference on Digital Archive Technologies (ICDAT 2005), Taipei, Taiwan, June 17,
2005.

5. “A Client-Based Web Prefetching Management System Based on Detection Theory,”


9th International Workshop on Web Caching and Content Distribution (WCW9), Beijing,
China, October 19, 2004.

6. “Change Discovery of Hierarchically Structured, Order-Sensitive Data in HTML/XML


Documents,” 2004 International Symposium on Applications and the Internet (SAINT
2004), Tokyo, Japan, January 29, 2004.

7. “A Client-Based Web-Cache Management System,” Third International Conference on


Web-Age Information Management (WAIM’02), Beijing, China, August 13, 2002.

8. “Integrating HTML Tables Using Semantic Hierarchies and Meta-Data Sets,” International
Database Engineering and Applications Symposium (IDEAS’02), Edmonton,
Canada, July 18, 2002.

9. “An Automated Integration Approach for Semi-Structured and Structured Data,” 3rd
International Symposium on Cooperative Database Systems for Advanced Applications
(CODAS’01), Beijing, China, April 23, 2001.

10. “A Binary-Categorization Approach for Recognizing Multiple-Record Web Documents


Using Application Ontologies and A Probabilistic Model,” 7th International Conference
on Database Systems for Advanced Applications (DASFAA 2001), Hong Kong, April
17, 2001.

11. “An Automated Change-Detection Algorithm for HTML Documents Based on Semantic
Hierarchies,” 17th International Conference on Data Engineering (ICDE 2001), Heidelberg,
Germany, April 4, 2001.

Courses Taught 2005 and 2006


Spring 2006: CS 252 (Intro. to Theory) section 001
CS 452 (DB Design Concepts) section 001
Winter 2006: CS 452 section 001
Fall 2005: CS 653 (Information Retrieval) section 001
Spring 2005: CS 252 section 001
CS 452 section 001
Winter 2005: CS 452 section 001

Page 326 of 394


C3 CS 12/14/04
Citizenship and Service at BYU
• Department: Spring Research Conference Department Coordinator, February 2002 -
present.
• College: Reviewer of BYU ORCA Mentoring Grant Proposals, September 2003 -
present.
• University: Coordinator of the Computer Merit-Badge Counselors, BYU Boy Scouts
Pow-wow, September 1998 - present.

Number of Graduate Students Supervised


• Current M.S. student: 2
• Former M.S. & Ph.D. students: 12

Scholarly & Research Activities


• Current research interests:
Data Stream Management System Information Retrieval
Web Document Clustering Web Data Extraction/Classification
• Percentage of time devoted: 30 hours/week

Page 327 of 394


C3 CS 12/14/04
Dan R. Olsen Jr.
Professor of Computer Science
Tenured
Brigham Young University

Education
1981 Ph.D. in Computer Science University of Pennsylvania
1978 M.S. in Computer Science Brigham Young University
1976 B. S. in Computer Science Brigham Young University

Professional Positions
1990-present Professor of Computer Science Brigham Young University
1996-1998 Director of HCI Institute Carnegie Mellon University
1996-1998 Professor of Computer Science Carnegie Mellon University
1992-1996 Department Chair of Computer Science Brigham Young University
1986-1990 Associate Professor of Computer Science Brigham Young University
1984-1986 Assistant Professor of Computer Science Brigham Young University
1981-1984 Assistant Professor of Computer Science Arizona State University

Principal Areas of Research and Teaching


Network-based interaction
Interactive Software
Speech-based interfaces

Principle Publications
Crandall, J., Goodrich, M., Nielsen, C., Olsen, D. R.:“Validating Human-Robot Interaction
Schemes in Multitasking Environments”, Systems, Man, and Cybernetics/Part A: Systems and
Humans, Vol 35(4), IEEE, (July 2005)

Olsen, D. R., Taufer, T., Fails, J. A.: “ScreenCrayons: Annotating Anything”, UIST '04, ACM,
(2004).

Olsen, D. R., Wood, B.: “Fan-out: Measuring Human Control of Multiple Robots” CHI ’04,
ACM, (2004).

Olsen, D. R., Wood, B., Turner, J.: “Metrics for Human Driving of Multiple Robots”
International Conference on Robots and Automation, ICRA '04, IEEE, (2004).

Goodrich, M., Olsen, D. R.: “Seven Principles of Efficient Human-Robot Interaction”


International Conference on Systems, Man, and Cybernetics, IEEE, (2003).
Olsen, D. R., Goodrich, M.: “Metrics for Evaluating Human-Robot Interaction”, PERMIS 2003.
Fails, J. A., Olsen, D. R.: “A Design Tool for Camera-based Interaction”, Human Factors in
Computing Systems, CHI '03, ACM, (2003)

Page 328 of 394


C3 CS 12/14/04
Fails, J. A., Olsen, D. R.: “Interactive Machine Learning”, Intelligent User Interfaces, IUI '03,
ACM (2003)

Olsen, D. R., Peachey, J. R.: “Query by Critique: Spoken Language Access to Large Lists”, User
Interface Software and Technology, UIST '02, ACM(2002).
Fails, J. A., Olsen, D. R.: “Light Widgets: Interacting in Every-day Spaces”, Intelligent User
Interfaces, IUI '02, ACM(2002).
Rosenfeld, R., Olsen, D. R., Rudnicky, A." “Universal Speech Interfaces” interactions, ACM
(2001).
Goodrich, M., Crandall, J. W., Palmer, T. J., Olsen, D. R.: “Experiments in Adjustable
Autonomy,” Proceedings of the IJCAI01 workshop on Autonomy, Delegation, and Control:
Interacting with Autonomous Agents (2001).

Olsen, D. R., Nielsen, S. T., Parslow, D.: “Join and Capture: A Model for Nomadic Interaction,”
UIST '01, ACM, (2001).

“Speech Interaction with Graphical User Interfaces” with Scott Hudson, Chung Man Tam,
Genevieve Conaty, Matthew Phelps, Jeremy Heiner, Interact 2001, IOS Press, (July 2001)

Olsen, D. R., Hudson, S., Tam, C. M., Conaty, G., Phelps, M., Heiner, J,: “Speech Interaction
with Graphical User Interfaces” , Interact 2001, IOS Press, (2001)

Olsen, D. R., Nielsen, T,: “Laser pointer Interaction”, Human Factors in Computing Systems,
CHI '01, ACM, (April 2001).

Olsen, D. R., Nielsen, T., Jefferies, S., Moyes, W., Fredrickson, P.: "Cross-modal Interaction in
XWeb", UIST '00, ACM (2000).
Olsen, D. R., "Interacting in Chaos", Interactions, ACM (1999) .
Olsen, D. R., Hudson, S. E., Verratti, T., Heiner, J. M., Phelps, M.: "Implementing Interface
Attachments Based on Surface Representations", Human Factors in Computing Systems, CHI
'99, ACM (1999)

Olsen, D. R., Hudson, S. E., Phelps, M., Heiner, J., Verratti, T.: “Ubiquitous Collaboration Via
Surface Representations”, Computer Supported Cooperative Work, CSCW '98, ACM (1998)

Olsen, D. R., Boyarski, D., Verratti, T., Phelps, M., Lo, E.: “Generalized Pointing: Enabling
Multiagent Interaction”, Human Factors in Computing Systems, CHI '98, ACM (1998).

Rodham, K.,Olsen, D.R.: “Nanites: An Approach to Structure-Based Monitoring”, ACM


Transactions on Computer-Human Interaction, 4 (2), (1997).

Olsen, D. R., Deng, X.:“Inductive Groups” ACM Symposium on User Interface Software and
Technology, UIST ‘96, (1996).

Page 329 of 394


C3 CS 12/14/04
Nevill-Manning, C. G., Witten, I. H., Olsen, D. R.: “Compressing semi-structured text using
hierarchical phrase identification”, Proceedings of the Data Compression Conference, IEEE
Press, Los Alamitos, CA (1996).

Olsen, D. R., Monk, A. F., Curry, M. B.: "Algorithms for automatic dialogue analysis using
propositional production systems", Human Computer Interaction, 10, 39-78 (1995).
Olsen, D. R., Rodham, K.: "Interactive Net Services on the WWW" INTERACT '95. (1995).

Olsen, D. R., Rodham, K.: "Distributable Interactive Objects" INTERACT '95. (1995).

Olsen, D. R., Kohlert, D.: "Pictures as Input Data", Human Factors in Computing Systems, CHI
'95, ACM (1995)

Olsen, D. R., Ahlstrom, B., Kohlert, D.: "Building Geometry-based Widgets by Example",
Human Factors in Computing Systems, CHI '95, ACM (May 1995)

Olsen, D. R., Rodham, K.: "Smart Telepointers: Maintaining Telepointer Consistancy in the
Presences of User Customization" ACM Transactions on Graphics (July 1994)

Olsen, D. R.:"Automatic Generation of Interactively Consistent Search Dialogs", Human Factors


in Computing Systems, CHI '94, ACM (1994).

Olsen, D. R., Rodham, K., Kohlert, D.: "Implementing a Graphical Multi-user Interface
Toolkit.", Software Practice and Experience (Sept 1993).
Olsen, D. R., Foley, J. D., Hudson, S. E., Miller, J., Myers, B. A.: "Research Directions for User
Interface Software Tools", Behavior & Information Technology, (March-April 1993)
Olsen, D. R.: "Bookmarks: An enhanced scroll bar" ACM Transactions on Graphics, (July
1992) Olsen, D. R.: "User Interface Architectures for an Information Age" HCI '92, York,
United Kingdom, (Sept 1992).

Olsen, D. R., McNeill, T., Mitchell, D.: "Workspaces: an Architecture for editing collections of
objects", Human Factors in Computing Systems, CHI '92, ACM (April 1992).

Becker, S., Barrett, W. A., Olsen, D. R.: "Interactive Measurement of Three-Dimensional


Objects Using a Depth Buffer and Linear Probe", ACM Transactions on Graphics (1991).

Olsen, D. R., Burbidge, M.: "CTS - Complex Text Interaction System" , Graphics Interface '90,
(1990).

Olsen, D. R., Allen, K.: "Creating Interactive Techniques by Symbolically Solving Geometric
Constraints", UIST '90, ACM (1990).

Olsen, D. R.: "Propositional Production Systems for Dialog Description", Human Factors in
Computing Systems, CHI '90, ACM (1990).

Page 330 of 394


C3 CS 12/14/04
Olsen, D. R., Tuck, R.: "Help by Guided Tasks - Utilizing UIMS Knowledge", Human Factors in
Computing Systems, CHI '90, ACM (1990)

Olsen, D. R.: "A Programming Language Basis for User Interface Management", Human Factors
in Computing Systems, CHI '89, ACM (1989)

Olsen, D. R., Burton, R. P.: "Structured Files for Interactive Graphics Programs", ISECON '88
Conference Proceedings (1988).

Olsen, D. R., Halversen, B.: "Interface Usage Measurements in a User Interface Management
System", ACM SIGGRAPH Symposium on User Interface Software, UIST '88, (Oct 1988).

Olsen, D. R.: "A Browse / Edit Model for User Interface Management" Graphics Interface '88.
(June 1988).
Olsen, D. R., Dance, J.: "Macros by Example in a Graphical UIMS", IEEE Computer Graphics
and Applications 6, 1 (Jan 1988).
Olsen, D. R., Burton, R. P.: "A Command-based User Interface Management System", 2nd
International Conference on Computers and Applications (June 1988).

Olsen, D. R.: "Larger Issues in User Interface Management." Computer Graphics 21,2 (April
1987)

Olsen, D. R.: "MIKE: The Menu Interaction Kontrol Environment." ACM Transations on
Graphics (Oct 1986)

Olsen, D. R., Nielsen, G.: "Direct Manipulation Techniques for 3D Objects Using 2D Locator
Devices."1986 Workshop on Interactive 3D Graphics, ACM (1986).

Olsen, D. R.: "Editing Templates: A User Interface Generation Tool." IEEE Computer Graphics
and Applications 6, 11 (November 1986).

Olsen, D. R.: "An Editing Model for Generating Graphical User Interfaces." Proceedings of
Graphics Interface '86. (May 1986).

Olsen, D. R., Dempsey, E., Rogge, R.: "Input-Output Linkage in a User Interface Management
System.", Computer Graphics 19, 3 (July 1985).

Olsen, D. R., Cooper, C.: "Spatial Trees: A Fast Access Method for Unstructured Graphical
Data.", Proceedings of Graphics Interface '85. (June 1985).

Olsen, D. R., Buxton, W., Ehrich, R., Kasik, D., Rhyne, J., Sibert, J.: "A Context for User
Interface Management.", IEEE Computer Graphics and Applications 4,12 (December 1984).

Olsen, D. R.: "Push-down Automata for User Interface Management." ACM Transactions on
Graphics 3,3 (July 1984).

Page 331 of 394


C3 CS 12/14/04
Olsen, D. R.: "Presentational, Syntactic and Semantic Components of Interactive Dialogue
Specification." Proceedings of the IFIP Workshop on User Interface Management. (November
1983).

Olsen, D. R., Dempsey, E.: "SYNGRAPH: An Automatic Interaction Generator.", Computer


Graphics 17, 3 (July 1983).

Olsen, D. R., Dempsey, E.: "Syntax Directed Graphical Interaction.", Proceedings of SIGPLAN
'83. (June 1983).

Olsen, D. R.: "Automatic Generation of Interactive Systems." Computer Graphics 17, 1 (January
1983).

Olsen, D. R.: "An Expression Model for Graphical Command Languages." Conference
Proceedings National Computer Graphics Association, Vol II. (June 1982).
Olsen, D. R., Carter, S., Rockwood, A.: "A Program for Computing K-determinacy of a Taylor's
Series.", Catastrophe Theory and its Applications. Appendix 1, pages 431-441. Pitman
Publishing Limited, London, (1978).

Scholarly Activities
Vice President at Large : ACM SIGCHI - Special Interest Group on Computer-Human
Interaction
Former Director of Human Computer Interaction Institute, Carnegie Mellon University
Former Editor in Chief: ACM Transactions on Computer Human Interaction

Courses Taught 2005-2006


Winter 2005 CS 456 Section 001 Interactive Systems
CS 656 Section 001 Advanced Interactive Systems
Winter 2006 CS 456 Section 001 Interactive Systems
CS 656 Section 001 Advanced Interactive Systems
Fall 2006 CS 456 Section 001 Interactive Systems

Other Duties
Chair of the Promotion, Tenure, and Leave Committee at the Computer Science Department.

Member of the Building and Undergraduate Curriculum Committees.

Academic Advisor
I advise 3 M.S. students and 1 Ph.D.

Scholarly Research and Time Division


Teaching 50%
Research 25%
Department Service 25%
Page 332 of 394
C3 CS 12/14/04
Page 333 of 394
C3 CS 12/14/04
Eric Ringger
Assistant Professor of Computer Science
Not Tenured
Brigham Young University

Academic History
2005-present Assistant Professor of Computer Science Brigham Young University

Education
2000 Ph.D. in Computer Science University of Rochester
1994 M.S. in Computer Science University of Rochester
1992 B.S. in Mathematics Brigham Young University

Relevant Employment
• Microsoft Research, Researcher, Natural Language Processing Group, 1998 – July 2005
• Microsoft Research, Research Software Design Engineer, Natural Language Processing
Group, 1997-1998
• University of Rochester, Research Assistant, 1994-1997
• Microsoft Research, Research Software Design Engineer Intern, Natural Language
Processing Group, Summers of 1992, 1993, 1994.
• University of Rochester, Teaching Assistant, 1993-1994
• University of Rochester, Research Assistant and Teaching Assistant, 1992-1993
• Brigham Young University, Teaching Assistant, 1991-1992
• Microsoft, Software Design Engineer Intern, Applications Division, Summer of 1991
• Brigham Young University, Teaching Assistant, 1990-1991
• Arizona Department of Education, Information Systems Intern, Summer of 1990
• Allied Signal Corporation, Intern in Electronic Instrumentation Laboratory, Summer of
1987

Principle Publications
Refereed Journal Articles and Book Chapters
• James Allen, George Ferguson, Bradford W. Miller, Eric K. Ringger, and Teresa Sikorski
Zollo. "Dialogue Systems: From Theory to Practice in TRAINS-96." In Handbook of
Natural Language Processing, Robert Dale, Hermann Moisl, and Harold Somers, editors.
Marcel Dekker, New York. 2000. Pp. 347-376

Refereed Conference and Workshop Publications

Parsing and Parser Evaluation:


• Simon Corston-Oliver, Anthony Aue, Kevin Duh and Eric Ringger. June 2006.
“Multilingual Dependency Parsing using Bayes Point Machines.” In Proceedings of the
2006 Joint Conference on Human Language Technologies and the North American
Chapter of the Association for Computational Linguistics (HLT-NAACL), New York
City, New York.

Page 334 of 394


C3 CS 12/14/04
• Eric Ringger, Robert C. Moore, Eugene Charniak, Lucy Vanderwende, Hisami Suzuki.
May 2004. "Using the Penn Treebank to Evaluate Non-Treebank Parsers." In
Proceedings of the 2004 Language Resources and Evaluation Conference (LREC),
Lisbon, Portugal.

Email Classification:
• Simon Corston-Oliver, Eric Ringger, Michael Gamon, Richard Campbell. July 2004.
"Integration of Email and Task Lists." In Proceedings of the First Conference on Email
and Anti-Spam (CEAS), Mountain View, California.
• Simon Corston-Oliver, Eric Ringger, Michael Gamon, Richard Campbell. July 2004.
"Task-focused Summarization of Email." In Proceedings of the ACL 2004 Workshop
Text Summarization Branches Out, Barcelona, Spain.

Customer Feedback Mining:


• Michael Gamon, Anthony Aue, Simon Corston-Oliver, Eric Ringger. September 2005.
“Pulse: Mining Customer Opinions from Free Text.” In Lecture Notes in Computer
Science., vol. 3646:121 - 132. Springer Verlag. (Proceedings of the 2005 Conference on
Intelligent Data Analysis (IDA 2005); Madrid, Spain).

Sentence Realization:
• Eric K. Ringger, Michael Gamon, Robert C. Moore, David Rojas, Martine Smets, Simon
Corston-Oliver. August 2004. "Linguistically Informed Statistical Models of Constituent
Structure for Ordering in Sentence Realization." In Proceedings of the 2004 International
Conference on Computational Linguistics, Geneva, Switzerland.
• Martine Smets, Michael Gamon, Simon Corston-Oliver and Eric K. Ringger. 2003.
French “Amalgam: A machine-learned sentence realization system.” In Actes de la 10me
Confrence Annuelle sur le Traitement Automatique des Langues Naturelles, Batz-sur-
Mer, France.
• Martine Smets, Michael Gamon, Simon Corston-Oliver and Eric K. Ringger. 2003. “The
adaptation of a machine-learned sentence realization system to French.” In Proceedings
of the 10th conference of the European Chapter of the Association for Computational
Linguistics, Budapest, Hungary, pp. 323-330.
• Michael Gamon, Eric K. Ringger, Zhu Zhang, Robert Moore, and Simon Corston-Oliver.
2002. “Extraposition: A case study in German sentence realization.” In Proceedings of
COLING 2002, pp. 301-307.
• Michael Gamon, Eric K. Ringger, Simon Corston-Oliver, and Robert Moore. 2002.
“Machine-learned contexts for linguistic operations in German sentence realization.” In
Proceedings of ACL 2002, pp. 25-32.
• Simon Corston-Oliver, Michael Gamon, Eric K. Ringger, and Robert Moore. 2002. “An
overview of Amalgam: A machine-learned generation module.” In Proceedings of the
International Natural Language Generation Conference. New York, USA. pp. 33-40.
Page 335 of 394
C3 CS 12/14/04
Machine Translation:
• Anthony Aue, Arul Menezes, Robert Moore, Chris Quirk, Eric Ringger. October 2004.
"Statistical Machine Translation Using Labeled Semantic Dependency Graphs." In
Proceedings of the 10th International Conference on Theoretical and Methodological
Issues in Machine Translation, TMI-2004, Baltimore, Maryland.

Semantic Representation:
• Richard Campbell and Eric Ringger. May 2004. "Converting Treebank Annotations to
Language Neutral Syntax." In Proceedings of the 2004 Language Resources and
Evaluation Conference (LREC), Lisbon, Portugal.

Language Modeling:
• Lucian Galescu and Eric K. Ringger. "Augmenting Words with Linguistic Information
for N-Gram Language Models." Proceedings of the 6th European Conference on Speech
Communication and Technology (EuroSpeech '99). Budapest, Hungary. September 1999.
• Lucian Galescu, Eric K. Ringger, and James F. Allen. "Rapid Language Model
Development for New Task Domains." Proceedings of the ELRA First International
Conference on Language Resources and Evaluation (LREC). Granada, Spain. May 1998.

Dialog:
• Tim Paek, Eric Horvitz, and Eric K. Ringger. "Continuous Listening for Unconstrained
Spoken Dialog." In Proceedings of the Sixth International Conference on Spoken
Language Processing (ICSLP 2000). Beijing, China. October 2000.
• James F. Allen, Bradford W. Miller, Eric K. Ringger, and Teresa Sikorski. "A Robust
System for Natural Spoken Dialogue." Proceedings of the 34th Annual Meeting of the
Association for Computational Linguistics (ACL'96). Santa Cruz, CA. June 1996.
• James F. Allen, George Ferguson, Bradford W. Miller, and Eric K. Ringger. "Spoken
Dialogue and Interactive Planning." Proceedings of the 1995 ARPA Spoken Language
Systems Technology (SLST) Workshop in Austin, Texas. January 1995.

Error Correction and Robustness:


• Eric K. Ringger and James F. Allen. "Robust Error Correction of Continuous Speech
Recognition." Proceedings of the ESCA-NATO Workshop on Robust Speech
Recognition for Unknown Communication Channels. Pont-a-Mousson, France. April
1997.
• Eric K. Ringger and James F. Allen. "A Fertility Channel Model for Post-Correction of
Continuous Speech Recognition." Proceedings of the Fourth International Conference on
Spoken Language Processing (ICSLP'96). Philadelphia, PA. October 1996.
• Eric K. Ringger and James F. Allen. "Error Correction via a Post-Processor for
Continuous Speech Recognition." Proceedings of the 1996 IEEE International

Page 336 of 394


C3 CS 12/14/04
Conference on Acoustics, Speech, and Signal Processing (ICASSP'96). Atlanta, GA. May
1996.

Technical Reports

• Eric K. Ringger, Michael Gamon, Martine Smets, Simon Corston-Oliver, Robert Moore.
August 2003. "Linguistically Informed Statistical Models of Constituent Structure for
Ordering in Sentence Realization." Microsoft Research Technical Report MSR-TR-2003-
54.
• Zhu Zhang, Michael Gamon, Simon Corston-Oliver, Eric K. Ringger. May 2002. “Intra-
sentence Punctuation Insertion in Natural Language Generation.” Microsoft Research
Technical Report MSR-TR-2002-58.
• Michael Gamon, Eric K. Ringger, Simon Corston-Oliver. June 2002. “Amalgam: A
machine-learned generation module.” Microsoft Research Technical Report MSR-TR-
2002-57.
• Eric K. Ringger. April 2000. "Correcting Speech Recognition Errors.” University of
Rochester Computer Science Department Technical Report TR-731 and Ph.D. Thesis.
• George M. Ferguson, James F. Allen, Brad W. Miller, and Eric K. Ringger. "The Design
and Implementation of the TRAINS-96 System: A Prototype Mixed- Initiative Planning
Assistant." TRAINS Technical Note 96-5. University of Rochester Computer Science
Department. October 1996.
• Eric K. Ringger. "A Robust Loose Coupling for Speech Recognition and Natural
Language Understanding." University of Rochester Computer Science Department
Technical Report TR-592. A revision of the author's Thesis Proposal, presented and
defended on May 23, 1995. Dissertation committee members: James Allen, Len
Schubert, and Richard Aslin.

Scholarly Activities

Professional Activities
• Co-Director, Natural Language Processing Lab, Computer Science Department, Brigham
Young University.
• Publications Chair
o EMNLP 2006
• Organizer, ACL 2005 Workshop on “Feature Engineering for Machine Learning in
Natural Language Processing”, held in conjunction with ACL 2005 in June, 2005, in Ann
Arbor, Michigan.
• Organizer, NLPRead, a semi-regular reading group held at Microsoft Research since
1999, bringing together researchers and product developers from across disciplines at
Microsoft, including NLP, Speech, Web Search, and Machine Learning.

Page 337 of 394


C3 CS 12/14/04
• Program Committee
o EMNLP 2003
• Reviewer
o Coling-ACL 1998
o ACL 2001
o ACL 2001 Machine Translation workshop
o HLT-NAACL 2003
o EMNLP 2004
o Transactions on Asian Language Information Processing (TALIP)
o Computational Linguistics
• Member:
• ACL; ACL SigDial; ACL SigNLL; ACL SigDat
• AAAI
• IEEE; IEEE Signal Processing Society

Honors and Awards


• University of Rochester Graduate Fellowship, 1992-1997.
• Ezra Taft Benson scholarship, Brigham Young University, 1986-87 and 1989-1992.
• National Merit scholarship, Brigham Young University, 1986-87 and 1989-1992.

Courses Taught 2005-2006


Courses Taught
• BYU CS 601R, section 002. Fall 2005. Statistical Natural Language Processing.
• BYU CS 312, sections 002 and 003. Winter 2006. Algorithm Analysis.
• BYU CS 598R. Winter 2006. Special Projects: Text Classification and Text Clustering.

Other Duties
Committee Service
• Ph.D. Recruiting Committee. August 2005-Present. BYU CS Department.
• Graduate Committee. Jan. 2006-Present. BYU CS Department.
• Summer Social Committee. August 2005-Present. BYU CS Department.

Academic Advisor
• Rebecca Madsen, M.S. Student. Projected graduation: August 2006.
• Scott Chun, Provisional M.S. Student. Projected graduation: 2008.
• Robbie Haertel, Ph.D. Student. Projected graduation: 2009.
• Dan Walker, Ph.D. Student. Projected graduation: 2009.
• Mark Gulbrandsen, Undergraduate. ORCA Grant. Graduation: April 2006.

Scholarly Research and Time Division


Time Allocation- Research focuses on natural language processing.
• Teaching: 35%
• Research: 60%

Page 338 of 394


C3 CS 12/14/04
• Citizenship: 5%

Page 339 of 394


C3 CS 12/14/04
Kenneth J. Rodham
Assistant Teaching Professor of Computer Science
Professional Faculty
Not Tenured
Brigham Young University

Academic History
2001-present Assistant Teaching Professor Computer Science Department
Brigham Young University
1991-1995 Research Assistant Computer Science Department
Brigham Young University
1993 Instructor Computer Science Department
Brigham Young University
Education
1995 Ph.D. in Computer Science Brigham Young University
1992 M.S. in Computer Science Brigham Young University
1990 B.S. in Computer Science Brigham Young University

Relevant Employment
Member of Technical Staff. Sun Microsystems, Inc. Cupertino, CA. June 1999 – October 2001

Senior Software Engineer. Encanto Networks, Inc. Santa Clara, CA. March 1998 – June 1999

Senior Software Engineer. Individual, Inc. San Jose, CA. June 1996 – March 1998

Software Engineer. Novell, Inc. San Jose, CA. May 1995 – June 1996

Consulting
Altiris, Inc. Lindon, UT. September 2004 – Present

Bridgewater Technologies, Inc. Lindon, UT. January 2004 – September 2004

Principle Publications

Refereed Journal Publications


Kohlert, Douglas C., Rodham, Kenneth J., and Olsen, Dan R., Implementing a Graphical
Multiuser Interface Toolkit, Software Practice and Experience, September 1993.

Rodham, Kenneth J. and Olsen, Dan R., Smart Telepointers: Maintaining Telepointer
Consistency in the Presence of User Interface Customization, ACM Transactions on Graphics,
July 1994.

Rodham, Kenneth J. and Olsen, Dan R., Nanites: An Approach to Structure-based Monitoring,
ACM Transactions on Computer-Human Interaction, June 1997.

Page 340 of 394


C3 CS 12/14/04
Refereed Conference Publications

Rodham, Kenneth J. and Olsen, Dan R., Interactive Net Services on the WWW, Proceedings of
INTERACT ’95, June1995.

Rodham, Kenneth J. and Olsen, Dan R., Distributable Interactive Objects, Proceedings of
INTERACT ’95, June 1995.

Scholarly Activities
Paper Reviewer, ACM SIGCSE 2006

Awards and Honors


UniForum Research Award, $30,000 scholarship, 1993
Who’s Who Among America’s Teachers, 2003
Who’s Who Among America’s Teachers, 2005

Presentations
UniForum Conference. Dallas, TX. March, 1995
Java Developers Conference. San Francisco, CA. June, 2000
Java Developers Conference. San Francisco, CA. June, 2001

Professional Affiliations
ACM Special Interest Group on Computer Science Education

Courses Taught 2005-2006


Winter 2005: C S 240 sections 001-003
C S 428 section 001
Summer 2005: C S 462 section 001
Fall 2005: C S 240 sections 001-003
Winter 2006: C S 235 section 003
C S 240 sections 002 and 003

Other Duties
CS Undergraduate Affairs Committee (01/02, 02/03, 03/04, 05/06)
CS Teaching Committee (03/04, 04/05, 05/06)
CS Capital Equipment Committee (02/03)
CS External Relations Committee (04/05)

Page 341 of 394


C3 CS 12/14/04
Paul Roper
Assistant Professor of Computer Science
Professional Status
Untenured
Brigham Young University

Academic History
2002-present Assistant Professor of Computer Science Brigham Young University

Education
1979 M.S. in Computer Science Brigham Young University
1976 B.S. in Computer Science Brigham Young University

Relevant Employment
2002-Present Partner and Chief Software/Firmware Design Engineer
Integrated Wireless Solutions
2001-2002 Senior Software Engineer United Internetworks, Inc.
2000-2001 Senior Software Engineer InterNAP Network Services
1998-2000 Senior Software Programmer Novell, Inc.
1998-1998 Senior Firmware Engineer World Wireless Comms.
1996-1998 Senior Software Programmer Novell, Inc.
1987-1996 Senior Software Programmer WordPerfect, Inc.
1973-1978 Senior Software Engineer/Software Development Director
Eyring Research Institute, Inc.

Courses Taught 2005-2006


Winter 2005- C S 124 sections 001 and 002
C S 345 section 001
Summer 2005- C S 100 section 001
C S 236 section 001
Fall 2005- C S 100 sections 002, 003, and 004
C S 345 section 002
Winter 2006- C S 124 sections 001 and 002
C S 345 section 001 and 002

Other Duties
Member of the Department’s Undergraduate Curriculum and Computing Committees. Serve as
the faculty advisor for the BYU chapter of ACM. Serve as the faculty member over students
scholarships.

Page 342 of 394


C3 CS 12/14/04
Kent E. Seamons
Assistant Professor of Computer Science
Not tenured
Brigham Young University

Academic History
2004-present Associate Professor of Computer Science Brigham Young University

Education
1996 Ph.D. in Computer Science University of Illinois at Urbana-Champaign (UIUC)
1986 B.S. in Computer Science Brigham Young University

Professional Development
Assistant Professor, Computer Science Department, Brigham Young University, Provo, UT, 2000-
present.
Consultant, Network Associates Laboratories, Greenbelt, MD, 2000, 2002-2003.
Research Scientist/Consultant, Center for Simulation of Advanced Rockets at the University of Illinois
at Urbana-Champaign, 1998-2001.
Senior/Associate Member of Technical Staff, IBM Transarc Lab, Pittsburgh, PA, 1995-2000.
ARPA Fellow, Database Research Laboratory, Department of Computer Science, University of Illinois at
Urbana-Champaign, 1993-1995.
Intern, Numerical Simulation Division (NAS), NASA Ames Research Center, in Moffett Field,
California, 1993, 1994.
Research Assistant, National Center for Supercomputing Applications (NCSA), University of Illinois at
Urbana-Champaign, 1990-1993.
Research Assistant, USA-CERL, U.S. Army Corps of Engineers, Champaign, Illinois, 1989-1990.
Member of Technical Staff, Information Dimensions, Columbus, Ohio. 1986-1995.
Researcher, Family History Center, Salt Lake City, Utah, 1985-1986.

Consulting
Worked as a Consultant for Network Associates Laboratories 2000 and 2002-2003.

Principle Publications
1. A. Hess, J. Holt, J. Jacobson, and K.E. Seamons. Content Triggered Trust Negotiation. ACM
Transactions on Information and System Security (TISSEC). Vol. 7, No. 3, pages 428-456, August
2004. ACM Press. Category 1.

2. T. Yu, M. Winslett, and K. E. Seamons. Supporting Structured Credentials and Sensitive Policies
through Interoperable Strategies for Automated Trust Negotiation. ACM Transactions on
Information and System Security (TISSEC), Vol. 6, No. 1, pages 1-42, February 2003. ACM Press.
Category 1.

Page 343 of 394


C3 CS 12/14/04
3. K. E. Seamons and M. Winslett. Multidimensional Array I/O in Panda 1.0. The Journal of
Supercomputing, 10(2):191-211, 1996. Category 2.

Magazines
1. M. Winslett, T. Yu, K. E. Seamons, A. Hess, J. Jacobson, R. Jarvis, B. Smith, and L. Yu. Negotiating
Trust on the Web. IEEE Internet Computing, Vol. 6, No. 6, pages 30-37, November/December 2002.
Category 2.

2. Dik L. Lee, Huei Chuang, and Kent E. Seamons. Document Ranking and the Vector-Space Model.
IEEE Software, Vol. 14, No. 2, pages 67-75, March / April 1997. Category 1.

Refereed Conferences and Workshops


1. T. Ryutov, L. Zhou, C. Neuman, N Foukia, T. Leithead, and K. E. Seamons. Adaptive Trust
Negotiation and Access Control for Grids. 6th IEEE/ACM International Workshop on Grid
Computing, Seattle, WA, November 2005. IEEE Computer Society Press. Acceptance rate: 19%
(32/170). Category 2.

2. T. van der Horst and K. E. Seamons. Short Paper: Thor: The Hybrid On-line Repository. First IEEE
Conference on Security and Privacy for Emerging Areas in Communication Networks, Athens,
Greece, September 2005. Acceptance rate: 31%. (52/164). Category 3.

3. T. Ryutov, L. Zhou, C. Neuman, T. Leithead, and K. E. Seamons. Adaptive Trust Negotiation and
Access Control. 10th ACM Symposium on Access Control Models and Technologies, Scandic
Hasselbacken, Stockholm, Sweden, June 2005. ACM Press. Acceptance rate: 21% (19/90). Category
2.

4. T. Leithead, W. Nejdl, D. Olmedilla, K. Seamons, M. Winslett, T. Yu, and C. Zhang. How to Exploit
Ontologies in Trust Negotiation. Workshop on Trust, Security, and Reputation on the Semantic Web,
part of the Third International Semantic Web Conference, Hiroshima, Japan, November 2004.
Acceptance rate (full papers): 41% (7/17). Category 3.

5. R. Bradshaw, J. Holt, and K. E. Seamons. Concealing Complex Policies with Hidden Credentials.
Eleventh ACM Conference on Computer and Communications Security, pages 146-157, Washington,
DC, October 2004. ACM Press. Acceptance rate: 14% (35/251). Category 1.

6. T. van der Horst, T. Sundelin, K. E. Seamons, and C. D. Knutson. Mobile Trust Negotiation:
Authentication and Authorization in Dynamic Mobile Networks. Eighth IFIP TC-6 TC-11 Conference
on Communications and Multimedia Security, Windermere, The Lake District, UK, edited by D.
Chadwick and B. Preneel, pages 97-109, Springer, September 2004. Acceptance rate: 50%. (17/34).
Category 3.

7. B. Smith, K. E. Seamons, and M. D. Jones. Responding to Policies at Runtime in TrustBuilder. 5th


International Workshop on Policies for Distributed Systems and Networks, pages 149-158, Yorktown
Heights, New York, June 2004. IEEE Computer Society. Overall acceptance rate: 38% (33/87). Large
paper acceptance rate: 25% (18/71). Category 2.

8. R. Gavriloaic, W. Nejdl, D. Olmedilla, K. E. Seamons, and M. Winslett. No Registration Needed:


How to Use Declarative Policies and Negotiation to Access Sensitive Resources on the Semantic

Page 344 of 394


C3 CS 12/14/04
Web, First European Semantic Web Symposium, Heraklion, Crete, Greece, May 2004. LNCS 3053,
pages 342-356, Springer, 2004, ISBN 3-540-21999-4. Category 3.

9. J. Holt, R. Bradshaw, K. E. Seamons, and H. Orman. Hidden Credentials. 2nd ACM Workshop on
Privacy in the Electronic Society, pages 1-8, Washington, DC, October 2003. ACM Press.
Acceptance rate: 30% (15/50). Category 3.

10. D. Vawdrey, T. Sundelin, K. E. Seamons, and C. Knutson. Trust Negotiation for Authentication and
Authorization in Healthcare Information Systems. 25th Annual International Conference of the IEEE
Engineering in Medicine and Biology Society, Cancun, Mexico, September 2003. Acceptance rate:
93%. Category 4.

11. A. Hess and K.E. Seamons. An Access Control Model for Dynamic Client-Side Content. 8th ACM
Symposium on Access Control Models and Technologies, pages 207-216, Como, Italy, June 2-3,
2003. ACM Press. Acceptance rate: 36% (23/63). Category 2.

12. T. Yu, M. Winslett, and K. E. Seamons. Automated Trust Negotiation over the Internet. 6th World
Multiconference on Systemics, Cybernetics and Informatics, Orlando, FL, July 14-18, 2002. Category
4.

13. K. E. Seamons, M. Winslett, T. Yu, B. Smith, E. Child, J. Jacobsen, H. Mills, and L. Yu.
Requirements for Policy Languages for Trust Negotiation. 3rd International Workshop on Policies for
Distributed Systems and Networks, pages 68-79, Monterey, CA, June 2002. IEEE Computer Society.
Acceptance rate: 25% (17/67). Category 2.

14. K. E. Seamons, M. Winslett, T. Yu, L. Yu, and R. Jarvis. Protecting Privacy during On-line Trust
Negotiation. 2nd Workshop on Privacy Enhancing Technologies, San Francisco, CA, April 2002.
LNCS 2482, edited by R. Dingledine and P. Syverson, pages 129-143, Springer, 2003. ISBN 3-540-
00565-X. Acceptance rate: 35% (17/48). Category 3.

15. A. Hess, J. Jacobson, H. Mills, R. Wamsley, K. E. Seamons, and B. Smith. Advanced Client/Server
Authentication in TLS. Network and Distributed System Security Symposium, pages 203-214, San
Diego, CA, February 2002. Internet Society. Acceptance rate: 20% (16/79). Category 2.

16. T. Yu, M. Winslett, and K. E. Seamons. Interoperable Strategies in Automated Trust Negotiation. 8th
ACM Conference on Computer and Communications Security, pages 146-155, Philadelphia, PA,
November 2001. ACM Press. Acceptance rate: 18% (27/153). Category 1.

17. T. Barlow, A. Hess, and K. E. Seamons. Trust Negotiation in Electronic Markets. Eighth Research
Symposium in Emerging Electronic Markets, Maastricht, Netherlands, September 2001. Acceptance
rate: 80%. Category 3.

18. K. E. Seamons, M. Winslett, and T. Yu. Limiting the Disclosure of Sensitive Access Control Policies
during Automated Trust Negotiation. Network and Distributed System Security Symposium, pages
109-124, San Diego, CA, February 2001. Internet Society. Acceptance rate: 24% (16/66). Category 2.

19. W. H. Winsborough, K. E. Seamons, and V. E. Jones. Negotiating Disclosure of Sensitive


Credentials. Second Conference on Security in Communication Networks ’99, Amalfi, Italy,
September 1999. Category 3.

Page 345 of 394


C3 CS 12/14/04
20. Y. Cho, M. Winslett, M. Subramaniam, Y. Chen, S. Kuo, and K. E. Seamons, Exploiting Local Data
in Parallel Array I/O on a Practical Network of Workstations, Fifth Workshop on Input/Output in
Parallel and Distributed Systems, pages 1-13, San Jose, CA, November 17, 1997. ACM Press.
Acceptance rate: 38% (10/26). Category 3.

21. S. Kuo, M. Winslett, Y. Chen, Y. Cho, M. Subramaniam, and K. E. Seamons. Parallel Input/Output
with Heterogeneous Disks. 9th International Conference on Scientific and Statistical Database
Management, pages 79-90, Olympia, WA, August 1997. IEEE Computer Society. Acceptance rate:
38% (17/45). Category 2.

22. K. E. Seamons, W. Winsborough, and M. Winslett. Internet Credential Acceptance Policies. 2nd
International Workshop on Logic Programming Tools for Internet Applications, Leuven, Belgium,
July 12, 1997. Category 3.

23. S. Kuo, M. Winslett, K. E. Seamons, Y. Chen, Y. Cho, and M. Subramaniam. Application Experience
with Panda. Eighth SIAM Conference on Parallel Processing for Scientific Computing, Minneapolis,
MN, March 14-17, 1997. Available on CD-ROM, ISBN 0-89871-395-1. Category 3.

24. Y. Chen, M. Winslett, S. Kuo, Y. Cho, M. Subramaniam, and K. E. Seamons. Performance Modeling
for the Panda Array I/O Library. Supercomputing '96, Pittsburgh, PA, November 1996. Published on
CD-ROM by ACM and IEEE (ISBN 0-89791-854-1). Acceptance rate: 31% (54/174). Category 1.

25. M. Winslett, K. E. Seamons, Y. Chen, Y. Cho, S. Kuo, and M. Subramaniam. The Panda Library for
Parallel I/O of Large Multidimensional Arrays. Scalable Parallel Libraries Conference III (SPLC96),
Mississippi State University, October 24-25, 1996. Category 3.

26. K. E. Seamons, Y. Chen, M. Winslett, S. Kuo, Y. Cho, and M. Subramaniam. Persistent Array
Access Using Server-Directed I/O. 8th International Conference on Scientific and Statistical Database
Management, pages 98-107, Stockholm, Sweden, June 1996. IEEE Computer Society. Acceptance
rate: 35% (18/52). Category 2.

27. Y. Chen, M. Winslett, K. E. Seamons, S. Kuo, Y. Cho, and M. Subramaniam. Scalable Message
Passing in Panda. Fourth Workshop on Input/Output in Parallel and Distributed Systems, pages 109-
121, Philadelphia, PA, May 27, 1996. ACM Press. Category 3.

28. K. E. Seamons, Y. Chen, P. Jones, J. Jozwiak and M. Winslett. Server-Directed Collective I/O in
Panda. Supercomputing '95, San Diego, CA, December 1995. Published on CD-ROM by ACM and
IEEE (ISBN No. 0-89791-854-1, ACM Order Number: 415962, IEEE Computer Society Press Order
Number: RS00126). Acceptance rate: 29% (69/241). Category 1.

29. K. E. Seamons, Y. Chen, M. Winslett, Y. Cho, S. Kuo, P. Jones, J. Jozwiak, and M. Subramaniam.
Fast and Easy I/O for Arrays in Large-Scale Applications. Seventh IEEE Symposium on Parallel and
Distributed Computing, Workshop on Modeling and Specification of I/O, San Antonio, TX, October
25-28, 1995. Category 3.

30. K. E. Seamons and M. Winslett. A Data Management Approach for Handling Large Compressed
Arrays in High Performance Computing. Fifth Symposium on the Frontiers of Massively Parallel
Computation, pages 119-128, McLean, VA, February 1995. IEEE Computer Society Press.
Acceptance rate: 42% (56/134). Category 3.

Page 346 of 394


C3 CS 12/14/04
31. K. E. Seamons and M. Winslett. An Efficient Abstract Interface for Multidimensional Array I/O.
Supercomputing '94, pages 650-659, Washington D.C., November, 1994. IEEE Computer Society
Press. Acceptance rate: 28%. Category 1.

32. K. E. Seamons and M. Winslett, Physical Schemas for Large Multidimensional Arrays in Scientific
Computing Applications. 7th International Conference on Scientific and Statistical Database
Management, pages 218-227, Charlottesville, VA, September 1994. IEEE Computer Society Press.
Acceptance rate: 43% (23/54). Category 2.

Invited Papers
1. K. E. Seamons, M. Winslett, T. Yu, T. Chan, E. Child, M. Halcrow, A. Hess, J. Holt, J. Jacobson, R.
Jarvis, B. Smith, T. Sundelin, and L. Yu. Trust Negotiation in Dynamic Coalitions, DARPA
Information Survivability Conference and Exposition (DISCEXIII), Volume II, pages 240-245,
Washington, DC, April 2003. IEEE Computer Society Press. Category 4.

2. K. E. Seamons, T. Chan, E. Child, M. Halcrow, A. Hess, J. Holt, J. Jacobson, R. Jarvis, A. Patty, B.


Smith, T. Sundelin, and L. Yu. TrustBuilder: Negotiating Trust in Dynamic Coalitions, DARPA
Information Survivability Conference and Exposition (DISCEXIII), Volume II, pages 49-51,
Washington, DC, April 2003. IEEE Computer Society Press. Category 4.

3. W. H. Winsborough, K. E. Seamons, and V. E. Jones. Automated Trust Negotiation. DARPA


Information Survivability Conference and Exposition (DISCEX), Volume I, pages 88-102, Hilton
Head, SC, January 2000. IEEE Press. Category 4.

Funded Research Projects


Principal Investigator, ITR: Automated Trust Negotiation in Open Systems, 2003-2008, sponsored by
National Science Foundation. Co-PIs: Ninghui Li (Purdue), John Mitchell (Stanford), Brian Tung
(USC/ISI), Will Winsborough (George Mason University), Marianne Winslett (UIUC). BYU funding:
$363,000. Total funding: $1,750,000.
Principal Investigator, ITR: Responding to the Unexpected, 2003-2008, sponsored by National Science
Foundation through a subcontract with University of California-Irvine. Total amount of BYU subcontract:
$410,000. Joint proposal with researchers from UC Irvine, UC San Diego, UIUC, University of Colorado,
University of Maryland, and ImageCat, Inc. PI: Sharad Mehrotra. Total funding: $12,500,000.
Principal Investigator, Trust Negotiation for Dynamic Coalitions, 2001-2004, sponsored by DARPA
and administered by the Space and Naval Warfare Systems Center San Diego (SSCSD), BAA N66001-
98-X-6905, Grant No. N66001-01-1-8908. BYU funding: $949,666. Total funding: $1,218,664.
Principal Investigator, Negotiating Trust over Open Networks, 2002-2003, sponsored by Zone Labs,
Inc., San Francisco, CA. Total funding: $25,000.
Principal Investigator, Support for the Role-based Trust Management (RT) Language in TrustBuilder,
2002-2003, sponsored by DARPA through a subcontract with Network Associates Laboratories,
Rockville, MD, and administered by the Space and Naval Warfare Systems Center San Diego (SSCSD),
Contract No. N66001-01-C-8005, modification number P00004. Total funding: $39,500.
Principal Investigator, Trust Negotiation Technology, 2000-2001, sponsored by DARPA through the
Advanced Technologies for Information Assurance and Survivability (ATIAS) Program, Air Force
Research Lab/SNKD, Wright Patterson AFB; BAA 00-06-SNK, Contract No. F33615-01-C-1805. BYU
funding: $68,379. Total funding: $128,178.

Page 347 of 394


C3 CS 12/14/04
Principal Investigator, Advances in Trust Negotiation, 2000, sponsored by DARPA through a
subcontract with NAI Labs, Greenbelt MD, and administered by the Air Force Research Lab, Contract
No. F30602-97-C-0336. Total funding: $24,000.
Co-Principal Investigator, Trust Negotiation Technology, 2000-2003, sponsored by DARPA with
matching funds provided by IBM Transarc Lab, Information Assurance BAA 99-33. Total funding:
$1,561,477. Funding offer subsequently declined by IBM Transarc Lab management.
Principal Investigator, Trust Management in Open Systems, 1998-2000, sponsored by DARPA through
a subcontract with North Carolina State University with matching funds provided by IBM Transarc Lab,
administered by Air Force Rome Laboratories, BAA 98-04 PR C-8-2424, Contract No. F3062-98-C-
0222. IBM Transarc funding: $336,855. Total funding: $536,320.
Principal Investigator, Panda, 1998, sponsored by the Center for Simulation of Advanced Rockets,
University of Illinois at Urbana-Champaign through the Department of Energy Accelerated Strategic
Computing Initiative (ASCI) program. I secured an offer for a subcontract with funding to start at $62,500
for 6 months, and projected to total $262,500 over 5 years. New management at Transarc subsequently
declined the offer for funding in order to pursue a new mission within the research group.
Principal Investigator, Digital Credentials, 1997, sponsored by DARPA through a subcontract with the
Database Research Laboratory at the University of Illinois at Urbana-Champaign and administered by US
Army CERL, BAA 93-11, Contract No. DACA88-94-C-0029. Total funding: $66,000.
Principal Investigator, Horizon: Test Applications and Digital Library Technologies in Support of
Public Access to Earth and Space Science Data, 1997, sponsored by NASA Digital Library Technology
Project through a subcontract with the Database Research Laboratory at the University of Illinois at
Urbana-Champaign and the National Center for Supercomputing Applications. Total project funding:
$40,000.
Researcher, EOSDIS, 1996-1997, sponsored by NASA.
Researcher, Synopsis, 1995-1997, sponsored by DARPA.
Researcher, Horizon, 1994-1995, sponsored by NASA.
Researcher, Panda and HDF, 1994-1995, sponsored by NASA.
ARPA Fellow, Panda, 1993-1995, sponsored by ARPA, administered by the University of Maryland
Institute for Advanced Computer Studies (UMIACS).
Researcher, Astronomy Digital Library, 1991-1993, sponsored by NCSA.

Patents
1. Co-inventor
Trust Negotiation in a Client/Server Data Processing Network Using Automatic Incremental
Credential Disclosure, IBM Corporation, U.S. Patent # 6,349,338, February 19, 2002. Patent
applications filed in over 21 countries due to IBM’s assessment of the potential impact.
2. Co-inventor
Automated Trust Negotiation, IBM Corporation, patent application filed March 7, 2000

Courses Taught 2005-2006


2005 CS 465 Computer Security
2005 CS 665 Advanced Computer Security (2 sections)
2005 CS 345 Operating Systems
2005 CS 601R Advanced Topics in Computer Security
2006 CS 465 Computer Security
2006 CS 665 Advanced Computer Security (2 sections)
2005 CS 601R Advanced Topics in Computer Security
Page 348 of 394
C3 CS 12/14/04
Other Duties
Member of External Funding and Ph.D. Recruiting Committees for Computer Science
Department at BYU.

Academic Advisor
9 Masters students

Scholarly Research and Time Division


40% Teaching
I teach security and operating system courses

55% Research
NSF ITR: Automated Trust Negotiation
PI on a grant involving five institutions (Purdue, Illinois, USC, Stanford,
UTSA)
Develop technologies to establish trust in open systems

NSF RESCUE: Responding to Crises and Unexpected Events


Large center-scale project involving over 20 PIs.
My focus is on the design of systems to easily and securely share
information between organizations, with an emphasis on privacy
protection.
5% Citizenship
External funding committee
PhD recruiting committee

Page 349 of 394


C3 CS 12/14/04
Thomas W. Sederberg
Professor of Computer Science
Tenured
Brigham Young University

Academic History
2005-present Associate Dean Brigham Young University
College of Physical and Mathematical Sciences
1997-present Professor of Computer Science Brigham Young University
1993-1996 Professor of Civil Engineering Brigham Young University
1988-1993 Associate Professor of Civil Engineering Brigham Young University
1983-1988 Assistant Professor of Civil Engineering Brigham Young University
1981-1983 Graduate Teaching and Research Assistant Purdue University
1978-1980 Instructor in Civil Engineering Brigham Young University

Education
1983 Ph.D. in Mechanical Engineering Purdue University
1977 M.S. in Civil Engineering Brigham Young University
1975 B.S. in Civil Engineering Brigham Young University

Computer Science Background (if you don’t have one educationally)


I took several CS courses at BYU and at Purdue. I have done research in computer graphics for
30 years.

Professional Development
I attend the ACM SIGGRAPH conference on computer graphics each year. I attend several
courses during the conference on computer graphics education.

Relevant Employment
I worked at Dicomed, a computer graphics company.

Consulting
S3. 2002 Developed system hardware rendering of surface patches.
1997-2004 Adobe-Developed algorithms for use in Adobe products.
1986 Shell Oil-Developed algorithm for fabric flattening.
1984 Shell Oil-Installed MOVIE.BYU.
1982 Dicomed Corporation-Installed MOVIE.BYU.

Principle Publications (During the last five years)


1. T. W. Sederberg and D. C. Cardon and G. T. Finnigan and N. N. North and J. Zheng and T.
Lyche,“T-splines Simplification and Local Refinement,” ACM Transactions on Graphics 23(3) ,
pp. 477–484,2004.

2. T. W. Sederberg and J. Zheng and A. Bakenov and A. Nasri, “T-splines and T-NURCCS,”
ACM Transactions on Graphics 22(3) , pp. 477–484, 2003.

Page 350 of 394


C3 CS 12/14/04
3. R. T. Farouki, C. Y. Han, J. Hass, and T. W. Sederberg, “Topologically consistent trimmed
surface approximations based on triangular patches,” Computer Aided Geometric Design, 21, 5,
459–478, 2004.

4. X. Song, T. W. Sederberg, J. Zheng, R. T. Farouki, and J. Hass, “Linear perturbation methods


for topologically consistent representations of free-form surface intersections,” Computer Aided
Geometric Design, 21, 3, 303–319, 2004.

5. T. W. Sederberg, Jianmin Zheng and Xiaowen Song, “Knot intervals and multi-degree
splines,” Computer Aided Geometric Design,20, 7, pp. 455-468, 2003.

6. T. W. Sederberg, Jianmin Zheng, and Xiaowen Song, “A conjecture on tangent intersections


of surface patches,” Computer Aided Geometric Design, 21, 1, pp. 1–2, 2004.

7. Jianmin Zheng and T. W. Sederberg, “Gaussian and mean curvatures of rational Bezier
patches,” Computer Aided Geometric Design, 20, 6, pp. 297–301, 2003. T. W. Sederberg
Curriculum Vitae Page 3

8. F. Chen and T. W. Sederberg, “A new implicit representation of a planar rational curve with
high order singularity”, Computer Aided Geometric Design, 19, 2,151–167, 2002.

9. Falai Chen and Jianmin Zheng and T. W. Sederberg, “The μ-basis of a rational ruled surface,”
Computer Aided Geometric Design, 18, 1, 61–72, 2001.

10. E.-W. Chionh and T. W. Sederberg, “On the minors of the implicitization Bezout matrix for a
rational plane curve,” Computer Aided Geometric Design, 18, 1, 21–36, 2001.

11. X. Yu and B. Morse and T. W. Sederberg, “Image reconstruction using data-dependent


triangluation,” IEEE Computer Graphics and Applications, 21, 3, 62–69, May/June 2001.

12. Jianmin Zheng and Thomas W. Sederberg, “A direct approach to computing the μ-basis of
planar rational curves,” Journal of Symbolic Computation, 31, 5, 619–629, 2001.

13. J. Zheng and T. W. Sederberg, “Estimating tessellation parameter intervals for rational
curves and surfaces,” ACM Transactions on Graphics, 19, 1, 56–77, 2000.
item J. Zheng, T. W. Sederberg, and R. Johnson, “Least squares methods for solving differential
equations using Bezier control points,” Applied Numerical Mathematics,48, 2, 2004.

14. J. Zheng, T. W. Sederberg, E.-W. Chionh, and D. Cox, “Implicitizing rational surfaces with
base points using the method of moving surface,” in Topics in Algebraic Geometry and
Geometric Modeling, R. Goldman and R. Krausukas, ed., Contemporary Mathematics Series,
AMS, pp. 151–168, 2003.

Page 351 of 394


C3 CS 12/14/04
15. T. W. Sederberg and J. Zheng, “Algebraic methods for computer aided geometric design,”
Chapter 15 in Handbook of Computer Aided Geometric Design, G. Farn, J. Hoschek, and M.-S.
Kim, eds., Elsevier, 2002.

Scholarly Activities
1. Grants
(a) Amount: $400,000
Funding Agency: National Science Foundation
Period: May 2002 - April 2005
Title: CARGO initiative (with Rida Farouki and Joel Haas)

(b) Amount: $50,000


Funding Agency: Adobe
Period: March 2002 – March 2003 Title: Video slow motion algorithm

(c) Amount: $276,000


Funding Agency: National Science Foundation
Period: September 2000 - August 2003
Title: Robust geometric computation using non-uniform Catmull-Clark surfaces

(d) Amount: $50,000


Funding Agency: Adobe
Period: March 2001 – March 2002 Title: Video slow motion algorithm

(e) Amount: $110,000 Funding Agency: Idaho National Lab Period: October 2000–August 2002
Title: Algorithm for Navier-Stokes PDE equations using B-splines
T. W. Sederberg Curriculum Vitae Page 4

(f) Amount: $50,000


Funding Agency: Adobe
Period: March 2000 – March 2001 Title: Image morphing

2. Software Development
(a) OnePageGenealogy
(b) Relationship Finder
(c) T-Splines

Courses Taught 2005-2006


• CS 455 Section 001 Winter 2005
• CS 557 Section 001 Winter 2005
• CS 235 Section 001 Fall 2005
• CS 235 Section 002 Fall 2005
• CS 557 Section 001 Winter 2006

Other Duties

Page 352 of 394


C3 CS 12/14/04
I am currently serving as associate dean of the college. This takes, on average, 25 hours per
week. No extra compensation.

Academic Advisor
Currently, 5 MS students and 4 undergraduate students.

Scholarly Research and Time Division


I estimate that I spend 35% of my time doing research. My current research focuses on computer
aided geometric design and on family history technology. My main research topics in CAGD at
present relate to T-Splines.

Page 353 of 394


C3 CS 12/14/04
Kevin Seppi
Assistant Professor of Computer Science
Not Tenured
Brigham Young University

Academic History
2002-present Assistant Professor of Computer Science Brigham Young University
1994 Guest Instructor University of Texas
1982 Teaching Assistant Brigham Young University

Education
1990 Ph.D. in Operation Research University of Texas
1986 M.S. in Computer Science and Engineering University of Santa Clara
1983 B.S. in Computer Science Brigham Young University

Relevant Employment
Director of Corporate Development, BMC Software, June 1998 - August 2002. Responsible
for finding, verifying and implementing investments to further BMC’s business
strategies. This included the acquisition of companies, equity investment, and licensing
of technology.
Product Line Lead Developer, BMC Software, March 1995 - June 1998. Proposed, staffed,
Architected, and developed the projects in BMC’s Enterprise Data Propagation
product line.
OS Design and Architecture, International Business Machines, June 1994 - March 1995. As
a Senior Programmer in the Operating Systems Design and Architecture group
responsible for common architecture for all of IBM’s non-mainframe operating
systems (AIX, OS/2 and OS/400).
Object-Oriented Operating Systems, International Business Machines, January 1994 - June
1994. Senior programmer on IBM’s effort to create a new Object-Oriented Operating
System.
Future Systems, International Business Machines, April 1992 - January 1994. Architect,
design and prototype future hardware and software in IBM Advance Workstations
Division
New Business Opportunities, International Business Machines, May 1991 - April 1992.
Proposed and developed an information management system later used on the IBM
web site and within Lotus Notes.
Data Base Technology Institute, International Business Machines, June 1990 - May 1991.
The Data Base Technology Institute was a branch of IBM’s Research Division.
Worked on Parallel DBMS systems.
Ph.D. Studies under International Business Machines’ Resident Study program, August 1987
– August 1990. University Of Texas.

Page 354 of 394


C3 CS 12/14/04
DB2 Development, International Business Machines, December 1983 – August 1987
Developer on IBM’s DB2 Database management system.

Principle Publications
David Wingate and Kevin D. Seppi. "Prioritization Methods for Accelerating MDP
Solvers”. Journal of Machine Learning Research 6 (2005), pp. 851-881. MIT Press,
Cambridge, Massachusetts.

Christopher Monson and Kevin Seppi. “Linear Equality Constraints and Homomorphous
Mappings in PSO”. Proceedings of the 2005 IEEE Congress on Evolutionary Computation
pp. 73-80. Edinburgh, UK.

Christopher Monson and Kevin Seppi. “Exposing origin-seeking bias in PSO”. Proceedings
of the 2005 Conference on Genetic and Evolutionary Computation pp. 241-248.
Washington D.C.

Christopher Monson and Kevin Seppi. “Bayesian Optimization Models for Particle
Swarms”. Proceedings of the 2005 Conference on Genetic and Evolutionary Computation
pp.193-200. Washington D.C.

James Carroll and Kevin Seppi. “Task Similarity Measures for Transfer in Reinforcement
Learning Task Libraries”. Proceedings of the International Joint Conference on Neural
Networks 2005 pp. 803-808. Montreal, Canada.

P. Mullen, K. Seppi, S. Warnick. “Dynamic Pricing on Commercial Websites: A


Computationally Intensive Approach”. Proceedings of the 4th International Conference on
Computational Intelligence in Economics and Finance, Salt Lake City, 2005 pp. 1001-
1004. Salt Lake City, UT.

David Wingate, Nathaniel Powell, Quinn Snell, Kevin Seppi, “Prioritized Multiplicative
Schwarz Procedures for Solutions to General Linear Systems”. In Proceedings of the
International Parallel and Distributed Processing Symposium, Denver Colorado, 2005.

David Wingate and Kevin D. Seppi. “P3vi: A Partitioned, Prioritized, Parallel Value
Indicator”. In Proceedings of the International Conference on Machine Learning, Banff,
Canada, 2004.

Christopher K. Monson and Kevin D. Seppi. “The Kalman Swarm”. In Proceedings of the
Genetic and Evolutionary Computation Conference, volume 1, pages 140-150, Seattle,
Washington, 2004.

David Wingate and Kevin D. Seppi. “Cache Performance of Priority Metrics and MDP
Solvers”. In Proceedings of the 2004 AAAI Workshop on Learning and Planning in Markov
Processes, San Jose, California, 2004.

Page 355 of 394


C3 CS 12/14/04
James L. Carroll and Kevin D. Seppi. “A Bayesian Technique for Task Localization in
Multiple Goal Markov Decision Processes”. In Proceedings of the International
Conference on Machine Learning and Applications, Louisville, Kentucky, 2004.

Christopher K. Monson, David Wingate, Kevin D. Seppi, and Todd S. Peterson. “Variable
Resolution Discretization in the Joint Space”. In Proceedings of the International
Conference on Machine Learning and Applications, Louisville, Kentucky, 2004.

Christopher K. Monson and Kevin D. Seppi. “Improving on the Kalman Swarm: Extracting
Its Essential Characteristics”. In Late Breaking Papers of the Genetic and Evolutionary
Computation Conference, Seattle, Washington, 2004.

David Wingate and Kevin Seppi. “Efficient Value Iteration Using Partitioned Models”. In
International Conference on Machine learning Applications 2003, June 11-13, 2003, Los
Angles, California (Best paper).

James Carroll and Kevin Seppi. “Reinforcement Learning Task Clustering (RLTC)”. In
International Conference on Machine Learning Applications 2003, June 11-13, 2003, Los
Angles, California.

Kevin Seppi, J. Wesley Barnes and Carl Morris. “A Bayesian Approach to Database Query
Optimization”. In ORSA Journal on Computing 5(4), pp. 410-419, Fall 1993.

Kevin Seppi. “Simplified hidden Line Removal”. In Journal of Pascal and Ada 2(1),
February 1983.

D. Spuler, J. Kushner, and K. Seppi. “Empowering CEMS via Agent Technology”. In BMC
Tech News July-September 1998.

K. Seppi. “Selecting Algorithms in the Presence of Uncertainty”. In IBM Technical


Disclosures Bulletin.

M. Dockter, J. Farber, and K. Seppi. “Facility for the Intelligent Selection of Information
Objects (PERSONA)”. IBM Santa Teresa Lab Technical Report 03.459, January 1993.

M. Dockter, J. Farber, and K. Seppi. “Method for Storing and Retrieving Heterogeneous
Classification Systems”. IBM Santa Teresa Lab Technical Report 03.447, April 1992.

M. Dockter, J. Farber, and K. Seppi. “Grinding: A Facility for the Automatic Association
of Heterogeneous Objects”. IBM Santa Teresa Lab Technical Report 03.459, April 1992.

C. Christiansen, J. Glosup, C. Morris and K. Seppi. “An Overview of the 'S' and 'XLISP-
STAT' Statistical Programming Languages (Updated)”. In Proceedings of the IBM
Reliability & Applied Statistics ITL, IBM East Fishkill, New York, May 13-16 1991.
Page 356 of 394
C3 CS 12/14/04
M. Dockter, A. Peterson, and K. Seppi,. “Knowledge Mining Center Phase One: A
Computer Supported Collaborative Workspace”. IBM Santa Teresa Lab Technical Report
03.434 , May 1992.

Kevin Seppi. A Bayesian Approach to Selected Database Issues. Ph.D. Dissertation at the
University of Texas. Austin, Texas, August 1990.

C. Christiansen, J. Glosup, C. Morris and K. Seppi. “An Overview of the 'S' and 'XLISP-
STAT' Statistical Programming Languages”. University of Texas Center for Statistical
Sciences Technical Report #89. Also presented at the Statistical Computation Conference at
the University of Texas, May 18 1990.

K. Seppi, J. Barnes and C. Morris. “A Bayesian Approach to Query Optimization in Large


Scale Data Bases”. Graduate Program in Operations Research Technical Report OR89-19,
The University of Texas at Austin. Austin, Texas, December 1989.

K .Seppi, and D. Haderle. “Index Mass Delete”. In IBM Technical Disclosures Bulletin,
August 1989, 454-455.

K. Seppi, T. Malkemus, R. Crus, and D. Haderle, “Conditional Non-root Locking”. In IBM


Technical Disclosures Bulletin, August 1989, 57-58.

Scholarly Activities
Research Grants:
Kevin Seppi and Sean Warnik, “A Computational Economics Learning Laboratory”,
Renewed by the Kevin and Debra Rollins Center for EBusiness, January 2006 – December
2006.

Kevin Seppi, BYU College of Physical and Mathematical Sciences, January 2006 –
December 2006.

Kevin Seppi and Sean Warnik, “A Computational Economics Learning Laboratory”,


funded by the Kevin and Debra Rollins Center for EBusiness, May 1, 2004 – December
2005.

Kevin Seppi, BYU College of Physical and Mathematical Sciences, January 2005 –
December 2005.

Kevin Seppi, BYU College of Physical and Mathematical Sciences, January 2004 –
December 2004.

Kevin Seppi, BYU College of Physical and Mathematical Sciences, January 2003 –
December 2003.

Page 357 of 394


C3 CS 12/14/04
Patents Received

James L. Martin, Abolfazl Sirjani, Kevin D. Seppi, Lisa S. Keeler, US Patent 6,029,178
“Enterprise data movement system and method which maintains and compares edition
levels for consistency of replicated data”, March 31, 1998

James L. Martin, Abolfazl Sirjani, Kevin D Seppi, Lisa S Keeler, 6,035,307 Enterprise data
movement system and method including opportunistic performance of utilities and data
move operations for improved efficiency March 30, 1998

James L. Martin, Abolfazl Sirjani, Kevin D. Seppi, Lisa S. Keeler, US Patent 6,016,501
“Enterprise data movement system and method which performs data load and changed data
propagation operations”, March 30, 1998

Michael J. Dockter, Joel F. Farber, Kevin D. Seppi, US Patent 6,208,989 Facility for the
intelligent selection of information objects, February 14, 1997

Michael J. Dockter, Joel F. Farber, Kevin D. Seppi, David W. Tolleson US Patent


5,687,367 “Facility for the storage and management of connection (connection server)”,
October 30, 1996

Michael Jon Dockter, Joel Frank Farber, Michael Leon Pauser, Kevin Darrell Seppi, David
Wayne Tolleson, US Patent 5,640,608 “System and method for block generation of
monotonic globally unique tag values, where restart tag value due to failure starts at highest
value of previously generated tag values”, March 16, 1995

Ronald E. Bingham, Harry R. Campbell, Michael J. Dockter, Joel F. Farber, Kevin D.


Seppi, US Patent 5,745,895 “Method for association of heterogeneous information”, June
21, 1994

Michael J. Dockter, Joel F. Farber, Kevin D. Seppi, US Patent 5,854,923 Facility for the
intelligent selection of information objects (persona), June 21, 1994

Michael J. Dockter, Joel F. Farber, Kevin D. Seppi US Patent 5,678,038 “Storing and
retrieving heterogeneous classification systems utilizing globally unique identifiers”, June
21, 1994

Michael J. Dockter, Joel F. Farber, Jeffrey D. Gordon, Kevin D. Seppi, James C.Kleewein,
Patent 5,608,900 “Generation and storage of connections between objects in a computer
network”, June 21, 1994

Ronald E. Bingham, Michael J. Dockter, Joel F. Farber, Kevin D. Seppi, US Patent


5,557,790 “Facility for the generic storage and management of multimedia objects”, June
21, 1994

Page 358 of 394


C3 CS 12/14/04
Michael J. Dockter, Joel F. Farber, James C. Kleewein, Kevin D. Seppi, David W.
Tolleson, US Patent 5,434,978 “Communications interface employing unique tags which
enable a destination to decode a received message structure”, February 18, 1994

Michael J. Dockter, Charles L. Haug, Kevin D. Seppi, US Patent 5,420,801 “System and
method for synchronization of multimedia streams”, November 13, 1992

Ronald E. Bingham, Michael J. Dockter, Joel F. Farber, Kevin D. Seppi, US Patent


5,414,841 “Computerized system for representing data items using token identifiers”,
October 19, 1992

Courses Taught 2005-2006


Fall 2005: CS 236 section 1 and 2
Spring 2005: C S 470 section 001
C S 677 section 001
Spring 2006: C S 470 section 001
C S 677 section 001

Other Duties
Chair of the Department’s Computing Committee.

Academic Advisor
Advising two Ph.D. students.

Scholarly Research and Time Division


About 75% of my time is spent on research.

Page 359 of 394


C3 CS 12/14/04
Quinn O. Snell
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
2003-present Associate Professor of Computer Science Brigham Young University
1997-2003 Assistant Professor of Computer Science Brigham Young University
1996-1997 Predoctoral Research Associate Ames Laboratory, USDOE
1993-1996 Research Assistant Ames Laboratory, USDOE
1996 Instructor Drake University

Education
1997 Ph.D. in Computer Science Iowa State University
1993 M.S. in Computer Science Utah State University
1992 B.S. in Computer Science Utah State University

Principle Publications
Journal Publications
"Jumpstarting Phylogenetic Analysis", Jesse Mecham, Mark Clement, Todd Freestone,
Quinn Snell, Kevin Seppi, Keith Crandall, International Journal of Bioinformatics
Research and Applications, 2(1) 2006.

“Preemption Based Backfill”, Quinn Snell, Mark Clement, David Jackson. Job
Scheduling Strategies for Parallel Processing, Editors Dror G. Feitelson and Larry
Rudolph, Springer Verlag, 2002

“Application Placement Using Performance Surfaces”, Andre Turgeon, Quinn Snell,


Mark Clement. Cluster Computing Journal, Vol. 4 Issue 3, July 2001

“Core Algorithms of the Maui Scheduler”, David Jackson, Quinn Snell, Mark Clement.
Job Scheduling Strategies for Parallel Processing, Editors Dror G. Feitelson and
Larry Rudolph, Springer Verlag, LNCS Vol. 2221, pages 87-102, June 2001

“The Performance Impact of Advance Reservation Metascheduling”, Quinn Snell, Mark


Clement, David Jackson, and Chad Gregory. Job Scheduling Strategies for Parallel
Processing, Editors: Dror G. Feitelson and Larry Rudolph, Springer Verlag, LNCS
Vol 1911, 2000

"The DOGMA Approach to Parallel and Distributed Computing", Quinn Snell, Glenn
Judd, Mark Clement, Parallel and Distributed Computing Practices, March
2000.

“DOGMA: Distributed Object Group Metacomputing Architecture'', Glenn Judd, Mark


Clement and Quinn Snell. Concurrency: Practice and Experience, Vol 10(1),1-7
(1998) .
Page 360 of 394
C3 CS 12/14/04
Conference Publications
"Phylogenetic Analysis of Large Sequence Data Sets", Hyrum Carroll, Mark Clement,
Quinn Snell, Keith Crandall, Biotechnology and Bioinformatics Symposium,
October 2005. (Category 3, no survey results available)

“Phylograph: Real-time Interactive Visualization of Phylogenetic Searches”, Jesse


Mecham, Mark Clement, Quinn Snell, Keith Crandall, International Symposium on
Computational Biology and Genome Informatics (CBGI), July 2005. (Category 2,
good conference, no survey results available.)

“Prioritized Multiplicative Schwarz Procedures for Solutions to General Linear Systems”,


David Wingate, Nathaniel Powell, Quinn Snell, Kevin Seppi, Proceedings of the
2005 International Parallel and Distributed Processing Symposium, April 2005.
(Category 1, Survey 4-Cat1)

“Jumpstarting Phylogenetic Analysis”, Mark Clement, Quinn Snell, Keith Crandall,


Kevin Seppi, Biotechnology and Bioinformatics Symposium, September 2004, page
17. (Category 2, good conference with 30% or so acceptance rate. Good industrial
contacts, no survey results available.)

“A Survivable Multi-agent Approach to Network Routing”, Casey T. Deccio, Mark


Clement, Quinn Snell, International Conference on Communications in Computing,
June 2004 (Category 3, Survey 4-Cat3)

“A Piecewise Linear Approach to Overbooking”, Feng Huang, Casey Deccio, Robert


Ball, Mark Clement, Quinn Snell, High Performance Switching and Routing, April
2004, p 326. (Category 2, international conference with high visibility, one vote for
Cat2 in survey, no other votes. Big sessions with 30-40 attending in each session.)

“Aggressive Telecommunications Overbooking Ratios”, Robert Ball, Mark Clement,


Feng Huang, Quinn Snell, Casey Deccio, IEEE International Performance
Computing and Communications Conference, April 2004

"Complex Performance Analysis Through Statistical Experimental Design: An


Evaluation of Parameters Associated with Speed in Parallel Phylogenomics", David
G. Whiting, Quinn Snell, Rebecca R. Nichols, Megan L. Porter, Kevin Tew, Keith
A. Crandall, Michael F. Whiting, Mark Clement, Hawaii International Conference
on Computer Science, January 2004.

“An Enterprise Based Grid Resource Management System”, Quinn Snell, Kevin Tew,
Joseph Ekstrom, Mark Clement. Proceedings of the Eleventh IEEE International
Symposium on High Performance Distributed Computing (HPDC-11), Edinburgh,
Scotland, July 2002.

Page 361 of 394


C3 CS 12/14/04
“Effective Bandwidth Route Selection”, Xiafeng Lu, Mark Clement, Quinn Snell.
Proceedings of the 2001 International Symposium on Performance Evaluation of
Computer and Telecommunication Systems, San Diego, CA, pp 132, July 2002.

“Using Fourier Transform for RED’s Active Queue Management”, Lichen Dai, Peter
Walker, Mark Clement, Quinn Snell. Proceedings of the 2001 International
Symposium on Performance Evaluation of Computer and Telecommunication
Systems, San Diego, CA, pp 188, July 2002.

“Livelock Avoidance for Metaschedulers”, John Jardine, Quinn Snell, Mark Clement.
Proceedings of the Tenth IEEE International Symposium on High Performance
Distributed Computing (HPDC-10), San Francisco, CA, August 2001.

“The YGuard Access Control Model: Set-Based Access Control,” Ty van den Akker,
Quinn O. Snell, and Mark Clement. Proceedings of SACMAT 2001, Chantilly,
Virginia, May 2001.

“Improving Cluster Utilization Through Set-Based Allocation Policies,” David B.


Jackson, Brian Haymore, Julio Facelli, Quinn O. Snell. Proceedings of the
International Conference on Parallel Processing Workshops, Valencia, Spain,
September 2001

“Random Early Detection Parameter Tuning,” Peter Walker, LiChen Dai, Mark Clement,
Quinn Snell, Chris Chase. Proceedings of the 2001 International Symposium on
Performance Evaluation of Computer and Telecommunication Systems, Orlando,
Florida, July 2001.

“The Impact of Hardware Characteristics on Firewall Performance,” Bradley J. Baird,


Mark Clement, Charles Knutson, Quinn Snell. Proceedings of the 2001
International Symposium on Performance Evaluation of Computer and
Telecommunication Systems, Orlando, Florida, July 2001.

“Load Balancing in a Parallel Chess Program”, Reid Broadbent, Quinn Snell, Mark
Clement, Proceedings of the 2001 International Conference on Parallel and
Distributed Techniques and Applications, Las Vegas, Nevada, June 2001, page 324-
330.

“Fairness in TCP Networks”, Xiaofeng Lu, Mark Clement, Quinn Snell, Proceedings of
the 2001 International Conference on Internet Computing, Las Vegas, Nevada,
June 2001, page 366-371

"Effective Bandwidth for Traffic Engineering", Rob Kunz, Seth Nielson, Mark Clement,
Quinn Snell, Proceedings of the IEEE Workshop on High Performance Switching
and Routing (HPSR 2001), Dallas, TX, May 2001.

Page 362 of 394


C3 CS 12/14/04
"Parallel Phylogenetic Inference", Quinn Snell, Michael Whiting, Mark Clement, and
David McLaughlin, Proceedings of Supercomputing 2000, Dallas, TX, November
2000.

“YRM: An Advanced Resource Manager”, Daniel L. Reese, Scott V. Hansen, Quinn O. Snell, Mark J.
Clement, Proceedings of the Conference on Parallel and Distributed Computing and Systems
(PDCS), November 2000, page 495.

“Object Placement using Performance Surfaces”, Andre Turgeon, Quinn Snell, and Mark
Clement, Proceedings of the Ninth IEEE International Symposium on High
Performance Distributed Computing (HPDC-9), Pittsburg, PA, August 2000.

“Pyramid Broadcasting with Fast-forward and Rewind”, Angela Jones , Michael Jones,
Mark Clement, Quinn Snell, Proceedings of the 8th International Conference on
Telecommunication Systems, Modeling and Analysis, March 2000.

“A Performance Broker for CORBA”, Kevin Butler, Mark Clement, Quinn Snell,
Proceedings of the Eighth IEEE International Symposium on High Performance
Distributed Computing (HPDC-8), Redondo Beach, California, August 3-6 1999,
pages 19-28.

“High Performance Phylogenetic Inference”, Mark Clement, Quinn Snell, Michael


Whiting, and Glenn Judd, Proceedings of the Eighth IEEE International Symposium
on High Performance Distributed Computing (HPDC-8), Redondo Beach,
California, August 3-6 1999, pages 335-336.

"Design Issues for Efficient Implementation of MPI in Java", Glenn Judd, Mark Clement,
Quinn Snell and Vladimir Getov, ACM 1999 Java Grande Conference, Palo Alto,
California, June 12-14, 1999, pages 58-65.

"High Performance Scheduling for Windows NT", Mark Clement, Quinn Snell, David
Jackson, David Ashton, Proceedings of the 1999 International Conference on
Parallel and Distributed Techniques and Applications, Las Vegas, Nevada, July
1999, pages 525-531.

"Parallel Algorithm and Processor Selection Based on Fuzzy Logic", Shuling Yu, Mark
Clement, Quinn Snell and Bryan Morse, Proceedings of High Performance
Computing and Networking Europe, Lecture Notes in Computer Science, Springer-
Verlag, Vol 1593, April 1999, pages 441-449.

"High Performance Computing for the Masses", Mark Clement, Quinn Snell, Glenn Judd,
Proceedings of IPPS International Workshop on Java for Parallel and Distributed
Computing, Lecture Notes in Computer Science, Springer-Verlag, Vol 1586, April
1999, pages 781-796.

"Latency Tolerant Algorithms for WAN Based Workstation Clusters", Bernd Helzer,
Mark Clement and Quinn Snell ,Proceedings of the 7th Symposium on the Frontiers
Page 363 of 394
C3 CS 12/14/04
of Massively Parallel Computation, Annapolis, Maryland, February 1999, pages
52-59.

"Parallel Algorithms for Image Convolution'', Shuling Yu, Mark Clement, Quinn Snell
and Bryan Morse. Proceedings of the 1998 International Conference on Parallel
and Distributed Techniques and Applications, Las Vegas, Nevada, July 1998.

“ Load Balancing in a Heterogeneous Supercomputing Environment'', Quinn Snell, Glenn


Judd and Mark Clement. Proceedings of the 1998 International Conference on
Parallel and Distributed Techniques and Applications, Las Vegas, Nevada, July
1998.

“The DOGMA Approach to High-Utilization Supercomputing'', Glenn Judd, Mark


Clement and Quinn Snell. Proceedings of the Seventh IEEE International
Symposium on High Performance Distributed Computing (HPDC-7), Chicago,
Illinois, July 1998.

“DOGMA: Distributed Object Group Management Architecture'', Glenn Judd, Mark


Clement and Quinn Snell. ACM 1998 Workshop on Java for High-Performance
Network Computing, Palo Alto, California, February 28, 1998.

“Parallel Hierarchical Global Illumination,” Q. Snell and J. Gustafson. Proceedings of the


Sixth International Conference on High Performance Distributed Computing,
Portland, Oregon, August 1997.

“An Analytical Model of the HINT Performance Metric,” Q. Snell and J. Gustafson.
Proceedings of Supercomputing 1996, November 1996.

“NetPIPE: A Network Protocol Independent Performance Evaluator,” Q. Snell, A Mikler,


and J. Gustafson. Proceedings of the IASTED/ISMM International Conference,
IASTED/ACTA Press, June 1996, pp. 129-134.

“HINT: A New Way to Measure Computer Performance,” J. Gustafson and Q. Snell.


Proceedings of the 28th Annual Hawaii International Conference on System
Sciences, IEEE Computer Society Press, Vol. 2, January 1995, pp. 392-401.

Scholarly Activities
Grants

Page 364 of 394


C3 CS 12/14/04
Spring 2006 Xilinx Corporation $35,000
Software donation
Spring 2006 Starbridge $30,000
Advanced Development Software
Fall 2002 AT&T Network Research $90,000
AT&T - With Mark Clement
Summer Supercomputer Infrastructure Upgrade $250,000
2002 IBM - With Doug Chabries
Fall 2001 Deep Level Hexapod Phylogeny $1,500,000
National Science Foundation over 5 years
With Mark Clement, Mike Whiting, Keith Crandall, beginning
and David Whiting Jan 2002
Fall 2000 Supercomputer Infrastructure $4,100,000
Ira Fulton and IBM (192 proc.
With Doug Chabries and Dave Anthony IBM SP-2)
Fall 2000 Supercomputer Scheduling Infrastructure $500,000
IBM - With Mark Clement (16 node
IBM SP-2)
Fall 2000 QoS for IP Networks $95,000
AT&T - With Mark Clement
Fall 2000 Phylogenetic Analysis: A Collaborative Approach $150,000
Brigham Young University over 3 years
With Michael Whiting, Keith Crandall, Mark
Clement, Quinn Snell, David Whiting, and Gilbert
Fellingham
Winter 2000 YRM: The BYU Resource Management System $35,000
Microsoft - With Mark Clement and David Jackson
Fall 1999 QoS for IP Networks $95,000
AT&T - With Mark Clement
Fall 1999 Computational Science Infrastructure $24,000
Supplemental Capital Equipment Funding
With Mark Clement
Winter 1999 BYU-Novell Partnership $294,920
Novell - With Mark Clement, Dan Olsen, Dallan
Quass
Fall 1998 MPI for Multi-paradigm Programming $32,000
Microsoft - With Mark Clement
Fall 1998 Quality of Service for Integrated IP Networks $15,000
Packet Engines - With Mark Clement
Fall 1998 High Performance Computing for the Masses $28,000
BYU AVP Research Award
With Mark Clement
Fall 1998 Distributed Computing Services for WAN Based $30,639
Environments
Sprint Corporation
With Mark Clement and Bryan Morse

Page 365 of 394


C3 CS 12/14/04
Total $7,239,559
My Share ~$1,600,000

Technical Presentations

July 2002 Conference Presentation HPDC


An Enterprise Based Grid Resource
Management System
June 2001 Invited Conference Presentation Clustered
High Performance Computing for the Masses Supercomputing
Conference
May 2000 Conference Presentation IPDPS
The Performance Impact of Advance
Reservation Metascheduling
June 2000 Standards Working Group Participation Grid Forum
Resource Management for the
Computational Power Grid
Nov. 2000 Conference Presentation Supercomputing
Parallel Phylogenetic Inference
August 1999 Conference Presentation HPDC
High Performance Phylogenetic Inference
June 1999 Standards Working Group Participation Grid Forum
Resource Management for the
Computational Power Grid
May 1999 Technical Presentation Advance
Scheduling Architecture for Reservations Reservations
Workshop
April 1999 Conference Presentation IPPS
High Performance Computing for the Masses
July 1998 Conference Presentation PDPTA
Load Balancing in a Heterogeneous
Supercomputing Environment
July 1998 Conference Presentation PDPTA
Parallel Algorithms for Image Convolution
Mar 1998 Invited Talk Argonne National
Multiparadigm Communication Routines for Laboratory
MPICH
August 1997 Conference Presentation HPDC
Parallel Hierarchical Global Illumination
November Conference Presentation Supercomputing
1996 AHINT:An Analytical Model of the HINT ‘96
Benchmark

Awards and Positions

Page 366 of 394


C3 CS 12/14/04
Co-Program Chair BIOT Conference Fall 2005 – Fall 2006
Program Committee HiCOMB Fall 2001 – Winter
Workshop 2002
NSF Grant Review Panel February 2000
Minitrack Chairman HICSS Conference January 1999
Session Chair HPDC Conference August 1997
R & D 100 Award R & D Magazine October 1995

Courses Taught 2005-2006


Winter 2005: C S 462 section 001
C S 684 section 001
Fall 2005: C S 345 section 001
Winter 2006: C S 462 section 001
C S 684 section 001

Other Duties
• BYU
• Department- Computing Committee, Graduate Committee
• College- none
• University- Director of the Ira and Marylou Fulton Supercomputing Laboratory
• Professional
• Editorships
• Professional Committees
• Co-Program chair for BIOT 2006
• Other Professional Service
• Reviewed Papers for IEEE Transactions on Computational Biology and
Bioinformatics

Academic Advisor
Currently, 2 M.S. students and 1 Ph.D. student

Scholarly Research and Time Division


I spend 50% of my time doing research. My research is in the area of parallel and distributed
processing. In particular, I am interested in parallel algorithms for computational science and
parallel systems research.

Page 367 of 394


C3 CS 12/14/04
Dan Ventura
Assistant Professor of Computer Science
Not Tenured
Brigham Young University

Academic History
2001-present Assistant Professor of Computer Science Brigham Young University
2000-2001 Graduate Faculty of Computer Science and Engineering
Penn State University
1999-2001 Research Associate Penn State University

Education

1998 Ph.D in Computer Science Brigham Young University


1995 M.S. in Computer Science Brigham Young University
1992 B.S. in Computer Science Brigham Young University

Professional Activities
Area Editor, New Mathematics and Natural Computation, 2005-2006
Program Committee, International Symposium on Neural Networks, 2006
Program Committee, IEEE Mountain Workshop on Adaptive and Learning Systems, 2006
(SMCals/06)
Program Committee, International Joint Conference on Neural Networks, 2006
Program Committee, IEEE Mid-Summer Workshop on Soft Computing in Industrial
Applications 2005 (SMCia/05)
Program Co-Chair, International Conference on Computational Intelligence in conjunction
with the Joint Conference on Information Sciences, 2005
Program Committee, International Joint Conference on Neural Networks, 2005
Program Committee, International Conference on Neural Information Processing, 2004
Program Co-Chair, International Conference on Computational Intelligence in conjunction
with the Joint Conference on Information Sciences, 2003
Participant, Faculty Development Series, Faculty Center, Brigham Young University, Fall
2001-Spring 2003
Program Chair, International Conference on Computational Intelligence in conjunction
with the Joint Conference on Information Sciences, 2002
Certificate, The Penn State Course in College Teaching, Center for Excellence in Learning
and Teaching, Penn State University, Fall 2000
Panelist, National Science Foundation, 2000
Member, Association for Intelligent Machinery

Page 368 of 394


C3 CS 12/14/04
Guest Editor, Information Sciences Special Issue on Quantum and Neuro-quantum
Information Processing, October 2000
Common Control Language Working Group Lead, Second Very Shallow Water/Surf
Zone Mine Counter Measures Program Meeting, Panama City, Florida, December 1999
Organizer, Special sessions on Quantum Computation and Neuro-Quantum Information
Processing, International Conference on Computational Intelligence and Neuroscience,
February 2000
Organizing Committee, International Workshop on Quantum Neural Networks, Second
Annual All-Russian Conference on Neuroinformatics, January 2000
Member, International Neural Network Society
Invited Speaker, International Conference on Computational Intelligence and Neuroscience
special session on Neuro-Quantum Information Processing, October 1998
Program Committee, International Conference on Computational Intelligence and
Neuroscience, October 1998
Program Committee, International Conference on Computational Intelligence and
Neuroscience, March 2000

Principle Publications
Book Chapters

Alexandr Ezhov and Dan Ventura, "Quantum Neural Networks", in Future Directions
for Intelligent Systems and Information Science (Ed. N. Kasabov), Physica-Verlag, 2000.

Journal Articles

Kaivan Kamali, Dan Ventura, Amulya Garga and Soundar Kumara, “Geometric Task
Decomposition in a Multi-agent Environment”, Applied Artificial Intelligence, 20(5):
437-456, 2006.
Jonathan Dinerstein, Dan Ventura and Parris Egbert, "Fast and Robust Incremental
Action Prediction for Interactive Agents", Computational Intelligence, 21(1): 90-110,
2005.
John Howell, John Yeazell and Dan Ventura, "Optically Simulating a Quantum
Associative Memory", Physical Review A, vol. 62, article 42303, 2000.
Alexandr Ezhov, A. Nifanova, and Dan Ventura, "Distributed Queries for Quantum
Associative Memory", Information Sciences, vol. 128 nos. 3-4, pp. 271-293, 2000.
Dan Ventura and Tony Martinez, "Quantum Associative Memory", Information
Sciences, vol. 124 nos. 1-4, pp. 273-296, 2000.
Dan Ventura and Tony Martinez, "Initializing the Amplitude Distribution of a Quantum
State", Foundations of Physics Letters, vol. 12 no. 6, pp. 547-559, 1999.

Page 369 of 394


C3 CS 12/14/04
Dan Ventura, "Quantum Computational Intelligence: Answers and Questions", IEEE
Intelligent Systems, vol. 14 no. 4, pp. 14-16, 1999.

Conference Papers
Eric Goodman and Dan Ventura, “Spatiotemporal Pattern Recognition via Liquid State
Machines”, Proceedings of the International Joint Conference on Neural Networks, to
appear, July 2006.
Neil Toronto and Dan Ventura, “Learning Quantum Operators from Quantum State
Pairs”, Proceedings of the IEEE Congress on Evolutionary Computation, to appear, July
2006.
David Norton and Dan Ventura, “Preparing More Effective Liquid State Machines
Using Hebbian Learning”, Proceedings of the International Joint Conference on Neural
Networks, to appear, July 2006.
Nancy Fulda and Dan Ventura, “Learning a Rendezvous Task with Dynamic Joint
Action Perception”, Proceedings of the International Joint Conference on Neural
Networks, to appear, July 2006.
Adam Drake and Dan Ventura, "Practical Fourier-based Learning", Proceedings of the
International Conference on Machine Learning, pp. 185-192, August 2005.
Neil Toronto, Dan Ventura and Bryan Morse, “Edge Inference for Image Interpolation”,
Proceedings of the International Joint Conference on Neural Networks, pp. 1782-1787,
July 2005.
Eric Goodman and Dan Ventura, “Effectively Using Recurrently Connected Spiking
Neural Networks”, Proceedings of the International Joint Conference on Neural
Networks, pp. 1542-1547, July 2005.
Adam Drake and Dan Ventura, "Comparing High-Order Binary Features", Proceedings
of the Joint Conference on Information Sciences, pp. 428-431, July 2005.
Eric Goodman and Dan Ventura, "Time Invariance and Liquid State Machines",
Proceedings of the Joint Conference on Information Sciences, pp. 420-423, July 2005.
Nancy Fulda and Dan Ventura, “Incremental Policy Learning: An Equilibrium Selection
Algorithm for Reinforcement Learning Agents with Common Interests”, Proceedings of
the International Joint Conference on Neural Networks, pp. 1121-1126, July 2004.
Mark Richards and Dan Ventura, “Choosing a Starting Configuration for Particle
Swarm Optimization”, Proceedings of the International Joint Conference on Neural
Networks, pp. 2309-2312, July 2004.
Stephen Whiting and Dan Ventura, “Learning Multiple Correct Classifications from
Incomplete Data using Weakened Implicit Negatives”, Proceedings of the International
Joint Conference on Neural Networks, pp. 2953-2958, July 2005.
Bob Ricks and Dan Ventura, "Training a Quantum Neural Network", Neural
Information Processing Systems, pp. 1019-1026, December 2003.

Page 370 of 394


C3 CS 12/14/04
Nancy Fulda and Dan Ventura, "Target Sets: A Tool for Understanding and Predicting
the Behavior of Interacting Q-learners", Proceedings of the International Joint
Conference on Information Sciences, pp. 1549-1552, September 2003.
Mark Richards and Dan Ventura, "Dynamic Sociometry in Particle Swarm
Optimization", Proceedings of the International Joint Conference on Information
Sciences, pp. 1557-1560, September 2003.
Nancy Fulda and Dan Ventura, "Dynamic Joint Action Perception for Q-Learning
Agents", Proceedings of the International Conference on Machine Learning and
Applications, pp. 73-78, June 2003.
Nancy Fulda and Dan Ventura, "Concurrently Learning Neural Nets: Encouraging
Optimal Behavior in Cooperative Reinforcement Learning Systems", Proceedings of the
IEEE International Workshop on Soft Computing Techniques in Instrumentation,
Measurement, and Related Applications, pp. 2-5, May 2003.
Dan Ventura, "Probabilistic Connections in Relaxation Networks", Proceedings of the
International Joint Conference on Neural Networks, pp.934-938, May 2002.
Dan Ventura, "Pattern Classification Using a Quantum System", Proceedings of the
Joint Conference on Information Sciences, pp.537-640, March 2002.
Dan Ventura, "A Quantum Analog to Basis Function Networks", Proceedings of the
Fifth International Conference on Computing Anticipatory Systems, pp. 286-295, August
2001.
Dan Ventura, "On the Utility of Entanglement in Quantum Neural Computing",
Proceedings of the International Joint Conference on Neural Networks, pp. 1565-1570,
July 2001.
Dan Ventura, "Learning Quantum Operators", Proceedings of the International
Conference on Computational Intelligence and Neuroscience, pp. 750-752, March 2000.
Dan Ventura, "Implementing Competitive Learning in a Quantum System", Proceedings
of the International Joint Conference on Neural Networks, paper 513 (CD-ROM), July
1999.
Dan Ventura, D. Randall Wilson, Tony Martinez and Brian Moncur, "A Neural Model
of Centered Tri-gram Speech Recognition", Proceedings of the International Joint
Conference on Neural Networks, paper 2188 (CD-ROM), July 1999.
D. Randall Wilson, Dan Ventura, Tony Martinez and Brian Moncur, "The Robustness of
Relaxation Rates in Constraint Satisfaction Networks", Proceedings of the International
Joint Conference on Neural Networks, paper 162 (CD-ROM), July 1999.
Dan Ventura and Tony Martinez, "A Quantum Associative Memory Based on Grover's
Algorithm", Proceedings of the International Conference on Artificial Neural Networks
and Genetic Algorithms, pp. 22-27, April 1999.
Dan Ventura, "Artificial Associative Memory using Quantum Processes", Proceedings
of the International Conference on Computational Intelligence and Neuroscience, vol. 2,
pp. 218-221, October 1998.

Page 371 of 394


C3 CS 12/14/04
Dan Ventura and Tony Martinez, "Quantum Associative Memory with Exponential
Capacity", Proceedings of the International Joint Conference on Neural Networks, pp.
509-513, May 1998.
Dan Ventura and Tony Martinez, "Optimal Control Using a Neural/Evolutionary Hybrid
System", Proceedings of the International Joint Conference on Neural Networks, pp.
1036-1041, May 1998.
Dan Ventura and Tony Martinez, "Using Evolutionary Computation to Facilitate
Development of Neurocontrol", Proceedings of the International Workshop on Neural
Networks and Neurocontrol, August 1997.
Dan Ventura and Tony Martinez, "An Artificial Neuron with Quantum Mechanical
Properties", Proceedings of the International Conference on Artificial Neural Networks
and Genetic Algorithms, pp. 482-485, April 1997.
Dan Ventura and Tony Martinez, "A General Evolutionary/Neural Hybrid Approach to
Learning Optimization Problems", Proceedings of the World Congress on Neural
Networks, pp. 1091-5, September 1996.
Dan Ventura and Tony Martinez, "Concerning a General Framework for the
Development of Intelligent Systems", Proceedings of the International Conference on
Artificial Intelligence, Expert Systems and Neural Networks, pp. 44-47, August 1996.
Dan Ventura and Tony Martinez, "Robust Optimization Using Training Set Evolution",
Proceedings of the International Conference on Neural Networks, pp. 524-8, June 1996.
Dan Ventura, Tim Andersen and Tony Martinez, "Using Evolutionary Computation to
Generate Training Set Data for Neural Networks", Proceedings of the International
Conference on Artificial Neural Networks and Genetic Algorithms, pp. 468-471, April
1995.
Dan Ventura and Tony Martinez, "An Empirical Comparison of Discretization
Methods", Proceedings of the International Symposium on Computer and Information
Sciences, pp. 443-450, November 1995.
Dan Ventura and Tony Martinez, "Using Multiple Statistical Prototypes to Classify
Continuously Valued Data", Proceedings of the International Symposium on
Neuroinformatics and Neurocomputers, pp. 238-45, September 1995.
Dan Ventura and Tony Martinez, "BRACE: A Paradigm For the Discretization of
Continuously Valued Data", Proceedings of the Florida Artificial Intelligence Research
Symposium, pp. 117-121, May 1994.

Other

Steve Bair, Uday Chakraborty, Shu-Heng Chen, Heng-Da Cheng, David K.Y. Chiu,
Sanjoy Das, Grit Denker, Richard Duro, Manuel Grana Romay, Donald Hung, Etienne
Kerre, Hong Va Leong, Chang-Tien Lu, Jie Lu, Liam Maguire, Chong Wah Ngo, M.
Sarfraz, Chris Tseng, Shusaku Tsumoto, Dan Ventura, Paul P. Wang, Xin Yao, C.N.
Zhang, Kaizhong Zhang (Editors), Proceedings of the Eighth Joint Conference on
Information Sciences, July 2005.
Page 372 of 394
C3 CS 12/14/04
Ken Chen, Shu-Heng Chen, Heng-Da Cheng, David K.Y. Chin, Sanjoy Das, Richard
Duro, Zhen Jiang, Nik Kasabov, Etienne Kerre, Hong Va Leong, Qing Li, Mi Lu, Manuel
Grana Romay, Dan Ventura, Paul P. Wang, Jie Wu (Editors), Proceedings of the
Seventh Joint Conference on Information Sciences, September 2003.
Dan Ventura and Tony Martinez, "Kvantovaya Accotsiativnaya Pamyat'",
Neirokomp'yutery: razrabotka i primenenie, N9-10, pp. 34-53, 2002 (Russian translation
of "Quantum Associative Memory" in the journal Neurocomputers: development and
applications).
H. John Caulfield, Shu-Heng Chen, Heng-Da Cheng, Richard Duro, Vasant Hanovar,
Etienne E. Kerre, Mi Lu, Manuel Grana Romay, Timothy K. Shih, Dan Ventura, Paul
Wang, Yuanyuan Yang (Editors), Proceedings of the Sixth Joint Conference on
Information Sciences, March 2002.
Dan Ventura, comments in "Discussion on Neurocomputers After Ten Years" (Eds.
Frolov and Ezhov), Neural Network World, vol. 1 no. 2, pp. 103-174, 1999.
Dan Ventura, Quantum and Evolutionary Approaches to Computational Learning,
Ph.D. Dissertation, Computer Science Department, Brigham Young University, 1998.
Dan Ventura, On Discretization as a Preprocessing Step for Supervised Learning
Models, Master's Thesis, Computer Science Department, Brigham Young University,
1995.

Seminars, Colloquia and Presentations

Effecting Transfer via Learning Curve Analysis, Inductive Transfer: 10 Years Later
Workshop, Neural Information Processing Systems, Whistler, British Columbia, December
2005 (with Christophe Giraud-Carrier)
The Challenge of Computing using Quantum Computation, Department of Physics and
Astronomy, Brigham Young University, colloquium, January 2004
Learning as Quantum Search, Quantum Neural Networks Workshop, Neural Information
Processing Systems, Whistler, British Columbia, December 2002
Quantum Neural Computation, Mini-Symposium on Quantum Computing, College Station,
Texas, May 2001
Experimental Validation of the Common Control Language, The Third Very Shallow
Water/Surf Zone Mine Counter Measures Program Meeting, Panama City, Florida, February
2001
Why quantum computation is good for computational learning and computational learning is
good for quantum computation, Department of Computer Science, Brigham Young
University, February 2001
Quantum Computation and Computational Learning, Department of Physics and Astronomy,
Brigham Young University, February 2001
Linear Optics for Quantum Neural Computing, Quantum Neural Computing Workshop,
Neural Information Processing Systems, Breckenridge, Colorado, December 2000
Page 373 of 394
C3 CS 12/14/04
Application of Quantum Computation to Computational Learning, DARPA Quantum
Information Science and Technology Workshop, Greenbelt, Maryland, October 2000
Quantum Computation: Experiments in Linear Optics, Applied Research Laboratory, Penn
State University, September 2000.
Field Programmable Scripts for Multiple UUV Missions, Second Very Shallow Water/Surf
Zone Mine Counter Measures Program Meeting, Panama City, Florida, December 1999
Quantum Computation: Current and Future Perspectives, Fall meeting of the Applied
Research Laboratory Advisory Board, Penn State University, November 1999
An Introduction to Quantum Computation, Applied Research Laboratory, Penn State
University, October 1999
A Neural/Evolutionary Hybrid Learning System, Information Science and Technology
Division, Applied Research Laboratory, Penn State University, July 1999
Quantum Computation: An Overview, Analogical Modeling of Language Group, Brigham
Young University, July 1999
Quantum Computation: An Overview, Department of Computer Science, University of
Massachusetts at Lowell, May 1999
Fourier Algorithms and Quantum Learning, Theoretical and Mathematical Physics Research
Group, Brigham Young University, March 1998
A Genetic Algorithm - Neural Network Hybrid, Theoretical and Mathematical Physics
Research Group, Brigham Young University, November 1998
Genetic Algorithms, Theoretical and Mathematical Physics Research Group, Brigham Young
University, September 1996

Scholarly Activities
Grants
$14,000, Student Visions of Learning in Autonomous Extra-terrestrial Systems, Mentoring
Environment Grant, Brigham Young University, 2005.
$5,760, proposal development funding for Application of Quantum Computation to
Computational Intelligence for anticipated DARPA/QuIST solicitation, ARL, Penn State
University, 2000-2001
$40,000, Quantum Associative Memory Using Linear Optics, ARL Center of Excellence,
Penn State University, 2000
Courses Taught 2005-2006
Winter 2005
C S 478 section 001
Fall 2005
C S 252 section 001 and 002
C S 678 section 001
Winter 2006
C S 478 section 001
Page 374 of 394
C3 CS 12/14/04
Other Duties
Committee Assignments

Chair, Colloquium Committee, Computer Science Department, Brigham Young University,


August 2005-present
Member, Faculty Expectations Committee, Computer Science Department, Brigham Young
University, July 2004 – January 2005
Member, Faculty Search Committee, Computer Science Department, Brigham Young
University, August 2003-present
Chair, PhD Recruiting Committee, Computer Science Department, Brigham Young
University, August 2002 – July 2005
Member, Graduate Committee, Computer Science Department, Brigham Young University,
July 2001 – July 2003
Academic Advisor

Kaivan Kamali, Masters of Computer Science and Engineering, May 2001 (with Soundar
Kumara)
Rock Hymas, Honors Thesis, April 2002
Mark Richards, Masters of Computer Science, April 2004
Nancy Owens, Masters of Computer Science, August 2004
Stephen Whiting, Masters of Computer Science, August 2004
Adam Drake, Phd student
Eric Goodman, Masters of Computer Science, April 2005
Neil Toronto, PhD student
Jared Lundell, Bachelor of Science in Computer Science, April 2006
Charles DuHadway, Bachelor of Science in Computer Science, April 2006
David Norton, MS student
Charlie Neo, MS student
Michael Thompson, MS student
Jeremy West, Undergraduate
Scholarly Research and Time Division
Teaching: 40%
Research: 50%
Citizenship: 10%

Page 375 of 394


C3 CS 12/14/04
Dr. Sean Warnick
Assistant Professor of Computer Science
Not Tenured
Brigham Young University

Academic History
Summer 2006 Visiting Professor Cambridge University, UK
2003-present Assistant Professor Computer Science Department
Brigham Young University
1994-2003 Various Graduate Positions Massachusetts Institute of Technology

Education
2003 Ph.D. in Electrical Engineering and Computer Science
Massachusetts Institute of Technology
1995 M.S. in Electrical Engineering and Computer Science
Massachusetts Institute of Technology
1993 B.S. in Electrical Engineering
Arizona State University

Professional Development
Workshop on Modeling and Analysis of Biological Regulatory Networks,
American Control Conference, Minneapolis, MN, 2006.
Faculty Development Writing Workshop, Winter 2005
Faculty Development Seminar, Jan. 2004-May 2005

Relevant Employment and Consulting


Chief Scientist and Co-Founder, Member of Board of Directors,
Infolenz Corporation, Cambridge, MA, 12/99-12/02. Developed approach
using matching theory as a basis for topologizing categorical relationships,
suggesting data-based methods for modeling key market dynamics. Filed
patent (under review), conceived and co-wrote proposal winning 100k
research grant from the National Science Foundation (SBIR) as (sole) PI.
Research Consultant, Member of Board of Directors, Crescent Technologies,
Inc., Cambridge, MA, 11/98-01/00. Early partner in developing technical
consulting firm targeting heavy production processes. Played supporting
role in focused project with International Paper, Inc.
Research Consultant, Neurodyne, Inc., Cambridge, MA, 1/97-1/98. Designed
controller for unmanned aerial vehicle aircraft-carrier landing sequence.
Research Consultant, Textron Specialty Materials, Inc., Lowell, MA, 9/95-1/96.
Supported in-house experts for development of proprietary rapid
densification process.
Research Consultant, Spire Corporation, Bedford, MA, 6/94-8/96. Assessed
MOCVD control problem and established funded research relationship
with MIT. Explored control of metalorganic chemical vapor deposition
growth of aluminum gallium arsenide devices leading to master's thesis.

Page 376 of 394


C3 CS 12/14/04
Principle Publications
Refereed Publications
N. Tran, C. Giraud-Carrier, K. Seppi, S. Warnick, “Cooperation-Based Clustering
for Profit Maximizing Organizational Design,” to appear in the Proceedings of
the International Joint Conference on Neural Networks, 2006.

W. Weyerman, D. West, S. Warnick, “Sub-Optimal Scheduling of a Multi-


Product Batch Manufacturing System using an Integer Programming Solution,”
toappear in the Proceedings of the IEEE American Control Conference,
Minneapolis,MN, 2006.

M. Maxwell, S. Warnick, “System Identification for the Piute Reservoir on the


SevierRiver,” to appear in the Proceedings of the IEEE American Control
Conference,Minneapolis, MN, 2006.

N. Tran, W. Weyerman, C. Giraud-Carrier, K. Seppi, S. Warnick, and R. Johnson,


“Studies in the Dynamics of Economic Systems,” Proceedings of the IEEE
Conference on Control Applications, 2005.

S. Hulet, B. Rohrer, S. Warnick, “A Study in Pattern Assimilation for Adaptation


andControl,” Proceedings of the 7th International Conference on Computational
Intelligence and Natural Computing, Salt Lake City, 2005.

N. Tran, C. Giraud-Carrier, K. Seppi, S. Warnick, “Implications of the Small Gain


Theorem in the Design of an Economic Laboratory,” Proceedings of the 4th
International Conference on Computational Intelligence in Economics and
Finance, Salt Lake City, 2005.

P. Mullen, K. Seppi, S. Warnick, “Dynamic Pricing on Commercial Websites: A


Computationally Intensive Approach,” Proceedings of the 4th International
Conference on Computational Intelligence in Economics and Finance, Salt Lake
City,2005.

N. Tran, D. West, C. Giraud-Carrier, K. Seppi, S. Warnick, R. Johnson, “The Value of


Cooperation Within a Profit-Maximizing Organization,” Proceedings of the 4th
International Conference on Computational Intelligence in Economics and Finance,
Salt Lake City, 2005.

S. Warnick and A. Rodriguez, ``A Systematic Antiwindup Strategy and the Longitudinal
Control of Vehicle Platoons with Control Saturations,'' IEEE Transactions on
Vehicular Technology, Vol 49, No. 3, May 2000.

S.C. Warnick and M.A. Dahleh, ``Feedback Synchronization: A Relaxation of


Tracking,'' Proceedings of the American Controls Conference, Chicago, IL, 2000.

Page 377 of 394


C3 CS 12/14/04
S.C. Warnick and M.A. Dahleh, ``Piloting Epitaxy Through Ellipsometric Feedback,''
Proceedings of the IEEE International Conference on Control Applications, Kohala
Coast, Hawaii, 1999.

S.C. Warnick and M.A. Dahleh, "Ellipsometry as a Sensor Technology for the Control of
Deposition Processes," Proceedings of the 37th Conference on Decision and Control,
Tampa, FL, 1998.

S.C. Warnick and M.A. Dahleh, ``Feedback Control of MOCVD Growth of


Submicron Compound Semiconductor Films,'' IEEE Transactions on Control
Systems Technology, Vol. 6, No. 1, January 1998.

A. Kussmaul, S. Vernon, P.C. Colter, R. Sudharsanan, A. Mastrovito, K.J. Linden, N.H.


Karam, S.C. Warnick, and M.A. Dahleh, ``In-situ Monitoring and control for MOCVD
Growth of AlGaAs and InGaAs,'' Journal of Electronic Materials, Vol. 26, No. 10,
October 1997.

S.C. Warnick and M.A. Dahleh, ``Gas-Source Molecular Beam Epitaxy and a
Formulation for the Growth Control of a Class of Quaternary Materials,'' Proceedings
of the 36th Conference on Decision and Control, San Diego, CA, 1997.

S. Warnick, M. Dahleh, A. Kussmaul, N. Karam, ``Feedback Control of OMVPE Growth


of Compound Semiconductor Devices,'' Proceedings of the 13th World Congress of
the International Federation of Automatic Control, San Francisco, CA, 1996.

S. Warnick and A. Rodriguez, ``Performance Enhancement for a Class of Saturating


Systems,'' Proceedings of the American Control Conference, Seattle, WA, 1995.

S. Warnick and A. Rodriguez, ``Longitudinal Control of a Platoon of Vehicles with


Multiple Saturating Nonlinearities,'' Proceedings of the American Control Conference,
Baltimore, MD, 1994.

Patents
S. Sarma, S.C. Warnick, M.A. Dahleh, ``System and Method for Association of Object
Sets,” USPTO #20020161561.

Invited Talks
S. Hulet, N. Tran, W. Weyerman, C. Giraud-Carrier, J. Humpherys, K. Seppi, and S.
Warnick, “Blueprints of a Retail Laboratory”, Institute for Operations Research and
Management Science (INFORMS) Annual Meeting, Pricing and Revenue Management
Section, San Francisco, CA, 2005.

S. Warnick, “From Nano-Films to Retail: Information and Control in the Policy


Sciences,” Sandia National Laboratories, Albuquerque, NM, February 4th, 2004.

Page 378 of 394


C3 CS 12/14/04
S.C. Warnick and M.A. Dahleh, ``Piloting Epitaxy Through Ellipsometric Feedback,''
IEEE International Conference on Control Applications, Kohala Coast, Hawaii, 1999.

S.C. Warnick and M.A. Dahleh, "Modular Feedback Design in Epitaxial Processes,"
Society of Engineering Science Annual Technical Meeting, Pullman, WA, 1998.

S.C. Warnick, ``Process Control in the Semiconductor Industry,'' Aspen Technology,


Inc. Technical Meeting with MIT, Cambridge, MA, 1998.

S.C. Warnick, ``Issues in Real-Time Composition Control of AlGaAs Films,''


Laboratory for Information and Decision Systems Special Donor's Meeting, MIT, 1997.

Scholarly Activities
Reviewer, reviewed submissions for:
IEEE Transactions on Automatic Control
AIAA Journal of Guidance, Control, and Dynamics
Journal of Electronic Materials
IEEE Transactions on Semiconductor Manufacturing
IEEE Conference on Decision and Control
IEEE American Control Conference
International Federation of Automatic Control (IFAC) World Congress

Grants and Research Support


$12,000 Sean Warnick with Christophe Giraud-Carrier, Jeff Humpherys,
co-PIs, “A Computational Economics Learning Laboratory,” BYU
Bookstore, 1/06-12/06.
$10,000 Sean Warnick with Jeff Humpherys, co-PIs, “A Computational
Economics Learning Laboratory,” Kevin and Debra Rollins Center
for eBusiness, funded, 5/96-12/96.
$30,000 Sean Warnick with Jeff Humpherys, co-PIs, “Modeling and
Optimization of Mining and Power Generation Operations,”
Utah Power, decision pending, 12/05-12/06.
$10,000 Sean Warnick with Kevin Seppi, co-PIs, “A Computational
Economics Learning Laboratory,” Kevin and Debra Rollins Center
for eBusiness, funded, 1/06-8/06.
$30,000 Sean Warnick, PI, “System Identification and Feedback Control of
the Piute Reservoir Dam on the Sevier River,” Utah Bureau of
Reclamation, funded, 1/05-1/06.
$10,000 Sean Warnick, PI, “Optimal Scheduling of a Flexible, Batch-
Driven Job-Shop Manufacturing System,” ATK Thiokol, funded,
1/05-1/06.
$10,000 Sean Warnick, PI, “Modeling of a Flexible, Batch-Driven Job-
Shop Manufacturing System,” ATK Thiokol, funded, 8/04-1/05.
$20,500 Sean Warnick, PI, “Model-Free Dynamic Learning”, Sandia
National Laboratories no. 379646 , funded, 8/04-8/05.

Page 379 of 394


C3 CS 12/14/04
$15,000 Sean Warnick, PI, “Markov Approximations in Bioinformatics,”
Sorenson Molecular Geneology Foundation, funded, 1/04-6/05.
$12,000 Sean Warnick with Christophe Giraud-Carrier, Jeff Humpherys,
and Kevin Seppi, co-PIs, “A Computational Economics Learning
Laboratory,” BYU Bookstore, 1/05-12/05.
$10,000 Sean Warnick with Kevin Seppi, co-PIs, “A Computational
Economics Learning Laboratory,” Kevin and Debra Rollins Center
for eBusiness, funded, 5/04-12/05.
$15,000 Sean Warnick, PI, “A Computational Economics Learning
Laboratory,” BYU Bookstore, funded, 1/04-12/04.
$3,000 Sean Warnick, PI, “A Computational Economics Learning
Laboratory,” BYU Bookstore, funded, 8/03-12/03.
$100,000 Sean Warnick, PI, “Enterprise Economic Knowledge Modeling for
Data-Driven Offer Design,” National Science Foundation, funded
Phase I SBIR, 1/03-6/03.
$50,000 Sean Warnick with Munther Dahleh, “Piloting Epitaxy through
Ellipsometric Feedback,” Lincoln Laboratories Advanced
Concepts Committee, 1998.

Courses Taught 2005-2006


Semester Course Instructor Rating Course Rating Enrollment
Winter 2005 CS 412 7.2 / 8.0 6.2 / 8.0 17
Spring 2005 CS 312 6.9 / 8.0 6.4 / 8.0 21
Fall 2005 CS 312 – Sec 1 7.1 / 8.0 6.4 / 8.0 23
CS 312 – Sec 2 7.7 / 8.0 7.2 / 8.0 16
Winter 2006 CS 412 7.5 / 8.0 7.1 / 8.0 10
CS 613 7.8 / 8.0 8.0 / 8.0 6

Other Duties
Committee Chair Dates Description of Involvement
Undergraduate Mark Clement 2003-2004 Gathered and updated information
Curriculum on course objectives. Began
development of mathematically
intensive CS curriculum for various
emphases, including Operations
Research, Scientific Computing,
Systems and Control.
Summer Social Sean Warnick 2003-2004 Planned our summer social.
Colloquia Kevin Seppi 2004-2005 Helped bring in key speakers.
External Parris Egbert 2004-2005 Shared my perspective on an
Relations Industrial Partners Program.
Graduate Parris Egbert 2005-2006 Graduate admissions, MS proposal
guidelines, curriculum for
mathematically intensive CS tracks.
Page 380 of 394
C3 CS 12/14/04
Alumni Chuck Knutson 2005-2006 Helped with Homecoming.

Academic Advisor
Student Degree Current Position
Lei Lei M.S. Ph.D. at Yale University
Steve Hulet B.S. Amazon.com
Nghia Tran B.S. Ph.D. at BYU
Matt Maxwell B.S. Ph.D. at Cornell University
Sam Weyerman B.S. Ph.D. at BYU
Blake Durtschi B.S. Ph.D. at BYU
Casey Dougal B.S. in progress
Russ Howes B.S. in progress
David Merriman B.S. in progress
Brian Ricks B.S. in progress

Page 381 of 394


C3 CS 12/14/04
Phil J. Windley
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
2004-present Associate Professor of Computer Science Brigham Young University
1993-1999 Associate Professor of Computer Science Brigham Young University
1990-1993 Assistant Professor of Computer Science University of Idaho

Education
1990 Ph.D. in Computer Science University of California, Davis
1988 M.S. in Computer Science University of California, Davis
1982 B.S. in Metallurgical Engineering University of Idaho

Professional Development
2000 Certificate University of Michigan, Management Development Program
Ann Arbor, MI
1983 Certificate Westinghouse Bettis Nuclear Reactor Engineering School
Pittsburgh, PA

Relevant Employment
2003 to present Professional Writer, InfoWorld Magazine and Connect Magazine

2001 to 2002 Chief Information Officer


Office of the Governor, State of Utah
1999 to 2001 Vice President, Product Development and Operations
Excite@Home, Redwood City, CA
1998 to 1999 Chief Technology Officer
iMALL, Inc., Santa Monica, CA
1994 to 1996 Founder, Partner
Electronic Marketing Services, Provo, UT
1982 to 1986 Member, Technical Staff, Reactor Materials Division
LT, US Naval Reserve
Naval Reactors, Department of Energy, Washington D.C

Principle Publications
Windley, Phillip J., “Formal Modeling and Verification of Microprocessors,” IEEE
Transactions on Computers, January 1995.

Windley, Phillip J. with Michael Barnett, “Dysfunctional Programming: Teaching


Programming using Formal Methods to Non-Computer Science Majors,” Journal of
Computer Science Education, Volume 5, 1994, pp. 111—122.

Windley, Phillip J. with Paul E. Black, “Verifying Programs with Side—Effects,” The
Thirty-First Hawaii International Conference on on System Sciences (HICSS-31)
Page 382 of 394
C3 CS 12/14/04
January, 1998.

Windley, Phillip J. with Michael Jones, “Restricted Types for HOL,” Presented at the
1997 International Conference on the Theorem Provers in Higher—Order Logics, Murray
Hill, NJ, August, 1997.

Windley, Phillip J. with Trent Larson, “Digitally Signed and Authenticated Theorems on
HOL,” Presented at the 1997 International Conference on the Theorem Provers in
Higher—Order Logics, Murray Hill, NJ, August, 1997.

Windley, Phillip J. with Annette Bunker and Michael D. Jones and Trent N.
Larson,”Alexandria: Libraries of Abstract Verified Hardware Modules,” 2nd Workshop
on Libraries, Component Modeling, and Quality Assurance, Toledo, Spain, April, 1997.

Windley, Phillip J. with Paul E. Black, “Verifying Resilient Software,” The Thirtieth
Hawaii International Conference on on System Sciences (HICSS-30) January, 1997.

Windley, Phillip J. with Jerry R. Burch, “Mechanically Checking a Lemma Used in an


Automatic Verification Tool,” Proceedings of the 1996 Conference on Formal Methods
in Computer Aided Design, Palo Alto CA.

Windley, Phillip J. with Paul E. Black, “Inference Rules for Programming Languages
with Side Effects in Expressions,” Proceedings of the 1996 International Conference on
the Theorem Provers in Higher—Order Logics, J. von Wright, J. Grundy, and J. Harrison,
editors, Springer-Verlag Lecture Notes in Computer Science Volume 1125, 1996.

Windley, Phillip J. with Michael D. Jones and Trent N. Larson, “Toward GHDL_EVAL:
A Framework for Deeply Embedding Simple HDLs in HOL” Supplementary Proceedings
of the 1996 International Conference on the Theorem Provers in Higher—Order Logics,
J. von Wright, J. Grundy, and J. Harrison, editors, Springer-Verlag Lecture Notes in
Computer Science Volume 1125, 1996.

Windley, Phillip J. with Robert H. Beers, “Abstracting Signals: The Waveform Library,”
Supplementary Proceedings of the 1996 International Conference on the Theorem
Provers in Higher—Order Logics, J. von Wright, J. Grundy, and J. Harrison, editors,
Springer-Verlag Lecture Notes in Computer Science Volume 1125, 1996.

Windley, Phillip J. with Paul E. Black, Kelly M. Hall, Michael D. Jones, and Trent N.
Larson, “A Brief Introduction to Formal Methods,” Proceedings of the Custom Integrated
Circuits Conference, San Diego CA, May 1996.

Windley, Phillip J. with Paul E. Black, “Automatically Synthesized Term Denotation


Predicates: A Proof Aid,” Proceedings of the 1995 International Workshop on the
Higher—Order Logic Theorem Proving and its Applications, E. Thomas Schubert,
Phillip J. Windley, and James Alves-Foss, editors, Springer-Verlag Lecture Notes in
Computer Science Volume 971, 1995.

Page 383 of 394


C3 CS 12/14/04
Windley, Phillip J., “Verifying Pipelined Microprocessors,” Proceedings of the 1995 IFIP
Conference on Hardware Description Languages and their Applications (CHDL), Tokyo
Japan, 1995.

Windley, Phillip J. with Michael Coe, “Correctness Models of Pipelined


Microprocessors,” Proceedings of the 1994 Conference on Theorem Provers in Circuit
Design, Thomas Kropf and Ramayya Kumar, editors, 1994.

Windley, Phillip J., “Specifying Instruction Set Architectures in HOL: A Primer,”


Proceedings of the 1994 International Workshop on the Higher—Order Logic Theorem
Proving and its Applications, Thomas Melham and Juanito Camilleri, editors, Springer-
Verlag Lecture Notes in Computer Science Volume 859, 1994.

Windley, Phillip J., “Using make to Manage Large Proofs ,” Presented at the 1994
International Workshop on the Higher—Order Logic Theorem Proving and its
Applications.

Windley, Phillip J., “Correctness Properties for Iterated Hardware Structures,”


Proceedings of the 1993 NASA Symposium on VLSI Design, Albuqurque NM,
November 1993.

Windley, Phillip J. with Mark Aagard and Miriam Leeser, “Towards a Super Duper
Hardware Tactic,” Proceedings of the 1993 International Workshop on the
Higher—Order Logic Theorem Proving and its Applications, Jeffery J. Joyce and Carl
Seger, editors, August 1993.

Windley, Phillip J. with David A. Fura, “Abstraction Techniques for Modeling


Real—World Interface Chips,” Proceedings of the 1993 International Workshop on the
Higher—Order Logic Theorem Proving and its Applications, Jeffery J. Joyce and Carl
Seger, editors, August 1993.

Windley, Phillip J. with E. Thomas Schubert and Karl Levitt, “Report on the UCD
Microcoded Viper Verification Project,” Proceedings of the 1993 International Workshop
on the Higher—Order Logic Theorem Proving and its Applications, Jeffery J. Joyce and
Carl Seger, editors, August 1993.

Windley, Phillip J., “A Theory of Generic Interpreters,” Proceedings of the 1993


Conference on Correct Hardware Design Methodologies (CHARME), Springer-Verlag
Lecture Notes in Computer Science Volume 683, Arles, France, 1993.

Windley, Phillip J. with Jody W. Gambles, “Reasoning about the VHDL Standard Logic
Package Signal Data Type,” Proceedings of the 1993 IFIP Conference on Hardware
Description Languages and their Applications (CHDL), Ottawa Canada, 1993.

Windley, Phillip J. with Bruce A. Richman, “ACAD: A Hierarchical Approach to CMOS

Page 384 of 394


C3 CS 12/14/04
Design Analysis,” Proceedings of the 1993 IEEE Custom Integrated Circuits Conference,
May 1993.

Windley, Phillip J. with Kelly Hall, “Simulating Microprocessors from Formal


Specifications,” Proceedings of the 1992 International Workshop on the Higher—Order
Logic Theorem Proving and its Applications, L. J. M. Calesen and M. J. C. Gordon,
editors, North—Holland, 1993.

Windley, Phillip J., “Abstract Theories in HOL,” Proceedings of the 1992 International
Workshop on the Higher—Order Logic Theorem Proving and its Applications, L. J. M.
Calesen and M. J. C. Gordon, editors, North—Holland, 1993.

Windley, Phillip J., “Instruction Set Commutivity,” Proceedings of the 1992 NASA
Symposium on VLSI Design, October 1992.

Scholarly Activities
Member, Board of Directors, Sento Corp.(SNTO), 2003—present
Advisory Board Member, PingID Network, 2002—present
Advisory Board Member, Canyon Park Technology Center, 2002—present
Advisory Board Member, Sanctuary Networks, 2004-present
Board Member, Utah Information Technology Association, 2001—2003
Member, College Advisory Committee, College of Physical and Mathematical Sciences,
Brigham Young University
Member, College Advisory Committee, School of Computer Science and Engineering, Utah
Valley State College

Courses Taught 2005-2006


Winter 2005 C S 601R section 002
C S 330 section 002
Fall 2005 C S 330 section 003
C S 462 section 001

Other Duties
Serve as a member of the Department’s Computing, External Relations, and Building
Committees.

Academic Advisor
An advisor for 8 M.S. students. No Ph.D students at this time.

Scholarly Research and Time Division


50% of time is spent on research involving virtualization, Web-based applications, and identity.

Page 385 of 394


C3 CS 12/14/04
Scott N. Woodfield
Professor of Computer Science
Professorial Tenured
Brigham Young University

Academic History
1991-present Professor of Computer Science Brigham Young University
1985-1991 Associate Professor of Computer Science Brigham Young University
1980-1985 Assistant Professor of Computer Science Brigham Young University

Education
1980 Ph.D. in Computer Science Purdue University
1978 M.S. in Computer Science Brigham Young University
1975 B.S. in Math/Computer Science Brigham Young University

Professional Development
Regular attendance at Software Engineering Conferences

Publications
An Active, Object-Oriented, Model-Equivalent Programming Language (with S.W. Liddle and
R.B. Jackson), in Object-Oriented Data Modeling Themes, M.P. Papazoglou, S. Spaccapietra,
and Z. Tari(eds), MIT Press, 2000.

Object-Oriented Systems Modeling—Analysis, (with S.W. Liddle, R.B. Jackson, D.W. Embley),
Handbook of Object Technology, pages. 4.1-4.21, Saba Zamir Editor, CRC Press, New York,
1999.

Object-Oriented Systems Modeling—Unified Modeling Language, (with S.W. Liddle, R.B.


Jackson, D.W. Embley), Handbook of Object Technology, 5.1-5.21, Saba Zamir Editor, CRC
Press, New York, 1999.

Object-Oriented Systems Modeling—Unified Modelling Language (with S.W. Liddle and R.B.
Jackson). Handbook of Object Technology, pages 6.1-5.31, Saba Zamir Editor, CRC Press, New
York, 199.

Improving the quality of systems and domain analysis through object class congruency, (with
S.W. Clyde and D.W. Embley) Engineering of Computer Based Systems, ECBS ’96,
Friedrichshafen, Germany, 11-15 March 1996.

Analysis of Real-Time Systems using OSA, (with J.M. Dubois), Third Workshop on Real-Time
Modeling, Salt Lake City , Utah, 6-8 March 1996.

The Impedance Mismatch Between Conceptual Models and Implementation Environments,


Proceedings of the ER’97 Workshop on Behavioral Models and Design Transformations: Issues

Page 386 of 394


C3 CS 12/14/04
and Opportunities in Conceptual Modeling, November 6-7, 1997, UCLA, Los Angeles,
California.

The Impedance Mismatch Between Conceptual Models and Implementation Environments,


Lecture Notes in Computer Science, P.P. Chen and L.Wong Eds., Springer-Verlag, 1999.

Scholarly Activities
Professional Societies

ACM
IEEE Computer Society

Courses taught 2005-2006


Winter 2005: C S 100 sections 003 and 004
C S 236 sections 002 and 003
Spring 2005: C S 100 section 001
C S 428 section 001
Fall 2005: C S 236 section 001
C S 428 section 001
Winter 2006: C S 100 sections 001 and 002
C S 236 section 003
Spring 2006: C S 100 section 001
C S 236 section 001

Other Duties
Member of the Undergraduate Curriculum Committee.
Member of the Teaching Committee.
In charge of High School Science Day, G.S.A. and the Department Library.

Advisement
1 Undergraduate Student, will be M.S. shortly

Scholarly Research
30% of time spent on research
Research is investigating and improving software analysis techniques.

Page 387 of 394


C3 CS 12/14/04
Daniel Zappala
Associate Professor of Computer Science
Tenured
Brigham Young University

Academic History
2004-present Associate Professor of Computer Science
Brigham Young University
1997-2004 Assistant Professor of Computer and Information Science
University of Oregon
1994-1997 Research Assistant, Information Sciences Institute
University of Southern California
1991-1994 Research Assistant, Network and Distributed Systems Lab
University of Southern California

Education
1997 Ph.D in Computer Science University of Southern California
1990 B.Sc. in Electrical Engineering Stanford University

Consulting
1997-1998 Consultant for Information Sciences Institute
University of Southern California

Principle Publications
Journals-
• D. Zappala, V. Lo, and C. GauthierDickey. The Multicast Address Allocation Problem: A
Theoretical Framework and Performance Evaluation. Computer Networks, Special Issue on the
Global Internet, Elsevier Science, Volume 45, Issue 1, Pages 55 - 73, May 2004. (5/28 = 18%,
best papers from Global Internet Symposium 2002)

• A. Farley, A. Proskurowski, D. Zappala, and K. Windisch, Spanners and Message Distribution


in Networks. Discrete Applied Mathematics, Elsevier Science, Volume 137, Issue 2, Pages 159-
171, March 2004.

• D. Zappala, Alternate Path Routing for Multicast. em IEEE/ACM Transactions on Networking,


Volume 12, Issue 1, Pages 30 - 43, February 2004.

• D. Zappala, A. Fabbri, and V. Lo, An Evaluation of Shared Multicast Trees with Multiple
Cores. Journal of Telecommunication Systems, Kluwer Academic Publishers, March 2002.
(14/169 = 8%, best papers from ICN'01)

• L. Zhang, S. Deering, D. Estrin, S. Shenker, and D. Zappala, RSVP: A New Resource


ReSerVation Protocol. IEEE Network, September 1993. Re-published in IEEE Communications
Magazine, 50th Anniversary Issue, 10 Landmark Articles from the IEEE Communications
Society, 2002.

Page 388 of 394


C3 CS 12/14/04
Conferences-
• Manoj Pandey and Daniel Zappala, A Scenario Based Evaluation of Mobile Ad Hoc Multicast
Routing Protocols. IEEE International Symposium on World of Wireless, Mobile and
Multimedia Networks (WoWMoM), June 2005, Italy, Pages 31-41. (18/180 = 10%)

• Chris GauthierDickey, Virginia Lo, and Daniel Zappala. Using N-Trees for Scalable Event
Ordering in Peer-to-Peer Games. ACM NOSSDAV 2005, June 2005, Skamania, Washington,
Pages 87-92. (33/88 = 37%)

• Daniel Stutzbach, Daniel Zappala, and Reza Rejaie, The Scalability of Swarming Peer-to-Peer
Content Delivery. IFIP Networking 2005, May, 2005, Waterloo, Ontario, Pages 15-26. (106/430
= 25%)

• C. GauthierDickey, D. Zappala, V. Lo, and J. Maas, Low Latency and Cheat-Proof Event
Ordering for Peer-to-Peer Games. The 14th ACM International Workshop on Network and
Operating Systems Support for Digital Audio and
Video (NOSSDAV), June 2004. (24/95 = 25%)

• V. Lo, D. Zappala, D. Zhao, Y. Liu, and S. Zhao, Cluster Computing on the Fly: P2P
Scheduling of Idle Cycles in the Internet. Third International Workshop on Peer-to-Peer
Systems, February 2004. (27/145 = 19%)

• D. Zappala, C. GauthierDickey, and V. Lo, Modeling the Multicast Address Allocation


Problem. IEEE Globecom, Seventh Global Internet Symposium, November 2002. (28/142 =
20%, top rated paper)

• V. Lo, D. Zappala, C. GauthierDickey, and T. Singer, A Theoretical Framework for the


Multicast Address Allocation Problem. IEEE Globecom, Seventh Global Internet Symposium,
November 2002. (28/142 = 20%)

• D. Zappala and D. Zhou, Performance Evaluation of Path Searching Heuristics for Multicast
QoS Routing. IEEE 11th International Conference on Computer Communications and Networks
(ICCCN), October 2002. (80/300 = 27%)

• D. Zappala, and A. Fabbri, Using SSM Proxies to Provide E_cient Multiple-Source Multicast
Delivery. IEEE Globe-com, Sixth Global Internet Symposium, November 2001. (18/74 = 24%,
top rated paper)

• D. Zappala and A. Fabbri, An Evaluation of Shared Multicast Trees with Multiple Active
Cores. IEEE International Conference on Networking, ICN'01, July 2001.

• D. Zappala, Alternate Path Routing for Multicast. IEEE Infocom 2000, Conference on
Computer Communications, March 2000. (192/717 = 27%)
• M. Livingston, V. Lo, K. Windisch, and D. Zappala, Cyclic Block Allocation. First
International Workshop on Networked Group Communication, November 1999.

Page 389 of 394


C3 CS 12/14/04
• L. Breslau, D. Estrin, D. Zappala, and L. Zhang, Exploiting Locality to Provide Adaptive
Routing of Real-Time Flows in Global Internets. 4th IEEE ComSoc International Workshop on
Multimedia Communication, April 1992.

Workshops-
• A. Farley, V. Lo, A. Proskurowski, and D. Zappala, Issues in Scalable Multicast Protocols.
Invited paper, DIMACS Workshop on Multicasting: Architecture, Algorithms, and Applications,
May 2001.

• D. Zappala and A. Fabbri, Deploying SSM Proxies for E_cient Multiple-Source Multicast
Delivery. Internet2 Network Research Workshop, April 2001.

Technical Reports
• S. Bajaj, L. Breslau, D. Estrin, K. Fall, S. Floyd, P. Haldar, M. Handley, A. Helmy, J.
Heidemann, P. Huang, S. Kumar, S. McCanne, R. Rejaie, P. Sharma, S. Shenker, K. Varadhan,
H. Yu, Y. Xu, and D. Zappala, Improving Simulation for Network Research. Department of
Computer Science, University of Southern California, USC-CS-TR-98-702, March 1999.

• S. Bajaj, L. Breslau, D. Estrin, K. Fall, S. Floyd, P. Haldar, M. Handley, A. Helmy, J.


Heidemann, P. Huang, S. Kumar, S. McCanne, R. Rejaie, P. Sharma, S. Shenker, K. Varadhan,
H. Yu, Y. Xu, and D. Zappala, Virtual InterNetwork Testbed: Status and Research Agenda.
Department of Computer Science, University of Southern California, USC-CS-TR-98-678, July
1998.

• D. Zappala, D. Estrin, and S. Shenker, Alternate Path Routing and Pinning for Interdomain
Multicast Routing. Department of Computer Science, University of Southern California, USC-
CS-TR-97-655, July 1997.

• L. Breslau, D. Estrin, D. Zappala, and L. Zhang, Limited Distribution Updates to Reduce


Overhead in Adaptive Internetwork Routing. Department of Computer Science, University of
Southern California, USC-CS-TR-93-532, 1993.

Standards
• D. Zappala, and J. Kann, RSRR: A Routing Interface for RSVP. Internet Draft for RSVP
Working Group, July 1998.

• D. Estrin, T. Li, Y. Rekhter, K. Varahdan, and D. Zappala, Source Demand Routing Protocol:
Packet Format and Forwarding Speci_cation, RFC 1940, May 1996.

• D. Zappala, RSVP Loop Prevention for Wildcard Reservations. RSVP Working Group Draft,
February 1996.

Scholarly Activities
Software Systems
Treecalc: A Tool for Evaluating Multicast Routing. Primary Author.

Page 390 of 394


C3 CS 12/14/04
• Treecalc is a simulator that compares different types of multicast trees based on delay, cost,
traffic concentration, and router state. It was used in publications cited above for multiple cores
and SSM proxies.
• Code is available by request.

RSRR: A Routing Interface for RSVP. Primary Author.


• RSRR is the interface between RSVP (Internet resource reservation protocol) and multicast
routing protocols; RSRR
is implemented in mrouted (multicast routing daemon) and RSVPd (Resource Reservation
Protocol daemon). mrouted
is distributed with most Unix operating systems.
• Code can be downloaded from Xerox at ftp://parcftp.xerox.com/pub/net-research/ipmulti and
from ISI at http://www.isi.edu/rsvp.

RSVP: Resource Reservation Protocol. Member of Development Team.


• RVSP helps to provide Quality of Service connections in the Internet by making resource
reservations on routers. It is a proposed standard within the IETF.
• Primary author of RSVP code in SunOS 4.3 kernel, later ported to the BSD operating system
kernels. For reference, code can be downloaded from http://www.freebsd.org.
• Member of the development team for the RSVP daemon distributed by ISI at
http://www.isi.edu/rsvp. ISI's RSVP daemon is a reference implementation for various vendors;
RSVP is currently implemented in most Cisco routers.

SDRP: Source Demand Routing Protocol. Primary Author.


• SDRP can be used to source route packets in the Internet, for example to avoid congestion.

• Code and documentation can be downloaded from USC at http://netweb.usc.edu/sdrp.

Grants and Industrial Awards


• Cisco Systems, University Research Program (URP) Award (Zappala, Almeroth): Building A
Global Multicast Service, 2002-2003, $100,000.
• NSF Special Projects (Lo, Farley, Proskurowski, Zappala): Virtual Topologies for Multiparty
Communication. 1999-2003, $922,825.
• Intel Equipment Donation (Zappala): Equipment for Network Research Lab. 2001, $13,327.
• Intel/OCECS Faculty Fellowship (Lo, Zappala Malony): New Laboratory-based Courses in
Networking and Operating Systems. 2000-2002, $70,000.

• Program Committees: IFIP Networking Conference (2005,2006), Conference on High


Performance Computing (2004), ACM NOSSDAV (2002, 2003), IEEE Globecom/Global
Internet Symposium (2001, 2002)
• SIGCOMM 2005 Poster Committee, Infocom 2004 Travel Grant Committee
• Organized and chaired Topology Generation/Measurement panel at Global Internet Symposium
(2001).
• NSF CISE Research Infrastructure Panel (2001).
• Reviewer for IEEE/ACM Transactions on Networks, IEEE Networks, IEEE Transactions on
Computers, IEEE Infocom, IEEE Wireless Communications Magazine, IEEE ICC, IFIP

Page 391 of 394


C3 CS 12/14/04
Networking 2004, Elsevier Science Computer Networks, Elsevier International Journal of
System Architecture

Courses Taught 2005-2006


Winter 2005: C S 460 section 001
C S 601R section 001
Spring 2005: C S 345 section 001
Fall 2005: C S 460 section 001
C S 660 section 001
Winter 2006: C S 360 section 001
C S 460 section 001

Other Duties
BYU Computer Science Departmental Committees: Undergraduate Education, PhD Recruiting,
External Funding

Academic Advisor
Supervised Ph.D. Students
• Manoj Pandey

Supervised M.S. Students


• Brian Hawkins
• Jared Jardine
• Roger Larson
• Roger Pack
• Brian Sanderson
• Dan Scofield
• Michael Simonsen

Page 392 of 394


C3 CS 12/14/04
Response to ABET Final Statement for Accreditation 2000
Dates of visit: October 9-10, 2000

In addition to the actions taken shortly after the last accreditation visit to remedy concerns
expressed in the Preliminary Statement (as is included in this document), the Computer Science
Department administration is attaching this response to demonstrate continual improvement in
these areas of concern over the last five years.

These are the areas identified by the 2000 ABET accreditation team over Brigham Young
University:

From I. Introduction Statement 1.:


“Though effective intereaction is assured by a variety of steps taken to ameliorate the
effect of large classes, the class sizes remain large due to the low faculty/student ratio.
This limits the opportunities for learning experiences that come from individual and small
group discussions”

Response:
Since the 2000 accreditation visit, the Department has taken several steps to lower class
sizes. Upper-division courses are now at or below the class size recommended by ABET.
Lower division classes, though above the recommended limit, are well staffed with
teaching assistants to address individual student concerns. The number of sections
offered has also slightly increased in order to alleviate large section sizes. Also,
enrollment has gone down since the 2000 accreditation visit, allowing us to better cover
the number of students enrolled with our current resources. See V. F. in this accreditation
documnent for a list of TA hours and class enrollment.

From II. Report A. Objectives and Assessments:


“At the time of the visit, the Intent of the Objectives and Assessment Category was not
met. Standard I-6- the results of the program’s assessments and the actions taken based
on the results must be documented- was not satisfied, and the institution did not
demonstrate that the Intent of this Category was met by some alternative means.”

Response:
The accreditation document for this cycle includes the Department’s various forms of
assessment as well as meeting minutes and correspondence in order to provide sufficient
documentation to prove that the Department is constantly evaluating whether objectives
are being met. The Department is organized in a committee system where assessment is
continually being sought and evaluated in order to assure that the Department is meeting
goals and objectives. See Attachments I-4 for this documentation.

From II. Report B. Student Support:


“At the time of the visit, the Intent of the Student Support Category was not met.
Standard II-2-Computer science courses must be structured to ensure effective interaction
between faculty/teaching assistants and students in lower division courses and between
Page 393 of 394
C3 CS 12/14/04
faculty and students in upper division courses-was not satisfied, and the institution did
not demonstrate that he Intent of this Category was met by some alternative means.”

Response:
The Department believes that part of this concern has been amileorated by the actions
taken to satisfy the problem of large section sizes as addressed earlier in this Response.
In addition to the smaller class sizes and greater teaching assistant support, the
Department has moved to ensure better student/faculty interaction by requiring faculty to
set aside office hours every week for student mentoring. Course websites have also been
created to facilitate regular online interaction between instructors and teaching assistants
and students. See II. B. 1. and 2. as well as I. F. 2. for additional information.

From II. Report D. Curriculum:


“At the time of the visit, Intent of the Curriculum Category was not met. Standard IV-2
– the curriculum must contain at least 30 semester hours of study in mathematics and
science – was not satisfied, and the institution did not demonstrate that the Intent of this
Category was satisfied by alternative means.”

Response:
As is addressed in the Actions section of the final statement included with this
documentation, these requirements have now been satisfied. See IV.D. and the response
to Standard IV-2. for the Program’s current science and mathemathics requirements.

From II. Report E. Laboratories and Computing Facilities:


“The program meets the Intent of the Laboratories and Computing Facilities Category by
satisfying all of the associated Standards. However, there is a concern relative to
Standard V-4 - there must be adequate support personnel to install and maintain the
laboratories and computing facilities - that the number of computer support personnel
might be inadequate in the near future. This concern is based on the fact that the
compensation for support personnel is quite a bit lower than in many local firms.”

Response:
As indicated in this self-study, the Department employs two full-time and six part-time
systems administrators. The mechanisms used to assess the quality and adequacy of
these support services are listed in V.A. 2. and 3. According to these mechanisms, our
current staff are sufficient for troubleshooting and maintainance needs. They also
provide sufficient hardware and software resources to meet Department objectives.
Further, since the last accreditation visit, compensation for our two full-time Systems
Administrators has risen two pay levels for one position and one pay level for the other
position in order to offer a pay rate more equal to that found in local firms.

Page 394 of 394


C3 CS 12/14/04

Вам также может понравиться