Department of Computer Science

Faculty

Distinguished Professor Emeritus
Richard E. Stearns, Ph.D.
Princeton University

Distinguished Teaching Professor Emeritus
Sekharipuram S. Ravi, Ph.D.
University of Pittsburgh

Professors Emeriti
Dean N. Arden, Ph.D.
Purdue University
Neil V. Murray, Ph.D.
Syracuse University        
Daniel J. Rosenkrantz, Ph.D.
Columbia University
Dan E. Willard, Ph.D.
Harvard University

Professors
Won Namgoong Ph.D. (Chair)
Stanford University
Paliath Narendran, Ph.D.
Rensselaer Polytechnic Institute       

Associate Professors Emeriti
Seth D. Chaiken, Ph.D.
Massachusetts Institute of Technology
Lenore M. Restifo Mullin, Ph.D.
Syracuse University

Associate Professors
Pradeep Atrey, Ph.D.
National University of Singapore
Peter A. Bloniarz, Ph.D. (Collins Fellow)
Massachusetts Institute of Technology
Petko Bogdanov, Ph.D.
University of California at Santa Barbara       
Mei-Hwa Chen, Ph.D.
Purdue University
Jeong-Hyon Hwang, Ph.D.
Brown University

Assistant Professors
Ming-Ching Chang, Ph.D.
Brown University
Charalampos Chelmis, Ph.D.
University of Southern California
Chinwe Ekenna, Ph.D.
Texas A&M University
Abram Magner, Ph.D.
Purdue University
Amirreza Masoumzadeh, Ph.D.
University of Pittsburgh
Shaghayegh Sahebi, Ph.D.
University of Pittsburgh
Mariya Zheleva, Ph.D.
University of California at Santa Barbara

Professors of Practice
Amiya Bhattacharya, Ph.D.
University of Texas at Arlington
Andrew Hurd, Ph.D.
University at Albany
Vladimir Kuperman, Doctor of Science
Ministry of Education of Russian Federation
Jackson Marques de Carvalho, Ph.D.
Western University

Lecturers
Michael Phipps, MS
University at Albany
Qi Wang, MS
California State University, at Northridge

Affiliated Faculty
George Berg, Ph.D.
Northwestern University

Teaching Assistants (estimated): 15


Courses offered by the Department of Computer Science provide an introduction to the theory and practice of computing. The ability to use computer programming languages, data structures, multiple levels of system organizations, and principles of computer science is developed in major courses by the completion of programming assignments, problem solving exercises, and projects. Non-major students may elect courses covering aspects of information and the modern digital computer broadly, or on particular areas of computer science, or complete a Computer Science minor for a flexible combination of depth and breadth. For majors there is a Bachelor of Arts major program, and two Bachelor of Science combined major and minor programs, one in Computer Science and the other, interdisciplinary, in Computer Science and Applied Mathematics.

Course Progression Restrictions

A grade of C or better (or S) in courses such as (and others) I CSI/I ECE/I CEN 201, I CSI/I ECE/I CEN 210, I CSI/I ECE/I CEN 213, and I CSI 311 or their transfer equivalents is a prerequisite for certain succeeding courses required in one or more of the programs below. See the course descriptions for details. In unusual situations, such prerequisites might be waived by the department on recommendation of the succeeding course instructor. Students who do not achieve B or better grades in I CSI/I ECE/ I CEN 201, I CSI/I ECE 213, and I CSI 333 are strongly advised to consider other majors besides Computer Science because such students often fail upper level Computer Science courses required for graduation.

  • Students must complete I CSI/I ECE/I CEN 201 or I CEN 200 or I ECE 141 with a C or better to register for I CSI/I ECE 213
  • Students must complete I CSI/I CEN 210 and I CSI/I ECE/I CEN 213 with a C or better to register for I CSI 311
  • Students must complete I CSI/I ECE/I CEN 213 with a C or better to register for I CSI 333
  • Students must complete A MAT 220 and I CSI/I ECE/I CEN 213 with a C or better to register for ICSI 401
  • Students must complete I CSI/I CEN 210 and I CSI/I ECE/I CEN 213 with a C or better to register for I CSI 403
  • Students must complete I CSI 333 with a C or better to register for I CSI 404
  • Students must complete I CSI 311 with a C or better to register for I CSI 407
  • Students must complete I CSI 311 with a C or better to register for I CSI 409
  • Students must complete I CSI/I ECE 210 and I CSI/I ECE/I CEN 213 with a C or better to register for I CSI 410
  • Students must complete I CSI 333 and I CSI 409 with a C or better to register for I CSI 417
  • Students must complete I CSI 311 with a C or better to register for I CSI 418
  • Students must complete I CSI/I ECE 210 with a C or better to register for I CSI 421
  • Students must complete A MAT 220 and I CSI 333 or I ECE 233 with a grade of C or better to register for I CSI 422.
  • Students must complete I CSI 210 and I CSI 333 or I ECE 233 (formerly I CEN 333) with a C or better to register for I CSI 426
  • Students must complete I CSI 311 with a C or better to register for I CSI 433
  • Students must complete A MAT 220 or I CSI 311 with a C or better to register for I CSI 435
  • Students must complete A MAT 214, A MAT 220, A MAT 367 or A MAT 370, and I CSI 401 with a C or better to register for I CSI 436
  • Students must complete I CSI 311 with a C or better to register for I CSI 445
  • Students must complete I CSI/I ECE/I CEN 213 with a C or better to register for I CSI 490
  • Students must complete I CSI/I ECE/I CEN 213 with a C or better to register for I CSI 497

