CS Computer Programming in Fortran 90 & C

Size: px
Start display at page:

Download "CS Computer Programming in Fortran 90 & C"

Transcription

1 CS Computer Programming in Fortran 90 & C Instructor: Dr. Henry Neeman TAs: Ashwin Seshadri, Hisham Qureshi Prerequisite: MATH 1523 (Elementary Functions) or equivalent Class Meetings: Tues/Thurs 10:30-11:45am GLCH 123 Lab sections: Fridays 10:30am, 1:30pm & 2:30pm Carson 206 Note: this class is NOT for students majoring in CS or enrolled in CS option programs.

2 Syllabus for CS Spring 2000 Computer Programming in Fortran 90 & C Class: Tuesdays & Thursdays 10:30-11:45am, George Lynn Cross Hall 123 Instructor: Dr. Henry Neeman, Sarkeys Energy Center 1252 (Boyd & Jenkins) (hneeman@ou.edu, ) Office hours: Tues & Thurs 12:15-1:15pm, Sarkeys Energy Center 1252 OR BY APPOINTMENT AT LEAST 24 HOURS IN ADVANCE Note: please contact me by unless it s an emergency; please don t call the CAPS or Computer Science offices if you can t find me in my office. Labs: Fridays 10:30-11:20am (section 011), 1:30-2:20pm (012) or 2:30-3:20pm (013) Carson Engineering Center 206 TAs: Ashwin Seshadri (sashwin@ou.edu), Carson Engineering Center B18 Office hours to be announced Hisham Qureshi (hisham aq@ou.edu), Carson Engineering Center B8 Office hours to be announced Prerequisite: MATH 1523 (Elementary Functions) or equivalent Note: this class is not for students majoring in CS or enrolled in CS option programs. Material to be covered Programming in Fortran 90 (about the first half of the semester) Programming in C (the rest of the semester) Texts Programming in Fortran 90/95, 5th ed., S. Lakshmivarahan & S.K. Dhall, 1999 Available at King Kopy (Lindsey & Jenkins) Problem Solving & Program Design in C, 3rd ed., J.R. Hamly & E.B. Koffman, 1999 Required work 7-10 Programming Projects (55%) Weekly Quizzes (10%): every Tuesday at 10:30am starting Jan 25 (usually open book) Quiz questions will be taken verbatim from the homework assigned the previous Tuesday. Midterm Exam (15%): date to be announced in class Final Exam (20%): Thursday May 4 8:00-10:00am Recommended work Readings will be assigned most weeks to supplement the lectures. Weekly homeworks will be assigned every Tuesday starting Jan 18. These will form the basis for the quizzes; they will not be collected or graded. Grading: A: 90% - 100% B: 80% - 89% C: 70% - 79% D: 60% - 69% F: less than 60% I reserve the right to curve the grades as I see fit, but the curve will not be harsher than this. Web postings All printed class materials, including lecture slides, homework assignments and programming project descriptions, will be posted on the class webpage:

3 Syllabus for CS Spring 2000 (continued) Computer Programming in Fortran 90 & C Occasionally, we may need to alert the class when an issue comes up. You should check your at least once a week. Class Policies Credit for programming projects No lateness deduction: if turned in on time (by 11:45am on the due date) 25% deducted: if late one class (by 11:45am the class after the due date) No credit: if later than 11:45am the class after the due date Helping each other I encourage you to discuss homework and programming projects with each other. However, IT IS NOT ACCEPTABLE to copy each other s work. Cheating can result in suspension or expulsion, so DON T EVEN THINK ABOUT IT! Help from us If you have questions or you re having trouble with the material, we urge you to come talk to us during office hours, or to make an appointment (at least 24 hours in advance) to meet at other times, or to send us . Working on programming projects Do not wait until the last minute to start your programming projects. Developing software takes time, and may depend on the availability and reliability of systems that you have no control over. If the computers are down the night before a due date, don t count on that buying you extra debugging time it certainly won t in the real world. Studying for exams Do not wait until the last minute to start studying for exams. The best way to ensure success is to keep up with the course material, and to ask questions. Students who actively participate in lectures and come to office hours typically learn and retain the material a lot better. Will this be on the exam? Yes. Everything covered in class, readings, labs, homeworks and programming projects is fair game unless specifically stated otherwise. Disability Any student in this course who has a disability that may prevent him or her from fully demonstrating his or her abilities should contact the instructor personally as soon as possible so that accommodations necessary can be made to ensure full participation and to facilitate your educational opportunities. Be prepared to bring documentation from the Office of Disabled Student Services. Academic Misconduct All cases of academic misconduct will be reported to the Dean of the appropriate College for adjudication.

4 Outline of Fortran 90 Topics Overview of Computing Computer Organization Languages Problem Solving Variables Data Types Basic Data Types 1D Arrays Derived Data Types Assignments Expressions Numeric Non-numeric Control Structures Branching Repetition Procedures Subroutines Functions Modularity Modules Interface Blocks Input/Output Formatting Files Note: this is roughly how this part of the semester will go.

5 What is a Computer? A computer is a programmable electronic device that can store, retrieve and process data. compact disc ZIP Hello...

6 Components of a Computer System COMPUTER SYSTEM HARDWARE Physical devices SOFTWARE Sets of instructions FIRMWARE Software that lives on a chip

7 Hardware Components HARDWARE CPU STORAGE INPUT/OUTPUT Control Unit Arithmetic/ Logic Unit Registers Cache $1600/MB Proc Speed Main Memory $2/MB 100 MB/sec Hard Disk $ /MB 8-40 MB/sec BASIC I/O Keyboard Mouse Monitor Printer MULTIMEDIA Speakers Amplifier CDROM Joystick CDROM $0.003/MB 7 MB/sec etc Scanner etc Secondary Storage Zip/Jaz/etc Disk $ /MB MB/sec Magnetic Tape $0.003/MB 1 MB/sec Floppy Disk $0.21/MB 0.03 MB/sec etc NETWORKING Modem Internet Port etc

8 Central Processing Unit Fetch Next Instruction Control Unit Increment Instruction Pointer Find Data Addresses in Memory Fetch Data from Memory Execute Instruction... Store Result in Memory Arithmetic/Logic Unit Add R03 = R03 + R63 Add R02 = R00 + R01 Multiply R02 = R00 * R01 Compare Bit Shift R00 < R01? R00 << R01 R03 = ~R01... Bit Invert R00 R01 R02 R03 R63 Registers... Registers are very expensive, because they have to be etched directly into the CPU.

