User Tools

Site Tools


Faculty Page of

Matthew Haas


General Information

Instructor:Matthew HaasPosition:Instructor
Faculty E-mail:haas@corning-cc.eduDepartment:Computer & Information Science
Semester:Spring 2020
Office Phone:(607)962-9218Office:CHM123Lab:CHM123

Jump to my:



Spring 2020

Lab & Office Hours typically mean I am available to answer any questions you may have. I will usually be in my CHM123 Lab/Office.

My availability often exceeds designated times. Please stop by and see if I'm in my office or lab, or contact me.

About Me

I've been teaching at CCC since the Spring of 2002, and I enjoy the opportunity I get to help others learn.

My modus operandi is to promote learning and understanding in the respected subject area. In order for this intent to garner success, communication is essential. Never hesitate to contact me if you have any questions.

In this light, no question is insignificant– lack of communication can be detrimental to one's perspective. If you think your question is a “stupid question”, those are especially the type I like to hear.

One can never ask too many questions in my class. If something doesn't make sense or doesn't seem quite right, let me know! I'll be more than happy to help answer your question.

As Stephen Hawking, one of the world's foremost physicists, has been quoted to say:

“We should all keep asking questions. That is the only way we will ever get to know the answers.”


Cultivating one's ability to think, to contemplate, can yield all kinds of rewarding opportunities. And a big part of what I strive to do in my classes is to cultivate that aptitude in others. It only seems to become more difficult over time- the temptations of immediacy and instant gratification having increasingly won out in the bad habits of many, at the ever-expanding deficiencies in observing, reading, writing, playing. And furthermore, what I like to call the “brute-force mentality”, which thrives on memorization and regurgitation, a carefully-reciped following of some shallow notion that all-too-often seems to occupy far-too-many classrooms, claims so many incoming minds.

Following will be some notable exerpts, class mailing list posts, general treatises, or ramblings of my thoughts on various manners. I provide it here for the possibility of others to gain some insight:


I am a firm believer of being passionate about one's work. It is essential to have that drive and enthusiasm, as well as the interest to generate new questions and push the envelope of knowledge and understanding. Here are some of the things that generate considerable interest for me (also interested? Come and see me, maybe we can work on a project):

Computer Science Education

When asked “What is Computer Science?”, I often have a difficult time explaining it in a single sentence. Computer Science, in a way, is the study of the universe around us, and specifically how it works. In Computer Science we strive to better understand the world so that it can be better understood and methods improved upon. Computer Programming is the common method by which Computer Scientists artistically craft their solutions.

Computer Science is also a methodology of thought- to study the world around us, we must be able to step back and take a critical look at it.. being able to have different perspectives are vital. Being able to employ critical reasoning, pattern recognition, and structured problem solving techniques allow some facet or problem that exists to be better understood, simulated, and solved. I am not interested in throwing information at you and having it spit back. My desire is to find innovative ways of getting you hooked on Computer Science and using it to further your intellectual journeys (whether as a student of Computer Science or another discipline).

It helps me to be successful in “passively taking over the world, 0 or more times”, each and every day.

C Programming

As I said, programming is a means for Computer Scientists to express solutions or ideas. It is a culmination of math, logic, and language (full with grammar and vocabulary). As such, there are MANY Computer Programming Languages. Each has its own place and purpose, yet some I feel go hand-in-hand with better understanding the computer.

The C Programming language is one of my favorites. I feel it holds great pedagogical potential, as well as being a very capable language in its own right. It puts you in contact with the nitty gritty details, forcing you to think about what the computer is actually doing. I feel that an understanding of C will aid you in being more proficient many other programming languages.


UNIX and Linux are both computer Operating Systems (ie software that manages the hardware and allows you to perform work). In addition, UNIX and UNIX-like Operating Systems are constructed in a way that allows one to go in and figure out what is going on, and how it happens.. providing an excellent learning experience for Computer Science students to see many of the topics they learn about in action.

UNIX and C (the programming language) have been around for over 30 years… the combination of the two provides a rich educational heritage that continues to drive innovation. I also like to think of UNIX as a philosophy.. I often say that learning UNIX and C is akin to “learning the ways of the force”.. but there is some credence to that. Having a firm understanding of UNIX allows you to better solve problems, and really put the computer to work for you.