Degree Requirements for the Majors in Computer Science

Bachelor of Arts in Computer Science (CSI)

The Bachelor of Arts program can provide a liberal arts education with some specific studies in computer science or it can combine computer science with its applications into areas such as informatics, information science, business, scientific research or creative arts depending on the student's choice of minor, or of a second major. Some course choices are provided in advanced requirements so the student can choose between an emphasis on lower level systems or abstract programming principles, or an emphasis on design and implementation of familiar kinds or computing applications.

General Program B.A.: a minimum of 43 credits as below plus the completion of an approved minor whose courses do not overlap with any of the courses used to complete this major. (See your advisor to find an addition or substitution in case your minor requires a course from those below.)

  • Computer Science Core (19 credits): I CSI 201, I CSI/I ECE 210, I CSI/I ECE 213, I CSI 333, and I CSI 404
  • Programming Language Principles (4 credits): I CSI 311
  • Intensive System Software Development (3 credits): I CSI 499
  • Mathematics (11 credits): A MAT 111 or 112 or 118; 113 or 119; and 367
  • Electives (6 credits): two I CSI courses numbered 400-470 or 500-550 or specially approved by the department

Bachelor of Science in Computer Science (CSIC)

The combined major and minor program in computer science integrates computer science with diverse sciences consisting of university physics, laboratory science, plus a flexible choice of two science courses at the undergraduate major level. Social aspects of computing, a mix of mathematics, theory and practice, and advanced electives complete the program.

The program provides excellent career-long preparation for new, unexpected trends in computing, information, their technologies, and related developments and applications in science. It also prepares the graduate for admission to high quality graduate programs in computer science at the Masters or Ph.D. level, and for the advanced Graduate Records Examination in computer science. Strong students in this program are encouraged to apply for the B.S./M.S. program in Computer Science.

General Program B.S. (combined major and minor sequence for students matriculated prior to Fall 2020) a minimum of 73 credits as follows:

  • Computer Science Core (25 credits): I CSI 201, I CSI/I ECE 210, I CSI/I ECE 213, I CSI 333, I CSI 403, I CSI 404, and I CSI 409
  • Programming Language Principles (4 credits): I CSI 311
  • Intensive System Software Development (3 credits): I CSI 499
  • Mathematics (17 credits): A MAT 111 or 112 or 118; 113 or 119; 220; 367; A MAT 214 or 3 credits from any A MAT courses numbered 300 or above
  • Physics and Laboratory Science (8 credits): A PHY 140 or 142; 145; 150 or 152; and 155. Students who took Physics I or II without a laboratory can substitute 1 credit of other laboratory work for each of the A PHY 145 and A PHY 155 requirements
  • Science Sequence (6 credits): one pair of related major biological, physical, or engineering science courses (not in mathematics or computer science) as approved by the department. Approved pairs include A BIO 120 and 121, A PHY 240 and 250, two courses from A PHY/I CEN 353, A PHY 415 and 454, A CHM 120 and 121 or A CHM 115 and 116, or others as advised
  • Social Aspects of Computing (3 credits): I CSI 300Z
  • Computer Science Electives (9 credits): 6-9 credits must be from I CSI courses numbered 300-470 or 500-550 or specially approved. 3 credits may be in A PHY/I CEN 353 or A PHY 454 in digital hardware, or A PHI 432 in advanced logic

 

