Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

Similar documents
Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

Concepts in Programming Languages

CS2303 C14 Systems Programming Concepts. Bob Kinicki

Discovering Computers 2008

Low-Level Languages. Computer Programs and Programming Languages

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.

Discovering Computers Chapter 13 Programming Languages and Program Development

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

Introduction to Computer Science I

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Languages october 22, 2017 Éric Lévénez < FORTRAN III end-1958 FORTRAN II FORTRAN I october 1956

CSCI 3136 Principles of Programming Languages

Programming Languages, Summary CSC419; Odelia Schwartz

COMP 201: Principles of Programming

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

COSC 2P90 Programming Languages & Object-Orientation

Introduction to Scientific Computing Languages

Com S 541. Programming Languages I

Introduction to Scientific Computing Languages

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Outline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given

Welcome to Introduction to Computer Science I

Lecture 1: Course Introduction

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming

Programming Languages 1. Introduction. Oscar Nierstrasz

CS 3304 Comparative Languages. Lecture 1: Introduction

Introduction. A. Bellaachia Page: 1

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Logic Programming II & Revision

Lecture 1: Course Introduction

Introduction to Engineering Using Robotics Experiments. Dr. Yinong Chen

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda

Programming Language Concepts 1982, 1987, Outline. Period

Compilation 2012 The What and Why of Compilers

CS558 Programming Languages

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Programs are: CMPSCI 105/119/120: Programming, Flowchar<ng, and Running Program Flowcharts

Modern Stored Procedures Using GraalVM

Computers and programming languages introduction

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost

What is a programming language?

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Chapter 2. Pseudocodes: Speedcoding. 2.2 Minimal Hardware Programming: Pseudocodes. Evolution of the Major Programming Languages

Introduction to Basis and Practice in Programming

Lecture 01 & 02 Computer Programming

Principles of Programming Languages. Lecture Outline

Why are there so many programming languages?

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages

Concepts of Programming Languages

SOFTWARE ARCHITECTURE 6. LISP

CS A331 Programming Language Concepts

Chapter 1. Preliminaries

Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed

Introduction to Programming Languages. CSE 307 Principles of Programming Languages Stony Brook University

TTh 9.25 AM AM Strain 322

CSc 372. Comparative Programming Languages. 1 : Introduction. Department of Computer Science University of Arizona

CSc 372 Comparative Programming Languages

Chapter 2. Evolution of the Major Programming Languages

Design & Implementation Overview

Programmiersprachen (Programming Languages)

CSc 372 Comparative Programming Languages

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

Compilation I. Hwansoo Han

CSI32 Object-Oriented Programming

COP 3402 Systems Software. Lecture 4: Compilers. Interpreters

Chapter 1 Preliminaries

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following:

Introduction to.net, C#, and Visual Studio. Part I. Administrivia. Administrivia. Course Structure. Final Project. Part II. What is.net?

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified

8/23/18. Programming Language Genealogy The Evolution of Programming Languages. Zuse s Plankalkül. Plankalkül Syntax. Machine Code

Programming Languages FILS Andrei Vasilateanu

8/16/12. Computer Organization. Architecture. Computer Organization. Computer Basics

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102


Evolution of the Major Programming Languages

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

5. Special Purpose Languages

Chapter 1. Preliminaries

Programming Languages

Introduction P L COS 301. Fall School of Computing and Information Science University of Maine. Introduction COS 301.

Announcements Tues., Aug and 2. to call them ( ) ! For next time, read Learning Computing with Robots, chs.

Compiler Design. Dr. Chengwei Lei CEECS California State University, Bakersfield

COSC Software Engineering. Lecture 23: Multilingual and Component Programming

CS 113: Introduction to

CS558 Programming Languages. Winter 2013 Lecture 1

Chapter 2. Evolution of the Major Programming Languages ISBN

Mechanization. A little bit of history. Mechanization. The old dream of mechanical computing. Jordi Cortadella Department of Computer Science

CS120 Computer Science I. Instructor: Jia Song

Read & Download (PDF Kindle) A First Book Of C++ (Introduction To Programming)

Course outline. CSE 341: Programming Languages. Why study programming languages? Course motivation and objectives. 1 lecture: Concepts