9 Main Memory Address Cell or Location Contents 34,359,738,367 (32 MB) We can think of memory as one contiguous line of cells.

10 The Bus The bus is the connection from the CPU to main memory; all data travel along it. CPU Main Memory

11 Loading Data from Main Memory into the CPU I want the contents of 0x12AD36BC. Zzzzz... CPU Main Memory Bus Zzzzz... CPU putt putt putt... Load 0x12AD36BC Main Memory Bus CPU Yikes! Bonk! Load Main Memory 0x12AD36BC Bus There you go! CPU -75 Main Memory Bus I ll put it in R05. CPU Bonk! -75 Zzzzz... Main Memory Bus

12 Cache The CPU runs at, say, 500 MHz. Main Memory transfers run at, say, 100 MHz. So transferring data directly between the CPU and Main Memory is a bottleneck. Cache is a smaller memory that runs at the same speed as the CPU. CPU Cache Main Memory

13 Secondary Storage Nonvolatile: data don t disappear when power is turned off Slower and cheaper than main memory Most are portable: can be easily removed from your computer and taken to someone else s Medium Size Speed Type Can Port- Popular? Drive Media (GB) (MB/sec) write? able? ( ) ( /MB) Hard Disk Mag Yes No Very /MB DVD 17 up to 13 Optic No Yes Not yet Mag Tape 7 1 Mag Yes Yes Yes DVD-RAM 5.2* 2.7 Optic Yes Yes New! Jaz Disk Mag Yes Yes No CDROM 0.63 up to 7 Optic No Yes Very CD-RW R/1.8W Optic Yes Yes No SuperDisk 0.12 up to 0.7 Mag Yes Yes Not very Zip Disk Mag Yes Yes Kind of Floppy Mag Yes Yes Very Cassette «0.001 «1 Mag Yes Yes No Historical Paper Tape «0.001 «1 Paper Once Yes No Historical Punch Card «0.001 «1 Paper Once Yes No Historical Note: all numbers are approximate as of 10 January * DVD-RAM capacity will probably grow to about 15 GB in the next few years. Media Types Magnetic: read/write, but degrade over time and can be erased by magnets Optical: often can t write, but degrade slowly and can t be erased by magnets Paper: forget about it!

14 Software Components SOFTWARE SYSTEM SOFTWARE You buy these. APPLICATION SOFTWARE You write these.

15 Kinds of System Software SYSTEM SOFTWARE OPERATING SYSTEMS MSDOS Windows MacOS PalmOS OS/2 COMPILERS/ INTERPRETERS Fortran 90 C C++ Java Perl FUNCTION LIBRARIES LINPACK BLAS LAPACK HDF NetCDF Unix Linux BSD csh HTML NCAR Graphics AIX HP-UX IRIX... TEXT PROCESSORS SPREAD SHEETS MATH/STATS SYSTEMS DATABASES vi Lotus SAS Oracle pico MS Excel Mathematica Sybase MS Word LaTeX etc. Maple Matlab dbase MS Access

16 A Simple Fortran 90 Program scarecrow 1% cat helloworld.f90!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Program: helloworld!!!!!! Module: main!!!!!! Author: Henry Neeman !!!!!! Class: CS Spring 2000!!!!!! Lab: Sec 013 Fridays 2:30pm!!!!!! Description: Prints the sentence!!!!!! Hello, world. to standard!!!!!! output.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROGRAM helloworld!! Declarations!! No implicitly typed variables. IMPLICIT NONE!! Execution!! Print the sentence to stdout. PRINT *, Hello, world! END PROGRAM helloworld scarecrow 2% f90 -o helloworld helloworld.f90 scarecrow 3% helloworld Hello, world! scarecrow 4% The Same Program Without Comments PROGRAM helloworld IMPLICIT NONE PRINT *, Hello, world! END PROGRAM helloworld

17 Some Basic Elements of a Fortran Program Comment Block Program statement Tells compiler to make no assumptions about any of the program s variables Program body End statement!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Program: helloworld!!!!!! Module: main!!!!!! Author: Henry Neeman !!!!!! Class: CS Spring 2000!!!!!! Lab: Sec 013 Fridays 2:30pm!!!!!! Description: Prints the sentence!!!!!! Hello, world. to standard!!!!!! output.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROGRAM helloworld!! Declarations!! No implicitly typed variables. IMPLICIT NONE!! Execution!! Print the sentence to stdout. PRINT *, Hello, world! END PROGRAM helloworld

18 Languages Kinds of Languages Natural Programming Converting Between Programming Languages Compilers Interpreters Assemblers

19 Kinds of Languages Natural Languages Examples: English, Chinese, Swahili, Navajo, Quechua, Maori Typically can be described by formal rules Might not be bound by these rules in everyday use Any noun can be verbed. I might could get me one o them there computers. Can mix words and syntax from multiple languages in one sentence Hey, amigo, is it all right by you if I kibbitz your chess game while I watch your anime? Can be ambiguous When did he say she was going? State the time at which he said, She was going. According to him, at what time was she going? Programming Languages Completely described and bound by formal rules Cannot mix words and syntax from multiple languages Cannot be ambiguous Words and syntax must be EXACTLY correct

20 Programming Language Hierarchy High Level Languages Examples: Fortran, C, Java, HTML Usually are standardized, so can be used on any kind of computer Typically are designed for a particular kind of application e.g., Fortran for scientific applications, C for operating system design, HTML for webpages, SAS for statistics Assembly Language: specific to a particular CPU Set of simple commands (e.g., load a value from a location in memory; add two numbers; store a value into a location in memory) Machine Language: binary code that the CPU understands directly; binary representation of assembly language

21 Converting Between Languages Compilers, interpreters and assemblers are programs that turn programs people can read into programs computers can run. Compiler converts a high level language source code of a program into a machine language executable all at once must be completed before executing the program Examples: Fortran, C Interpreter converts a high level language source code into machine language converts and executes one statement at a time conversion and execution occur while running Examples: Perl, HTML, SAS, Mathematica Assembler converts a CPU-specific assembly code into machine language like a compiler, but low level