I encourage any interested body to learn some UNIX.. you never know where it can come in handy.

Assembly Language

Computers, as an artificial device are binary in nature (that is, they operate by switching on and off any series of 1's and 0's). Most programming languages abstract away this detail, but ultimately programs that are written have to be translated back into the computer's native dialect of 1's and 0's.

Assembly Language comes a lot closer, providing you with all the details.

Open Source Software & Principles

Open Source refers to a method of redistribution and sharing of ideas. Under the principles of Open Source, ideas, software, documentation, and other media are shared (instead of held back for fear of potentially losing money).

For education, having access to information that is used in coursework or study is vital for having a better understanding of the topic. The idea of “Open Source” is not new to society. It existed in the early age of computers, and anywhere ideas are shared (how effective would education be if you were restricted from using it at your job or other environments?).

High-Performance Computing

To plow a field, which would you rather have: Two strong oxen, or 1024 chickens?

While that question may sound crazy.. just think about the potential force 1024 chickens would have on a field. It is a strength in numbers. The same idea when applied to computers– what happens when you take a number of conventional, off-the-shelf computers and have them work together to solve problems?

High-Performance Computing (HPC) is believed by some to be the “next wave” of computing. I agree, but I also see it as yet another piece of the real world that we're starting to understand and simulate.

At CCC, we've been establishing an environment for students to study and gain experience with High-Performance Computing via the LAIR (Location for Abstract and Innovative Resources), which is a makeshift lab hosting our efforts.

Languages and Patterns

Did you know the world is filled with patterns and language? Most of us understand a few languages, but when you look beyond the actual words, there some interesting capabilities that can be harnessed by the computer.

Pattern Matching and Recognition is one such capability that once learned and understood can open the door to allowing you to instruct the computer to perform vast amounts of work for you. Regular Expressions are one such facility at our disposal that I'm crazy about.

The study of language is interesting as it shows you how to represent ideas, or what structures might be more suited for representing various pieces of information.

The Mathematics of Computing

We've all had math, for almost as long as we can remember. But what is it used for? Why did I learn trig and algebra and calculus? Will I ever use these Differential Equations?

Math, like pattern matching and programming, can be an effective tool in aiding us in our work on the computer.

Understanding the math can help us yield more effective solutions to problems and better utilize the resources of the computers we have at hand. Yet math is also one of those subjects many shy away from and only touch with a ten-foot pole. And I can relate. But I also see the advantages of welcoming math into my pursuits. Math does have its uses, and I am always looking to find effective ways of weaving it into my teaching where possible.


Have I scared you away yet?

First I talk about how great math is, and now I make explicit mention to writing. What kind of crazy person am I??

Writing helps us unlock the capabilities of our mind. By being able to express our thoughts in words, we can better document our logic and solutions to problems. The two go hand-in-hand, and there's no way of avoiding it without doing yourself a disservice.

I encourage anyone to maintain a journal, and update it every day or couple of days. I'm not interested in perfect english grammar, but like I said the portrayal of thoughts into words. The more you write the better.

“Writing should be like breathing; it is one of those important things we do.” – me



the LAIR - Location for Abstract and Innovative Resources. This is the name of the High-Performance Computing Lab being put together for the HPC and UNIX courses at CCC. Located in the Resources Building room CHM123, we sport a proto-hackerspace computing environment for exploration, learning, and collaboration.

Armor Dynamics Project

Armor Dynamics Project - During the summers of 2006, 2007, and 2008 (and through present providing remote system administration support), I have been involved at SUNY Geneseo providing computer cluster support to the Physics group doing research on this project, enabled through a NYSTAR grant awarded to SUNY Geneseo, Alfred University, and Armor Dynamics, Inc. I've maintained a cluster environment to run MPP-DYNA (a cluster-aware application that is a general purpose transient dynamic finite element program capable of simulating many complex real world problems). I've used this as an opportunity to experiment with virtualization and have written a job queuing system to aid the physics research group in submitting multiple jobs to be processed on the cluster.

haas/home/start.txt · Last modified: 2020/01/18 09:42 by wedge