PowerPoint - Dr. Randy Ribler

Download Report

Transcript PowerPoint - Dr. Randy Ribler

CS 141
Introduction to Computer Science
and Structured Programming
Dr. Randy L. Ribler
Lynchburg College
First Reading Assignment

Read Bronson Chapter 1
Today’s Topics





Studying computer science
Careers in computer science
CS141, and where it fits in
Hints on how to succeed in this course
Compilers and Computer Languages
What is Computer Science?



Computer science is the study of
computers and computer software.
It is really more like an engineering
discipline than it is like a science.
Computer science is a very new field of
study, yet it already has scores of
subfields
A Sampling of Subfields in Computer Science








Artificial Intelligence (AI)
Software Engineering
Human-Computer Interaction (HCI)
Parallel Processing
Computer Graphics
Computer Aided Design (CAD)
Compiler Development/Tools
Robotics










Simulation
Performance Analysis
Operating Systems Design
Speech/Natural Language Recognition
Database Design
Theory of computation
Virtual Reality (VR)
Computer Architecture
Web-based Technologies
and many, many more.
What do these subfields have in
common?

Programming is central to almost every
one of these subfields.
Good things about Computer Science


You might really enjoy it!
It is a very dynamic field
– but the “basics” tend to stay the same

It is an applied “science.”
– You should be able to apply virtually
everything you learn.


It can provide a very good career
It can support work in virtually every
other field
Programming can be a very creative
process.




Programmers are writers and
engineers.
There are many, many ways to
accomplish the same task.
Computer science is very new. There
are a lot of opportunities to be
innovative.
You can build new products without
investing a lot of cash.
What do CS majors do when they graduate?
 Most are hired to develop software (program)
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
Productivity Programs
Operating Systems
WEB Applications (e-commerce)
Computer Graphics
Artificial Intelligence
Medical Software (CT Scan, MRI)
Aerospace Applications
Computation Biology
Research
Embedded Systems
Military Applications
Business Applications
Educational Software
Games
Movies/Entertainment
What do CS majors do when they graduate?





Some work as network and system
administrators
Some go to graduate school
Some get research jobs
Some teach
Some start their own companies
The Best Jobs in America

http://money.cnn.com/magazines/mone
ymag/bestjobs/2010/
Why is CS141 important?



It provides the basic tool set required in
virtually every other CS class.
With CS141 and CS142, you can
probably get a job as a programmer.
Without at least CS241 and CS242 (or
equivalent) you probably shouldn’t be
allowed to get a job as a programmer
Why do many students have
trouble in CS141?




It’s probably not how the course is taught.
– Every college with a CS program has a
course similar to CS141.
– They all have relatively high numbers of
students who have difficulties
They underestimate the amount of time
they need to devote to it.
They get behind -- and because each concept
builds on the others, it is hard to catch up.
They miss classes
How to Succeed in CS141











Spend time working on the programs
Don’t miss any classes
Read the textbook as assigned
Come to office hours
Ask questions in class
Stay with the class (Don’t get behind).
Start programs as soon as they’re assigned
Expect to encounter problems
Don’t get frustrated. If you keep trying, you’ll
get it.
Understand that the programs are good
teachers -- learn from each mistake.
Try to understand everything completly
Learning to program is like
learning to play tennis.






At first, you need to master fundamentals.
It will get to be much more fun as you become better
at it.
You need to practice. You can’t do all the practicing
the night before the match.
It might be frustrating at first, but you will be rewarded
if you persevere.
You can’t really judge how much you like it until you
get to a certain level of competency.
Most people can do it if they dedicate enough time to
it.
A more gentle introduction is
available

CS131 (3 credits) MWF 10:00-10:50
– Visual Basic
– Recommended for those who have never
done any programming before.

CS141 is much more demanding
What do computers do?

They do very, very, simple things
– basic arithmetic on values in memory
– Input/Output
– Comparison and Conditional Execution
• if-statements


They do it very, very, fast and very, very
reliably.
Programmers build systems to do
complicated things using these simple
basic capabilities.
Think of a recipe.

We can use instructions that provide
different levels of detail.
– High Level
• Make an apple pie
– Lower Level
• Slice 4 apples into one inch squares...
– Even Lower Level
– Pick up a knife, place the knife on the
apple, apply pressure, …
Cooks use a standard set of
instructions





Poach
Blend
Whip
Fry
Filet
Recipes consist of a
known set of instructions.
Cooks translate these
higher-level actions.
Computer Languages


A computer language defines the set of
instructions that the programmer can
use.
Programs are collections of these
instructions.
Computer Hardware Executes Low-level
Instructions


Programmers typically want to write
programs using higher level
instructions.
Different computer manufactures
provide different low-level instructions.
High-level Languages



High-level languages allow
programmers to use a more expressive
set of instructions.
A compiler translates the high-level
instructions the programmer writes to
the low-level instruction set the
computer understands.
Compilers allow programs to be
portable, because the instructions are
not tied to an particular instruction set.
Compilers Translate High-level instructions to a
particular machine’s (native) instruction set.
Program
written in
High-level
Language
Compiler
Program
using
native
instruction set
The program the programmer writes is called source code.
The program the compiler generates is called object code.
Compilers Translate High-level instructions to a
particular machine’s (native) instruction set.
Object code
Source code
Program
written in
High-level
Language
Microsoft
Compiler
Program using
Intel
instruction set
Apple
Compiler
Program using
Motorola
instruction set
Programming Languages









FORTRAN - Scientific/Engineering (1957)
COBOL - business oriented language (1959)
C - applications and systems, dominated much of the
eighties and early nineties. (K&R published 1978)
C++ - applications and systems, dominated much of the
late nineties. (1980-1985)
Java - applications and network/web-based applications,
rapidly gaining popularity. (1995)
Lisp and Prolog - Languages for AI (1959, 1970)
Pascal - language used to teach programming (1971)
Ada - language used in military applications (1983)
Basic - language used to teach programming (1965)