Computer Science

Saint Michael's Computer Science

As you ponder all the career fields open to a St. Mike's computer science major (software engineer? artificial intelligence? web development?), think also about two famous quotes shared by our professors: 

  • "Computer Science is no more about computers than astronomy is about telescopes."-Edsger Dijkstra
  • "Computers are good at following instructions, but not at reading your mind."-Donald Knuth

Our program will help you become proficient developing basic software after three initial required courses, but you’ll also be broadly educated in liberal arts and take focused core courses in the major. Once secure in computer theory and practice, you might work alongside the college’s IT staff pros, present your work at conferences, use our Linux lab or intern at IBM. Small personalized classes, department picnics, contests and guest-lectures help build a tight community of friendly, hard-working students who tackle great special projects together. Our graduates have a strong track record of landing desirable jobs upon graduation.

Computer Science as presented in our courses is primarily concerned with discovering new knowledge, with strong foundations in theory and selected application domains. The field is the basis for software engineering, just as chemistry forms the basis for chemical engineering or physics the basis for electrical engineering.

You’ll benefit from a carefully-planned balance between theory and practice, rooted in early proficiency with basic software development from your first three courses. You will move on to take core courses in Machine Organization, Programming Languages, Theory of Computation, Operating Systems, Computer Architecture, and Software Engineering.  Elective choices include:

  • Artificial Intelligence
  • Data Communications and Networks
  • Database
  • Advanced Algorithm Analysis
  • eCommerce
  • Computer
  • Information Security

Here are some definitions to think about in order to better understand our program’s strong emphasis on software development or software engineering:

Engineering is building useful products for real people – that is, the development of solutions to technical problems within economic, social and technical constraints, under conditions of uncertainty. Examples include bridges, highways, skyscrapers, automobiles, dams, nuclear reactors, power grids, airplanes, space shuttles, lunar bases …and computers.

Software engineering (SE) is the engineering of computer software systems, encompassing the requirements, design, construction, management and evolution of software for use by others in industry, office and home. SE applies the scientific background acquired in the foundations of computer science to the development, operation, and maintenance of reliable, efficient, large-scale systems. . Examples include operating systems, search engines, communications networks, manufacturing control systems, and financial software systems.

Computer Science Learning Outcomes

Sample Four Year Plan for Computer Science Majors*

First Year
Fall Spring
CS 111 Introduction to Computer Science I CS 113 Introduction to Computer Science II
MA 150 Calculus I  MA 160 Calculus II
  First Year Seminar    Liberal Studies course 
Liberal Studies course  Liberal Studies course
Fall Spring
CS 211 Data Structures and the Analysis of Algorithms CS 213 Machine Organization and Assembly Language
MA 207 Discrete Mathematics MA 208 Theory of Computation
Liberal Studies course Elective
Elective Elective
Fall Spring
CS 303 Organization of Programming Languages  CS 313 Computer Architecture
CS 311 Principles of Operating Systems ST 251 Probability and Statistics
Junior Seminar Elective
Elective Elective
Fall Spring
CS 407 Software Engineering  Computer Science elective
Computer Science elective Elective
Elective Elective
Elective Elective

Note that this is just one of many possible course plans.  If you want to complete a minor, do research or an internship, or study abroad your faculty advisor will work with you to develop a plan that fits your interests.

* For students who enroll in the fall of 2018.

Michael Battig, PhD

Professor of Computer Science
View Curriculum Vitae

Contact Professor Battig

Jeanmarie Hall 265
Box 279
View Full Profile

Ph.D. Mississippi State University
M.S. University of North Texas
B.S. Miami University

Areas of Expertise

Software engineering; testing object-oriented software; and computer science/information systems education.

Courses I Teach:

  • Database Management
  • Introduction to Computer Science II
  • Organization of Programming Languages
  • Software Engineering

The class I enjoy teaching most is probably Introduction to Computer Science -- I like working with first-year students and helping them to discover the breadth of the computing field.

Greta Pangborn, PhD

