computer systems lab overview

99
Computer Systems Lab TJHSST

Upload: butest

Post on 02-Dec-2014

1.620 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Computer Systems Lab Overview

Computer Systems LabTJHSST

Page 2: Computer Systems Lab Overview

2

Philosophy

• Creativity• Opensource accessibility to knowledge,

information and resources• Research and development• Writing and documentation of your

research

Page 3: Computer Systems Lab Overview

3

Project Opportunities in CS• Artificial intelligence and machine

learning• Opensource software development• Game simulation and design• Web development• Database design• Security and Cryptography• Operating system, language design• Networking and ISP

Page 4: Computer Systems Lab Overview

4

Computer Science Applications

• Computer graphics and vision• Artificial intelligence, robotics• Distributed and Multiagent systems• Software engineering• Computer languages and compilers• Operating systems and networking• Database design

Page 5: Computer Systems Lab Overview

5

TJ Techlabs• Astronomy

– Co-req: Astronomy - The Universe or Solar System • Automation and Robotics

– Recom: Princ. of Robotics I, II, Analog/Digital Elec., Pre-engineering, Prototype Dev.

• Chemical Analysis

– Pre-req: AP Chemistry • Computer Assisted Design

– Pre-req: CAD, Recom: Arch. Drawing, Engineering Drawing, Pre-engineering

Page 6: Computer Systems Lab Overview

6

TJ Techlabs• Computer Systems

– Pre-req: AP Computer Science

– Recom: Intro. to AI, Comp. Arch, Supercomputer Apps • Energy Systems

– Recom: Pre-engineering, Analog Elec., Nature of Materials, CAD

• Biotechnology

– Pre-req: Bio elective, Bio-tech elective, or Chem. elective, Recom: DNA Science 1

• Microelectronics

– Recom: Analog, Digital, or Audio Electronics, or Microprocessor Design

Page 7: Computer Systems Lab Overview

7

TJ Techlabs• Oceanography and Geophysics

– Recom: Marine Biology • Optics and Modern Physics

– Recom: Advanced Optics Apps or Quantum Mechanics and Dev. in Modern Physics

• Prototyping and Engineering Materials

– Recom: Prototype Dev. and Processing or Nature of Materials

• Video Technology

– Pre-req: Videotech and Communications

– Recom: Analog Electronics, Audio Electronics, or Photography

Page 8: Computer Systems Lab Overview

8

TJ Techlabs - PortfolioSkills We Stress

• Writing – Technical Research Paper• Visual presentation – Digital poster• Oral presentation – PPT slides of the research• Research• Long term project development – iterative models• Working individually and in teams• Record keeping• Peer evaluation

Page 9: Computer Systems Lab Overview

9

Electives – Computer Systems Lab

• Artificial Intelligence• High Performance Computing and

Supercomputer Applications• Computer Architecture• Comparative Languages

Page 10: Computer Systems Lab Overview

10

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci• Full four-year sequence in Computer Science.

• The Computer Science Team is part of the Math/CS Division and the Computer Systems Lab is part of the Science and Technology Division.

• Our collective goal is to provide a world class Computer Science education to our students and to disseminate curriculum materials to other academic institutions.

Page 11: Computer Systems Lab Overview

11

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci• Introduction to Computer Science

– A mandatory course for all TJ students, the intro. course assumes no prior programming experience. Students study object-oriented programming and develop fundamental programming skill. In preparation for the AP course, Java is the language of instruction.

Page 12: Computer Systems Lab Overview

12

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci• AP Computer Science

– An elective course available to all students who have completed Introduction to Computer Science, APCS follows the College Board topic outline. This course carries an additional 0.5 quality point in GPA calculation and pepares students to take the APCS Exam given each May.

Page 13: Computer Systems Lab Overview

13

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci

• Accelerated Computer Science– A non-traditional route designed for

experienced programmers only, this course requires exceptional problem solving skills (by TJ standards).

Page 14: Computer Systems Lab Overview

14

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci• Summer School

– How better to spend five weeks of summer than learning Computer Science with 140 of your closest TJ friends. A great way to fit more into your cramped schedule, the summer school program thrives because of students aides (upperclassmen, apply early). An accelerated class is usually formed during the second week. Not only is there an ice cream social and a pizza party, but you may even get to work with teachers from outside TJ.

Page 15: Computer Systems Lab Overview

15

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci

• Artifical Intelligence– A half-credit semester course requiring APCS