22 Our Old Friend helloworld.f90 scarecrow 212% script helloworld.script Script started on Sat Jan 8 12:53: scarecrow 1% cat helloworld.f90!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Program: helloworld!!!!!! Module: main!!!!!! Author: Henry Neeman !!!!!! Class: CS Spring 2000!!!!!! Lab: Sec 013 Fridays 2:30pm!!!!!! Description: Prints the sentence!!!!!! Hello, world. to standard!!!!!! output.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROGRAM helloworld!! Declarations!! No implicitly typed variables. IMPLICIT NONE!! Execution!! Print the sentence to stdout. PRINT *, Hello, world! END PROGRAM helloworld scarecrow 2% f90 -o helloworld helloworld.f90 scarecrow 3% helloworld Hello, world! scarecrow 4% ctrl-d Script done on Sat Jan 8 12:53: scarecrow 213%

23 Compiling f90 -o helloworld helloworld.f90 F90 Source Code: helloworld.f90 Compiler Assembly Code: helloworld.s Assembler Automatically called by compiler Object File: helloworld.o Linker/Loader Executable: helloworld

24 Compiler Details f90 -o helloworld helloworld.f90 F90 Source Code: helloworld.f90 Compiler Lexical Analysis Parsing Semantic Analysis Intermediate Code Generation Optimization Assembly Code Generation Assembly Code: helloworld.s Assembler Object File: helloworld.o Linker/Loader Executable: helloworld

25 Elements of a Compiler Compiler Lexical Analyzer: identifies program s word elements Comments (ignored) Keywords (e.g., PROGRAM, END) User-defined Identifiers (e.g., helloworld) Operators; e.g. arithmetic: + - * / ** comparisons:.eq..ne..lt..le..gt..ge. array subscripting: ( ) Parser: determines the program s grammar Semantic Analyzer: determines what the program does Intermediate Code Generator: expresses, as an assembly-like program, what the program does Optimizer: makes code more efficient Assembly Code Generator: produces the final assembly code that represents what the program does Assembler: converts assembly code to machine code Linker/Loader: creates the final, executable version of the machine code

26 Compiling a Fortran 90 Statement aplusb = a + b Lexical Analysis IDENTIFIER[aplusb] EQUAL IDENTIFER[a] PLUS IDENTIFIER[b] Parsing ASSIGN VARIABLE EXPRESSION ADD VARIABLE VARIABLE Semantic Analysis ASSIGN(VARIABLE[aplusb],ADDITION(VARIABLE[a],VARIABLE[b])) Intermediate Code Generation Load a into R00 Load b into R01 R02 = R00 + R01 Store R02 into aplusb Assembly Code Generation ld r00,a ld r01,b ad r02,r00,r01 st r02,aplusb

27 Assembly Code for helloworld.f90 on a DEC Alpha Assembly Code for helloworld.f90 on a Pentium III ldah $gp, ($27)!gpdisp!1 unop lda $gp, ($gp)!gpdisp!1 unop ldq $27, for_set_reentrancy($gp)!literal!2 lda $sp, -96($sp) stq $26, ($sp) ldq $16, $$5($gp)!literal!3 jsr $26, ($27), for_set_reentrancy!lituse_jsr!2 ldah $gp, ($26)!gpdisp!4 mov 12, $1 lda $gp, ($gp)!gpdisp!4 ldq $27, for_write_seq_lis($gp)!literal!5 ldq $3, $$7($gp)!literal!6 ldah $18, 901($31) stl $31, 8($sp) stq $1, 72($sp) lda $16, 8($sp) stq $3, 80($sp) mov -1, $17 ldq $19, $$3($gp)!literal!7 lda $18, -256($18) lda $20, 72($sp) jsr $26, ($27), for_write_seq_lis!lituse_jsr!5 ldah $gp, ($26)!gpdisp!8 ldq $26, ($sp) lda $gp, ($gp)!gpdisp!8 mov 1, $0 lda $sp, 96($sp) ret ($26) pushl %ebp movl %esp,%ebp subl $24,%esp movl $.C1_283,%eax movl %eax,(%esp) call pghpf_init movl $14,%eax movl %eax,8(%esp) movl $.C1_297,%edx movl %edx,4(%esp) movl $.C1_300,%ecx movl %ecx,(%esp) call pgf90io_src_info movl $.C1_283,%edx movl %edx,12(%esp) movl %edx,8(%esp) movl $pghpf_0_+8,%eax movl %eax,4(%esp) movl $.C1_301,%ecx movl %ecx,(%esp) call pgf90io_ldw_init movl %eax,-4(%ebp) movl $13,%eax movl %eax,16(%esp) movl $.C1_304,%ecx movl %ecx,12(%esp) movl $.C1_283,%edx movl %edx,8(%esp) movl $.C1_285,%eax movl %eax,4(%esp) movl $.C1_298,%ecx movl %ecx,(%esp) call pgf90io_ldw movl %eax,-4(%ebp) call pgf90io_ldw_end movl %eax,-4(%ebp) movl $.C1_283,%eax movl %eax,(%esp) call pgf90_exit leave ret

28 Assembly Code for helloworld.f90 on a DEC Alpha Using Fortran 90 Assembly Code for helloworld.f90 on a DEC Alpha Using Fortran 95 ldah $gp, ($27)!gpdisp!1 unop lda $gp, ($gp)!gpdisp!1 unop ldq $27, for_set_reentrancy($gp)!literal!2 lda $sp, -96($sp) stq $26, ($sp) ldq $16, $$5($gp)!literal!3 jsr $26, ($27), for_set_reentrancy!lituse_jsr!2 ldah $gp, ($26)!gpdisp!4 mov 12, $1 ================>>> lda $gp, ($gp)!gpdisp!4 ldq $27, for_write_seq_lis($gp)!literal!5 =============================>>> ldq $3, $$7($gp)!literal!6 ldah $18, 901($31) ==========>>> stl $31, 8($sp) stq $1, 72($sp) ==========>>> lda $16, 8($sp) ==========>>> stq $3, 80($sp) ==========>>> mov -1, $17 ==========>>> ldq $19, $$3($gp)!literal!7 lda $18, -256($18) =========>>> lda $20, 72($sp) jsr $26, ($27), for_write_seq_lis!lituse_jsr!5 ldah $gp, ($26)!gpdisp!8 ldq $26, ($sp) lda $gp, ($gp)!gpdisp!8 mov 1, $0 lda $sp, 96($sp) ret ($26) ldah $gp, ($27)!gpdisp!1 unop lda $gp, ($gp)!gpdisp!1 unop ldq $27, for_set_reentrancy($gp)!literal!2 lda $sp, -96($sp) stq $26, ($sp) ldq $16, $$5($gp)!literal!3 jsr $26, ($27), for_set_reentrancy!lituse_jsr!2 ldah $gp, ($26)!gpdisp!4 ldah $18, 388($31) <<<============ lda $gp, ($gp)!gpdisp!4 ldq $27, for_write_seq_lis($gp)!literal!5 mov 12, $1 <<<================== ldq $3, $$7($gp)!literal!6 lda $18, ($18) <<<========= stl $31, 8($sp) lda $16, 8($sp) <<<============= stq $1, 72($sp) <<<============= mov -1, $17 <<<============= stq $3, 80($sp) <<<============= ldq $19, $$3($gp)!literal!7 sll $18, 8, $18 <<<============= lda $20, 72($sp) jsr $26, ($27), for_write_seq_lis!lituse_jsr!5 ldah $gp, ($26)!gpdisp!8 ldq $26, ($sp) lda $gp, ($gp)!gpdisp!8 mov 1, $0 lda $sp, 96($sp) ret ($26)

