Академический Документы
Профессиональный Документы
Культура Документы
SELF-STUDY
QUESTIONNAIRE FOR REVIEW
of the
COMPUTER SCIENCE PROGRAM
submitted by
July 1, 2006
Date
to the
Computing Accreditation Commission
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
Booklet 2
ATTACHMENTS 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.
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.
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.
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
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)
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
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,
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 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.
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
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:
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.
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:
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.
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.
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.
• 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.
• 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.
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.
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.
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.
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.
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.
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.)
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
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.
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.)
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.
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.
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.
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.
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.)
Give the title of the degree program under review, as specified on the transcript and diploma.
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
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.
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.
Page 35 of 394
C3 CS 12/14/04
Elective Courses
Complete 5 from the following courses. Take only one 500-level elective.
Page 36 of 394
C3 CS 12/14/04
Required Science courses
Complete all of the following.
Page 37 of 394
C3 CS 12/14/04
Course Requirements of Curriculum (term by term and year by year)
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
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
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.
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.)
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.
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.
Languages: Java, C, C++, Scheme (optionally Python, PHP, C#, and Ruby)
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.
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.
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.
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.
E. Course Descriptions
Page 45 of 394
C3 CS 12/14/04
COURSE DESCRIPTION
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.
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
Textbook: “Java Software Solutions, Foundations of Program design” by Lewis and Loftus
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
Input/Output (1 lecture)
Page 51 of 394
C3 CS 12/14/04
Booleans
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)
CS 142
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/
Digital logic: theory, design, and implementation of combinational and sequential logic.
Laboratory experience in construction of digital logic circuits.
Textbook
Prerequisites by Topic
C S 124
Competencies
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.
Problem Analysis
Digital design
Solution Design
Page 55 of 394
C3 CS 12/14/04
CS 235 Course Coordinator: Cory Barker
Textbook: ‘Data Structures & Problem Solving 2nd edition’ Mark Allen Weiss
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
Recursion (2 lectures)
Definition and rules of recursion
Applications of recursion
Runtime stack
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
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
CORE
Data Structures 2 hrs.
Algorithms 1 hr.
Page 58 of 394
C3 CS 12/14/04
CS 236 Course Coordinator: David Embley
Objectives
Students should:
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
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
Laboratory projects: Six medium size projects integrate together into an interpreter for the
Datalog language. The Datalog interpreter answers queries using facts and
rules.
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
Objectives
Students should:
1. Have experience in, and be comfortable with, programming large programs (~3,000 LOC).
5. Understand the specification, design, implementation and testing phases for creating large
programs, and should incorporate those ideas into their programming.
Topics
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
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
Templates (3 lectures)
How and when to use templates
Function templates
Class templates
Syntax
Using non-type parameters
Laboratory Projects: 2 large programs, a web crawler, and an XML based genealogical file.
Approximately 6 weeks for each assignment.
Design
Page 63 of 394
C3 CS 12/14/04
CS252 Course Coordinator: Mark Clement
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.
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.
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)
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)
Theoretical Content
Page 65 of 394
C3 CS 12/14/04
CS 312 Course Coordinator: Douglas Campbell
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
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
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.
Theoretical Content
Computability 1 hr.
Design
Textbook
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
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)
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.
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
Prerequisites: Data structures, theory of computation, know at least two programming languages
Objectives
Topics
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
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.
Theoretical content
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
Catalogue Description: Principles and concepts of operating system design and the
implementation of an operating system.
Objectives
Students should:
Topics
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
Deadlock (3 lectures)
Deadlock characterization
Deadlock prevention
Deadlock avoidance
Deadlock detection
Recovery from a deadlock
Page 76 of 394
C3 CS 12/14/04
Free-space management
Protection (2 lectures)
Domain of protection
Access matrix
Language-based protection
Security (2 lectures)
The security problem
Authentication
System threats and threat monitoring
Encryption
Page 77 of 394
C3 CS 12/14/04
The UNIX Systems
The Linux System
Windows NT
Historical perspective
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
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
Computer History
Open Source
Patent Law
File Sharing
Philosophical Frontiers
Estimate Curriculum Category Content (Semester hours)
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.
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
Textbook
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.
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
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
Catalogue Description: The analysis, design, and testing of significant software systems.
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
Test:
1 Introduction
1.1 The Precise Target Language
1.2 The Precise Target Architecture
1.3 What are the advantages of using this book?
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
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
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
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
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
14 Pointers
Analysis
Design
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
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.
Theoretical Content
Page 90 of 394
C3 CS 12/14/04
CS 452 Course Coordinator: David Embley
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
Course Content
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.
Analysis
Design
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):
Introduction to software architectures and techniques for graphical user interfaces. Input devices,
windowing systems, event-driven programming, interactive geometry.
Textbook
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
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
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.
Solution Design
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
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
Text: ‘Advanced Java Development for Enterprise Applications’ Cliff berg, Prentice Hall
Computer books, ISBN: 0130804614
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.
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
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
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.
Grades
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.
Textbook
Prerequisites by Topic
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.
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.
Privacy
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.
RSA Encryption
Problem Analysis
Security Attacks
Solution Design
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/
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
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
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
This assignment is worth 4% of your overall Homework and Programming Assignments grade.
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.
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
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.
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.
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.
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?
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.
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.
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
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.
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.
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
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
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:
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.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such
coverage.
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
Bezier curve algorithms. 4 weeks. B-Spline curves, 3 weeks. Curve intersections, 3 weeks.
Free-form deformation, 3 weeks.
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.
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.
Problem Analysis
The course has ten homework assignments which give the students experience in applying
the theory.
Solution Design
Four programming assignments give the students experience in implementing the basic
algorithms of computer aided geometric design.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
Describe the adequacy of the time assigned for the 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
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.
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.
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
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.
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.
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?
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.
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.
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.
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
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.
A. General Information
Name and Title of Chief Executive Officer of Campus (President, Chancellor, etc.)
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
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.
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.
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.
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.
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
C. Organization Chart
Attach an organization chart showing how the unit fits into the administrative structure of the
institution.
List all undergraduate computer-related degree programs offered by the institution, beginning with
the program(s) being evaluated.
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.
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.
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
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
1. Describe policy toward private consulting work, sponsored research projects, and extra
compensation.
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
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.)
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.
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
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.
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
Unit offering Computer Science Program(s)—give total enrollment even if not all students are in the
program for which accreditation is requested.
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 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.
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.
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.
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.
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.
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.
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
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
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.)
3. Which classes did you find most valuable in preparing you for your career?
• 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
• 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.
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.
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?
• 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
Other Comments?
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,
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.
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
7. Did you feel like the class sizes were appropriate for the material being covered? If
not, which classes were too large
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.
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.
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.
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
Languages
Romanian (1)
Spanish (10)
Portuguese (3)
Mandarin (1)
Cantonese (1)
Swedish (1)
German (1)
French (1)
Japanese (1)
Hungarian (1)
Technology Proficiency
Internship 36%
Yes (18)
No (32)
Work 90%
Yes (45)
No (4)
Areas
Programming (39)
Research/Innovation (27)
Software Engineering (34)
Systems Design/Analysis (16)
Network Management/Analysis (6)
Database Administration/Design (11)
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
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)
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.
Q02c1. Evaluate the counseling and advisement you received from each of the following BYU
sources regarding your options for employment after graduation:
Department Resources
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:
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:
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:
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
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.
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
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
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.
------=_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.
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.
Mark
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
=A0=20
------=_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.
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
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
------=_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.
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 :)
>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
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 ...
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
=A0=20
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
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
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.
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
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.
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
------=_NextPart_000_0001_01C2FF8A.5733AF90
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
There are other lessons in the notes, but these are high points that
jump out at me.
Chuck
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)
Mark will change the MAP and catalog to reflect the changes. We will
then take it to the faculty.
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
I just talked to Brother Huff about his experience with CS 404 Spring
semester.
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 had them read 10 conference talks and thought this went well.
He also thought that the Open Source discussions went particularly well.
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
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.
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
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:
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
Mark
11) 312 adapting? ( I cant remember what we talked about here, but
someone wanted it on the agenda)
Dr Mark Clement
3370 TMCB
Provo, Utah 84602
(801) 422-7608
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.,
Cheers,
[student]
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."
"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
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,
Mark
Thanks,
Mark
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
Thanks,
Mark
Current Objectives:
Students should:
Topics
Processes (3 lectures)
The process concept
Process scheduling
Operations on processes
Cooperating processes
Threads
Interprocess communication
Deadlock (3 lectures)
Deadlock characterization
Deadlock prevention
Protection (2 lectures)
Security (2 lectures)
The security problem
Authentication
System threats and threat monitoring
Encryption
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
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.
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.
Dan, have you contacted the secretaries to warn students about the
prerequisites?
Thanks,
Mark
Since this is our last committee meeting for the year, we need to
finish some things up for January.
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
Hi,
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
Action Items:
• Everyone: Come up with 3 or 4 options for the program that we can present to the faculty.
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
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
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.
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
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.
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
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.
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.
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.
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.
(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).
CS 312
Competencies
1) Be fluent in some basic analysis tools, including asymptotic notation, elementary probability theory, and
difference equations.
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.
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.
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.
* 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.
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.
Other Duties
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
Every Spring:
• CS 142 section 001
Other Duties
Advisement
2 M.S. Students
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
Professional Development
Relevant Employment
Consulting
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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: "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 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
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)
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)
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
Other Duties
Academic Advisor
- Research 30% Teaching 30% Administration, Committee Work 15% Prep, other 25%
Education
Experience
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
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.
“Jumpstarting Phylogenetic Analysis”, Mark Clement, Quinn Snell, Keith Crandall, Kevin
Seppi, Biotechnology and Bioinformatics Symposium, September 2004, page 17-25.
“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 .
“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.
“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.
"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
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.
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.
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, 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, 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.
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, 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.
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.
Other Duties
Department Graduate Coordinator
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.
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).
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).
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.
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.
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.
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.
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.
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.
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.
Scholarly Activities
Editorial Board for Data & Knowledge Engineering (2005-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.
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.
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.
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.
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.
Other Duties
Chair of department Undergraduate Curriculum Committee and member of the Promotion,
Tenure, and Leave committee.
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
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.
Conference Publications
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.
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
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.
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
Other Duties
Graduate Committee Member
External Funding Committee Chair
Academic Advisor
4 MS students and 4 undergraduate students
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
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.
Scholarly Activities
Professional Societies
Senior Member, IEEE
Member, ACM
Member, AAAI
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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, 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.
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.)
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.)
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.
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.
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
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.
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.)
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. "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.
Charles D. Knutson. "Building the Model Network." Byte, 21(10):101-104, October, 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.
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.
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
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
Publications
Reviewer, Pattern Languages of Program Design 4, Neil Harrison, Brian Foote, and Hans
Rohnert, Eds., Reading, MA: Addison-Wesley, 2000
Chair, IrDA Test and Interoperability Committee, Feb 1998 – Oct 1999
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
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
Team Member, Submission Evaluation Team, IEEE Computer Society International Design
Competition (CSIDC) 2002
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.
Research focus has been on wireless data communications, particularly in the area of the
intelligent, autonomous management of intra-device transport heterogeneity.
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
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.
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.
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
My research objective is to make explicit state model checking (ESMC) a viable verification
technique in commercial tool flows for embedded systems software development.
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.
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.
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, 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, T. Yoo, P. Rheingans, D. Chen, and K. R. Subramanian , “Complex Models Using Interpolated
Implicit Surfaces”, Shape Modeling International 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, “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.
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.
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.
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.
“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.
Scholarly Activities
Honors:
BYU College of Physical and Mathematical Sciences, Teaching Award (under 10 years), 2001.
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).
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
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.
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)
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)
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)
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
2. “Detecting Similar HTML Documents Using a Fuzzy Set Information Retrieval Approach,”
IEEE International Conference on Granular Computing (IEEE GrC’05), Beijing,
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.
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.
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
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).
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).
Olsen, D. R., Deng, X.:“Inductive Groups” ACM Symposium on User Interface Software and
Technology, UIST ‘96, (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., 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).
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).
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).
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
Other Duties
Chair of the Promotion, Tenure, and Leave Committee at the Computer Science Department.
Academic Advisor
I advise 3 M.S. students and 1 Ph.D.
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
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.
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.
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.
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.
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
Principle Publications
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.
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
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
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)
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.
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.
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.
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.
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.
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.
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.
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.
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
Academic Advisor
9 Masters students
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
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
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.
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.
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.
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.
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.
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)
(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
2. Software Development
(a) OnePageGenealogy
(b) Relationship Finder
(c) T-Splines
Other Duties
Academic Advisor
Currently, 5 MS students and 4 undergraduate students.
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.
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.
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.
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.
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, and D. Haderle. “Index Mass Delete”. In IBM Technical Disclosures Bulletin,
August 1989, 454-455.
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, 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.
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 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
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
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
Other Duties
Chair of the Department’s Computing Committee.
Academic Advisor
Advising two Ph.D. students.
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
“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 DOGMA Approach to Parallel and Distributed Computing", Quinn Snell, Glenn
Judd, Mark Clement, Parallel and Distributed Computing Practices, March
2000.
“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.
“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.
“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.
“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.
“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.
"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.
“An Analytical Model of the HINT Performance Metric,” Q. Snell and J. Gustafson.
Proceedings of Supercomputing 1996, November 1996.
Scholarly Activities
Grants
Technical Presentations
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
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
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
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.
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.
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.
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
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%
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
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, "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, ``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.
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.C. Warnick and M.A. Dahleh, "Modular Feedback Design in Epitaxial Processes,"
Society of Engineering Science Annual Technical Meeting, Pullman, WA, 1998.
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
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
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
Principle Publications
Windley, Phillip J., “Formal Modeling and Verification of Microprocessors,” IEEE
Transactions on Computers, January 1995.
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 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., “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. 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 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. 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., “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
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.
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 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.
Scholarly Activities
Professional Societies
ACM
IEEE Computer Society
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.
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)
• 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)
• 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 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.
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.
• 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.
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.
Other Duties
BYU Computer Science Departmental Committees: Undergraduate Education, PhD Recruiting,
External Funding
Academic Advisor
Supervised Ph.D. Students
• Manoj Pandey
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:
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.
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.
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.
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.
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.