as a prerequisite, students program in Python in a Linux environment. This class carries the same extra grade point value as an AP course.

• Computer Architecture– A half-credit semester course requiring APCS

as a prerequisite, students program in C in a Linux environment. This class carries the same extra grade point value as an AP course.

Page 16: Computer Systems Lab Overview

16

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci

• Supercomputer Applications– A half-credit semester course with a suggested

APCS prerequisite, students program in C and Fortran in multiple UNIX environments. This class will get you an account on our Cray SV1 supercomputer.

• Comparative Languages– A half-credit semester course with a suggested

APCS prerequisite, students program in Python, LISP, C++, Prolog, Smalltalk, ML and other exotic tongues in a Linux environment. Veni, vidi, vici.

Page 17: Computer Systems Lab Overview

17

Computer Science at TJHSSThttp://www.tjhsst.edu/compsci

• Senior Tech Lab– One credit in Technology Independent

Research, such as this course in Computer Systems Research, is required for graduation from TJ.

Page 18: Computer Systems Lab Overview

18

Artificial Intelligence

• Search techniques for problem solving– Uninformed: depth first, breadth first– Heuristic: hill climbing, best first, A Star

• Game playing and adversarial search– Minimax trees– Alpha-beta pruning

• Machine Learning– Evolutionary computation, genetic algorithms

Page 19: Computer Systems Lab Overview

19

Supercomputer and High Performance Computing

• Parallel Computing– Speedup of processing: Time/# of processors– Sorts, searches, image processing across

matrices, fractal images

• MPI – Message Passing Interface – Message sending topologies, ring/broadcast– Time vs number of processors

• Computer Graphics in OpenGL– 3D transformations, lighting for realism

Page 20: Computer Systems Lab Overview

20

Computer Architecture

• Organization of Computer Systems• High level language implementations down

to the digital logic level • SPIM simulator for assembly language• History of the development of computing

machines– Evaluate current platforms– Analyze future forecasts

Page 21: Computer Systems Lab Overview

21

Comparative Languages

• Evolution of programming languages• Syntax and semantics representation• Machine parsing of grammars, building a

compiler • Some issues: Exception handling,

Concurrency, Garbage collection• Language approaches: imperative, object

oriented, functional, logic based

Page 22: Computer Systems Lab Overview

22

Comparative Languages• Scheme

– functional programming language and a dialect of Lisp. It was developed in the 1970s, MIT. Lisp, 1958, is the second-oldest high-level programming language in widespread use today; only Fortran is older.

• Smalltalk – object oriented programming language designed at

Xerox PARC (Xerox Palo Alto Research Center) by Alan Kay and others during the 1970s...great influence on the development of many other computer languages

Page 23: Computer Systems Lab Overview

23

Comparative Languages• Prolog

– Programmation en logique (French for "logic programming"), created by Alain Colmerauer around 1972 to make a programming language enabling the expression of logic instead of specified instructions on the computer.

• ML– functional programming language developed by

Robin Milner and others in the late 1970s at Edinburgh University. CMU

Page 24: Computer Systems Lab Overview

24

Comparative Languages• C programming language

– low-level standardized programming language developed in the early 1970s by Ken Thompson and Dennis Ritchie for use on the UNIX operating system.

• Fortran– compiled, programming language originally

developed in the 1950s and still heavily used for scientific computing and numerical computation half a century later.

Page 25: Computer Systems Lab Overview

25

Comparative Languages• Python

– interpreted, interactive programming language created by Guido van Rossum in 1990. Used in our AI course.

• Ruby – object-oriented language, combines syntax

inspired by Ada and Perl with Smalltalk-like features, also shares some features with Python, Lisp. Ruby's an interpreted language created by Yukihiro "Matz" Matsumoto, began working on Ruby on February 24, 1993 and released to the public in 1995.

Page 26: Computer Systems Lab Overview

26

GMU Collaborations• CS 635 Foundations of Parallel Computing

– Fall 2004, Dr. Pearl Wang

• CS 363 Comparative Programming Languages– Spring 2005, Dr. Elizabeth White

• CS 499 Autonomous Robotics– Spring 2005, Dr. Sean Luke

• MASON Multiagent Simulation Toolkit– Evolutionary Computation, Dr. Sean Luke

Page 27: Computer Systems Lab Overview

27

GMU Collaborations

• Center for Social Complexity– Dr. Claudio Cioffi-Revilla– CSS 600 Introduction to Computational Social

Science– CSS 610 Computational Analysis of Social