29 Machine Code for helloworld.f How to Program in Machine Language Directly (1) Write assembly code for the program directly by hand. (2) For each assembly language opcode, look up the associated machine code bit pattern. (3) On the computer console, flip switches to match the machine code. (4) Press the Run button. Actually, on modern computers, programming in machine language directly is just about impossible.

30 Why Not Do Everything in Machine Language? Application Problem Programming in Machine Language Executable Incredibly tedious and ridiculously error-prone! Application Problem Programming in High Level Language Compiling Executable Fun and easy! Not nearly as tedious or error-prone! Why Not Do Everything in Assembly Language? Application Problem Programming in Pentium Assembly Language Can t be run on any other kind of computer. May be completely obsolete in a few years. Compiling for DEC Alpha Executable only for Pentiums Executable for Alphas Application Problem Programming in High Level Language Compiling for Pentium Executable for Pentiums Compiling for SGI/MIPS Executable for SGI/MIPS

31 The Programming Process Formulate Problem Construct Algorithm Choose Programming Language Write Program Compile Bugs? Yes Debug No Run Bugs? Yes No Get an A/Impress Your Boss/Sell for Zillions!

32 A Less Simple Fortran 90 Program!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Program: mynumber!!!!!! Author: Henry Neeman!!!!!! Class: CS Spring 2000!!!!!! Lab: Sec 013 Fridays 2:30pm!!!!!! Description: Asks the user to pick a number within a!!!!!! range, then tells whether the user s number!!!!!! matches the program s.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROGRAM mynumber!! Declarations!! No implicitly typed variables. IMPLICIT NONE! Parameter constants! minnum: the user s number should be at least this.! minnum: the user s number should be at most this.! mynum: the number that the computer is thinking of. INTEGER,PARAMETER :: minnum = 1, maxnum = 10 INTEGER,PARAMETER :: mynum = 5! Local variable! yournum: the user s chosen number. INTEGER :: yournum!! Execution!! Tell the user the range to choose from. PRINT *, I m thinking of a number between, minnum, & & and, maxnum,.! Ask for the user s number. PRINT *, What number am I thinking of?! Input the user s number. READ *, yournum! Check whether the number is correct. IF ((yournum.lt. minnum).or. (yournum.gt. maxnum)) THEN! Idiotproofing: if it s outside the range, complain. PRINT *, Hey! That s not between, minnum, & & and, maxnum,! ELSE IF (yournum.eq. mynum) THEN! If it s correct, be amazed. PRINT *, That s amazing! ELSE IF (ABS(yournum - mynum).eq. 1) THEN! If they re within 1, say they re close. PRINT *, Close, but no cigar; I had, mynum,. ELSE! Otherwise, be cruel. PRINT *, Bzzzt! My number was, mynum,. ENDIF END PROGRAM mynumber

33 A Less Simple Fortran 90 Program s Output scarecrow 2% f90 -o mynumber mynumber.f90 Linking: scarecrow 3% mynumber I m thinking of a number between 1 and 10. What number am I thinking of? 0 Hey! That s not between 1 and 10! scarecrow 4% mynumber I m thinking of a number between 1 and 10. What number am I thinking of? 2 Bzzzt! My number was 5. scarecrow 5% mynumber I m thinking of a number between 1 and 10. What number am I thinking of? 4 Close, but no cigar; I had 5. scarecrow 6% mynumber I m thinking of a number between 1 and 10. What number am I thinking of? 5 That s amazing! scarecrow 7%

Software Lesson 2 Outline

Software Lesson 2 Outline Software Lesson 2 Outline 1. Software Lesson 2 Outline 2. Languages 3. Ingredients of a Language 4. Kinds of Languages 5. Natural Languages #1 6. Natural Languages #2 7. Natural Languages #3 8. Natural

More information

Components of a Computer System

Components of a Computer System Hardware Outline 1. Hardware Outline 2. What is a Computer?/Components of a Computer System 3. Hardware That Computers Typically Have 4. Hardware Components 5. Central Processing Unit (CPU) 6. Central

More information

What is Software? Software, for our purposes, is just a word meaning programs. CS1313: Software Lesson Fall

What is Software? Software, for our purposes, is just a word meaning programs. CS1313: Software Lesson Fall 1. Software Outline 2. What is Software? 3. What is a Program? 4. What are Instructions? 5. What is a Programming Language? 6. What is Source Code? What is a Source File? 7. What is an Operating System?

More information

CS : Computer Programming, Spring 2000 Programming Project #1: Thinking of a Number Due in class Thursday 27 January 2000

CS : Computer Programming, Spring 2000 Programming Project #1: Thinking of a Number Due in class Thursday 27 January 2000 CS 1313 010: Computer Programming, Spring 2000 Programming Project #1: Thinking of a Number Due in class Thursday 27 January 2000 For online help check the class website http://www.ecn.ou.edu/cs1313010/

More information

Software Lesson 1 Outline

Software Lesson 1 Outline Software Lesson 1 Outline 1. Software Lesson 1 Outline 2. What is Software? A Program? Data? 3. What are Instructions? 4. What is a Programming Language? 5. What is Source Code? What is a Source File?

More information

CS150 Introduction to Computer Science 1. What is CS150? Who Are We? CS150 is a programming course You will learn

