|
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 simulated on the computer. Computer Programming is the method by which Computer Scientists express 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 goal is to find innovative ways of getting you hooked on Computer Science and using it to further your goals (whether as a student of Computer Science or another discipline). It helps me to further my goal of "passively taking over the world, 0 or more times."
C Programming - as I said, programming is a means for Computer Scientists to express solutions. 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/Linux - 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 & RISC - 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. RISC Architecture represents a particular school of thought in Computer Architecture design.
|
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. 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 working on 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. Want to know more? Check out this page or come talk to me.
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 hope to find effective ways of weaving it into my teaching where possible.
Writing - 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
|