General Program B.S. (combined major and minor sequence for students matriculated Fall 2020 and after) a minimum of 81 credits as follows:

  • Computer Science Core (37 credits): I CSI 201, I CSI/ECE 210, I CSI/I ECE 213, I CSI 333, I CSI 403, I CSI 404, I CSI 409, I CSI 410, I CSI 412, I CSI 416, I CSI 418
  • Social Aspects of Computing (3 credits): I CSI 300Z
  • Programming Language Principles (4 credits): I CSI 311
  • Intensive System Software Development (3 credits): I CSI 499
  • Computer Science Electives (12 credits): 9 credits from I CSI courses numbered 400 - 470 or 500 - 550 or specially approved. 3 credits can be from any Computer Science electives (Students are strongly encouraged to complete I CSI 424 or I CSI 426 as part of these electives)
  • Mathematics (14 credits): A MAT 111 or 112 or 118, 113 or 119, 220, 367
  • Laboratory Science Requirements (8 credits): A PHY 140 or 142, 145, 150 or 152, and 155; or A CHM 120/121 or T CHM 130/131, and A CHM 124/125; or A CHM 115/116

Bachelor of Science in Computer Science and Applied Mathematics (CSMAT)

The interdisciplinary combined major and minor program in computer science and applied mathematics is a program providing a strong background in the theory and practice of computer science combined with those courses in mathematics which are most likely to be needed for advanced work in computer science, either in graduate study or industrial research and development. It is a good choice for students with particular interests in mathematics as well as computer science.

This program offers two concentrations: the General Concentration (CSMAT) and Data Analytics (CSMAT-DA)

These programs provide excellent preparation for the advanced Graduate Record Examination in computer science and will provide an attractive background for admission to high quality graduate programs in computer science. The mathematics portion of the program, with the appropriate selection of one or two electives, can provide a good mathematical background for work in operations research which is an important area of computer application in business, or for numerical computation in a variety of areas related to the scientific and engineering use of computers. The Data Analytics concentration provides a good background for work in data mining and data analysis, using data to inform business decisions.

General Program B.S. (Combined major and minor sequence) a minimum of 67 credits as follows:

  • Computer Science Core (19 credits): I CSI 201, I CSI/I ECE 210, I CSI/I ECE 213, I CSI 333, I CSI 403
  • Mathematics Core (15 credits) A MAT 111 or 112 or 118, A MAT 113 or 119, A MAT 214,  A MAT 220
  • One Concentration (33 - 34 credits minimum)

General Concentration

  • Programming Language Principles (4 credits): I CSI 311
  • Intensive System Software Development (3 credits): I CSI 499
  • Mathematics and Computational Science (21 credits):  A MAT 367, 9 additional credits in A MAT courses numbered 300 or above, I CSI 401, I CSI 404, I CSI 409
  • Computer Science or Mathematics Electives (6 credits): two I CSI courses numbered 300-470 or 500-550 or specially approved, or A MAT courses numbered 300 or above, or A PHY/I CEN 353 or A PHY 454 in digital hardware, or A PHI 432

Data Analytics Concentration

  • Intensive System Software Development (3 credits): I CSI 499
  • Data Mining (6 credits): I CSI 410, I CSI 431
  • Probability for Statistics (6 credits): A MAT 308 and A MAT 367 or A MAT 362 and A MAT 363
  • Advanced Level Statistics (9 credits): A MAT 464, 465, and I CSI 451
  • Internship (3 credits): I CSI 490 (departmental approval required), or I CSI 432 or I CSI 435 or I CSI 436
  • Electives (6 credits): I CSI courses numbered 300-470 or 500-550, A MAT courses numbered 300 or above or other science courses specifically approved by the Computer Science and the Mathematics Departments

Advanced Placement Substitutions and Specially Approved Electives for all majors:
The Department may grant advanced placement credit substitutions, and/or replacement of up to 3 credits in Computer Science or Mathematics electives by credits in I CSI 487 or I CSI 488 for Honors majors, or I CSI 490, 497, or 499. Such permission will be granted on the basis of AP exam level, scores and departmental evaluations, the depth and breadth of the resulting program, and a superior grade record of the individual student.  

Graduate Course Equivalents
Students admitted into the B.S./M.S. program in Computer Science, and seniors with instructor and departmental approval may substitute the graduate courses, below, for the indicated undergraduate required subjects. Other graduate courses may be taken for electives by such students. However only admitted B.S./M.S. students can apply credits (up to 12) from such graduate courses to an Albany graduate degree. All qualified B.S. majors are encouraged to enter the B.S./M.S. and/or Honors programs in order to maximize their opportunities, even if they do not intend to complete the M.S. degree at Albany. Non-B.S./M.S. students eventually admitted to the graduate programs will have to make up the graduate credits but not retake the courses.

I CSI 501 for 401
I CSI 503 for 403
I CSI 509 for 409
I CSI 518 for 418
I CSI 519 for 311
I CSI 551 for 451
A MAT 560 for A MAT 464
A MAT 565 for A MAT 465