Complexity– CSS 640 Human and Social Evolutionary

Complexity– CSS 643 Land-Use Modeling Techniques and

Applications

Page 28: Computer Systems Lab Overview

28

GMU Collaborations• Center for Social Complexity

– Dr. Claudio Cioffi-Revilla, Dr. Ann Palkovich

– CSS 600 Introduction to Computational Social Science

– CSS 610 Computational Analysis of Social Complexity

– CSS 640 Human and Social Evolutionary Complexity

– CSS 643 Land-Use Modeling Techniques and Applications

– CSS 645 Spatial Agent-based Models of Human-Environment Interactions

– CSS 650 Physics Methods for Analyzing Social Complexity

– CSS 660 Computational Social Science of Spacefaring Civilization

Page 29: Computer Systems Lab Overview

29

Computer Systems ResearchGoals for Students

• Pursue an individual or group research project in computer science

• Write a formal research paper in support of the project

• Develop presentation skills in support of the project

• Maintain records of individual effort and progress

Page 30: Computer Systems Lab Overview

30

Computer Systems ResearchLab Requirements

• Project proposal• Formal research paper• Oral presenations• Poster display• Project website/notebook folder• Logs

Page 31: Computer Systems Lab Overview

31

Computer Systems Research1st Quarter

• Gather preliminary background materials, references

• Develop formal project proposal– Feasability of subject matter, scope– Algorithms, language(s), software tools– Open ended, what can be accomplished this

year

• Begin writing programs experimenting with algorithms

• Oral report on your proposal

Page 32: Computer Systems Lab Overview

32

Computer Systems Research2nd Quarter

• Expanding upon research, reference materials

• Expand program in support of research goals

• Develop digital poster display• Research paper preliminary: Title, Abstract,

Introduction/Background• Oral presentation on your poster

Page 33: Computer Systems Lab Overview

33

Computer Systems Research3rd Quarter

• Begin finalizing computer programs, models

• Summarization of data collected, tests, results

• Draft of your research paper– Title, Abstract, Introduction, Background– Development sections, what you've actually

done– Preliminary results, conclusions

Page 34: Computer Systems Lab Overview

34

Computer Systems Research4th Quarter

• Final version of your research paper– LaTeX, PDF, PS, HTML

• Final version of your digital poster• Visuals – graphs, charts, screenshots• Oral presentation of project

Page 35: Computer Systems Lab Overview

35

Computer Systems Research Resources

• Research Resources – Research examples from universities– Computer Science research areas– Writing a research paper

• Mayfield Publications

– LaTeX, PDF– Writing a proposal– Intel and Westinghouse example projects– Gantt charts/Time lines

Page 36: Computer Systems Lab Overview

36

Computer Systems ResearchIterative Development Model

• Periodic Iteration Progress reports– See extremeprogramming.org

• Plan, design, goal of this iteration• Pseudo code versions, sketches• Commented code• Testing, validation of this iteration's code• What to change, develop for next iteration• Any users for feedback?

Page 37: Computer Systems Lab Overview

37

Computer Systems ResearchPeer/Faculty Review

• Peer assessments of research progress, poster and paper feedback

• Appropriate title, abstract?• Introduction, does it lead the reader into the

body of the paper, define the research being presented, provide background?

• Research theory, code content, testing and validation – how clearly are the algorithms and theory stated, thorough testing, analysis?

Page 38: Computer Systems Lab Overview

38

Computer Systems ResearchPeer/Faculty Review

• Student Posters and Papers 2005 -– http://www.tjhsst.edu/~rlatimer/

assignments2004/posters05.html – or see top of www.tjhsst.edu/~rlatimer

Page 39: Computer Systems Lab Overview

39

Computer Systems ResearchResearch Writing Resources

• Mayfield Handbook for Technical and Scientific Writing

• Detailed online resource• Elements of Technical Documents• Front matter, Body, End matter

Page 40: Computer Systems Lab Overview

40

Intel Science Talent SearchSieman's Westinghouse Comp.

• Review of Abstracts, Titles from recent years

• Which are applicable to computer science?

Page 41: Computer Systems Lab Overview

41

Linux Resources and Software Tools – Opensource availability

• Programming– C/C++, Java, Fortran, Python, Lisp

– PHP, Perl, HTML for WWW

– OpenGL – computer graphics

• Image processing – Gimp

• 2D/3D analysis - Gnuplot

• Openoffice for ppt, publishing

• LaTex, PDF, PS for scientific writing