CS150 Introduction to Computer Science 1. What is CS150? Who Are We? CS150 is a programming course You will learn CS 150 Introduction to Computer Science 1 Professor: Shereen Khoja shereen@pacificu.edu 1 What is CS150? CS150 is a programming course You will learn o The mechanics of writing programs in C++ o How to

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization. August 21, 2018 CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/

More information

Compilers for Modern Architectures Course Syllabus, Spring 2015

Compilers for Modern Architectures Course Syllabus, Spring 2015 Compilers for Modern Architectures Course Syllabus, Spring 2015 Instructor: Dr. Rafael Ubal Email: ubal@ece.neu.edu Office: 140 The Fenway, 3rd floor (see detailed directions below) Phone: 617-373-3895

More information

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software.

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software. Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible

More information

ECE573 Introduction to Compilers & Translators

ECE573 Introduction to Compilers & Translators ECE573 Introduction to Compilers & Translators Tentative Syllabus Fall 2005 Tu/Th 9:00-10:15 AM, EE 115 Instructor Prof. R. Eigenmann Tel 49-41741 Email eigenman@ecn Office EE334C Office Hours Tu 10:15-11:30

More information

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus Northeastern Illinois University CS 200, Section 1, Programming I, Fall 2017 Syllabus, Page 1 of 7 CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus COURSE INFORMATION: Credit

More information

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment) Syllabus COSC-051-x - Computer Science I Fall 2018 Instructor: Jeremy Bolton, Ph.D. Asst Teaching Professor Department of Computer Science Office: TBD (see Course calendar for office hours) Email: jeremy.bolton@georgetown.edu

More information

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

Today. An Animated Introduction to Programming. Prerequisites. Computer programming Today 1 2 3 4 Computer programming What is this course about? We re making several assumptions about you as a student. In particular, we assume that you have: Never taken a programming course before. Have

More information

CPS104 Computer Organization Lecture 1. CPS104: Computer Organization. Meat of the Course. Robert Wagner

CPS104 Computer Organization Lecture 1. CPS104: Computer Organization. Meat of the Course. Robert Wagner CPS104 Computer Organization Lecture 1 Robert Wagner Slides available on: http://www.cs.duke.edu/~raw/cps104/lectures 1 CPS104: Computer Organization Instructor: Robert Wagner Office: LSRC D336, 660-6536

More information

CS 150 Introduction to Computer Science 1

CS 150 Introduction to Computer Science 1 CS 150 Introduction to Computer Science 1 Professor: Chadd Williams CS150 Introduction to Computer Science 1 Chadd Williams http://zeus.cs.pacificu.edu/chadd chadd@pacificu.edu Office 202 Strain Office

More information

14:332:331. Lecture 1

14:332:331. Lecture 1 14:332:331 Computer Architecture and Assembly Language Fall 2003 Lecture 1 [Adapted from Dave Patterson s UCB CS152 slides and Mary Jane Irwin s PSU CSE331 slides] 331 W01.1 Course Administration Instructor:

More information

CPS104 Computer Organization Lecture 1

CPS104 Computer Organization Lecture 1 CPS104 Computer Organization Lecture 1 Robert Wagner Slides available on: http://www.cs.duke.edu/~raw/cps104/lectures 1 CPS104: Computer Organization Instructor: Robert Wagner Office: LSRC D336, 660-6536

More information

CSE 504: Compiler Design

CSE 504: Compiler Design http://xkcd.com/303/ Compiler Design Course Organization CSE 504 1 / 20 CSE 504: Compiler Design http://www.cs.stonybrook.edu/~cse504/ Mon., Wed. 2:30pm 3:50pm Harriman Hall 116 C. R. Ramakrishnan e-mail:

More information

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I Lecture 1: Class Introduction DR. BO TANG ASSISTANT PROFESSOR HOFSTRA UNIVERSITY 1 9/7/16 CSC15 - Python OUTLINE What is Computer Science? What is this Class

More information

CS 3030 Scripting Languages Syllabus

CS 3030 Scripting Languages Syllabus General Information CS 3030 Scripting Languages Semester: Fall 2017 Textbook: Location: Instructor Info: None. We will use freely available resources from the Internet. Online Ted Cowan tedcowan@weber.edu

More information

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours:

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Administration Computers Software Algorithms Programming Languages

Administration Computers Software Algorithms Programming Languages Administration Computers Software Algorithms Programming Languages http://www.cs.sfu.ca/cc/130/johnwill/ This course does not use Canvas John Edgar 3 Come to class Read ahead Attend the labs You get practice

More information

Welcome to Solving Problems with Computers I

Welcome to Solving Problems with Computers I Welcome to Solving Problems with Computers I CS 16: Solving Problems with Computers I Lecture #1 Ziad Matni Dept. of Computer Science, UCSB Image from agorolabs on slideshare.com A Word About Registration

More information

3D Graphics Programming Mira Costa High School - Class Syllabus,

3D Graphics Programming Mira Costa High School - Class Syllabus, 3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and

More information

Outline of Fortran 90 Topics

Outline of Fortran 90 Topics Outline of Fortran 90 Topics Overview of Computing Computer Organization Languages Problem Solving Data Fortran 90 Character Set Variables Basic Data Types Expressions Numeric Non-numeric Control Structures

More information

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Section 1 Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: ron.mak@sjsu.edu

More information

Announcements. 1. Forms to return today after class:

Announcements. 1. Forms to return today after class: Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.

More information

CS503 Advanced Programming I CS305 Computer Algorithms I

CS503 Advanced Programming I CS305 Computer Algorithms I Syllabus: CS503 Advanced Programming I CS305 Computer Algorithms I Course Number: CS503-50/CS305-50 Course Title: Advanced Programming I/Computer Algorithms I Instructor: Richard Scherl Office: Howard

More information

ECE Object-Oriented Programming using C++ and Java

ECE Object-Oriented Programming using C++ and Java 1 ECE 30862 - Object-Oriented Programming using C++ and Java Instructor Information Name: Sam Midkiff Website: https://engineering.purdue.edu/~smidkiff Office: EE 310 Office hours: Tuesday, 2:30 to 4:00

More information

ESET 349 Microcontroller Architecture, Fall 2018

ESET 349 Microcontroller Architecture, Fall 2018 ESET 349 Microcontroller Architecture, Fall 2018 Syllabus Contact Information: Professor: Dr. Byul Hur Office: 008 Fermier Telephone: (979) 845-5195 FAX: E-mail: byulmail@tamu.edu Web: rftestgroup.tamu.edu

