Presentation on theme: "CS 141 Introduction to Computer Science and Structured Programming Dr. Randy L. Ribler Lynchburg College."— Presentation transcript:
CS 141 Introduction to Computer Science and Structured Programming Dr. Randy L. Ribler Lynchburg College
First Reading Assignment n Read Bronson Chapter 1
Today’s Topics n Studying computer science n Careers in computer science n CS141, and where it fits in n Hints on how to succeed in this course n Compilers and Computer Languages
What is Computer Science? n Computer science is the study of computers and computer software. n It is really more like an engineering discipline than it is like a science. n Computer science is a very new field of study, yet it already has scores of subfields
A Sampling of Subfields in Computer Science n Artificial Intelligence (AI) n Software Engineering n Human-Computer Interaction (HCI) n Parallel Processing n Computer Graphics n Computer Aided Design (CAD) n Compiler Development/Tools n Robotics
n Simulation n Performance Analysis n Operating Systems Design n Speech/Natural Language Recognition n Database Design n Theory of computation n Virtual Reality (VR) n Computer Architecture n Web-based Technologies n and many, many more.
What do these subfields have in common? n Programming is central to almost every one of these subfields.
Good things about Computer Science n You might really enjoy it! n It is a very dynamic field –but the “basics” tend to stay the same n It is an applied “science.” –You should be able to apply virtually everything you learn. n It can provide a very good career n It can support work in virtually every other field
Programming can be a very creative process. n Programmers are writers and engineers. n There are many, many ways to accomplish the same task. n Computer science is very new. There are a lot of opportunities to be innovative. n You can build new products without investing a lot of cash.
What do CS majors do when they graduate? n 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? n Some work as network and system administrators n Some go to graduate school n Some get research jobs n Some teach n Some start their own companies
The Outsourcing Scare Media Stresses Threat to US Jobs
National Trends in Computer Science Enrollment n Enrollment Trends –50% reduction in enrollment in CS courses –70% reduction in major declarations –2007 to 2011 have had significant increases
Employment Outlook is Very Positive for Computer Science Graduates
The Best Jobs in America n ymag/bestjobs/2010/ ymag/bestjobs/2010/
Why is CS141 important? n It provides the basic tool set required in virtually every other CS class. n With CS141 and CS142, you can probably get a job as a programmer. n 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? n 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 n They underestimate the amount of time they need to devote to it. n They get behind -- and because each concept builds on the others, it is hard to catch up.
How to Succeed in CS141 n Spend time working on the programs n Don’t miss any classes n Read the textbook as assigned n Come to office hours n Ask questions in class n Stay with the class (Don’t get behind). n Start programs as soon as they’re assigned n Expect to encounter problems n Don’t get frustrated. If you keep trying, you’ll get it. n Understand that the programs are good teachers -- learn from each mistake.
Learning to program is like learning to play tennis. n At first, you need to master fundamentals. n It will get to be much more fun as you become better at it. n You need to practice. You can’t do all the practicing the night before the match. n It might be frustrating at first, but you will be rewarded if you persevere. n You can’t really judge how much you like it until you get to a certain level of competency. n Anyone can do it if they dedicate enough time to it.
A more gentle introduction is available n CS131 (3 credits) MWF 1:00-1:50 –Visual Basic –Recommended for those who have never done any programming before.
Source: Larry Smarr, NCSA - The Grid, Ian Foster and Carl Kesselman, editors. Cray X-MP Supercomputer (1986) University of Illinois n Cost: $8 Million n Power requirement: 60,000 watts –Required special connection to power company n Required advanced cooling system n Available Graphics: None n Bandwidth to outside world: 64KB/sec n Your phones are probably more capable
What do computers do? n They do very, very, simple things –basic arithmetic on values in memory –Input/Output –Comparison and Conditional Execution if-statements n They do it very, very, fast and very, very reliably. n Programmers build systems to do complicated things using these simple basic capabilities.
Think of a recipe. n 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 n Poach n Blend n Whip n Fry n Filet Recipes consist of a known set of instructions. Cooks translate these higher-level actions.
Computer Languages n A computer language defines the set of instructions that the programmer can use. n Programs are collections of these instructions.
Computer Hardware Executes Low-level Instructions n Programmers typically want to write programs using higher level instructions. n Different computer manufactures provide different low-level instructions.
What are executable programs (software)? n They are sets of detailed instructions that tell the computer how to perform a task. n Tasks are expressed in terms of the simple instructions that the computer can execute.
The set of instructions that a computer can execute is called its Instruction Set. n Instruction sets vary from computer to computer. (Intel and Apple computers use different instruction sets.) n These instructions are so simple that it can be very tedious to write large programs using them.
High-level Languages n High-level languages allow programmers to use a more expressive set of instructions. n A compiler translates the high-level instructions the programmer writes to the low-level instruction set the computer understands. n 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. Program written in High-level Language Microsoft Compiler Program using Intel instruction set Apple Compiler Program using Motorola instruction set Source code Object code
Programming Languages n FORTRAN - Scientific/Engineering (1957) n COBOL - business oriented language (1959) n C - applications and systems, dominated much of the eighties and early nineties. (K&R published 1978) n C++ - applications and systems, dominated much of the late nineties. ( ) n Java - applications and network/web-based applications, rapidly gaining popularity. (1995) n Lisp and Prolog - Languages for AI (1959, 1970) n Pascal - language used to teach programming (1971) n Ada - language used in military applications (1983) n Basic - language used to teach programming (1965)