the case for computer science

17
CS 1110/1111 The Case for Computer Science CS 1110/1111 – Introduction to Programming

Upload: fiona

Post on 07-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

The Case for Computer Science. CS 1110/1111 – Introduction to Programming. The Course Goals. To teach the skill of programming To teach the art of computer science. Look around…. Where do you see computing at work in the world?. A question. First, what is an operating system? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Case for Computer Science

CS 1110/1111

The Case for Computer Science

CS 1110/1111 – Introduction to Programming

Page 2: The Case for Computer Science

CS 1110/1111

The Course Goals

2

• To teach the skill of programming• To teach the art of computer science

Page 3: The Case for Computer Science

CS 1110/1111

Look around…• Where do you see computing at work in the

world?

3

Page 4: The Case for Computer Science

CS 1110/1111

A question• First, what is an operating system?• Second, how many operating systems have you

used?

4

Page 5: The Case for Computer Science

CS 1110/1111

Really? How many?• Think of all the devices that contain operating

systems of some kind…

5

Page 6: The Case for Computer Science

CS 1110/1111

So I ask again…• Where do you see computing at work in the

world?• Heck, look just in this room! In your dorm

room / apartment!

6

Page 7: The Case for Computer Science

CS 1110/1111

A system of interest• SIS• What's wrong with SIS?

– (remember – we only have so much time in this class today…)

7

Page 8: The Case for Computer Science

CS 1110/1111

Cri-SIS• Thoughts?

8

Page 9: The Case for Computer Science

CS 1110/1111

Okay, that was cathartic• Now let's back up for a minute• Why do we have SIS?

– What's the underlying “problem” it's trying to solve?

– Is this fundamentally a “computer science” problem? If so, what's the problem? If not, what discipline does it come from?

• Activity: A Cri-SIS– Groups of 3 or 4; Answers these questions

9

Page 10: The Case for Computer Science

CS 1110/1111

A Big, Scary Computer Science Word• “Algorithm”• Definition?

10

Page 11: The Case for Computer Science

CS 1110/1111

Algorithms – What do they mean?• A step-by-step process for solving a problem• A recipe!

11

Page 12: The Case for Computer Science

CS 1110/1111

Well… what's a program?• A program is an implementation of an

algorithm that a computer can understand

12

Page 13: The Case for Computer Science

CS 1110/1111

The Challenge

13

Electricity Functionality

Page 14: The Case for Computer Science

CS 1110/1111

Abstraction• Split up the problem into

several layers• Each intermediate layer will:

– Use what its lower layer provides to do something

– Hide the characteristics of the layers below it to the layer above

• The lower layers are in hardware and the higher layers in software

14

Get electricity into the computer

Provide the required functionality to the user

Page 15: The Case for Computer Science

CS 1110/1111

Let's Pause for a Moment• What is a programming language?

– A language that allows you to express computations performed by a “machine”.

– But, a machine has several layers.• Each layer has its own programming language!

– The language allows the functionality provided by a layer to be used without knowing how it is implemented (Abstraction)

• What does a language do?– Provide representations for data– Define operations on the data

15

Page 16: The Case for Computer Science

CS 1110/1111

Assembly Language(we're now in software land)

• Data: A collection of logical bits

• Operations: ADD, SUB, MULTIPLY,… (instructions)

• A sequence of instructions that perform a computation form a program.

• A program uses data that is stored in memory.

16

.datahellostring: .ascii "Hello “

.asciiz "World!\n"

.textmain: la $a0, hellostring li $v0, 4 syscall

li $v0, 10 syscall

Page 17: The Case for Computer Science

CS 1110/1111

High-Level Language (HLL)• Uses data

representations and constructs that are much easier to use to convert the high-level computation steps (algorithm) to a computer program to achieve the desired functionality.

17