Introduction Objectives: 1) differentiate between high-level, low-level, and machine language; 2) explain why it is necessary to translate a program

LECTURE 1. Overview and History

1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

Transcription:

Principles in Programming: Orientation & Lecture 1 1

Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2

Textbook Programming Challenges by Steven S. Skiena and Miguel A. Revilla Springer You can download from the SKKU library 3

Course Rules (1/2) Cheating in exams machine check will receive an F for the course Late homework 10% penalty per day Cheating on homework will receive a 0 point 1% penalty for missing a lecture class 2% penalty for missing a Lab. 4

Course Rules (2/2) not attending a class includes not attending a class being late to a class leaving a class in the middle chatting in class having the mobile phone on in class if you sleep, you will die!! 5

Course Outline 6

Problem Solving Using C Basic Software Engineering Programming Patterns Problem Solving Techniques Practice 7

What You Need to Solve a Problem by Programming Programming Language Skills Correct rules Identifying rule violations Programming Skills Training on programming patterns Training on software engineering methods Problem Solving Skills Logical thinking 8

Programming Programming Is To Use the Dumb ComputerTo Solve a Problem That A Human Cannot Solve Fast Enough. The Computer Needs Very Very Very Precise and Detailed Instructions. The Instructions Must Be in a Programming Language, Not a Natural Language. 9

Natural Language What is 27.2 times 13.8? 10

Programming Languages Machine Languages Assembly Languages High-Level Languages 11

Machine Language 000000 00001 00010 00110 00000 100000 Add the registers 1 and 2 and place the result in register 6 100011 00011 01000 00000 00001 000100 Load a value into register 8, taken from the memory cell 68 after the location listed in register 3: 000010 00000 00000 00000 00100 000000 Jump to the memory address 1024: 12

Assembly Language MOV r0, #0C load base address of string into r0 LOAD: MOV r1,(r0) load contents into r1 CALL PRINT call a print routine to print the character in r1 INC r0 point to the next character JMP LOAD load next character 13

High-Level Language float length, width, area; length = 27.2; width = 13.8; area = length * width; 14

High-Level Languages Over 500 Languages (http://en.wikipedia.org/wiki/list_of_programming_langua ges_by_category) Basic, FORTRAN, COBOL, RPG (Algol, Pascal, PL/1), C C++, C#, Java (ADA, Smalltalk, Eiffel) Perl, TCL, Java Script, PHP, Python, Ruby SNOBOL, LISP, (Scheme) MATLAB, (APL) Shell, Awk, REXX SQL, (Prolog), XML, Xquery, XSLT, Postscript, OWL 4GL UML Verilog, VHDL 15

Executing Programs 1. Compile Converting programs written in a high-level language into an assembly language or a pseudo code 2. Assemble Converting programs written in an assembly language into a machine language Interpret Running programs written in a high-level language without compiling (one instruction at a time) 16

Programming Languages You Can Solve Any Problem Using Any Programming Language But Different Languages Are Designed To Serve Different Purposes Better. FORTRAN for scientific computations COBOL for business data processing LISP for list processing VisualBasic for user-interface programming SQL, PHP for database applications C++, Java for object-oriented software development C for most modern enterprise/scientific applications 17

Problem Solving by Programming Programming Is Translating very very precise instructions in some natural language (e.g., Korean, English, ) into some programming language (e.g., C, Java, ) to solve a problem that a human cannot solve easily. So, Before You Program, You Need Very Very Precise Instructions on How To Solve the Problem. You need a design. Before You Know How To Solve the ProblemYou Need To Know Precisely What The Problem Is ( What To Do ). You need to understand the requirements. 18

Problem Solving by Programming: Steps (1) Understand In Precise Detail What the Problem Is. Requirements Analysis (Document) (2) Understand Precisely How To Solve the Problem. Basic Design (Document) (3) For Each Way, Write Down Very Precise and Detailed Instructions (in Korean or English, and Using Diagrams) On How To Solve the Problem. Detailed Design (Document) (4) Choose the Best Way. (5) Translate the Instructions Into a C Program. Coding (Programming, Implementation) (Document) (6) Test (Validate, Verify) the C Program Test Cases (Document) 19