• “planner” - Gantt charts, “dia” - flow charts, network diagrams, UML – objects, electronic diagrams...

Page 42: Computer Systems Lab Overview

42

Computer Systems LabHardware

• Linux workstations• Mosix Cluster (being constructed)• Cray SV1, 16 processors

– C, Fortran, vector processing– Parallel programming, MPI, PVM

Page 43: Computer Systems Lab Overview

43

Computer Systems LabAccessing from Home

• WinSCP – Transfer files from Windows to the Lab

• Putty.exe – work from home, connected from Windows/Macs to Linux here

• “Compatable” software with Windows/Macs

Page 44: Computer Systems Lab Overview

44

Computer Systems LabProject Areas 2004-05

• Algorithms– Variants of Red-Black Trees

• Agent-based modeling of complex systems– A Study of Microevolution– Modeling of Evolutionary Systems– Modeling of Evacuation Centers– Traffic Modeling– Model of the Decomposition of the Atmosphere

Page 45: Computer Systems Lab Overview

45

Computer Systems LabProject Areas 2004-05

• Modeling of Complex Systems (cont.)– Saturnian Moon System

– Robot Swarms

– Sabermetrics: Statistical Modeling in Baseball

– A Bowling Ball in Action

• Machine Learning, Evolutionary Computation– Machine Learning to Develop a Game Playing Strategy

– Can a Robot Learn to Walk

– Assessment of Sorting Parts by Variable Slot Width

Page 46: Computer Systems Lab Overview

46

Computer Systems LabProject Areas 2004-05

• Natural Language Processing, Computational Linguistics– Part of Speech Tagging with Training Corpora

• Example: “Hospitality NN is BEZ an AT excellent JJ virtue NN”

• NN: singular common noun, BEZ: is, AT: article, JJ: general adjective

– Computational Comparative Diachronic Historical Linguistics

• Systems Programming, Development – Kernel Debugging API Library

Page 47: Computer Systems Lab Overview

47

Computer Systems LabProject Areas 2004-05

• Computational Biology– Investigation of Implementations of DNA

Sequence Pattern Matching Algorithms (BLAST)

• Computer Architecture – Construction and Application of a Beowulf

Cluster

Page 48: Computer Systems Lab Overview

48

Computer Systems LabProject Areas 2004-05

• Computer Graphics– Polygon Mesh Rendering (03-04)– Creating a 3D Game with Textures and

Lighting– Car Simulation and Modeling

• Computer Music– Genetic Algorithm Music Composer

• Software Development– Software Development Team

Page 49: Computer Systems Lab Overview

49

Computer Systems LabMentorship Opportunities

• Naval Research Lab– Artificial Intelligence– Robotics Labs– Computer Vision, Image Processing

• Virtual Technologies– Software Development

• GMU – Center for Social Complexity– Agent based modeling

Page 50: Computer Systems Lab Overview

50

Computer Systems LabMentorship Opportunities

• UUnet– Internet, Network programming– 7 layers of Internet protocol

• GMU – Computer Science Department– Artificial Intelligence, Robotics Labs– Computer Vision, Image Processing

• Walter Reed Army Intstitute

• NIH– Biotech, image processing programming

Page 51: Computer Systems Lab Overview

51

Computer Systems LabMentorship Opportunities

• Semi-Autonomous Control of a Segway Robotic Mobile Platform - NRL

• The Effect of Sound Distortion on Hearing Perception - NRL

• Development of a Web Interface for Accessing Chemical Information in Thor and Informix Databases – Walter Reed Army Institute

• Development of a Data Measuring Application for Federates Used in Simulations – Virtual Technologies

Page 52: Computer Systems Lab Overview

52

Software Systems

DevelopmentThe primary purpose of our Computer Systems Research project is to investigate the

feasibility and consequences of establishing a student workgroup based on a classical development lifecycle model. We modeled our

project on the Waterfall Development Model, otherwise

known as the Systems Development Lifecycle Model

(SDLC).

Page 53: Computer Systems Lab Overview

53

Computational Models of

Traffic

The goal of my project is to make an accurate simulation of traffic in an multi-lane intersection world that will be easily mutable for work in

studies on the effects of construction work and accidents on traffic flow.Traffic Simulations are used in a variety of ways. One of the most

prominent and original uses was to use traffic simulations to evaluate

alternate treatments.

Page 54: Computer Systems Lab Overview

54

Genetic Algorithms and Music

Genetic algorithms use feedback resulting from evaluating data

sets to optimize these data sets for the best performance as defined

