Lecture Slides: Aug 23
Download
Report
Transcript Lecture Slides: Aug 23
Course Introduction
CS 178:
Programming with Multimedia Objects
Aditya P. Mathur
Professor of Computer Sciences
Purdue University, West Lafayette
August 23, 2004
Last update: August 23, 2004
Learning Objectives
What is computing and how it is used in various
disciplines, e.g. Bio, Chemistry, Math, Physics.
How to develop and test simple programs in Java
using graphical user interfaces, images, and sounds.
How to work in small groups.
Course Introduction Aditya P. Mathur 2004
2
Ideal Clients
Those who want to acquire programming skills for
use in their own field of interest.
Those with none to very little experience with
programming.
Non-CS majors who want to use computing to solve
problems in their own disciplines.
Course Introduction Aditya P. Mathur 2004
3
Course Organization
Lectures: MW. Recitation: F. Labs: W, Th, F.
Quizzes: During lectures. 30 quizzes, best 25
considered. Total: 5 points.
Midterm exams: Sept 22 and Oct 25, 7-8:30pm. EE
270. Total: 30 points.
Final exam: date to be announced. Total: 25 points.
Laboratory assignments: 15 assignments, best 10
considered. Total: 20 points.
Course Introduction Aditya P. Mathur 2004
4
Exams
Open book: You will be allowed to consult your
textbook but not any of your notes. Sharing of
textbooks during the exam is not allowed.
Duration: 90 minutes. Final: 2 hours.
Course Introduction Aditya P. Mathur 2004
5
Course Organization: Projects
5 projects, best 4 considered. Total: 20 points.
Team work: Form groups of 4 each for project work.
Contact the instructor for any help you might need in
joining a group.
All members of a group get the same grade in each
project assuming that they have made about equal
contributions.
Course Introduction Aditya P. Mathur 2004
6
Groups: Responsibilities
Collaborate with each other and solve the problem
assigned on each project.
Ensure that each member of the group knows what is
her/his responsibility on each project.
It is a good idea to select a group leader who will
delegate tasks in a democratic way to members of
the team.
Members of a group get equal grade ONLY IF they do
equal work.
Course Introduction Aditya P. Mathur 2004
7
Groups: Option 1-Applications of Computing
Each group is requested to make one presentation on
an exciting application of computing in any of the
following disciplines: earth and atmospheric sciences,
physics, chemistry, math, statistics, and biology
(exclude CS).
Keep the presentation to 3-5 minutes. Consult with
the instructor before you make the final decision to
present something. All presentations will be at the
beginning of a lecture on M or W.
A group that makes such a presentation is exempt
from the in-class Quiz during the day on which they
make the presentation.
Course Introduction Aditya P. Mathur 2004
8
Groups: Option 2-Classes and Objects
Design and present a play that explains the concept
of Java classes and objects.
Keep the play to 3-5 minutes. Consult with the
instructor before you make the final decision to
present something.
There will be at most 3 such plays. Groups with the
best ideas will be selected to present their plays.
Groups that presents such a play are exempted from
2 in-class quizzes.
Course Introduction Aditya P. Mathur 2004
9
Groups: Awards
The following awards (cash and/or certificates) will
be given out after the last project has been graded
and returned:
Best application presentation.
Best play.
Earliest, and correct, project submission.
Best group attendance.
Course Introduction Aditya P. Mathur 2004
10
What is programming?
Programming refers to a collection of activities
concerned with the design, coding, and testing of
computer programs.
A computer program is a sequence of instructions
that convey a procedure for performing one or more
tasks using data such as images, sound, and other
forms of data.
A computer program is written in a programming
language.
In CS 178 we will learn how to write computer
programs using the Java programming language.
Course Introduction Aditya P. Mathur 2004
11
Is programming fun?
Yes. (And NO for some!)
It enables you to interact with machines in a variety
of ways.
You struggle to instruct a machine to do something.
When it does what you want it to do, there is a sense
of achievement and you yell: Yeah! Yippe!
Some people, such as myself, start singing when a
program works correctly!
Course Introduction Aditya P. Mathur 2004
12
Is programming difficult?
Yes.
Because it requires accurate and precise expression
of instructions to a machine.
Humans err. Computers usually do not correct our
errors. We have to discover and correct our errors
through debugging.
The struggle is to make sure that our instructions are
correct. This is what makes programming difficult.
Course Introduction Aditya P. Mathur 2004
13
Why Java?
•
Relatively safe and secure language.
•
Has all the elements for programming with multimedia
objects.
•
Allows easy sharing of information across the globe.
•
Supported on almost all platforms (Windows, OS X,
Unix, Linux).
Course Introduction Aditya P. Mathur 2004
14
Why not Perl?
•
Programming expertise is language neutral (to some
extent).
•
Perl is good for quick and dirty programming.
•
Java is good for significant applications that need
global cooperation amongst researchers and have
friendly GUIs.
Of course, there is no clear cut answer to the language
question.
•
http://www.onjava.com/pub/a/onjava/2003/09/24/java_
bioinformatics.html
Course Introduction Aditya P. Mathur 2004
15
Java Resource
•
In addition to the textbook, visit:
http://java.sun.com/docs/books/tutorial/
Course Introduction Aditya P. Mathur 2004
16
What is computing?
Computing refers to the act of calculating something
using some given information. This “something” may
be, for example,
a number: that represents the position, at a time instant, of
a baseball in flight in a video game.
a collection of numbers: likely high temperature over each of
the next 7 days.
an image: that shows the structure of a new drug formed by
combining specially designed molecules.
sound: a new sound computed by combining and
manipulating various sampled waveforms.
Can you map the above to different disciplines?
Course Introduction Aditya P. Mathur 2004
17
Computing and presentation
Presentation of whatever is computed is an integral
part of computing. Presentation could be in the form
of:
Numbers displayed on the screen or printed.
Image(s) displayed or printed. This may lead to animation.
Sounds played. This may lead to a computer-based
orchestra.
Course Introduction Aditya P. Mathur 2004
18
Who computes?
Humans compute: Hey! How much will I be able to
save for the next party? [Financial computation]
Animals compute: Does this smell belong to my
master/friend? [Chemical computation]
Computers compute: We program the computers and
they compute. [All kinds of computation]
Describe: What computation goes on in
your favorite video game?
Course Introduction Aditya P. Mathur 2004
19
Applications of Computing: Biology
Computational Biology
•
DNA sequencing
•
Neural modeling and simulation
•
Protein modeling
•
Drug design
•
Gene banks
Course Introduction Aditya P. Mathur 2004
20
Applications of Computing: Biology
“The chromosomal locations of several genes believed to be
associated with the human BRCA1 gene implicated in breast
cancer, highlighted using the Map Viewer query "BRCA1" (build
34).”..NIH web site.
Course Introduction Aditya P. Mathur 2004
21
DNA
DNA
deoxyribonucleic acid. DNA molecules carry the genetic
information necessary for the organization and functioning
of most living cells and control the inheritance of
characteristics.
www.nti.org/e_research/e6_glossary.html
Recombinant DNA refers to DNA which has been altered by
joining genetic material from two different sources.
It usually involves putting a gene from one organism into the
genome of a different organism, generally of a different species.
Course Introduction Aditya P. Mathur 2004
22
Applications of Computing: Biology
DNA sequence
The relative order of base pairs, whether in a fragment of
DNA, a gene, a chromosome, or an entire genome.
DNA sequencing
The experimental process of determining the nucleotide sequence
of a region of DNA. This is done by labeling each
nucleotide (A, C, G or T) with either a radioactive or
fluorescent marker which identifies it.
There are several methods of applying this technology,
each with their advantages and disadvantages. Sometimes,
the sequences may be generated more quickly than they
can be characterised.
Course Introduction Aditya P. Mathur 2004
23
Applications of Computing: Chemistry
Computational Chemistry
•
Molecular modeling
•
Chemistry education
•
MathMol (http://www.nyu.edu/pages/mathmol/chime/)
•
Application of Java to Chemistry
(http://www.ch.ic.ac.uk/java/)
Course Introduction Aditya P. Mathur 2004
24
Applications of Computing: Physics
Computational Physics
•
Simulation, visualization and modeling
•
Computational Experiments
•
http://www.physics.unc.edu/~zhaoj/compphys.htm)
•
Computational nanotechnology
(http://www.zyvex.com/nano/)
Course Introduction Aditya P. Mathur 2004
25
Applications of Computing: Mathematics
Computational Mathematics
•
Math education
•
Black hole simulation
(http://www.math.psu.edu/sun/Project/blackhole.htm)
Course Introduction Aditya P. Mathur 2004
26
Applications of Computing: Miscellaneous
•
Segway: balancing scooter
•
“It’s called the Segway Human Transporter, but the
Pentagon is drafting the two-wheeled scooter as part of a
plan to develop battlefield robots that think on their own
and communicate with troops.”
•
Automobile design
•
Mars exploration..Maestro/Spirit Rover
(http://java.com/en/about/apps/mars_rover.jsp)
Course Introduction Aditya P. Mathur 2004
27
Why this course for you?
•
CS majors: Programming is an important skill to have for all CS
majors.
•
Non-CS majors: The future of computation is bright..in EVERY
FIELD. ..from Liberal Arts to Science to Engineering Computers
are almost everywhere. Regardless of your field of study.
So don’t miss this wonderful opportunity to
acquire a FUN skill!
Course Introduction Aditya P. Mathur 2004
28
Bye!
Have fun
with
Java!
And
DO NOT DROP
THIS COURSE!
Course Introduction Aditya P. Mathur 2004
29