More information

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Spring 2018 El Camino College E. Ambrosio. Course Syllabus Course Syllabus Division: Mathematical Sciences Course Title: Computer Programming in Java Course #/Sections: CS 3/0127, 0128 Credit Hours: 4 Course Time/Room: Lecture: TTh 6:25 7:50 P.M./MBA 213 Lab:

More information

Cleveland State University

Cleveland State University Cleveland State University CIS 260/500 Introduction to Programming (4 credits). Spring 2015 Section 2/ 50 Class Nbr. 1810/1855 Tue, Thu 12:30 PM 2:20 PM Section 2/ 50 Class Nbr. 1813/1856. Tue, Thu 4:00

More information

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016 Course and Contact Information San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016 Instructor: Office Location:

More information

Computer Technology Division. Course Syllabus for: COMT Spring Instructor: Joe Bolen

Computer Technology Division. Course Syllabus for: COMT Spring Instructor: Joe Bolen Computer Technology Division Course Syllabus for: COMT 11009 Spring 2013 Instructor: Joe Bolen Course: Computer Assembly & Configuration COMT 11009 Spring 2013 / Tuscarawas / Call # 12133 / Section 800

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Course and contact information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours: Section 4

More information

! Learn how to think like a computer scientist. ! Learn problem solving. ! Read and write code. ! Understand object oriented programming

! Learn how to think like a computer scientist. ! Learn problem solving. ! Read and write code. ! Understand object oriented programming 1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to Computing and Programming with Java: A Multimedia

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

Lecture 01: Basic Structure of Computers

Lecture 01: Basic Structure of Computers CSCI2510 Computer Organization Lecture 01: Basic Structure of Computers Ming-Chang YANG mcyang@cse.cuhk.edu.hk Reading: Chap. 1.1~1.3 Outline Computer: Tools for the Information Age Basic Functional Units

More information

COSC 115A: Introduction to Web Authoring Fall 2014

COSC 115A: Introduction to Web Authoring Fall 2014 COSC 115A: Introduction to Web Authoring Fall 2014 Instructor: David. A. Sykes Class meetings: TR 1:00-2:20PM in Daniel Building, Room 102 Office / Hours: Olin 204E / TR 8:00-10:45AM, MWF 9:00 10:20AM,

More information

Instructors. ECE 152 Introduction to Computer Architecture. Undergrad Teaching Assistants. Course Website. Textbook.

Instructors. ECE 152 Introduction to Computer Architecture. Undergrad Teaching Assistants. Course Website. Textbook. Instructors ECE 152 Introduction to Computer Architecture Intro and Overview Copyright 2005 Daniel J. Sorin Duke University Slides are derived from work by Amir Roth (Penn) and Alvy Lebeck (Duke) Spring

More information

Computer Principles and Components 1

Computer Principles and Components 1 Computer Principles and Components 1 Course Map This module provides an overview of the hardware and software environment being used throughout the course. Introduction Computer Principles and Components

More information

CS 3030 Scripting Languages Syllabus

CS 3030 Scripting Languages Syllabus General Information CS 3030 Scripting Languages Semester: Summer 2013 Textbook: Location: Instructor Info: Website: None. We will use freely available resources from the Internet. Online Ted Cowan tedcowan@weber.edu

More information

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018 Course and Contact Information San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018 Instructor: Office Location:

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today: Welcome to EECS 213 Lecture topics and assignments Next time: Bits & bytes and some Boolean algebra Fabián E. Bustamante, Spring 2010 Welcome to Intro. to Computer

More information

CS232: Computer Architecture II

CS232: Computer Architecture II CS232: Computer Architecture II Spring 23 January 22, 23 21-23 Howard Huang 1 What is computer architecture about? Computer architecture is the study of building entire computer systems. Processor Memory

More information

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web COMP 117: Internet Scale Distributed Systems (Spring 2018) COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah

More information

Operating Systems Course Overview

Operating Systems Course Overview Operating Systems Course Overview Instructor: Kartik Gopalan Class website: http://oscourse.github.io Interfaces in a Computer System (1) User-level processes (2) (3) Libraries Operating System (4) (5)

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (s) Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location:

More information

EECE 321: Computer Organization

EECE 321: Computer Organization EECE 321: Computer Organization Mohammad M. Mansour Dept. of Electrical and Compute Engineering American University of Beirut Lecture 1: Introduction Administrative Instructor Dr. Mohammad M. Mansour,

More information

Lecture 1. Course Overview Types & Expressions

Lecture 1. Course Overview Types & Expressions Lecture 1 Course Overview Types & Expressions CS 1110 Spring 2012: Walker White Outcomes: Basics of (Java) procedural programming Usage of assignments, conditionals, and loops. Ability to write recursive

More information

CS240: Programming in C

CS240: Programming in C CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (Labs) Spring 2019 Course and Contact Information Instructor: Ron Mak Office Location:

More information

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone  Address Office Hours I n f o r m a t i o n a n d C o m p u t e r S c i e n c e D e p a r t m e n t Syllabus ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) Course Website: Blackboard CE 8 (WebCT) http://webcourses.kfupm.edu.sa/

More information

Fundamentals of Programming (Python) Basic Concepts. Ali Taheri Sharif University of Technology Spring 2018

Fundamentals of Programming (Python) Basic Concepts. Ali Taheri Sharif University of Technology Spring 2018 Fundamentals of Programming (Python) Basic Concepts Ali Taheri Sharif University of Technology Outline 1. What is a Computer? 2. Computer System Organization 3. What is a Computer Program? 4. Programming

More information

C Programming for Engineers Introduction

C Programming for Engineers Introduction C Programming for Engineers Introduction ICEN 360 Spring 2017 Prof. Dola Saha 1 Introductions Instructor Prof. Dola Saha, PhD University of Colorado Boulder http://www.albany.edu/faculty/dsaha/ dsaha@albany.edu

More information

Course and Unix Intro

Course and Unix Intro Course and Unix Intro Comp-206 : Introduction to Software Systems Lecture 1 Alexandre Denault Computer Science McGill University Fall 2006 Instructor Alexandre Denault Graduate student, working in the