by the user. The main dataprocessing is done in LISP. The creation of audio files is done

using Csound.

Page 55: Computer Systems Lab Overview

55

Car Simulation

This project will be used to simulate carrelated incidents from the

real world. By working with this program, users will be able to benefit from responses to scenarios that may have hazardous consequences in real

life. By showing real people the decisions of robots, human drivers will attempt to replicate the robots'

acceptable actions.

Page 56: Computer Systems Lab Overview

56

Sorting Parts of Variable Width

Problem Statement. To analyze the efficacy of sort parts by using slots and utilizing the variable angular

velocities that result when parts of distinct physical dimensions move off of a relatively flat inclined surface.

Purpose. The final goal is to assess the feasibility of quality control based on taking advantage of the different

orientations at various time after release that are caused by deviations

from the original product.

Page 57: Computer Systems Lab Overview

57

Robot Swarms

My project is an agent based simulation, posing robots in a “game of life”, with each new generation of robot comes new genes using a random number selection process creating the

mutations and evolutions that in real life we experience for DNA

cross over and such.

Page 58: Computer Systems Lab Overview

58

Modeling Evolutionary

Behavior

The purpose of this project is to attempt to model evolutionary

behavior in agents in an environment by introducing traits and

characteristics that change with the different generations of agents.

I hope to create an environment where certain agents will prosper and

reproduce while others will have traits that negatively affect their

performance. In the end, a single basic agent will evolve into numerous

subspecies of the original agent and demonstrate evolutionary behavior.

Page 59: Computer Systems Lab Overview

59

Developing a Learning

Agent

The goal of this project was to create a learning agent for the

game of bridge. I think my current agent, which knows the rules, plays legally, and finds

some basic good plays, is a step in the right direction. This agent

could and will be improved upon over the course of the year

and will become smarter and learn faster throughout the year

Page 60: Computer Systems Lab Overview

60

Modeling a Bowling Ball

The idea behind this project is to create a model of the dynamical

bowling game system. By analyzing sets of physics equations and applying them to this system,a program can be created to

calculate and output the path and other characteristics of a bowling ball's traversal across a bowling

lane. This ouput is based on a set of initial conditions, including speed, angle, lane conditions, and starting

rotation.

Page 61: Computer Systems Lab Overview

61

Optimization of a Traffic

SignalThe purpose of this project is to produce an intelligent transport

system (ITS) that controls a traffic signal in order to achieve

maximum traffic throughput at the intersection. To produce an

accurate model of the traffic flow, it is necessary to have each car be an autonomous agent with its own driving behavior. A learning agent will be used to optimize a traffic

signal for the traffic of the autonomous cars.

Page 62: Computer Systems Lab Overview

62

Modeling a Saturnian

MoonThis project hopes to add to our

understanding of space systems by providing a comprehensive

simulation of the Saturnian moon system. By doing this, this project

attempts to expose what phenomena can't be explained with modern

models and perhaps suggest theories to explain the unexplained.

Page 63: Computer Systems Lab Overview

63

Modeling Atmosperic

ChangeMy goal is to create a model of the atmosphere over time, predicting its strength given the increasing

amount of pollution as well as the controversial but effective

Montreal Protocol. Many projects are in place to save the ozone, and this model will assist in assessing

the impact of anti-pollution movements and determine the

longterm possible outcome given many parameters. This model

features usercontrolled variables, allowing the user to manipulate the

year, solar flux, and existence of anti-pollution projects.

Page 64: Computer Systems Lab Overview

64

An Investigation into

Implementations of DNA Sequence

Pattern Matching Algorithms

There is an immense amount of genetic data generated by government efforts such

as the human genome project and by organization efforts such as The

Institute for Genomic Research (TIGR). there exist large amounts

of unused processing power in schools and labs across the country. Harnessing some of this power is a

useful problem not just for the specific application in

Bioinformatics of DNA sequence pattern matching.

Page 65: Computer Systems Lab Overview

65

Modeling of Evacuation

Centers Using NetLogo

Modeling is a powerful tool that allows a programmer or social engineer to observe cause-and-

effect relationships in occurences that a) happen too slowly or quickly to see, b)

involve danger or safety concerns, c) occur on a scale

too large or too small for study, d) is not a common occurrence. Using NetLogo, a multi-agent

programmable modeling environment, the socio- and

psychological factorsaffecting decision-making in

these situations can be effectively simulated.

Page 66: Computer Systems Lab Overview

66

Construction and Application of a

