Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 141 Introduction to Computer Science and Structured Programming Dr. Randy L. Ribler Lynchburg College.

Similar presentations


Presentation on theme: "CS 141 Introduction to Computer Science and Structured Programming Dr. Randy L. Ribler Lynchburg College."— Presentation transcript:

1 CS 141 Introduction to Computer Science and Structured Programming Dr. Randy L. Ribler Lynchburg College

2 First Reading Assignment n Read Bronson Chapter 1

3 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

4 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

5 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

6 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.

7 What do these subfields have in common? n Programming is central to almost every one of these subfields.

8 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

9 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.

10 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

11 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

12 The Outsourcing Scare Media Stresses Threat to US Jobs

13 National Trends in Computer Science Enrollment n Enrollment Trends 2000-2005 –50% reduction in enrollment in CS courses –70% reduction in major declarations –2007 to 2011 have had significant increases

14 Employment Outlook is Very Positive for Computer Science Graduates

15 Job Outlook

16 The Best Jobs in America n http://money.cnn.com/magazines/mone ymag/bestjobs/2010/ http://money.cnn.com/magazines/mone ymag/bestjobs/2010/

17 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

18 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.

19 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.

20 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.

21 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.

22 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

23 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.

24 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, …

25 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.

26 Computer Languages n A computer language defines the set of instructions that the programmer can use. n Programs are collections of these instructions.

27 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.

28 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.

29 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.

30 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.

31 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.

32 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

33 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. (1980-1985) 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)


Download ppt "CS 141 Introduction to Computer Science and Structured Programming Dr. Randy L. Ribler Lynchburg College."

Similar presentations


Ads by Google