More information

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS CIW JAVASCRIPT FUNDAMENTALS CERTIFICATION WEB 2391

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS CIW JAVASCRIPT FUNDAMENTALS CERTIFICATION WEB 2391 PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS CIW JAVASCRIPT FUNDAMENTALS CERTIFICATION WEB 2391 Class Hours: 1.0 Credit Hours: 1.0 Laboratory Hours: 0.0 Revised: Fall 06 Note: This course

More information

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 SYL-410-2014C CS 410 - Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 Course location: 107 ERB, Evansdale Campus Course times: Tuesdays and Thursdays, 2:00-3:15 Course

More information

Chris Riesbeck, Fall Introduction to Computer Systems

Chris Riesbeck, Fall Introduction to Computer Systems Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck

More information

CSC116: Introduction to Computing - Java

CSC116: Introduction to Computing - Java CSC116: Introduction to Computing - Java Intro to CSC116 Course Information Introductions Website Syllabus Computers First Java Program Text Editor Helpful Commands Java Download Course Instructor: Instructors

More information

CS 4120 and 5120 are really the same course. CS 4121 (5121) is required! Outline CS 4120 / 4121 CS 5120/ = 5 & 0 = 1. Course Information

CS 4120 and 5120 are really the same course. CS 4121 (5121) is required! Outline CS 4120 / 4121 CS 5120/ = 5 & 0 = 1. Course Information CS 4120 / 4121 CS 5120/5121 Introduction to Compilers Fall 2011 Andrew Myers Lecture 1: Overview Outline About this course Introduction to compilers What are compilers? Why should we learn about them?

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Pharmacy college.. Assist.Prof. Dr. Abdullah A. Abdullah

Pharmacy college.. Assist.Prof. Dr. Abdullah A. Abdullah The kinds of memory:- 1. RAM(Random Access Memory):- The main memory in the computer, it s the location where data and programs are stored (temporally). RAM is volatile means that the data is only there

More information

CSCE150A. Administrivia. Overview. Hardware. Software. Example. Program. Pseudocode. Flowchart. Control Structures. Hello World Program CSCE150A

CSCE150A. Administrivia. Overview. Hardware. Software. Example. Program. Pseudocode. Flowchart. Control Structures. Hello World Program CSCE150A Computer Science & Engineering 150A Problem Solving Using Computers Lecture 01 - Course Introduction Stephen Scott (Adapted from Christopher M. Bourke) Roll Syllabus Course Webpage: http://cse.unl.edu/~sscott/teach/classes/cse150af09/

More information

Computer Science & Engineering 150A Problem Solving Using Computers

Computer Science & Engineering 150A Problem Solving Using Computers Computer Science & Engineering 150A Problem Solving Using Computers Lecture 01 - Course Introduction Stephen Scott (Adapted from Christopher M. Bourke) 1 / 43 Fall 2009 Roll Syllabus Course Webpage: http://cse.unl.edu/~sscott/teach/classes/cse150af09/

More information

Computing and compilers

Computing and compilers Computing and compilers Comp Sci 1570 to Outline 1 2 3 4 5 Evaluate the difference between hardware and software Find out about the various types of software Get a high level understanding of how program

More information

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software. Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible

More information

COMP-202: Foundations of Programming. Lecture 2: Java basics and our first Java program! Jackie Cheung, Winter 2015

COMP-202: Foundations of Programming. Lecture 2: Java basics and our first Java program! Jackie Cheung, Winter 2015 COMP-202: Foundations of Programming Lecture 2: Java basics and our first Java program! Jackie Cheung, Winter 2015 Assignment Due Date Assignment 1 is now due on Tuesday, Jan 20 th, 11:59pm. Quiz 1 is

More information

Computer Organization

Computer Organization Chapter 5 Computer Organization Figure 5-1 Computer hardware :: Review Figure 5-2 CPU :: Review CPU:: Review Registers are fast stand-alone storage locations that hold data temporarily Data Registers Instructional

More information

Computers in Engineering COMP 208. Computer Structure. Computer Architecture. Computer Structure Michael A. Hawker

Computers in Engineering COMP 208. Computer Structure. Computer Architecture. Computer Structure Michael A. Hawker Computers in Engineering COMP 208 Computer Structure Michael A. Hawker Computer Structure We will briefly look at the structure of a modern computer That will help us understand some of the concepts that

More information

CSC116: Introduction to Computing - Java

CSC116: Introduction to Computing - Java CSC116: Introduction to Computing - Java Course Information Introductions Website Syllabus Computers First Java Program Text Editor Helpful Commands Java Download Intro to CSC116 Instructors Course Instructor:

More information

Compilers. Computer Science 431

Compilers. Computer Science 431 Compilers Computer Science 431 Instructor: Erik Krohn E-mail: krohne@uwosh.edu Text Message Only: 608-492-1106 Class Time: Tuesday & Thursday: 9:40am - 11:10am Classroom: Halsey 237 Office Location: Halsey

More information

Chapter One. Introduction to Computer System

Chapter One. Introduction to Computer System Principles of Programming-I / 131101 Prepared by: Dr. Bahjat Qazzaz -------------------------------------------------------------------------------------------- Chapter One Introduction to Computer System

More information

MPATE-GE 2618: C Programming for Music Technology. Syllabus

MPATE-GE 2618: C Programming for Music Technology. Syllabus MPATE-GE 2618: C Programming for Music Technology Instructor Dr. Schuyler Quackenbush schuyler.quackenbush@nyu.edu Lab Teaching Assistant TBD Description Syllabus MPATE-GE 2618: C Programming for Music

More information

CS 113: Introduction to

CS 113: Introduction to CS 113: Introduction to Course information MWF 12:20-1:10pm 1/21-2/15, 306 Hollister Hall Add/drop deadline: 1/28 C Instructor: David Crandall See website for office hours and contact information Prerequisites

More information

The Programming Process Summer 2010 Margaret Reid-Miller

The Programming Process Summer 2010 Margaret Reid-Miller The Programming Process 15-110 Margaret Reid-Miller Hardware Components Central Processing Unit (CPU) Program control Arithmetic/logical operations Coordinates data movement between memory and registers

More information

CS241 Computer Organization Spring Introduction to Assembly

CS241 Computer Organization Spring Introduction to Assembly CS241 Computer Organization Spring 2015 Introduction to Assembly 2-05 2015 Outline! Rounding floats: round-to-even! Introduction to Assembly (IA32) move instruction (mov) memory address computation arithmetic