Consult the Mathematics Department for information about the Combined B.S. in Computer Science and Applied Mathematics with an M.A. in Mathematics.

Honors Program

The Computer Science Departmental honors program is an opportunity for qualified students to undertake research or innovative development projects at the undergraduate level, under individualized guidance of computer science faculty, and gain recognition by presenting their accomplishments in a public forum and by a transcript designation. The honors seminars and projects are often conducted within research groups comprised of computer science and interdisciplinary faculty, graduate students, and other undergraduates.

Students are encouraged to enroll in the Combined B.S./M.S. Program together with this honors program. Combined B.S./M.S. students can substitute some graduate courses for their undergraduate requirements. They might then earn an Albany Master of Science degree sooner by including up to 12 credits from those graduate courses. The honors and beginning graduate study together might also provide excellent preparation for admission to a national research internship program or a Computer Science Ph.D. program.

Eligibility: To be eligible for admission to the honors program in Computer Science, a student must have a specific prospective faculty honors supervisor who conveys to the Department a statement of permission and agreement to engage in a specific research specialization area. Prior to admission the student must first have declared one of the Bachelor of Science major programs in Computer Science; must have completed the following courses with a GPA of at least 3.50: I CSI/I CEN 201 (or AP), I CSI/I CEN 210, I CSI/I CEN 213, (or a 5 in the CS-AP AB exam), I CSI/I CEN 333, and preferably A MAT 118 and 119 although A MAT 111 or 112, and 113 are acceptable; and have an overall GPA of at least 3.25. Prospective honors students must identify and consult a prospective supervisor prior to honors admission, and should request admission during the semester when they will complete the above courses so admission may be determined when all the required grades are in and the proposed area is evaluated.

Requirements:  

  • All the requirements for the chosen Bachelor of Science program must be completed with one or more elective courses chosen in consultation with the faculty to develop rigorous mastery in a disciplinary specialization. These courses may be either part of or in addition to the major, a minor, a second major, or graduate requirements. Admitted departmental honors students in the 73 credit Bachelor of Science Combined Major and Minor in Computer Science may use I CSI 487 for one of the three Computer Science electives in that program. Students in the 66 credit Computer Science and Applied Mathematics program must take its two electives in addition to I CSI 487.
  • Three credits of Honors Seminar (I CSI 487): as part of this course, students will do independent study in preparation for research or innovative development projects under the supervision of a faculty member, and to present a colloquium on the topic. See the catalog description.
  • At least three credits of honors or graduate project work (I CSI 488Z and/or I CSI 68x and/or I CSI 699): students will be required to pursue research or innovative development under the supervision of a faculty member and submit a final report describing their original work and its background. The courses necessarily have significant writing components. The student will be required to present a public seminar on project results. See the catalog descriptions.

A GPA of at least 3.50 in the Computer Science courses that go towards the B.S. major must be maintained to continue in the honors program and graduate with an honors major. The faculty supervisor must also certify to the department that the student completed and presented the project results satisfactorily.

Combined B.S./M.A. and B.S./M.S. Programs

Two combined bachelor’s/master’s degree programs are available with the undergraduate major in computer science and applied mathematics. The combined B.S./M.S. program combines the undergraduate program in computer science and applied mathematics with the graduate program in computer science. The combined B.S./M.A. program combines the undergraduate program in computer science and applied mathematics with the graduate program in mathematics.

Both programs provide an opportunity for students of recognized academic ability and educational maturity to fulfill integrated requirements of undergraduate and master’s degree programs from the beginning of the junior year. A carefully designed program can permit a student to earn the B.S. and M.S. or the B.S. and M.A. degrees within nine or ten semesters.

The combined programs require a minimum of 140 credits, of which at least 32 must be graduate credits. In qualifying for the B.S., students must meet all University and college requirements, including the requirements of the undergraduate major described previously, the minimum 60 credit liberal arts and sciences requirement, general education requirements, and residency requirements.

In qualifying for the M.S. or M.A., students must meet all University and college requirements as outlined in the Graduate Bulletin, including completion of a minimum of 32 graduate credits, and any other conditions such as a research seminar, thesis, comprehensive examination, or other professional experience and residency requirements. Up to 12 graduate credits may be applied simultaneously to both the B.S. and M.S. or the B.S. and M.A. programs.

Students may apply for admission to either combined degree program at the beginning of their junior year or after the successful completion of 56 credits. A cumulative grade point average of 3.20 or higher and three supportive letters of recommendation from faculty are required for consideration, but admission of a student who meets the minimum requirements is not automatic.