Department Head: Charles Stewart
Associate Department Head: Sibel Adali
Home Page: http://www.cs.rpi.edu/
Computer science is the study of the design, analysis, communication, implementation, and application of computational processes. Core subjects of this discipline include software systems (such as operating systems and networks) and programming languages (including design and other language translation tools). They also include computer hardware systems, the design and analysis of data structures and algorithms, and the theoretical basis of computation, in particular the complexity of computation. In addition to these core subjects, various application areas are open to students, including artificial intelligence, computer graphics, databases, semantic web, knowledge representation and reasoning, scientific and numeric computation, computer vision, cyberinfrastructure, computer and network security, data mining, robotics, computational finance, parallel and distributed systems, and social networking.
At Rensselaer, education in computer science prepares students for solving applied real-world problems and for conducting research in computer science. The program provides students with a solid grounding in both theory and practice. The undergraduate program also provides a rigorous background in mathematics and science.
Research Innovations and Initiatives
Bioinformatics is the science of managing, retrieving, analyzing, and interpreting biological data. Research is being carried out on such topics as multiple sequence alignment, sequence assembly, protein and RNA structure prediction, and regulatory networks. Research also spans emerging areas, including microarray data analysis, high-dimensional indexing, database support, information integration, and data mining.
Current research in computational geometry concentrates on algorithms for the reconstruction of smooth geometric objects from their samples. Problems of interest include characterizing the conditions on sampling density, which allows a curve to be reconstructed from its samples. The reconstruction is homeomorphic and sufficiently close to the original and the algorithms developed to achieve the reconstruction. Also involved are the dependence of such algorithms on the dimension of the embedding space, related algorithms for the reconstruction of surfaces and manifolds, and finding the most concise representation of a manifold in terms of its samples. A second research track focuses on applications of computational geometry, particularly in robotic motion planning.
The faculty and students in the Computer Graphics Research Group are interested in a wide variety of rendering, geometry, simulation, and visualization problems motivated by computer games, special effects in movies, architectural design and pre-visualization, and many other exciting applications. Research topics include physically-based digital sculpting, efficient high-quality photo-realistic rendering, new data representations and algorithms, and the use of modern graphics hardware for interactive applications.
The Computational Finance group applies its research to diverse areas, including computational finance, bioinformatics, networks of social and selfish agents, and design of multi-agent systems.
Computational Science and Engineering
Students and faculty work on computational approaches and algorithms to solve large-scale problems that arise in natural science and engineering. Current research includes adaptive methods for solving partial differential equations, scientific software libraries, algorithms for medical imaging and tomography, high-performance matrix algorithms, computational biology, and algorithms for high-performance, parallel, and distributed computation.
Computer vision research in the Computer Science Department focuses on developing and applying computer vision techniques to address problems in image-based environmental monitoring. Applications include determining the distribution of species and individual animals, identifying the presence of invasive species, and monitoring ecosystem health. Within the context of this important application domain, a range methods is studied, including illumination modeling, segmentation, tracking, and, most importantly, recognition.
Data Mining; Machine and Computational Learning; Algorithms for Massive Data Sets
This research area focuses on the theoretical and applied aspects of automated information extraction (knowledge discovery) from data. For large data sets, emphasis is placed on developing efficient, scalable, and parallel algorithms for various data mining techniques in addition to the data management itself. Examples include association rules, classification, clustering, and sequence mining. For small data sets, the emphasis is on robust computational learning systems (supervised, unsupervised, and reinforcement) and their theoretical properties. Application areas include combinatorial optimization, computational biology (bioinformatics, computational genomics), web mining, geographic information systems, and computational finance.
Researchers from diverse domains work together to take complex data and transform it in ways that make it usable to a wide variety of scientists, protect it for the long term, and enable it to provide as much knowledge as possible to the scientific community as well as the general public. This is accomplished by adding semantics to data where possible to make it usable to a variety of machines and programs; storing the data in intelligent ways; mining the data to extract as much knowledge as possible from it; building models to represent the structure of the data; and using those models to build simulations and visualizations of the data to display the data in a usable way and predict how the data will change over time.
This research area focuses on efficient and effective methods for storing, querying, analyzing, mining, and maintaining data from possibly disparate and heterogeneous resources. Data is used in many different applications, from scientific data sets, sensor data, images, video, and audio to hypertext documents, biological data, and data on stock market behavior. Research focuses on methods for caching data, querying large and distributed databases, database mining, and supporting such applications as computer-aided design and manufacturing, bioinformatics, and collaborative engineering.
Pervasive and Network Computing
Pervasive computing foresees a world in the not-so-distant future in which computer systems are embedded in everything, from personal digital assistants to implanted biological devices, to bridge-monitoring systems, and to teams of robots deployed into a collapsed building to locate survivors. Untethered—wireless—communication is constant and, in many cases, so automated that human intervention is not needed. Wireless broadband community systems inexpensively bring people together for virtual town meetings, video doctor-patient conferences, and online business transactions. Computers in automobiles share information on congestion, quickly computing alternate routes. The promises are immense, but the challenges are formidable. Computer science faculty cover the broad area of pervasive and network computing. This research includes investigation of computer networks and their protocols, security of computers and networks, and distributed and parallel system optimization and simulations.
Programming Languages and Software Engineering
The Programming Languages and Software Engineering research group investigates programming models, languages, concepts, methodologies, and tools to enable the development of correct, efficient, reliable, and maintainable software.
The primary goal in the field of robotics is to create machines that are physically capable, either alone or in groups, of performing useful tasks, such as the assembly of a car or the picking and washing of fruit. To build such robots, robotics research focuses on robot mobility, environmental sensing and perception, the mechanics of manipulation, motion planning and control, and both physical and social aspects of human-robot interaction. The robotics research group studies these problems from theoretical and computational perspectives, and also experimentally in the Computer Science Robotics Lab that is fully equipped with state-of-the-art equipment.
As semantic technologies have been gaining momentum in various e-Science areas (for example, W3C’s interest group for semantic web health care and life science), it is important to offer semantic-based methodologies, tools, and middleware to facilitate scientific knowledge modeling, logical-based hypothesis checking, semantic data integration and application composition, integrated knowledge discovery and data analyzing for different e-Science applications. Partially influenced by the Artificial Intelligence community, Semantic Web researchers have largely focused on formal aspects of semantic representation languages or general-purpose semantic application development, with inadequate consideration of requirements from specific science areas. What is required is the development of a multi-disciplinary field to foster the growth and development of e-Science applications based on the semantic technologies and related knowledge-based approaches.
Social and Cognitive Networks
In studying social and cognitive networks, in which people interact over a variety of means, research is focused on identifying fundamental properties of networks, the processes underlying their evolution, and the paradigms for network engineering to enhance their efficiency, reliability, robustness, and other desirable properties. In particular, the research concentrates on models and algorithms of community creation and evolution, building and measuring trust in social networks, impact of mobility on network formation, dependencies between social, information, and communication networks, spread of opinions and ideologies among network nodes, and cognitive models of net-centric interactions.
Theory of computation provides the foundation needed for effective applications in computer science. The theory group brings together researchers in many different areas to develop novel approaches and solutions to problems in information technology. The theory group research is characterized by close collaboration with researchers in diverse application areas, including networking, bioinformatics, visualization, pattern recognition in physics and astronomy, digital library, data mining, distributed computing, and experimental algorithmics.
Since its inception, the World Wide Web has fundamentally changed the ways in which people work, play, communicate, collaborate, and educate. There is, however, a growing realization among researchers across a number of disciplines that without new research aimed at understanding the current evolving and potential Web, opportunities for new and revolutionary capabilities may be missing or delayed. To model the Web, it is necessary to understand the architectural principles that have provided for its growth. Looking into the future, to be sure that it supports the basic social values of trustworthiness, personal control over information, and respect for social boundaries, a research agenda must be pursued that targets the Web and its use as a primary focus of attention. This research requires powerful scientific and mathematical techniques from many disciplines to explore the modeling of the Web from network- and information-centric views.
The undergraduate degree program in computer science provides an excellent background for students entering the work force directly upon graduation and for those pursuing graduate studies. Students majoring in computer science study such topics as artificial intelligence, computer graphics, theory of computation, operating systems, robotics, data mining, databases, network programming, parallel computing, and scientific numerical computing.
Outcomes of the undergraduate curriculum
Students who successfully complete this program will be able to demonstrate:
- an ability to develop a computational formulation of a problem, one or more data structures and algorithms to solve the problem, a program to implement a solution, and strategies for testing and verifying that the program is correct.
- knowledge of the mathematical and theoretical underpinnings of computer science.
- an ability to adapt a solution to different computing platforms, paradigms, and/or programming languages.
- an advanced depth of knowledge in one or more of the following areas: computer systems, computer theory, applications, software engineering, data analysis, and large-scale software architecture.
Dual Major Programs
Computer science students can obtain a dual major with any other major offered at Rensselaer. In many cases, students can obtain a dual major within the 128 credits of a single degree, since many courses can be counted twice. Popular majors often combined with computer science include mathematics, physics, management, games and simulation arts and sciences, engineering (which requires additional credits hours), and electronic media, arts, and communication.
Students may be admitted to the graduate program in Computer Science when they are within 18 credits of completing their B.S. degree. Students may be able to complete the B.S. and M.S. in a shorter than usual time by using advanced placement credit, taking courses during the summer, or taking extra courses during the academic year. A variety of joint degree programs can be arranged, depending on the student’s background, interests, and desired rate of progress. Any joint degree program requires that the student apply to and be accepted to the graduate program.
Special Undergraduate Opportunities
The Computer Science Department strongly encourages students to take part in the following special programs.
Co-operative Education and Internships
Numerous employment opportunities exist for computer science majors during their course of study. Students are urged to pursue at least one internship and/or co-op experience during their academic career. More detailed information on the co-op program is available in the School of Science introduction section and the Educational Programs and Resources section of this catalog. Internships are typically available over the summer, even after a student’s freshman year.
Undergraduate Research Program (URP)
This program allows students to participate in faculty research activities. The department urges students to take advantage of these opportunities, through which students can earn either pay or course credit. Additional benefits may include being named co-authors on journal papers or the opportunity to make presentations at professional conferences. Additional information is available in the School of Science introduction section and the Educational Programs and Resources section of this catalog.
Rensselaer Center for Open Source Software (RCOS)
This program provides a creative, intellectual, and entrepreneurial outlet for students to use open-source software platforms to develop open-source applications that solve societal problems. RCOS team members participate in a collaborative environment for sharing and practicing programming and project management skills, including code reviews and project presentations. Students can participate in RCOS for course credit or for a stipend. At the beginning of each semester, including the full summer sessions, an Internal Advisory Board reviews project proposals and decides which should receive financial support or course credit. Students may also participate in RCOS solely for the experience.
The Department of Computer Science offers M.S. and Ph.D. degrees in computer science. The department also offers computer science M.S. degrees with specializations in robotics and in computational science and engineering.
Applications for the M.S. or Ph.D. in computer science should be sent to the Graduate Admissions Office to be received no later than January 1 for fall admission; August 15 for spring admission. Applicants must provide transcripts, two letters of recommendation, a statement of goals, and GRE scores. Each student’s background is expected to include courses in discrete mathematics, calculus, data structures, computer organization, and computing languages, none of which can be counted toward the graduate degree. Admission is extremely competitive, and meeting the minimum requirements does not assure admission.
Courses directly related to all Computer Science curricula are described in the Course Description section of this catalog under the department code CSCI.
Adali, S.—Ph.D. (University of Maryland); trust, social network analysis, information integration, information retrieval, database systems.
Berman, F.—Ph.D. (University of Washington); cyberinfrastructure, data preservation and access, e-science, and high performance and grid computing.
Carothers, C.—Ph.D. (Georgia Institute of Technology); parallel and distributed systems; simulation; networking and real-time systems.
Hardwick, M.—Ph.D. (Bristol University, U.K.); database systems for engineering and manufacturing applications.
Hendler, J.—Ph.D. (Brown University); artificial intelligence, semantic web, agent based computing, high performance processing.
Magdon-Ismail, M.—Ph.D. (California Institute of Technology); theory, algorithms and applications of machine learning; computational finance; learning from networked data (social networks, hyperlinked networks, etc.).
McGuinness, D.L.—Ph.D (Rutgers University); knowledge representation and reasoning, explanation, proof, trust, ontologies, semantic web, semantic eScience, linked data.
Spooner, D.—Ph.D. (Pennsylvania State University); database systems, database security, computer science and information technology education.
Stewart, C.—Ph.D. (University of Wisconsin); computer vision with applications in ecology, medicine, and zoology.
Szymanski, B.K.—Ph.D. (National Academy of Sciences, Warsaw, Poland); network science, computer and sensor networks; distributed and parallel computing.
Trinkle, J.C.—Ph.D. (University of Pennsylvania); robotics, manufacturing automation, game physics engines, multibody dynamics.
Yener, B.—Ph.D. (Columbia University); complex networks, bioinformatics, medical informatics, security and privacy, computer networks, combinatorial optimization.
Zaki, M.—Ph.D. (University of Rochester); data mining and knowledge discovery; bioinformatics; graph mining; high performance computing.
Anshelevich, E.—Ph.D. (Cornell University); theory and algorithms, especially for large decentralized networks; strategic agents in networks and algorithmic game theory; approximation algorithms.
Cutler, B.—Ph.D. (Massachusetts Institute of Technology); computer graphics, geometry processing algorithms; design tools for architecture.
Ji, H.—Ph.D. (New York University); natural language processing; cross-source information extraction and knowledge base population.
Krishnamoorthy, M.S.—Ph.D. (Indian Institute of Technology); programming environments; design and analysis of combinatorial algorithms; performance issues in Internet; analysis of Web documents; network visualization.
Milanova, A.—Ph.D. (Rutgers University) software engineering, programming languages, compilers, program analysis, software testing, verification, reliable software systems.
Varela, C.A.—Ph.D. (University of Illinois at Urbana-Champaign); concurrent programming models and languages, adaptive scalable distributed computing, computational science applications, data science.
Research Associate Professors
Luciano, J.—Ph.D. (Boston University); knowledge representation, semantic web, semantic e-science, translational medicine, collaborative science, ontology evaluation, semantic and computational applications to health care and life science, bio-ontologies, computational medicine, computational biology, and systems biology.
Newberg, L.—Ph.D. (University of California, Berkeley); algorithmic, statistical, and mathematical combinatorics approaches to computational molecular biology; currently using cross-species DNA multiple alignments for phylogeny and the detection of conserved regions.
Patterson, S.—Ph.D. (University of California, Santa Barbara); distributed algorithms, in particular for coordination, estimation, and optimization; cooperative control and dynamical systems; computer, sensor, and vehicle networks.
Xia, L.—Ph.D. (Duke University); economics and computation; artificial intelligence; multiagent systems; machine learning; game theory; mechanism design; social choice; algorithm design.
Zikas, V.—Ph.D. (ETH Zurich); cryptography, computer security, game theory, distributed computing.
Goldschmidt, D.E.—Ph.D. (Rensselaer Polytechnic Institute); operating systems; systems programming; algorithms; network programming; software engineering; database systems; computer science education.
Liu, Y.—Ph.D. (SUNY Buffalo); software engineering; image processing; educational online testing.
Flaherty, J.E.—Ph.D. (Polytechnic University of Brooklyn); scientific computation; adaptive and parallel solution techniques; numerical analysis.
Glinert, E.—Ph.D. (University of Washington); assistive technology; universal access; human-computer interaction; multimedia information visualization.
Goldberg, M.K.—Ph.D (Institute of Mathematics, Novosibirsk, Russia); experimental analysis of optimization algorithms; combinatorics and graph theory; applications to social networks.
Musser, D.—Ph.D. (University of Wisconsin); programming methodology; generic software libraries; formal methods of specification and verification; mechanized logic and proof methodology, applied to correctness and optimization of abstract algorithms.
Rogers, E.H.—Ph.D. (Carnegie Mellon University); collaborative computing; group operating systems; modeling paradigm; software engineering.
Joint Appointments with Earth and Environmental Sciences—Professor
Fox, P.—Ph.D. (Monash University, AU); semantic web, semantic e-science, data intensive science, virtual observatories, virtual organizations, data grids, high performance computing, visualization, collaborative science, sensor web, environmental informatics, solar-terrestrial physics, solar variability.
Joint Appointments with Mathematical Sciences—Professors
Bennett, K.—Ph.D. (University of Wisconsin-Madison); mathematical programming, optimization, machine learning, data mining, support vector machines, and application of data mining to bioinformatics, cheminformatics, finance, science and engineering.
Isaacson, D.—Ph.D. (New York University); mathematical computational problems arising in the diagnosis and treatment of heart disease and breast cancer in medical imaging and physics.
McLaughlin, H.W., II—Ph.D. (University of Maryland); applied geometry; computational geometry; complex systems.
Joint Appointments with Electrical, Computer, and Systems Engineering—Professors
Franklin, W.R.—Ph.D. (Harvard University); computational cartography; computational geometry; computer graphics; geographic information science; computer security.
Gerhardt, L.A.—Ph.D. (State University of New York at Buffalo); digital signal processing (voice and image processing); communication systems; brain computer interfacing; integrated inspection; personnel verification and identification using biometrics.
Wozny, M.J.—Ph.D. (University of Arizona); computer graphics; computer-aided geometric design; information systems in engineering design and manufacturing.
Joint Appointment with Mechanical, Aerospace, and Nuclear Engineering—Professor
Shephard, M.—(Cornell University); scientific computation, mesh generation, adaptive and parallel finite element methods.
Joint Appointment with Cognitive Science—Professors
Bringsjord, S.—Ph.D. (Brown University); artificial intelligence, specifically including: logical, mathematical, and philosophical foundations of AI; AI and creativity; reasoning-based systems for homeland defense/intelligence analysis; automated reasoning; automatic story generation and narrative control; intelligent tutoring systems (for teaching logic and logic-based programming).
Gray, W.—Ph.D. (University of California – Berkeley); integrated cognitive systems, computational cognitive modeling, cognitive social science, cognitive engineering; interested in basic and applied research that leads to understanding the interplay of natural interaction in routine human-human, human-machine, and human-information interactive behavior.
Nirenburg, S.—Ph.D. (The Hebrew University of Jerusalem, Israel); computational models of human cognitive abilities, computational theory of the mind, modeling societies of intelligent agents, intelligent agent systems and environments, integration of physiological and cognitive modeling, intelligent agents for clinical medicine, intelligent advisers and instructors, computational linguistics: ontological semantics, pragmatics, discourse, dialog, acquisition, representation and maintenance of knowledge about the world and about language, computational descriptive linguistics, linguistic engineering for lesser-studied languages.
Sun, R.—Ph.D. (Brandeis University); computational cognitive modeling, cognitive architectures, skill learning, computational studies of consciousness, multi-agent interaction, connectionist and hybrid models.
Joint Appointment with Science and Technology Studies – Professor
Eglash, R.—Ph.D. (University of California, Santa Cruz); HCI; Simulation of cultural designs; fractals and complexity; IT for STEM education.
Joint Appointment with Biology—Associate Professor
Bystroff, C.—Ph.D. (University of California, San Diego); bioinformatics, protein design, biosensors, crystallography.
* Departmental faculty listings are accurate as of the date generated for inclusion in this catalog. For the most up-to-date listing of faculty positions, including end-of-year promotions, please refer to the Faculty Roster section of this catalog, which is current as of the May 2016 Board of Trustees meeting.