Related Links

Computer Science

As you ponder all the career fields open to a St. Mike's computer science major (software engineer? artificial intelligence? computer graphics? eCommerce?), 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 electives 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 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. Some important topics in this science are the theory of data structures, algorithms, programming languages, networks, operating systems, compilers, databases, architecture, artificial intelligence, robotics and graphics.

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. After that, it’s largely up to you. Electives let you zero in on:

Artificial Intelligence

Data Communications and Networks

Computer Graphics

Software Engineering

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 Windows XP, space shuttle launch, flight, and landing software systems, micro-controllers for automobile engines, ATM software systems, C++, Internet/WWW, scanning systems in retail outlets and ordering systems for e-commerce.

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.

Areas of Expertise:

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.

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 as IBM, MyWebGrocer and Mylan Technologies. 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 speakers. For example, two of our recent guest lecturers explored "Global Product Management at Yahoo" and "Cyberterrorism, Information Warfare, and Critical Infrastructure Protection."

Students also regularly travel to regional programming contests, including the regional Consortium for Computing Sciences in Colleges (CCSCNE) and Association for Computing Machinery (ACM) contests in the Northeast. 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 - journalism, mathematics and economics are a few recent examples.