CS 363 Comparative Programming Languages

Download Report

Transcript CS 363 Comparative Programming Languages

Computer Systems Lab
Research
at TJHSST
Research 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?
2
Research 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?
3
TJ 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
4
Computer Systems Research
Lab Requirements
•
•
•
•
•
•
Project proposal
Formal research paper
Oral presenations
Poster display
Project website/notebook folder
Logs
5
Electives – Computer Systems Lab
• Artificial Intelligence
• High Performance Computing and
Supercomputer Applications
• Computer Architecture
• Comparative Languages
6
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
7
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
8
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
9
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
10
Research 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.
11
Research Models
(from Pasteur's Quadrant (1997) Donald Stokes)
12
Software 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.
13
Lifecycle 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.
14
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...
15
Computer Systems Lab
Example Projects
16
Student Intranet – Software
Engineering
• A new platform is developed implementing
paradigms in object-oriented programming
and collaborative development.
17
Development of
an ObjectOriented
Module-based
Extensible
Student Intranet
Web Application
in PHP5
A new platform, known as
Intranet2, implements
paradigms in Object-Oriented
programming and
collaborative development in
the creation of a new student
Intranet.
18
NetChat 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.
19
NetChat
Communication
s Systems
The 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.
20
Ant Colony Optimization (ACO) –
Path Finding Algorithms, Machine
Learning
• Finding optimal paths in a complex
network. ACO is an algorithm that is used
to find near optimal solutions to NP
problems.
21
Ant Colony
Optimization
Algorithms
Ant 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.
22
23
Machine Learning and
Computational Linguistics
• Using statistical processes in text
translation.
24
French/English
Translation and
Computational
Linuguistics
This 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.
25
Hybrid Machine Learning System
• 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.
26
Hybrid AI and
Machine
Learning
Systems
The 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.
27
3D 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.
28
Development of
a 3D
Visualization
Engine
The 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.
29
Evolution 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.
30
Evolution
Simulator
The 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.
31
Computer Systems Lab
Mentorship
• 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
32
Computer Systems Lab
Mentorship
• Fairness and Justness in Non-Cooperative
Game Theory: Experimental Economics
Modeling, GMU
• Analysis of Driver Patterns in a Simulated
Environment: Computer Modeling, TurnerFairbank Highway Research Center
• Advanced Speed Guidance for Merging
and Sequencing Techniques: MITRE
33
Thanks and have fun computing!