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

Slides:



Advertisements
Similar presentations
CS 102 Computers In Context (Multimedia) 01 / 21 / 2009 Instructor: Michael Eckmann.
Advertisements

CS0004: Introduction to Programming Introduction to Programming.
Artificial Intelligence
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Introduction to Programming. COMP104 Lecture 1 / Slide 2 Objectives * To learn fundamental problem solving techniques: n define a problem n design an.
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
Lecture 1: Intro to Computers Yoni Fridman 6/28/01 6/28/01.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 1: Overview and Welcome Dr. Martin Dickey University of Washington.
Introduction to Programming Programming. COMP102 Prog. Fundamentals I: Introduction / Slide 2 Objectives l To learn fundamental problem solving techniques.
Introduction to Programming. COMP104 Introduction / Slide 2 Objectives * To learn fundamental problem solving techniques * To learn how to design a program.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
COMPUTER SCIENCE 10: INTRODUCTION TO COMPUTER SCIENCE Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
Software Development CS 1 Rick Graziani Spring 2007.
1 CHAPTER 4 LANGUAGE/SOFTWARE Hardware Hardware is the machine itself and its various individual equipment. It includes all mechanical, electronic.
Careers and Degrees in Computing Stuart Hansen Department of Computer Science UW - Parkside.
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Computer Programming My Home Page My Paper Job Description Computer programmers write, test, and maintain the detailed instructions, called programs,
CS102 Introduction to Computer Programming
Chapter 01 Nell Dale & John Lewis.
Alireza Haghshenas Winter 93. * Problem Definition * Difficult Math Parts * Vision * Computational Geometry * Optimization * Run the App.
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Introduction to Computer Programming itc-314
Introduction COMP104: Fundamentals and Methodology.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 1 Introduction to Computer Science.
CS2303 C14 Systems Programming Concepts Bob Kinicki.
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Media Computing Instructor Byung Kim Olsen 231 Office hours – MWF 9:00-10:00 AM or by appointment.
Chapter 1 The Big Picture.
Computer system overview1 The Effects of Computers Pervasive in all professions How have computers affected my life? How have computers affected my life?
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Programming Languages 1.07a.  A computer program is a series of instructions that direct a computer to perform a certain task.  A programming language.
C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Visual C++ Programming: Concepts and Projects
CS 1308 Computer Literacy and The Internet Software.
The Teacher Computing Computer Languages [Computing]
Robert Crawford, MBA West Middle School.  Explain how the binary system is used by computers.  Describe how software is written and translated  Summarize.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Microsoft Visual Basic 2010: Reloaded Fourth Edition Overview An Introduction to Programming.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
CSC1200 INTRODUCTION TO PROGRAMMING Dr. Maureen Markel
 2001 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet and the World Wide Web Outline 1.1Introduction 1.2What.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Introduction to Computer Programming itc-314 Lecture 04.
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Software Engineering Algorithms, Compilers, & Lifecycle.
Game programming 1.
Computer Languages [Computing] Computing.
Lecture 1b- Introduction
CS 141 Introduction to Computer Science and Structured Programming
Introduction
Chapter 1 Preliminaries.
CS 21a: Intro to Computing I
Programming COMP104: Fundamentals and Methodology Introduction.
CS 1104 INTRODUCTION TO COMPUTER SCIENCE
CS1301 – Where it Fits Institute for Personal Robots in Education
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
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

Job Outlook

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)