
David Ackley
| His ongoing research interests center on
artificial life models and real artificial life; current research
emphases include genetic algorithms and programming, distributed and
social computing, robust self-aware systems, and computer security.
|

Edward Angel
| His present research interests are in computer
graphics and scientific visualization. He is supporting graduate students
working in volume visualization, virtual reality, and masssively parallel
computing. His main teaching interests have been in Computer Graphics.
|

Patrick Bridges
| My main research interests are in building
robust, highly-configurable system software for a wide range of systems.
Most people today use a variety of machines from many different locations,
so a wide range of demands are placed upon system software. Configurability
allows software, especially middleware and operating systems, to be
changed to suit different operating environments. For similar reasons,
I am interested in adaptation, which allows existing software to modify
its behavior for new situations. I am also interested in both high-performance
systems and networked, mobile systems because they present interesting
challenges to system software designers.
|

Stephanie Forrest
| Adaptive systems, including genetic algorithms,
computational immunology, biological modeling, and computer security.
|

Paul Helman
| Data mining, bioinformatics, database systems,
theory of algorithms
|

Deepak Kapur
| Automated reasoning, term rewriting, formal
methods, programming languages, algebraic and geometric reasoning,
and their applications in computer vision and solid modeling, elimination
methods, constraint solving, and distributed, concurrent and real
time systems
|

Terran Lane
| My primary (academic) interests are in machine
learning; reinforcement learning, behavior, and control; and artificial
intelligence in general. I'm also interested in computer/information
security/privacy and in bioinformatics.
|

Sean Luan
| My research interests include (1) computational
medicine and biomedical engineering, (2) algorithms design, analysis
and implementation, and (3) computational geometry. Computational
medicine is an emerging and promising inter-disciplinary field and
serves as a bridge between biology, medical physics and medical applications.
My current research emphasizes on the design and development of efficient
and effective computer algorithms and software for radiation oncology.
|

George Luger
| AI, Cognitive Science, Computational Linguistics
|

Barney Maccabe
| Developing approaches for the design and
implementation of large-scale, high-performance computing systems
for resource constrained (Grand Challenge) applications.
|

Cris Moore
| I study interesting things like Phase Transitions
in NP-complete Problems, Quantum Computation, Computational Complexity
in Statistical Physics, Analog Computation, Dynamical Systems, Cellular
Automata, Recurrent Neural Networks, Algebraic Circuits, Non-Associative
Algebras (Quasigroups and Loops), Glassy Systems and Slow Relaxation,
Spin Systems, Potts Models, Random Tilings, Random Networks, "Small
Worlds," Monte Carlo Algorithms, Combinatorial Games, and some other
things.
|

Bernard Moret
| Main area: algorithm engineering and experimental
algorithmics; Other areas: computational biology, computational geometry,
algorithmic paradigms, and complexity theory
|

Jared Saia
| My primary research interest is designing
provably good algorithms for practical problems. Theoretical interests
include: approximation algorithms for NP-Hard problems, randomized
algorithms, graph theory, and online algorithms. A strong current
interest is designing provably good algorithms for problems in peer-to-peer
and distributed systems.
|

Brian Smith
| His primary research interests are numerical
software, and high performance computing. He is currently serving
as the Associate Director of the UNM High Performance Computing Education
and Research Center.
|

Darko Stefanovic
| Incorporating new compiler analyses with
both static and dynamic optimizations, profile feedback, run-time
techniques that optimize running programs including adaptive garbage
collection algorithms, and ways of communicating high-level static
and dynamic predictions of program behavior to an architecture that
can exploit it.
|

Robert Veroff
| Automated deduction, expert database systems
|