More information

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST) Programming Concepts & Algorithms Course Syllabus Course Title Course Code Computer Department Pre-requisites Course Code Course Instructor Programming Concepts & Algorithms + lab CPE 405C Computer Department

More information

An Introduc+on to Computers and Java CSC 121 Spring 2017 Howard Rosenthal

An Introduc+on to Computers and Java CSC 121 Spring 2017 Howard Rosenthal An Introduc+on to Computers and Java CSC 121 Spring 2017 Howard Rosenthal Lesson Goals Learn the basic terminology of a computer system Understand the basics of high level languages, including Java Understand

More information

Week 0: Intro to Computers and Programming. 1.1 Why Program? 1.2 Computer Systems: Hardware and Software. Hardware Components

Week 0: Intro to Computers and Programming. 1.1 Why Program? 1.2 Computer Systems: Hardware and Software. Hardware Components Week 0: Intro to Computers and Programming Gaddis: Sections 1.1-3 and 2.1 CS 1428 Fall 2014 Jill Seaman 1.1 Why Program? Computer programmable machine designed to follow instructions Program instructions

More information

CSCI 565 Compiler Design and Implementation Spring 2014

CSCI 565 Compiler Design and Implementation Spring 2014 CSCI 565 Compiler Design and Implementation Spring 2014 Instructor: Description: Prerequisites: Dr. Pedro C. Diniz, e-mail pedro@isi.edu Lectures: Thursday, 8.00 10.50 AM, RTH 217, phone: (213) 740 4518

More information

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis VE281 Data Structures and Algorithms Introduction and Asymptotic Algorithm Analysis Time and Location Time: Tuesday 10:00-11:40 am, Thursday 10:00-11:40 am. Location: Dong Xia Yuan 200 2 Instructor Weikang

More information

Introduction to Computer Systems

Introduction to Computer Systems CS-213 Introduction to Computer Systems Yan Chen Topics: Staff, text, and policies Lecture topics and assignments Lab rationale CS 213 F 06 Teaching staff Instructor TA Prof. Yan Chen (Thu 2-4pm, Tech

More information

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid)

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid) CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid) Instructor: Kevin M. Anderson, MBA, CCAI, MCSE, MCDBA, Office Phone: (916) 650-2926 CNE, LCP, CIW Associate, Security+, N +, A

More information

Principles of computer programming. Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković

Principles of computer programming. Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković Principles of computer programming Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković E-mail: mtanaskovic@singidunum.ac.rs Course organization Lectures: Presentation of concepts and

More information

New York City College of Technology/CUNY Department of Computer Systems Technology. CST2400 Computer System Management and Support 4 hours 3 credits

New York City College of Technology/CUNY Department of Computer Systems Technology. CST2400 Computer System Management and Support 4 hours 3 credits New York City College of Technology/CUNY Department of Computer Systems Technology CST2400 Computer System Management and Support 4 hours 3 credits Instructor: Office Phone: Office Hours: Class Meetings:

More information

Syllabus of ENPM 691: Secure Programming in C

Syllabus of ENPM 691: Secure Programming in C Syllabus of ENPM 691: Secure Programming in C Spring Semester 2018 Instructor: Dharmalingam Ganesan, PhD Contact: dganesan@umd.edu Class hours: Thursday 7:00 PM to 9:40 PM Class location: TBA Course Description:

More information

Welcome to Computer Organization and Design Logic

Welcome to Computer Organization and Design Logic Welcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Fall 2018 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB A Word About Registration for CS64

More information

Agenda Computer Hardware Input Devices Output Devices Secondary Storage Computer Software System Software Application Software Working with Windows

Agenda Computer Hardware Input Devices Output Devices Secondary Storage Computer Software System Software Application Software Working with Windows Agenda Computer Hardware Input Devices Output Devices Secondary Storage Computer Software System Software Application Software Working with Windows A Computer is a device which allows you to Input raw

More information

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck)

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck) CS61C Machine Structures Lecture 1 Introduction 8/27/2006 John Wawrzynek (Warzneck) (http://www.cs.berkeley.edu/~johnw/) http://www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L01 Introduction (1) What are Machine

More information

Introduction to Basis and Practice in Programming

Introduction to Basis and Practice in Programming Introduction to Basis and Practice in Programming Fall 2015 Jinkyu Jeong (jinkyu@skku.edu) 1 Course Overview Course Basics! Class hour GEDB029-45: Mon. 13:00 ~ 14:50 GEDB029-46: Tue. 13:00 ~ 14:50 1~2

More information

Basic Concepts COE 205. Computer Organization and Assembly Language Dr. Aiman El-Maleh

Basic Concepts COE 205. Computer Organization and Assembly Language Dr. Aiman El-Maleh Basic Concepts COE 205 Computer Organization and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals [Adapted from slides of

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today:! Welcome to EECS 213! Lecture topics and assignments Next time:! Bits & bytes! and some Boolean algebra Fabián E. Bustamante, 2007 Welcome to Intro. to Computer

More information

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0 About the Course it's all on the web page... http://www.ugrad.cs.ubc.ca/~cs213/winter1t1/ - news, admin details, schedule and readings CPSC 213 - lecture slides (always posted before class) - 213 Companion

More information

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CS 240 Fall 2015 Section 004. Alvin Chao, Professor CS 240 Fall 2015 Section 004 Alvin Chao, Professor Today Course overview Data Structures / Algorithms Course policies The C language Motivation Computers are digital Data is stored in binary format (1's

More information

378: Machine Organization and Assembly Language

378: Machine Organization and Assembly Language 378: Machine Organization and Assembly Language Spring 2010 Luis Ceze Slides adapted from: UIUC, Luis Ceze, Larry Snyder, Hal Perkins 1 What is computer architecture about? Computer architecture is the

More information

Updated: 2/14/2017 Page 1 of 6

Updated: 2/14/2017 Page 1 of 6 MASTER SYLLABUS 2017-2018 A. Academic Division: Business, Industry, and Technology B. Discipline: Engineering Technology C. Course Number and Title: ENGR1910 Engineering Programming D. Course Coordinator:

More information

CS 0449 Intro to Systems Software Fall Term: 2181

CS 0449 Intro to Systems Software Fall Term: 2181 CS 0449 Intro to Systems Software Fall Term: 2181 Class Recitation Recitation Recitation Time: 11:00am 12:15pm 03:00pm 03:50pm 10:00am 10:50am 09:00am 09:50am Days: TH T W F Number 19730 20024 19731 27127

More information