Computer Science and Information Systems Department Chair, Associate Professor of Computer Science
View Curriculum Vitae

Contact Professor Pangborn

Jeanmarie Hall 257
Box 363
View Full Profile

B.S., M.S., Ph.D. Cornell University

Areas of Expertise:

Computational optimization and algorithms. Recent applications I have  looked at include: self-assembling DNA nanostructures, VLSI chip layout, and unit rectangle visibility graphs.

Courses I Teach:

  • Data Structures & Algorithms
  • eCommerce
  • Introduction to Computing
  • Machine Organization
  • Programming Languages for Information Systems

My Saint Michael's:

I am always struck by the number of Saint Michael's students who participate in volunteer activities to make a difference both locally and globally, and I really appreciate the strong sense of community. My classes are small, so I am able to get to know my students well. We are able to have events, such as class dinners, that would not be possible at a larger institution. There also are many independent study and student research opportunities available that might not be possible at a larger institution. In my five first years at Saint Michael's I have been able to work with 10 students on projects beyond the scope of an ordinary class.

My students are smart, hardworking, and friendly. I am always impressed, not just by their performance in my classes (which is very good), but by the wide range of their interests beyond the field of computer science.

I really enjoy all of my classes, but if pressed to pick a favorite I would say Data Structures and Algorithms, which is closely tied to my area of research.

John Trono, MS

Professor of Computer Science
View Curriculum Vitae

Contact Professor Trono

Jeanmarie Hall 267
Box 243
View Full Profile


M.S. Purdue University
B.S. University of Vermont

Areas of Expertise:

Simulation and predictive modeling; minimal perfect hashing functions; computer science education, concurrent programming using semaphores; Sidon set discovery; the MIPS architecture, analysis of algorithms and cryptography

Courses I Teach:

  • Computer Architecture
  • Crypto/Security
  • Data Communications and Networks
  • Intro to Computer Science
  • Operating Systems

My Saint Michael's:

I came to Saint Michael's College when the Computer Science department began back in 1982. I use my computer (which is not just for e-mail and searching the Web!) as a tool to solve problems that involve a significant amount of tedious calculations. Many of these problems require a mathematical model to simulate inside the computer what is happening in the real world. The computer can then be used to evaluate these "virtual worlds", and examine their ability to predict the future. The computer can also be used to help determine how realistic these models are in relation to our own physical world. In my classes, if I see that some topics are very difficult for students to learn, I try to develop some pedagogical tools to aid in their understanding, and if these are successful, I then share them with colleagues at other institutions.

Because my classes have fewer than 15 students in them, I really get to know the students fairly well each semester, and therefore, I can give them more individual help (if they need it) than if I were teaching much larger classes. The atmosphere in the classroom is also less formal, which hopefully encourages the students to feel more relaxed and comfortable asking questions or putting forth their ideas during class.

As a St. Mike's computer science major, you can experience what computers do for people in the "real world" by working part-time during the school year either for the college's Information Technology Department or for local companies such Global Foundries, Dealer Policy, and Vermont Information Processing. You’ll have the chance to participate in independent study and research projects leading to conference presentations, published papers and software packages. The department also sponsors picnics, dinners, programming contests and guest speakers.

Students also regularly travel to regional programming contests and conferences, including the regional Consortium for Computing Sciences in Colleges (CCSCNE) and the Hudson River Undergraduate Mathematics Conference. After your first-year courses, you may want to work in our campus Linux-based lab. It is not uncommon for a CS major to work on special computer-related projects in collaboration with professors outside our department too - statistics, psychology, mathematics data science, and economics are a few recent examples.

Our recent graduates have gone on to careers like:

• Vermont Information Processing
• PC Construction Company
• Dealer Policy
• Bayer
• Travelers
• Galen Healthcare
• Raytheon
• Tallan, Inc.
• Epic Systems
• Global Foundries


Graduate Programs Attended

• Boston University
• Brown University
• Northeastern University
• Rensselaer Polytechnic Institute

Learn What Matters