Lance Williams
| Human and computer vision, computational
neuroscience, image processing, texture synthesis for computer graphics
|
Courses
PhD candidates
and Master's
students have different course requirements. There is an
official description of courses, but not all of them are offered regularly.
The list does not include the many "special topics" courses (491/591)
taught each semester. These courses are a way for professors to teach
a class on a particular topic without going through the long process of
making the course "official". Some of the 491/591s will get "real" course
numbers if they start becoming regular courses. Go here
for a list of courses being offered now.
There is a choice of two course tracks in the Master's program. One of
the tracks is intended to be a terminal degree (it was created for people
who will use their education primarily in an industrial setting), while
the other is more academic in nature (which preserves the option of continuing
on to a PhD at a later date and covers a broader range of material). In
either track, a student can choose between a thesis or masters exam. The
more professional masters track exchanges some breadth for depth, in the
form of a 4-course
concentration in a particular area. The more academic track has no
concentration option, but instead incorporates courses on theory, algorithms
and systems. Go here
for more information about the Master's program.
Doctoral students do not have many official course requirements, but
they are expected to have a broad knowledge of computer science that is
tested in the comprehensive
exams (The Comps), an unpleasant week-long test often taken in the
student's second or third year. Doctoral students typically take courses
to fill in holes in their background and to brush up on old material,
but they also do a good bit of independent or group studying to prepare
for the comps. Lynne Jacobson (ljake@cs.unm.edu)
is the undergrad and grad student program advisor, so she is the best
person to talk to about course and graduation requirements.
Course
registration is usually done online at I-TEL
UNM or over the phone (246-2020). Your student id/social security number
is your login id and your 4-digit password is initially set to your date
of birth (mmdd). If you need assistance, contact the UNM
Registrar's Office or Lynne Jacobson (ljake@cs.unm.edu),
the academic coordinator for CS.
Student funding
10-12 Teaching
Assistantships (TAs) are available each semester in our department.
About 4 of these are awarded to new students, almost always PhD candidates.
These are often awarded around the time acceptance letters go out. Most
new PhD students TA for one semester during their first year to satisfy
the PhD student teaching requirement, then find RA positions with faculty
to support them for the rest of their time in the program.
Research Assistantships
(RAs) are funded by individual faculty members, so their availability
varies with faculty funding and interest. Professors are usually more
interested in funding PhD students because PhD students are generally
more interested in research and are likely to be in the department longer
than Master's students. There is certainly funding available for Master's
students, but one has to be more persistent and show more initiative to
get it.
Some students, particularly Master's students, find jobs in other departments.
The UNM CAPS tutoring
program offers opportunities for work. Other students choose to work
off-campus jobs or support themselves with personal savings, especially
international students.
Research Resources
There are a wide variety of research resources available to UNM students.
Here are a few super useful ones, although naturally there are others
we don't know about.
Sun Grid Engine (SGE)
The SGE is a clustering program that allows you to submit
a job to the software, which will then dispatch it to an available computer
on the CS.UNM SGE network. All of the machines in the computer lab (FEC
309) and many in the CS Support server room are in the cluster. For more
information about using SGE to run your jobs, see the help
page.
Access to Online Journals
The UNM Library system offers several ways of accessing electronic versions
of journals, e.g., Nature, Science, etc. For HTTP proxy access, simply
visit the menu pagehttp://libproxy.unm.edu/menu/
and select from the list - you'll need your UNM NetID and password
to enable the proxy access. You can also use the GoldRush
search engine to search online journals. Finally, CiteSeer
and arXiv are electronic repositories
of many computer science and physics papers.
How to meet/work with faculty
Students usually initiate the process of getting an advisor. If you have
a research assistantship, then your sponsoring faculty member is by default
your advisor. The current graduate advisor (Bob Veroff for now) can give
you advice about course work and attaining your academic goals. Here is
our advice on how to choose a advisor for doing research:
- Find out which faculty are interesting to you: If you are unfamiliar
with our faculty, start by visiting their web pages to find out what
their interests are. Above, there is an alphabetical
list of faculty members with links to their home pages and a second
list organized by a few of the major research areas for your convenience.
Also, take a look at the
course offerings to see what looks interesting to you, especially
the 500-level courses. Faculty often offer 491/591 courses to teach
students about what interests them the most. If you do not intend to
start doing research soon, it still might be worthwhile to take courses
that are related to your potential research interests. Taking these
courses can help you decide if you are really interested in the topics
and the faculty teaching them. If you do well, your class performance
might be remembered when you do decide to look for research opportunities.
Even if you are not sure about your research interests (which is fine,
even typical), hopefully some of the faculty will look more interesting
than others to you. If you can't decide, go ahead and talk to everyone.
It is probably a good idea to maintain informal relations with several
faculty members, particularly if you have diverse research interests.
At some point, all PhD students need to form a dissertation committee,
which usually includes 2 or more members of our faculty.
- Approach the faculty: The faculty here are very approachable.
You can e-mail them or or visit them during office hours. Talk to them
about your academic interests. It would be good to show some familiarity
with their research. Tactfully ask if they have funding for students
and what kinds of projects they will support.
- Impress the faculty: Some students receive funding commitments
from professors before they start school, but many faculty members would
like to know more about you before investing time and money in your
budding research career. They may want you to take one of their upper
level classes or work on a small research project before offering an
official RA. Do a good job, and hopefully they will be impressed by
your abilities and sincerity. If you do not enjoy their upper level
classes or preliminary research projects, then perhaps you would not
enjoy working for them either. You might also want to see if they have
research group meetings and if you may attend them.
- Working with the faculty: Some faculty have specific projects
they want students to work on, while others give students more freedom
to determine their own research projects. Talk to the professors and
their students about this. Having your own mature research ideas and
presenting them well increases the chances of you being able to pursue
them.
- Oops, I don't want to work with this person anymore: Changing
advisors is normal, especially during the first couple of years in the
program. Talk to your current advisor about the situation and find a
new advisor.