Title: Computer Systems Lab TJHSST
1Computer Systems LabTJHSST
2Philosophy
- Creativity
- Opensource accessibility to knowledge,
information and resources - Research and development
- Writing and documentation of your research
2
3Research Areas in CS
- Artificial Intelligence and Machine Learning Can
I write a program that can learn on its own to
accomplish a particular task or solve a problem? - 3D Computer Graphics Can I visualize a physical
situation realistically with a computer program? - Computer Vision Can a computer program see,
distinguish, and analyze objects in an image? - Modeling of Complex Systems, numerically and
graphically Can I simulate a complex environment
and mathematical model. How closely can my
simulation match and predict reality?
3
3
4Research Areas in CS
- Distributed and Parallel Programming methods for
high performance computing For a complex
programming task, can I take advantage of
processing in parallel across multiple
processors? - Software Design, Object Oriented Programming
What are optimal techniques for large scale
applications with large user bases and a need for
long term modifications and updates?
4
4
4
5TJ Techabs Portfolio Skills
- Writing Technical Research Paper
- Visual presentation Digital poster
- Oral presentation PPT slides of the research
- Research Your project
- Long term project development iterative models
- Record keeping - Logs
- Peer evaluation
5
5
6Computer Systems ResearchLab Requirements
- Project proposal
- Formal research paper
- Oral presenations
- Poster display
- Project website/notebook folder
- Logs
6
6
7Electives Computer Systems Lab
- Artificial Intelligence
- High Performance Computing and Supercomputer
Applications - Computer Architecture
- Comparative Languages
7
7
8Artificial 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
8
8
9Supercomputer 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
9
9
10Computer 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
10
10
10
11Comparative 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
11
11
11
11
12Research Models(from Pasteur's Quadrant (1997)
Donald Stokes)
- Pure basic research Can I create a logarithmic,
randomly accessible data structure? Can I create
a hybrid machine learning system? - Use-inspired basic research Can I create a 3D
visualization package for graphics modeling for a
Physics course? Can I create a program that can
learn on its own how to translate text from one
language to another for people to obtain
web-based translations? - Pure applied research Can I write a student
Intranet program for a high school? The program
needs to be robust and maintainable by future
students for many years.
12
12
13Research Models(from Pasteur's Quadrant (1997)
Donald Stokes)
13
14Software Testing and Analysis of Your Program
- Dynamic Testing Random tests, Structural tests,
Functional tests, Path and branch testing. - Process Modeling - Finding a formula to verify
and validate your program's behavior. - Requirements and Specifications - Defining
requirements and the specifications for verifying
these requirements.
14
14
15Lifecycle Models for the Development Process
(from Rapid Development by McConnell)
- Spiral Model - breaks a software project up into
miniprojects. Each miniproject addresses one or
more major risks. Each iteration moves your
project to a larger scale. - Evolutionary Prototyping - develop the system
concept as you move through the project. You may
begin by developing the most visible aspects of
the system. Useful when requirements may change
throughout your project or when you're unsure of
the optimal architecture or algorithms to use. - Staged Delivery - you show software results in
successively refined stages. Unlike evolutionary
prototyping, when you use staged delivery, you
know exactly what you're going to build when you
set out.
15
15
16Linux 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...
16
17Computer Systems LabExample Projects
17
17
18Student Intranet Software Engineering
- A new platform is developed implementing
paradigms in object-oriented programming and
collaborative development.
18
18
19Development of an Object-Oriented Module-based
Extensible Student Intranet Web Application in
PHP5A new platform, known as Intranet2,
implements paradigms in Object-Oriented
programming and collaborative development in the
creation of a new student Intranet.
19
19
20Implementation of Steganographic Techniques -
Cryptography
- The purpose of this project is to design a
steganographic program in C capable of hiding a
message within a WAV file, and then later
extracting the hidden message. It should be able
to work with any WAV formatted sound file, and
the message ideally will not be detectable.
20
20
20
21Implementation of Steganographic TechniquesThe
purpose of this research will be to investigate
various methods of steganography (hiding data
within different media). I will develop a new
program to hide data within the WAVE file type.
The first part of the program itself will be able
to accept two inputs the 'clean' file and the
hidden message. It will then combine the two and
output a 'doctored' file with the hidden message
inside it. The second part of the program will be
able to reverse the process, receiving a
'doctored' file as input and extracting the
hidden message.
21
22NetChat Communications System Software
Engineering, Distributed platforms
- The creation of a network communication system
that will use methods of transferring data
between a server and a client using an XML
protocol.
22
22
23NetChat Communications SystemsThe project
involves creating a method of transferring data
between a server and client using an XML-based
protocol. This framework would be extended into
the form of an application called NetChat.
Using the developed framework, NetChat would be
capable of sending data back and forth in the
form of instant messages, email, news feeds,
along with various other means of communication.
23
23
24Image Filter Techniques Image Processing,
Computer Vision
- This project explores digital image filtering
techniques by comparing the median and frequency
filters. By testing the filters with images
varying in object type (people, landscapes, or
objects) and noise composition, the project
determines the advantages and disadvantages of
each in specific situations.een a server and a
client using an XML protocol.
24
24
24
25Image Filter Techniques This project explores
digital image filtering techniques by comparing
the median and frequency filters. By testing the
filters with images varying in object type
(people, landscapes, or objects) and noise
composition, the project determines the
advantages and disadvantages of each in specific
situations.
25
26Logarithmic Randomly Accessible Data Structure -
Algorithms
- Making a data structure that performs like a
dynamic array but functions in logarithmic time
for all operations is the goal. By using a
binary tree in which values are stored at the
leaf nodes and each node keeps track of how many
leaves there are below it, we can quickly achieve
logarithmic random access, insertion and deletion
in the average case but all operations are linear
on the worst case.
26
26
26
26
27Logarithmic Randomly Accessible Data Structure
Making a data structure that performs like a
dynamic array but functions in logarithmic time
for all operations is the goal. By using a
binary tree in which values are stored at the
leaf nodes and each node keeps track of how many
leaves there are below it, we can quickly achieve
logarithmic random access, insertion and deletion
in the average case by all operations are linear
on the worst case.
27
28Graphical Display of a Physics Simulation
Computer Modeling
- The purpose is to make a physics simulation that
will display objects placed by the user
graphically and display information about those
objects on a graphical user interface. The goal
is to allow the user to place any combination of
objects, including particles, springs, and ramps,
in a graphical display, input values for these
objects, and run a simulation that will track
these values and display the interactions and
positions of the objects graphically in
two-dimensions.
28
28
28
28
28
29Computer Graphics and Physics SimulationsA
physics simulation, in order to adequately
demonstrate physical laws and predict an
unlimited number of scenarios, must implement a
broad range of mathematical equations and provide
the user with the ability to set up a scenario
with whatever number of objects and arrangements
of these objects that he desires. The goal of
this project is to create such a simulation.
29
30Modeling of Complex Systems Economics
- The stock market is an example of a complex
system, made up of millions of interactions
between different investors and affected by every
action made by thousands of companies. Economic
theory suggests that the actions of investors are
governed by few well informed primary investors.
Primary catalysts may be news reports, press
releases, income reports, etc, and it may be
possible to predict trends across the market by
analyzing news on stocks.
30
30
30
30
30
30
31Economic ModelingMy project is involved with
using data mining techniques on the internet in
order to gather enough information for the use of
a genetic algorithm in trend analysis of a
complex system e.g., the stock market. The most
fundamental element of my program is creating a
correlation between news about a company and its
stock and the price of the stock itself.
31
32Creation of a Domain Specific Computer Language
Computer Language Design
- A domain-specific language (DSL) is a programming
language designed to be used for a specific and
limited set of tasks. Using metaprogramming
techniques, I designed IFAlpha, a DSL hosted
within Ruby for creating interactive fiction
games. My goal was to create an intuitive and
expressive language for creating Interactive
Fiction (IF) games while hiding the details of
implementation from the programmer.
32
32
32
32
32
32
32
33Creation of a Domain-Specific Computer
LanguageThe purpose of my project is to explore
programming language design and metaprogramming
techniques in Ruby through the creation of a DSL
for creating Interactive Fiction games. My vision
is to create an intuitive interface for the game
writer. The value in the project is to be found
in both the technical implementation and the
design of the interface. My goal is to create a
programming language interface that is easy for a
non-programmer end-user to use writing IF games
that hides implementation details while allowing
expressiveness.
33
34Decentralized Distributed Processing
Distributed Programming
- The purpose of this project is to produce a
medium for distributing the load of enormous
tasks to networked peers with varying computing
power in an efficient manner. This will
distribute the work load from one computer to
other computers within a network of peer
computers by sending portions of the data and the
proper analytical tools to all of the specified
peers while also computing various peer's tasks.
34
34
34
34
34
34
34
34
35Decentralized Distributed ProcessingWith the
enormous amount of data being collected every
day, a single computer's CPU's computational
ability to analyze the data and to utilize
meaning behind the data is less than
satisfactory. In order to mine through of the
data within certain time constraints, a
collection of computers is needed. The purpose of
this project is to produce a medium for
distributing the load of enormous tasks to
networked peers with varying computing power in
an efficient manner.
35
36Machine Learning and Computational Linguistics
- Using statistical processes in text translation.
36
36
37French/English Translation and Computational
LinuguisticsThis project uses computational
linguistics to serve students of French or
English as a second language as well as those who
know only one of these languages. The program
will translate French to English and English to
French well enough to be understandable to
someone who knows only the output language. This
is useful for surfing the web, reading texts in a
foreign language, and communication with someone
from another country. It can also be used for
students to check their writing by translating
back to their native tongue.
37
37
38Machine Learning Processes Genetic Algorithms
- The program works like a general genetic
evolutionary process. First, the parameters,
cost, and cost function are defined. An initial
population is created, and the cost is evaluated
for each individual in the population. Pairs are
selected to reproduce, and mutations may occur.
The resulting population is tested and if the
desired result is obtained the program stops.
Otherwise, the process begins again with the cost
evaluation step.
38
38
38
39Machine Learning AlgorithmsThe purpose of this
project is to create a program that can play a
game at an expert level. The program will
probably use alpha-beta pruning or genetic
algorithms, two common algorithms of AI. Genetic
algorithms use parent states to create child
states, while alpha-beta pruning looks for the
best move at the moment. The results of the
genetic algorithm and the alpha-beta pruning can
be compared to find an optimum AI for playing the
game.
39
40The Dynamics of Cellular Automata Artificial
Life
- John Conway's Game of Life showed that simple
rules can generate amazingly complex patterns.
Using variations of the rules he devised, one can
learn about the advantages of different sets of
rules and the implications for simple evolution
and chaos theory.
40
40
40
40
41Cellular Automata DynamicsCellular automata
grids can be used to show that simple rules can
generate complex patterns. Using variations of
rules devised from John Conway's Game of Life,
one can learn about the advantages of different
sets of rules and the implications for simple
evolution and chaos theory.
41
42Computer Modeling TJ's Hallways and Student
Traffic
- The purpose of this project is to create a
simulation of the students and teachers at
Jefferson moving around the building. This
simulation is meant to be accurate based on time
and location.
42
42
42
42
42
43TJ Hall ModelingThe purpose of this project is
to model TJ students in their school environment
throughout a typical school day. The goal is to
have dots to represent the students moving on the
basis of probability to various parts of the
building. If the project were completed it would
allow the user to control various aspects of the
day. This project is worth doing to demonstrate
just how big the need is for a new building to
indirectly show that TJ is overcrowded. Students
and teachers alike might be interested in seeing
the results, mostly to avoid the crowded areas
during their travels.
43
44Modular Architecture for Game Design Software
Engineering, Object Oriented Programming
- Common current game architectures limit program
flexibility and modularity. With the advent of
middleware and the increasing complexity of
games, this is no longer acceptable. This project
attempts to design and implement a modular,
Data-centered architecture based on the "System
of Systems" approach.
44
44
44
44
44
44
45Modular Architecture for Game DesignCommon
current game architectures limit program
flexibility and modularity. In this project I
will attempt to design and implement a highly
modular, Data-centered architecture based on the
"System of Systems" approach. The final
implementation need not have any significant
complexity within each system (e.g. graphics, AI,
etc.) but rather must demonstrate the successful
interaction of independent systems.
45
46Music Compositional Software Development
Computer Music
- Music editing software may be expensive,
complicated, and could be improved as a teaching
tool. A new, free software designed for amateur
composers and music students requires a less
powerful editing system and can incorporate
learning tools to aid teachers in teaching music
theory to students.
46
46
46
46
46
46
46
47Compositional Software DevelopmentThe purpose
of this project is to make an easy to use
composition aid software that incoporates a
simple and intuitive GUI into a robust highly
capable system of music display.
47
48Map Path Finding with Realistic Conditions AI
Search Algorithms
- An abstract representation of a map will be used
to incorporate realistic conditions along with a
visual display. The project can be used as a
tool for educating students on different types of
search algorithms, memory efficiency, and
runtimes. Realistic aspects of traffic movement
such as traffic light and stop sign delays can
provide better paths through a map.
48
48
48
48
48
48
48
48
49Map Path Finding and Efficient Search
TechniquesMy project will deal with maps and
pathfinding. The primary goal of the project
would be to use an extension of the A search
algorithm to find both the shortest distance path
and the fastest path through a given graph - an
abstract representation of a real life map.
Eventually, I hope to include realistic
artificial intelligence concepts such as speed
limits and street lights. A random graph
generator will also be created.
49
50Human Cognitive Emulation Computer Modeling in
Psychology
- This project attempts to recreate accurate human
responses to stimuli. Using a survey format, this
experiment hopes to produce a unique response to
a stimuli based on information gained about the
user. This lab can perhaps draw broad conclusions
about groups of people and how they respond,
combined with other techniques of emulating human
thought patterns, computers can become closer and
closer to accurately representing a human
cognition.
50
50
50
50
50
50
50
50
50
51Human Cognitive EmulationThis project attempts
to accurately model human responses to stimuli.
Using a survery format, this research hopes to
produce a unique responce to a stimuli based on
information gained about the user. Analyzed
solely on its own, the ramification of this
project can perhaps draw broad conclusions about
groups of people and how they respond. When
combined with other techniques of emulating human
thought patterns, computer programs can come
closer to representing accurately human responses.
51
52Evolution Simulator Computer Modeling of
Environments, Artificial Life
- Simulate the evolution of different organisms
within an environment. There will be a genetic
variability that will allow the organism species
to evolve, or die out. The hope is a
demonstration of natural selection, showing that
after many generations the collective gene will
be more advanced than the original.
52
52
53Evolution SimulatorThe purpose of this project
is to create an AGENT-based model that simulates
the evolution of different organisms within an
environment. These organisms will be a simulation
of real-world organisms, with the need for food,
the ability to breed and die, and so on. Their
function and lifespan will be based on dozens of
genetic characteristics, such as metabolism,
eyesight, etc., and these characteristics will be
passed on to offspring. There will be a genetic
variability that will allow the organism species
to evolve, or devolve. The hope is a
demonstration of natural selection, and after
several generations the collective gene will be
more advanced than the original.
53
53
54Applications of Neural Networks Machine Learning
- Neural networks are a powerful way of finding
patterns and functions. Traditional methods and
algorithms can have troublefinding patterns in
data when there are noisy data and imperfections.
Neural networks are designed to handle noise and
be able to find complex patterns in noisy data.
In that way, they are ideal for applications like
predicting the stock market, compressing data and
analyzing musical compositions.
54
54
54
55Applications of Neural NetworksNeural networks
are a powerful way of finding patterns and
functions. Traditional methods and algorithms
often have troublefinding patterns in data when
there are noisy data and imperfections. Neural
networks are designed to handle noise andbe able
to find complex patterns in noisy data. In that
way, they are ideal for applications like
predicting the stock market, compressing data and
analyzingmusical compositions. Furthermore,
different types of neural networks have different
strong points this project willattempt each of
the applications with various types of neural
networks.
55
56Traffic Light Simulation Computer Modeling,
Traffic
- This project simulates a busy traffic light. The
cars follow all necessary rules of the road so
that the simulation is realistic. The program
recognizes patterns in the intersection and makes
the light as efficient as possible by minimizing
waiting time and queue length plus maximizing
green light usage for cars. The patterns in the
intersection can change hourly to match the real
world.
56
56
56
57Traffic Light SimulationThis project is meant
to simulate a busy traffic light. The program
tries to recognize patterns in the intersection
and make the light as efficient as possible by
minimizing waiting time for cars, both average
waiting and total waiting time. The patterns
would be related to the time of day and the day
of the week. At first I would purposely input
recognizable patterns and see if the program
would catch it, but eventually the plan would be
to possibly use this program using a real
intersection's data.
57
583D Visualization Package Computer Graphics
- Develop a 3D graphics simulation engine designed
to simplify the task of coding 3D simulations,
while still giving the developer control over
every aspect of the rendering and simulation
process.
58
58
59Development of a 3D Visualization EngineThe
purpose of my project is to investigate the
workings of a 3D graphics simulation engine, and
develop an engine designed to simplify the task
of coding 3D simulations, while still giving the
developer control over every aspect of the
rendering and simulation process. Hopefully, this
engine will simplify the visualization process to
the point where it is worthwhile to code a 3D
representation of some problem. I also hope to
make it possible for the developer to use my
engine without any knowledge of OpenGL or SDL,
but rather do all the necessary code behind the
scenes when using the default rendering methods.
59
59
60Hybrid Machine Learning System Machine Learning
- Designing a system that combines the capabilities
of multiple types of AI and machine learning
systems, such as neural networks and subsumption
architectures, to produce a more flexible and
versatile hybrid system.
60
60
61Hybrid AI and Machine Learning SystemsThe
purpose of this project is to design a system
that combines the capabilities of multiple types
of AI and machine learning systems, such as
neural networks and subsumption architectures, to
produce a more flexible and versatile hybrid
system. The end goal is to produce a set of basic
library functions and architecture descriptions
for the easy manipulation of the AI/ML subsystems
(particularly neural networks), and use those to
build an AI system capable of teaching itself how
to complete tasks specified by a human-defined
heuristic via either supervised training or
trial-and-error and inference, and of altering
learned behaviors to cope with changes in its
operational environment with minimal human
intervention.
61
61
62Unique-Bid Auction Modeling and Analysis
Computer Modeling, Economics, Game Theory
- To create an auction environment that allows
human and robotic bidders to compete for a
fictitious auction items.
62
62
62
63Unique-Bid Auction Modeling and AnalysisThe
purpose of this project is to simulate a
unique-bid auction environment and to
economically analyze the auction results. When
completed, this project would be an exercise in
complex systems modeling, computer networking,
artificial intelligence, and graphical interfaces
and displays. When the environment program is
perfected, I will alter the size and access to
information and track the changes in the
auction's performace.
63
64Hallway Traffic Simulator Computer Modeling
- This project is intended to spot flaws in school
hallway design and find an ideal layout. My
primary goal for the first quarter will be to
program an algorithm in fortran that will write
basic movements of individuals to a text file. I
will also write a viewer in java to read from the
text file and display these movements in a GUI.
64
64
64
64
65Hallway Traffic SimulatorThis project is
intended to spot flaws in school hallway design
and find an ideal layout. My primary goal for the
first quarter will be to program an algorithm in
fortran that will write basic movements of
individuals to a text file. I will also write a
viewer in java to read from the text file and
display these movements in a GUI.
65
66Machine Learning Applications Othello
- The purpose of this research project is to
implement machine learning with artificial
intelligence. A purpose is to gain a deeper
understanding of machine learning.
66
66
66
66
66
67Machine Learning Applications in OthelloThe
purpose of this research project is to implement
machine learning with artificial intelligence.
This research will gain a deeper understanding of
machine learning, a subject which I am very
interested in. Anyone who is interested in having
a significant Othello challenge will be
interested in the results of this project.
67
683D Graphics Module Software Engineering
- The purpose of this research project is to write
a program that allows the user to graph functions
of two variables. The program will incorporate
elements of 3D graphics by allowing the user to
rotate, shrink, and stretch the graphs. The
program may be included in the student Intranet
as a module and will thus include elements of
modular design.
68
68
68
68
68
68
693D Graphics ModuleMy project will be an
addition to the Intranet. Currently, the
Intranet has a module for calculator registration
in case someone loses their calculator. However,
there is no module to replace the functionality
of a graphing calculator while it is lost.The
purpose of my project is to create an Intranet
module containing a regular 4-function calculator
along with a graphing utility and matrix and list
editors. I will try to include every matrix,
graph, and statistical operations contained on
the TI-83.
69
70End-to-end Bittorent Publication Computer
Networks
- End-to-end publication through Bittorrent
involves creating a .torrent metadata file,
communicating with peers through a central
tracker, and an initial seed with a complete
copy of the file. This project aims to simplify
this process by providing a complete package that
provides all the parts of this process.
70
70
70
70
70
70
70
71End-to-end Bittorent PublicationBittorrent is a
peer-to-peer network that always allows for fast
download speeds despite the number of peers
downloading the file. Currently, there exist
tools to make .torrent files, tools to "track"
the peers downloading the file, and tools to host
.torrent files. This project aims to unify this
process by making an end-to-end software suite
that simplifies the process of publishing a file
on the Bittorrent network for download. It will
involve a complete implementation of the
Bittorrent protocol, including encoding torrent
files, peer-to-tracker and peer-to-peer
communication.
71
72An Investigation of Chaos Theory Using
Supercomputing Techniques High Performance
Computing
- The purpose of this project is to investigate
Chaos Theory while applying advanced
supercomputing algorithms using the Message
Passing Interface (MPI). Through an analysis of
more simple chaotic systems, I hope to learn
about more sophisticated systems.
72
72
72
72
72
72
72
72
73An Investigation of Chaos Theory Using
Supercomputing TechniquesThe purpose of this
project is to investigate Chaos Theory while
applying advanced supercomputing algorithms using
the Message Passing Interface (MPI). Through an
analysis of more simple chaotic systems, I hope
to learn about more sophisticated systems.
73
74Ant Colony Optimization (ACO) Algorithms,
Machine Learning, Path Finding
- Finding optimal paths in a complex network. ACO
is an algorithm that is used to find near optimal
solutions to NP problems.
74
74
75Ant Colony Optimization AlgorithmsAnt Colony
Optimization (ACO) is an algorithm that is used
to find near optimal solutions to NP problems.
This research aims to study the differences in
strengths and weaknesses between various
implementations of ACO (as applied to the
Traveling Salesman Problem), suggest or conduct
development into improving performance of ACO
algorithms, and study the general application of
ACO algorithms to the Traveling Salesman Problem.
75
75
7676
76
76
77Computer Systems LabMentorship
- TASC Component Architecture and Simulation
Environment Systems Modeling, Northrop Grumman
IT - Implementation of Artificial Physics Using AIBO
Robot and the Pyro Programming Environment AI
Robotics, NRL - Development of a Practical Social Network
Analysis Program IT.COM
77
77
78Computer Systems LabMentorship
- Fairness and Justness in Non-Cooperative Game
Theory Experimental Economics Modeling, GMU - Analysis of Driver Patterns in a Simulated
Environment Computer Modeling, Turner-Fairbank
Highway Research Center - Advanced Speed Guidance for Merging and
Sequencing Techniques MITRE
78
78
79Computer Vision Edge DetectionsVertical diff.,
Roberts, Sobels
79
80Thanks and have fun computing!