Pentium II Beowulf Cluster

I plan to construct a super computing cluster of about 15-20 or more Pentium II computers with the OpenMosix kernel patch. Once constructed, the cluster could be configured to transparently aid

workstations with computationally expensive jobs run in the lab. This project would not only increase the computing power of the lab, but it

would also be an experiment in building a lowlevel, lowcost cluster

with a stripped down version of Linux, useful to any facility with old

computers they would otherwise deem outdated.

Page 67: Computer Systems Lab Overview

67

Study of Microevolution Using

Agent-Based Modeling in C++Agent Class

class Organism { public: Organism();

Organism(int ident, int row2, int col2); Organism(Nucleotide*

mDNA,Nucleotide* dDNA, int ident, bool malefemale,

int row2, int col2); ~Organism();

void printGenome(); void meiosis(Nucleotide* gamete);

Organism* reproduce(Organism* mate, int ident, int r, int c);

int Interact(Organism* neighbors, int nlen);

int GeneValue(bool parent, int chromnum, int gennum);

Page 68: Computer Systems Lab Overview

68

Creating a 3D Game With a Study of

OpenGL Textures and Lighting Techniques

To create a first person 3D game using OpenGL. The program consists

of using models, textures, lighting, and polygons to create a 3D world in OpenGL. Various equations are used

to calculate camera angles, movement, and physics. For example,

to move the camera, “eye movements” are controlled by glLookAt, which takes an eye

position with 3 points (x,y,z) and 2 vectors. One vectors is the up

direction and the other is the forward direction.

Page 69: Computer Systems Lab Overview

69

Paintball Frenzy!

Optimized Minimax Agent AI

The purpose of this project is to create an innovative and

enjoyable graphical game and program a minimax AI agent

that performs optimally.

Page 70: Computer Systems Lab Overview

70

Using Machine

Translation in a German

– English Translator

This project attempts to take the beginning steps towards the goal of creating a translator program that operates within the scope of translating between English and

German.

Page 71: Computer Systems Lab Overview

71

A Study of Balanced

Search TreesThis project investigates four

different balanced search trees for their advantages and

disadvantages, thus ultimately their efficiency. Runtime and

memory space management are two main aspects under the study. Statistical analysis is

provided to distinguish subtledifference if there is any. A new

balanced search tree is suggested and compared with the four balanced search trees.

Page 72: Computer Systems Lab Overview

72

Linux Kernel Debugging API

The purpose of this project is to create an implementation of much of the kernel API that functions in user space, the

normal environment that processes run in. The issue with testing kernel code is that the live kernel runs in kernel space, a separate area that deals with hardware interaction and management of all the

other processes. Kernel spacedebuggers are unreliable and very limited

in scope; a kernel failure can hardly dump useful error information because there's no operating system left to write

that information to disk.

Page 73: Computer Systems Lab Overview

73

Machine Learning Techniques for Game PlayingMachine learning allows the

computer to create its own logical rules, and learn from its past

experiences. Machine Learning allows an AI to increase its abilities over time, even without additional

direct programmer input. My project hopes to develop a proficiency at Tic-Tac-Toe. My project hopes to create

a new algorithm for a relatively simple game, Tic-Tac-Toe. Ideally,

this algorithm will be modified according to its results to create better

algorithms.

Page 74: Computer Systems Lab Overview

74

Part-of Speech Tagging with

CorporaThe aim of this project is to create and

analyze various methods of part-of-speech tagging. The corpora used are of extremely limited size thus offering

less occasion to rely entirely upon tagging patterns gleamed from

predigested data. Methods used to analyze the data and resolve tagging ambiguities include Hidden Markov

Models and Bayesian Networks. Results are analyzed by comparing the

system-tagged corpus with a professionally tagged one.

Page 75: Computer Systems Lab Overview

75

Benchmarking of

Cryptographic Algorithms

The author intends to validate theoretical numbers by

constructing empirical sets of data on cryptographic algorithms. This data will then be used to give factual predictions on the

security and efficiency of cryptography as it applies to

modern day applications.

Page 76: Computer Systems Lab Overview

76

Resource Locking and Synchronization in the Linux Kernel

The goal of the KDUAL project is to create a C library which implements the

kernel Application Programming Interface (API) in user-space and performs automatic

debugging. Sections of kernel code can then be compiled against this library and run as ordinary programs for convenient

testing. This particular section of the project aims to implement the kernel's resource locking API with automatic

detection of deadlock situations. Locking will be implemented in two parts-the core algorithms, with their ownAPI designed to

be convenient for the developers, and simple glue code bridging that API to the

kernel API.

Page 77: Computer Systems Lab Overview

77

Algorithms for Computational Comparative

Historical Linguistics Over time, languages change by regular, systematic processes. It is possible, by

looking at the state of a language now and in the past, to deduce the exact changes that

occurred, and the order in which they occurred. These changes also split

languages, therefore it is also possible to, by using modern languages as input, induce the probable structure of their parent language. My goal is to develop algorithms by which

computers may efficiently analyze the historical structure of languages and

language families.

Page 78: Computer Systems Lab Overview

78

Optimizing Genetic Algorithms for

Cypher DecodingOver the past several years, genetic algorithms have come into wide use because of their ability to find good

solutions to computing problems very quickly. They imitate nature by crossing over strings of information represented as chromosomes, with preference given to the more fit solutions produced. They

hold great promise in the field of cryptology, where they may be used to quickly find good partial solutions, thus eliminating much of the intense manual labor that goes into identifying initial

coding schemes.

Page 79: Computer Systems Lab Overview

79

Decision Trees for Career Guidance

This research project will be an investigation into the design and implementation of various decision trees for career guidance. A decision tree takes into account some sort of situation

outlined by a group of parameters and outputs a Boolean decision to the situation. This

project will take into account many aspects associated with decision trees including

database building, searching and sorting, and algorithms for accessing data.

My project utilizes numerous decision trees in an effort to serve as a tool for career guidance for young adults. A user will fill out a form of specified fields that will then be analyzed by

the group of decision trees until a field of study/occupation is given to the user as the

outcome. This group of decision trees will be built through database building techniques.

Page 80: Computer Systems Lab Overview

80

Archival of Articles via RSS and

Datamining Performed on Stored Articles

RSS (Really Simple Syndication, encompassing Rich Site Summary and RDF Site Summary) is a web syndication protocol

used by many blogs and news websites to distribute information it saves people having to visit several sites repeatedly to check fornew content. At this point in time there are

many RSS newsfeed aggregators available to the public, but none of them perform anysort of archival of information beyond the

RSS metadata. The purpose of this project is to create an RSS aggregator that will archive

the text of the actual articles linked toin the RSS feeds in some kind of linkable, searchable database, and, if all goes well,

implement some sort of datamining capabilityas well.

Page 81: Computer Systems Lab Overview

81

An Analysis of Sabermetric Statistics

in BaseballFor years, baseball theorists have pondered the

most basic question of baseball statistics: which statistic most accurately predicts which

team will win a baseball game. With this information, baseball teams can rely on technological, statistical-based scouting

organizations. The book, Moneyball addresses the advent of sabermetric statistics in the 1980s and 1990s and shows how radical baseball thinkers instituted a new era of

baseball scouting and player analyzation. This project analyzes which baseball statistic is

the single most important. It has been found that new formulas, such as OBP, OPS, and

Runs Created correlate better with the number of runs a team scores than traditional statistics

such as batting average.

Page 82: Computer Systems Lab Overview

82

A Comparison of AI Types of Various

StrengthsMany different methods of Artificial Intelligence in games exist in todays

world, such as a min-max search or goal-directed reasoning. By using a game

that is less complex than chess, the standard game for testing AI's, I intend

to compare various AI methods and their strengths in the game of Othello.

Page 83: Computer Systems Lab Overview

83

Developing an AI Player for Guess Who

My project is to create a computerized version of the game "Guess Who?" complete

with an AI player. This involves two research areas: Game AI and Data Mining. Data mining is the analysis of data and the

use of software techniques for finding patterns and regularities in sets of data. My

AI's strategy algorithm will formulate questions that eliminate 50% of the suspects,

which is the optimal percentage.

Page 84: Computer Systems Lab Overview

84

Techniques of Asymmetric File

Encryption Encryption programs have been created

to protect privacy during a transfer of files and to make sure that sensitive files will be protected. My project is to create an asymmetric file encryption program.

This means that encrypted files will need a pass-key to open that will be different

from the key used to encrypt. This program could be applied practically to

protect files duringtransfers.

Page 85: Computer Systems Lab Overview

85

Computer Vision: Edge DetectionsVertical diff., Roberts, Sobels

Page 86: Computer Systems Lab Overview

86

Computer Vision: Edge DetectionsSobels – Red, Green, Blue

Page 87: Computer Systems Lab Overview

87

Computer Vision: Edge DetectionsSobels – No Red/Green/Blue

Page 88: Computer Systems Lab Overview

Projects from previous years• Computer Simulation and Modeling, Computational Computer Science

– Evolution of Darwin's Finches: Simulation using Genetic Algorithms

• This project uses genetic algorithms to simulate the process of the evolutionary changes that gave rise to the varying species of the finches. Factors including theabundance of food, probability of mutation, and size of the initial results of this project demonstrate the drastically different evolutionary paths the finches could have followed depending on varying environmental conditions.

Page 89: Computer Systems Lab Overview

Projects from previous years• Computer Algorithms

– The Use of Polynomial-time Reducibility to Improve Approximations to NP-complete Problems

• NP-complete problems are thought, though not proven, to be intractable. Because they are commonly encountered by programmers in situations where an exponential -time solution will be too slow, efficient approximations based on greedy or random approximation algorithms are necessary. By reducing one NP-complete problem to another, some aspect of it that was not immediately obvious but that can be exploited to produce a superior greedy algorithm may be revealed.

Page 90: Computer Systems Lab Overview

Projects from previous years

• Computer Graphics

– Implementation of Ray Tracing to Create a Virtual Underwater Environment

• The realistic rendering of a scene beneath the water's surface allows users to experience and learn about the underwater surroundings. Students are able to "travel" underwater with this education tool.

Page 91: Computer Systems Lab Overview

Projects from previous years

• Encryption

– Encryption and Decryption Using Character Manipulation, Twist and Flip, and RSA

• The project will combine three methods of encryption already used in various levels of security. Character (bit) manipulation provides the least amount of security, but combined with a modified Twist and Flip algorithm and RSA, the most advanced encryption method in use, there is the possiblity of a nearly unbreakable code.

Page 92: Computer Systems Lab Overview

Projects from previous years

• Database, Expert Systems

– Online Bleeding Logs for Hemophiliacs: Simplifying Data Collection and Analysis

• The objective of this project is to simplify for doctors of hemophiliacs the process of collecting, compiling, searching, and viewing information contained in their patients' bleeding logs.

Page 93: Computer Systems Lab Overview

Projects from previous years

• Computer Music

– The Stravinsky Project : Using Genetic Algorithms to Compose Music

• This program will use artificial intelligence and user input to compose original music using midi output from the computer. The AI will use genetic algorithms based on music theory to determine the "quality" of any given phrase, and the type of music will gravitate towards the preference of the user.

Page 94: Computer Systems Lab Overview

Projects from previous years

• Computer Graphics, Grid Computing

– SETI Visualizations: Development of Graphical Utilities for Explaining SETI

• The SETI (Search for Extra-Terrestrial Intelligence) program has been active since 1960. It publicises itself well with many text-based sites. However, few graphical utilities exist to explain the program. The purpose of this project is to develop such utilities using OpenGL.

Page 95: Computer Systems Lab Overview

Projects from previous years

• AI, Cellular Automata – with GMUComputer Science Dept.

– Solving the Majority Classification Problem and Cellular Automata

• Creation of an algorithm that will solve the Majority Classification Problem in an efficient and successful manner.

Page 96: Computer Systems Lab Overview

Projects from previous years• Linux Educational Applications

– The Luminance Open Source Educational Desktop

• The Luminance Desktop aims to be the premier open source educational desktop. It will be comprised of many other open source projects. The Luminance desktop does not aim to reinvent the wheel and rewrite every single application. Rather its goals is to create uniformity and ease of use to the a small subset of users, students and teachers. All software forming the luminance desktop will be Open Source, in order to promote the Open Source philosophy.

Page 97: Computer Systems Lab Overview

Projects from previous years• Portal to the Past - a Virtual Museum Tour

• Three-Dimensional Network Structure Visualization Using OpenGL Graphics and TCP/IP

• Creation of an Intelligent Traffic Light System

• Exploration of Software Defined Radio

• Investigation of Methods of Computer Music Generation

• Random Terrain and Non-fractal Urban Environment Generation

Page 98: Computer Systems Lab Overview

Projects from previous years• Terrain Generation in OpenGL

• Polak-Ribiere conjugate gradient method for function minimization, Quantum Computing

• New Quantum Mechanical Model of Lossy Information Propagation and Transmission

• Parameter Defined Polygon Modification

• Artificial Intelligence Techniques in Dots and Boxes

•Modular Tank Simulation

Page 99: Computer Systems Lab Overview

Thanks and have fun computing!