Download presentation
1
Welcome to the Computer and Information Technology program
2
Who am I? David Matuszek (muh-TOOZ-ik)
I prefer “Dave,” or maybe “Dr. Dave” I’m the director of the MCIT program I’m here to teach, not to do research My most important courses are CIT 591 and CIT 594
3
Who are you? Most of you are in the new MCIT program. You are here because: You are extremely bright You do not have a BA or BS in computer science A few of you are in Bioinformatics The rest of you are in other programs You have a very wide range of backgrounds
4
What is this course? This is a beginning programming course
The language we are using is Java 2 The primary audience is MCIT students This is the first of six required MCIT courses It is also a service course for other students who need to learn to program CIT 591 replaces CIS 500 in this role If I can lure you into computing, I will!
5
Why are you here? There are two good reasons for getting into computer science: The job market is (usually) very good Computer programming can be extremely satisfying and enjoyable Which of these is more important? Money is a necessity You spend about 1/4 of your adult life working
6
What are you getting yourself into?
Programming is intellectually challenging It can be tremendous fun… …if you like that sort of thing! Lifelong learning is essential The technology is constantly changing We cannot teach you all you need to know We can point you in the right direction and give you a good, hard push--but the rest is up to you!
7
Programming can be fun Programming is puzzle-solving
Very little is mechanical, routine work You always have to be thinking If you like solving puzzles, there’s a good chance you will like programming Some puzzles are hard You need a tolerance for frustration Solving hard puzzles can be very satisfying
8
Computer Science Computer science is the study of
what we can do with computers how we can best do it If we really understand how to do something, we can write a program to do it We do a lot of things without knowing how we do them Computer science is all about how to do things
9
CIT 591 is a programming course
Programming is teaching the computer how to do something Programming, like woodworking, is a craft To master a craft, you need both knowledge and experience Even a poor woodworker can produce a useable chair A master craftsman can produce a chair that is strong, comfortable, and beautiful
10
Beauty in computer science
Programs can be beautiful or ugly I am not speaking metaphorically Usually, Blind people can’t appreciate fine paintings Deaf people can’t appreciate good music Non-mathematicians can’t appreciate elegant proofs Non-programmers can’t appreciate the beauty in programs (but can often feel the lack of it!)
11
Basic esthetics People have different tastes in music, but…
A two-year old pounding on a piano is not making music Very few musicians disagree on what notes make up a “chord,” or a “chord progression” People have different tastes in programming, but many values are held in common Programming is an art as well as a craft
12
Elegance Powerful software can do everything you want to do--for example, Microsoft Word Complex software is hard to learn and hard to use--for example, Microsoft Word More power usually means more complexity Elegant software somehow manages to be both simple and powerful
13
Elegance in mathematics
In school, Gauss was told to add up the numbers from 1 to 100 Gauss realized that = 101, = 101, = 101, and so on There are fifty such pairs The answer must be 50 x 101, or 5050 This is elegant: it saves work, and it’s easy to understand
14
Beauty in programming Outer beauty in programs consists of:
Doing a job the way the user wants it done Providing a simple, intuitive set of controls Working reliably, without crashes or glitches Inner beauty in programs consists of: Simple, elegant, efficient solutions to problems Code that is easy to read and understand Good commenting and coding style
15
Elegance in programming
Consider the following problem: You are given a stack of cards, allegedly containing the numbers 1 through …but there are only 99 cards How do you determine which card is missing? One solution: Go through all the cards looking for 1, then do it again looking for 2, etc. Is there a better way?
16
Elegance, again Suppose you are given a deck of 51 playing cards
How do you decide which card is missing? Can you adapt Gauss’s solution to this problem? Suppose you are given one thousand decks, each missing one (not all the same) card Would this change the way you solve the problem?
17
What CIT 591 and 594 are about You need to learn the craft of programming How to design and write programs that work How to write clear code and documentation This is a skill, and it requires a lot of practice In CIT 591 you will learn programming A language (Java 2) and some basic skills In CIT 594 you will concentrate more on computer science
18
Out with the old, in with the new
Geometry is about 2300 years old It’s all based on straight lines and circles These were viewed as idealizations of nature There are no straight lines or circles in nature Didn’t anybody notice? Benoit Mandelbrot developed fractal geometry starting in about 1977 Even in a 2300 year old subject, things change!
19
Changes in computer science
Computer science is only about 55 years old It’s changing much faster than geometry! Java is about six years old We will be covering Java features that didn’t exist this time last year Change is rapid and accelerating Dominant language of the 1990s: C++ Dominant language of early 2000s: Java First GUI: Macintosh, 1984 First web browser: Mosaic, 1992 Web pages: HTML to DHTML to XML
20
What’s ahead? Half-life of CS knowledge: about 5 years
Typical length of career: about 40 years What does this tell you? Nobody expected: personal computers, graphical user interfaces, the mouse, the World Wide Web, the popularity of Java, etc. There is only one safe prediction: You will be taken by surprise!
21
Maybe you should learn accounting instead?
What can we possibly teach you that will do you any good five years from now? Many underlying programming concepts and mathematical foundations don’t change Programming paradigms change slowly Each new language you learn will be easier to learn than the previous one, because most of the ideas in it will be familiar
22
But more importantly... The attitude you need doesn’t change
Always be prepared to learn Take pride in your work, but-- Realize that your work is not, and can never be, perfect Learn to welcome corrections and criticisms as helping you to perfect your work; do not take them personally Seek out and fix problems, don’t avoid them Be responsive to the realities of the situation
23
A little problem A 4 M 9 I know: each of the above cards has a letter on one side and a number on the other My theory is: if a card has a vowel on one side, it has an even number on the other I want to test my theory, but... I want to turn over as few cards as possible Which cards must I turn over ?
24
Answer to the cards problem
Theory: If vowel, then even You have to look for things that show you are wrong, not things that show you are right! This is part of what I mean by “attitude” A 4 M 9 2 K 8 E don’t need don’tneed need need
25
Small projects You can build a doghouse in a few hours
You don’t need a blueprint The materials don’t cost much A little knowledge of tools is enough Imperfections are no big deal
26
Medium-sized projects
You can build a house in a year or so You really do need blueprints Excess materials mean wasted money House building requires more skills: plumbing, bricklaying, electrical work, carpentry, etc. Imperfections matter: you don’t want a leaky roof! It’s easier if you aren’t doing it all by yourself
27
Large projects You cannot build a skyscraper by yourself
It’s just too much work for one person You don’t have the money You don’t have all the skills Imperfections could be costly or even fatal Skyscrapers can only be built by a team Communication is essential A “paper trail” is essential
28
What does that mean for CS?
What can we ask you to build in your classes? What will be expected of you in industry? We teach skyscraper-level skills, but we ask you to apply those skills to doghouses it’s silly, but what alternative do we have? It’s up to you: When you leave here, will you be able to build skyscrapers? or will you just be very good at building doghouses?
29
Why am I here? My personal goals are For the MCIT students:
get everybody through this program with the skills and attitudes you need to succeed into a career that you will enjoy For the non-MCIT students: give you a solid understanding of basic programming try to lure you into learning more about the field For the program: Produce really competent graduates that reflect well on the program
30
Academia vs. industry In industry, the focus is on getting things done
Your manager doesn’t want duplication of effort—two or more programmers doing the same thing If it helps get the job done, getting programs from somewhere else—legally—is fine Here, the emphasis is on learning how to do things We want duplication of effort We want you to all be learning the same things We want you to do all the work
31
The Rules You may: You may not: Penalty for first offense:
discuss the assignments with one another help others debug their work use, without attribution, anything I post to the Web You may not: work together on the same program copy another’s code, or allow your code to be copied lend your code to someone else, or leave it lying around where someone else may copy it use any code from textbooks or the Web without my permission Penalty for first offense: You will be reported to the Office of Student Conduct You will receive an F in the course If you think you may have accidentally broken a rule, come and talk to me about it
32
The End He who works with his hands is a laborer.
He who works with his hands and his head is a craftsman. He who works with his hands and his head and his heart is an artist. -- St. Francis of Assisi
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.