![]() |
| Computer Science
Chair (vacant) Computer science is the study of the design, analysis, communication, implementation, and application of computational processes. The core subjects of the discipline include software systems, such as operating systems and networks; programming languages, including compiler design and other language translation tools; computer hardware systems; the design and analysis of data structures and algorithms; and the theoretical basis of computation, including formal language theory, automata theory, and computability theory. In addition to these core subjects, students can study various application areas, including artificial intelligence, computer graphics, databases, scientific and symbolic computation, computer vision, and user-interface design. A Rensselaer education in computer science prepares students for solving applied, real-world problems and for doing research in computer science. The program at all levels provides the students with a solid grounding in both theory and practice. The undergraduate program provides a rigorous background in mathematics and science. The department offers a B.S., M.S., and Ph.D. in Computer Science. The Computer and Information Science Department of Rensselaer at Hartford offers an M.S. in Computer Science. Computer Facilities The Computer Science Department has its own well-equipped computer laboratories for instruction and research. There are 36 Sun Ultra 10 workstations running Solaris 8 in the public labs in Amos Eaton 117 and 217. There are 41 IBM X220 servers in the Networking and Distributed Simulation lab, along with 13 Cisco routers and a Myrinet Cluster for experimenting with different network layouts. These routers support a number of network technologies such as FDDI, HSSI, and Ethernet. There are a number of specialized research computers including a Silicon Graphics Origin 2000 with 12 CPUs and seven SGI O2s for visualization and graphics. The department also has a robotics lab, a distributed/parallel computing laboratory, a computer networking lab, and a multimedia database lab. There are more than 50 other Unix workstations and PCs in student offices. All of these are supported by a network of file servers with .75 terabytes of storage, print servers, mail servers, and Web servers. Every office has a 100Mb dedicated connection to the gigabit ethernet backbone. Students also have access to RCS, the Rensselaer Computer System, a campus wide network of computers running UNIX, Windows NT, and MacOS. Areas of Advanced Research and Study All computer science faculty members are engaged in research in one or more aspects of computer science. The influence of this research is found in many courses, both undergraduate and graduate. Here are some of the major areas of research in the department. Scientific Computation and Numerical Analysis Specializations include adaptive and parallel computational techniques for solving problems that arise in large scale scientific and engineering applications. Faculty are also involved in the design and implementation of computer languages and compilers for scientific parallel computations, in particular techniques and methods for compile- and run-time optimization. One of the most interesting projects involves modeling and simulation of biological and ecological systems. Discrete Event Simulation This work encompasses basic simulation techniques, such as parallel simulation protocols, Time Warp performance improvements, and run-time load balance of distributed simulations. The applications include network monitoring and management, wireless networking, and biological and ecological simulations. The systems developed by faculty and publicly available include TEMPEST, for spatially explicit spread of disease modeling, and GALE for simulating genetic and evolutionary effects in epidemics. Computer Vision Computer vision and biomedical image analysis research in the Department of Computer Science covers a wide range of topics. Developing algorithms for registration and change detection, especially in the diagnosis and treatment of diseases of the human retina, is the largest current project; a related project studies the theory and application of robust estimation techniques in computer vision. A second research area focuses on the tracking of objects, both through video streams and range-image streams. Applications include surveillance, autonomous vehicle navigation, and audio-visual speech recognition. A third track involves the development of stochastic models for the interpretation of video data, for example traffic video. Human Computer Interaction Research projects include: multimedia interfaces (e.g., metawidgets for smart multimodal systems, sonic enhancement of 2-D graphic displays, gestural and bimodal input, spoken and hummed input); highly interactive computing environments (e.g., visual programming, multi-interface systems, scientific visualization, and data mining); and computer-based assistive technology for persons with disabilities (e.g., tools for users with low vision or who are blind, alternate modality software). Database Management for Concurrent Engineering Research in this area concentrates on sharing and integrating data that is stored and accessed by heterogeneous information systems. One of the focus areas is engineering database systems and information infrastructure. This research focuses on meeting the requirements for managing and sharing technical data for such applications as computer-aided design, manufacturing, and concurrent engineering, in both local area and wide area computing environments. This research exploits object-oriented technology and common architectures, the Internet and the World Wide Web, engineering data exchange standards, computer graphics, and other related technologies, to accomplish these goals. Another focus area is development of a common platform for providing intelligent access to multiple information sources with the help of an advanced multimedia query engine. The system is being developed using C and Java with a Web interface, and it integrates database technology with powerful data analysis tools and multimedia presentation techniques. Theory of Computation Projects involve the design and analysis of efficient algorithms for problems in combinatorial optimization, using an experimental approach. Specific research projects include the development and experimental evaluation of general learning and adaptive paradigms that output algorithms efficient on specified classes of inputs. Two large software systems for performing operations on sets and graphs, GraphPack and SetPlayer, were developed by the members of the theory group with participation of many graduate and undergraduate students. Currently, the group is involved in the development of LINK, a comprehensive combinatorics and graph theory workbench for application and research. The project is a collaborative effort of researchers from six campuses. Distributed System Architecture Increasingly, information systems are based upon distributed computers. Understanding a complex arrangement of computers involves computer, communications, and database technology. The challenge of distributed systems architecture is to develop a useful understanding that combines (integrates) these three areas and focuses on meeting overall system requirements. Programming Methodology The main objectives of the research projects in this area are methods and tools that allow the programmer to attain a high degree of confidence that his or her programs are correct, efficient, and general. A major research focus is on an approach called generic programming, whose techniques permit the definition of efficient algorithms and data structures at an abstract level, in effect accomplishing many related programming tasks simultaneously. Other research concentrates on the correctness issue, primarily through the approach of mathematical specifications and proofs. In support of these activities, there is also research on computer tools for automated proof of rigorously-formulated properties of software systems. Collaborative Computing Design of large systems is inherently a collaborative activity, generally calling upon the expertise of multiple disciplines from both customer and designer perspectives. Collaborative design work at Rensselaer has three foci: (a) communication across disciplines to build mutual understanding and trust, (b) facilitation of collaboration through hardware, software, and netware technologies, and (c) education for effective collaborative design. These concerns have been realized in Rensselaers Design Conference Room where design teams can test the use of a group operating system as they work in a dual electronic/oral communication environment. Researchers can monitor, track, and assess team practices using special facilities there. This team is also working on a Collaborative Classroom that will have space for up to 42 students to work in teams of any configuration. High Performance Data Mining and Computational Learning Systems This research area deals with 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 bioinformatics, web mining, geographic information systems, and computational finance. Robotics Research in our robotics labs is aimed at developing algorithms and automatic planners for robotic manipulation and mobile robotics. Current work includes motion planning for industrial assembly and parts feeding tasks as well as algorithms for multiple robot coordination and control. Computational Geometry 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 allow a curve to be reconstructed from its samples, so that the reconstruction is homeomorphic to the original and sufficiently close to it; the development of algorithms to achieve the reconstruction; 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. Faculty Professors Flaherty, J.E. Ph.D. (Polytechnic Institute of Brooklyn); numerical analysis, scientific computation, parallel computation, and adaptive methods. Research Professor Lawrence, C. Ph.D. (Cornell University); bioinformatics, transcription regulation, Bayesian statistics and Markov Chain Monte Carlo algorithms. Associate Professor Krishnamoorthy, M.S. Ph.D. (Indian Institute of Technology); programming languages, analysis of algorithms. Assistant Professors Adali, S. Ph.D. (University of Maryland); heterogeneous, distributed information systems, database systems. Lecturer Hollinger, D. L. M.S. (Rensselaer Polytechnic Institute); machine learning, AI applications for the WWW, genetic algorithms, Web programming. Clinical Professor Danchak, M. M. Ph.D. (Rensselaer Polytechnic Institute): human-computer interaction, usability, information visualization; techniques for distance learning and human learning models. Professor Emeritus McNaughton, R. Ph.D. (Harvard University); automata theory, formal languages, combinatorics of words. Adjunct Faculty Ingalls, R. Ph.D. (University of Connecticut); systems programming, network programming. Joint Appointments with Mathematical Sciences Professors Isaacson, D. Ph.D. (New York University); applied mathematics, numerical analysis. Joint Appointments with Electrical, Computer, and Systems Engineering Professor Gerhardt, L.A. Ph.D. (State University of New York, Buffalo); digital signal processing, communications, voice and image processing, pattern recognition, adaptive systems, computer integrated manufacturing, and course development. Associate Professor Franklin, W.R. Ph.D. (Harvard University); computational geometry, graphics and CAD algorithms and data structures, parallel algorithms, cartography, expert system verification and validation. Assistant Professor Kalyanaraman, S. Ph.D. (Ohio State University) ATM and Internet traffic management, multimedia networking, IP telephony, performance analysis, Internet pricing. Joint Appointments with Mechanical Engineering, Aeronautical Engineering and Mechanics Professor Shephard, M. (Cornell University) scientific computation; mesh generation; adaptive and parallel finite element methods. Assistant Professor Jansen, K.E. Ph.D. (Stanford University); large scale scientific computing with emphasis on fluid dynamics. Topics include turbulence modeling, finite element formulations, error estimation, design of software frameworks, and parallel computing. Undergraduate Curricula The undergraduate degree program in computer science provides an excellent background both for those students who intend to enter the work force directly upon graduation and for those who intend to go to graduate school. Students who major in computer science will study such subjects as artificial intelligence, computer graphics, theory of computation, operating systems, robotics, data mining, databases, systems programming, parallel computing, and scientific and numerical computing. The objectives of the undergraduate program include:
A hallmark of the Rensselaer computer science program is its flexibility. Students have opportunities and are encouraged to take courses in many related areas, such as mathematics, electrical engineering, computer engineering, management, and psychology. All computer science students are assigned a faculty adviser to assist them throughout the their academic career in planning an academic program that will advance the students interests and career goals. Computer Science Curriculum This curriculum leads to a B.S. in Computer Science. A typical four-year program is as follows:
Total Credit Hours: 124 Science Option Two science courses of four credits each, chosen one each from two of the following disciplines: astronomy, biology, chemistry, earth and environmental science, and physics. The Pass/No Credit option cannot be used for these courses. Computer Science Option Eleven additional credit-hours of computing courses at the 4000 or 6000 level. For this purpose, courses in the series CSCI-4xxx, CSCI-6xxx, ECSE-46xx, ECSE-47xx, ECSE-66xx, and ECSE-67xx may be used, excluding reading courses. The Pass/No Credit option may not be used in courses taken as part of the computer science option. Mathematics Option One additional mathematics course at the 2000 level or above. The Pass/No Credit option cannot be used for a course used to satisfy the Mathematics Option. Co-op There are numerous opportunities for computer science majors in the Cooperative Education Program, and students are encouraged to go on at least one co-op experience in their academic career. A co-op experience allows students to apply what they have learned in the classroom to a real-world situation and gives them valuable work experience. Undergraduate Research Undergraduates are encouraged to get involved in the research of the faculty through the Undergraduate Research Program. Students can participate either for pay or for course credit. Some students have even been co-authors on journal papers or presentations at professional conferences. Dual Majors Computer science students can get a dual major with any other major on the Rensselaer campus. In many cases students can get a dual major within the 124 credits of a single degree since many courses can be counted twice. Among the popular dual majors with computer science are philosophy, mathematics, physics, management, electronic media arts and communication, and engineering (the latter requires additional credits beyond 124). However, students can design their own dual majors as well with the approval of both departments. Computer Science B.S.-M.S. Degrees Combination A qualified student may earn a B.S. degree and an M.S. Degree in the same or different areas in a shorter-than-usual time. This may be done by using Advanced Placement credit, by taking additional courses during the fall and spring semesters, and/or by taking courses during summers. For example, a student with advanced placement credit for Calculus I and II may earn the B.S. And M.S. degrees in four years by taking one additional course in each of the regular fall and spring semesters. Of course, a joint degree program requires that the student apply to and be accepted by the Graduate School at an appropriate stage. A wide variety of joint degree programs can be arranged, depending on the students background, interests, and desired rate of progress. Minor Program in Computer Science A computer science minor requires CSCI-1200 Computer Science II and CSCI-2300 Data Structures and Algorithms plus three additional fourcredit courses at the 2000 level or above, at least two of which must have a CSCI prefix, and at least two of which must be at the 4000 or 6000 level. One course may be chosen from the ECSE-x6xx or ECSE-x7xx family. Graduate Programs The Department of Computer Science offers an M.S. and a Ph.D. in Computer Science. Both degrees prepare students for entry into the professional world by providing a solid foundation in the basics of computer science combined with advanced study and access to modern computing facilities. The M.S. degree in Computer Science culminates in a masters thesis. The doctoral program requires that, after having acquired a broad knowledge of the field of computer science, a student carry out a significant original investigation in a selected area of the discipline. Admission Applications should be sent to the Graduate Admissions Office to be received no later than February 1 for fall admission. Applicants must provide transcripts, three letters of recommendation, a statement of goals, and GRE scores. Each students background is expected to include courses in discrete mathematics, calculus, data structures, computer organization, and computing languages, and these courses may not be counted toward a graduate degree. Admission is extremely competitive, and meeting the minimum requirements does not assure admission. Graduate Degree Requirements Master of Science in Computer Science In addition to meeting the degree requirements of the Graduate School, a candidate must plan a degree program and complete the Plan of Study form with the consultation of a faculty adviser. A degree program must include at least 30 credits, at least 18 of which must be at the 6000 level. It must include two required courses, CSCI-6050 Computability and Complexity (can be replaced by CSCI-6480 Theory of Compiler Design) and CSCI-4210 Operating Systems (can be replaced by CSCI-6140 Computer Operating Systems). It must also include at least one additional course in each of four areas, software systems, hardware systems, theory of computation, and computer applications. Finally, it must include a Masters Thesis and regular attendance at department colloquia. Doctor of Philosophy Each student working for a doctorate must demonstrate skill in using computational tools and high achievement in scholarship and independent research. During the first year, the student focuses on obtaining a breadth of knowledge in computer science. At the end of the first year, the student must pass a written doctoral qualifying examination. This examination covers the material of five courses: CSCI-6050 Computability, and Complexity; CSCI-4020 Computer Algorithms; CSCI-6140 Computer Operating Systems; CSCI-4250 Computer Architectures; and CSCI-4430 Programming Languages. After passing this examination, the students primary focus is research in computer science. By the end of the second year, the student is expected to have found a research adviser and to be a part of a research team. At the end of the third year, the student must pass an oral candidacy examination. This examination evaluates the students knowledge in his or her research area and determines that the students proposed research topic is suitable. The next one to two years are devoted to completion of the proposed research and writing the dissertation. The final requirement is an oral defense of the thesis. In addition to the above requirements, the student must earn a total of 90 credits beyond the bachelors level. Between 45 and 60 credits must be course credits, the remaining credits are for dissertation research. All students must have courses in three of the following four areas on their undergraduate or graduate transcript: database systems, artificial intelligence, numerical computing, and computer graphics/user interfaces. In addition, all doctoral students must have had at least three courses in mathematics at the junior/senior level, and they must demonstrate programming ability on a substantial programming project. The area requirements, the mathematics requirement, and the programming requirement can be satisfied by course work completed prior to entering the Ph.D. program. Finally, all doctoral students are expected to have presented at least two public lectures on their research prior to their thesis defense. Computational Science and Engineering The Computer Science Department also offers Master of Science and Doctor of Philosophy degrees in Computer Science with a specialization in Computational Science and Engineering. Computational Science and Engineering has the goal of providing students with knowledge of an engineering or scientific discipline, computer science, and numerical analysis. Programs are interdisciplinary with students conducting their research and classroom activities in collaboration with computer scientists and engineers or scientists in a chosen discipline. Admission Applicants apply to the program in the usual manner. Student backgrounds are expected to include courses in calculus, elementary linear algebra, elementary differential equations, discrete mathematics, data structures, and numerical computing. Courses in Computer Organization and Computing Languages are recommended. Students lacking some of this material may be admitted but will be expected to acquire this knowledge during their studies. This may require taking courses beyond the normal degree requirements. Master of Science Students must complete a plan of study that includes 30 credits at the 4000 and 6000 levels with (i) at least 6 credits in numerical analysis and/or scientific computation, (ii) at least 8 credits in an area of natural science or engineering, (iii) at least one course in each of software and hardware systems, and (iv) a significant (3-4 credit) software project. At least 18 credits must be at the 6000 level and students should attend the Computer Science Colloquium and the Scientific Computation seminars. Doctor of Philosophy Students must complete 90 credits of course work and research beyond the B.S. Degree, with at least 45 credits in formal course work. They must take (i) at least 12 credits in an area of natural science or engineering, (ii) at least 9 credits in numerical analysis and/or scientific computation, and (iii) at least one course in software systems, hardware systems, and visualization. They must further demonstrate mathematical sophistication by having taken at least 8 credits of 4000 or 6000 level mathematics courses (exclusive of numerical analysis) and programming ability by having done a substantial software project. After one year of study, students must pass a written qualifying examination in (i) numerical computing (material equivalent to Course CSCI-4800 Numerical Computing), (ii) software and hardware systems (material equivalent to courses CSCI-4020 Computer Algorithms, CSCI-4250 Computer Architectures, and CSCI-4430 Programming Languages), (iii) and a scientific or engineering field of specialization. After passing this examination, students begin dissertation research with a chosen adviser. After their third year of graduate study, students are expected to pass an oral candidacy examination that focuses on their research. Subsequent to passing this examination, students must present at least two public lectures on their research and write and defend a dissertation. Doctoral course requirements are inclusive of those for the M.S. Degree. Likewise, the mathematical and programming proficiency requirements can be satisfied by work done outside of the Ph.D. degree program. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Rensselaer Polytechnic Institute (RPI), 110 8th St., Troy, NY 12180. (518) 276-6000 Page designed by Marketing and Media Relations. |