CSCI 192 Engineering Programming 2. Subject Overview

Size: px
Start display at page:

Download "CSCI 192 Engineering Programming 2. Subject Overview"

Transcription

1 CSCI 192 Engineering Programming 2 Week 1 Subject Overview Lecturer: Dr. Markus Hagenbuchner Slides by: Igor Kharitonenko and Markus Hagenbuchner Room markus@uow.edu.au UOW /07/2010 1

2 Lecture Overview What you need to know about lectures, labs, tutorials, assignments and exams. What Engineering Programming 2 is and how it is related to Engineering Programming 1 and your engineering degree. 27/07/2010 2

3 Lecturer: Lecturers Dr Markus Hagenbuchner 3 years of industry and 18 years of academic experience Machine Fitter, Liebherr, Germany Uni Ulm, Germany, AI and Machine Learning in robotics UoW, Data Mining and Machine Learning in structured domains. 66 papers and book chapters published. 27/07/2010 3

4 Tutors Wednesday Labs: Ms Angela Piper, PhD candidate Mr Ce Zhan, PhD candidate Friday Labs Mr Hooman Shidanshidi, PhD candidate Dr Markus Hagenbuchner, Senior Lecturer 27/07/2010 4

5 Method of Presentation Lectures : 2 hours per week, 13 lectures Tutorial sessions : 1 hour per week, 12 sessions starting from week 2 Laboratory sessions: 2 hours per week, 12 sessions starting from week 2 Assignments : 2-3 assignments Total : 5 contact hours This is a 6 credit point subject. According to Course Rule 003, this requiter at least 12 hour per week, including self-directed study 27/07/2010 5

6 Assessment Assessment Items Percentage of Final Mark Due Date Tutorial sessions Marks for item Lab sessions 20 marks Assignments 20 marks Final Examination 60 marks Total 100 marks Minimum % required of the item to pass subject Satisfactory attendance 40% 30% weeks 2-13 earned during weeks 3-12 as scheduled 40% exam week as per schedule 50% The mark must be 50 to pass the subject 27/07/2010 6

7 Caution CSCI192 is a follow up to CSCI191 It is delivered only in spring sessions If you fail CSCI192 in spring session you cannot study CSCI192 in the autumn session To minimise your risk, take this subject very seriously from the first week Contact the subject coordinator as soon as you feel that your progress is not good 27/07/2010 7

8 Lectures The lectures will introduce fundamental computing concepts and the principles of programming including hardware architecture, algorithm design, C, C++ and Assembly languages. The lectures will contain a sufficient number of examples and slides with animation to explain complex technical aspects. It is highly recommended that you implement the examples, compile and run the programs on your computer You are encouraged to participate actively in the lecture sessions answering quiz questions and making your own notes that facilitate your understanding. 27/07/2010 8

9 Tutorial Sessions Week 2 Week 13 Thursday 11:30-12: The tutorial sessions will be one week behind the lectures to provide sufficient time for preparation To get prepared, students need to go through lecture notes, suggested chapters of the text book and complete the questions in the textbook that are specified in the lecture notes Tutorial sheets will be distributed at the beginning of each session Students are required to complete the tutorial tasks and then participate in the discussions of the solutions 27/07/2010 9

10 Laboratory Sessions Week 2 Week 13 Lab room The laboratory sessions will be one week behind the lectures to provide sufficient time for preparation To get prepared, students need to look through lecture notes, the tutorial tasks and solutions, suggested chapters of the text book and complete the questions that are specified in the lecture notes Lab tasks are available online and can be completed before the laboratory sessions Students are required to complete the lab tasks within the first 80 minutes of the 2 hour lab session and show the solution to the tutor for marking The marks are given according to the number of tasks completed and understanding of the material covered ( see CSCI192 Subject Outline for more details ) 27/07/

11 First Laboratory Session Week 2 Go to the laboratory room Wednesday lab: 14:30-16:30 Friday lab: 13:30-15:30 You must be enrolled in exactly one of these labs. Tasks will be: -Debugging - Review of common programming errors ( from CSCI191 ) 27/07/

12 Assignments There will be 2-3 programming assignments worth a combined 20% When an assignment is released, download the assignment description from the subject website. Read carefully the design specification and make sure you understand what you are required to do ( attend a consultation if needed ) Your completed solutions must be submitted electronically via an online submission system. No submission via will be accepted One week is allocated for submitting each assignment Exact time after which the submitted assignment will not be accepted by the system will be indicated in every assignment specification Late assignments will not be accepted without a granted special consideration ( see CSCI192 Subject Outline for more details ) 27/07/

13 Self-directed Study Download lecture notes from the subject website, print a copy and look through the lecture notes prior to a lecture Attend the lecture, taking notes and adding explanations on the printed copy Read related chapters in the textbook together with lecture notes and attend consultations for clarification if required Keep all lecture notes, assignment, tutorial and lab task solutions in one folder that can be a very useful collection of materials for exam preparation 27/07/

14 CSCI192 Website The site contains the following sections: - Subject Outline - Lecture Notes -Assignments - Laboratory Sessions - Resources The Web site is the subject s Notice Board. All important notices related to CSCI192 will be posted there 27/07/

15 Subject Materials Textbook: Jeri. R. Hanly, Elliot B Koffman, C Program Design for Engineers. It may be purchased from the UniCentre bookshop. Lecture notes: The lecture notes will be available on the subject website. Students are encouraged to print their copies. The lecture notes may not include all examples and animations given in lectures 27/07/

16 Consultation Times Dr Markus Hagenbuchner Tuesday 14:30 16:30 Thursday 10:30 11:30 and 12:30 13:30 27/07/

17 Emergency Evacuation Procedure Leave the building immediately via the nearest exit Do not re-enter the building until advised Assembly areas: Lectures & Tutorials Labs 27/07/

18 Engineering Programming II Overview: What the focus of this subject is What topics are included and why How the acquired skills can be useful for your engineering degree 27/07/

19 CSCI191 Outcomes Having completed CSCI191, students are expected to: develop moderately complex C programs according to design specifications structure their programs in readable and reusable modules 27/07/

20 Programming languages Quiz: There exists literally hundreds of programming languages. Name a few Why did we decide to use C as a basis for this subject? Provide some reasons 27/07/

21 C Compilation Model (review) CSCI191 focus However, correctly written C programs need to be properly converted into binary executable files to optimise your program you need to understand how it interacts with the operating system and hardware in some situations, programming languages other that C can be more efficient you may be involved into a multi-language software project gcc ansi Wall main.c 27/07/

22 C Compilation Process gcc o tedit ansi Wall tedit.c I /usr/include L /usr/lib lm Driver: gcc Pre-processor: gcc is a set of tools cpp o tedit.i tedit.c C Compiler and Optimiser: cc1 o tedit.s tedit.i Assembler: as o tedit.o tedit.s Linker: 27/07/2010 ld o tedit tedit.o -lm 22

23 C Compilation Process To see messages produced at all compilation stages use v option $ gcc o hello.exe v ansi Wall hello.c Reading specs from /usr/lib/gcc-lib/3.2.2/specs Configured with:../configure prefix= GNU CPP version (i386 Linux/ELF) GNU C version cc1 lang-c -o /tmp/cc2dfr.s GNU assembler version as V Qy o /tmp/cc2dfr.o /tmp/cc2dfr.s /07/

24 Pre-processor C pre-processor is a program usually called cpp gcc calls cpp passing to it all relevant options -I -Wcomments cpp - takes a C source file and handles all pre-processor definitions: #include, #define, #pragma, etc. - removes all comments it produces a pre-processed C source file *.i You can invoke it explicitly and stop further processing gcc o tedit.i E tedit.c 27/07/

25 Pre-processed Source File hello.c #include <stdio.h> int main(void) { printf("hello World\n"); /*display a message*/ return 0; } hello.i typedef unsigned char u_char; typedef unsigned short int u_short; extern int getc (FILE * stream) ; extern int printf ( const char * restrict _format) ; int main(void) { printf("hello World\n"); return 0; 27/07/ }

26 C Compiler and Optimiser C compiler is a program usually called cc1 gcc calls cc1 passing to it all relevant options -ansi Wall O1 cc1 - takes a pre-processed C source file *.i and translates it into assembly language - produces an assembly language source file *.s You can invoke it explicitly and stop further processing gcc S tedit.c 27/07/

27 Assembly Source File hello.i extern int printf ( const char * restrict _format) ; int main(void) { printf("hello World\n"); return 0; } hello.s.lc0:.string "Hello World\n".text main: pushl %ebp movl %esp, %ebp call printf movl $0, %eax ret 27/07/

28 Assembler Assembler is a program usually called as gcc calls as passing to it all relevant options -Xassembler as - takes an assembly language source file and translates it into machine language binary codes - produces an object file *.o You can invoke it explicitly and stop further processing gcc c tedit.c 27/07/

29 Object File hello.s.lc0:.string "Hello World\n".text main: pushl %ebp movl %esp, %ebp call printf movl $0, %eax ret hello.o printf Library Function call 27/07/

30 Linker Linker is a program usually called ld gcc calls ld passing to it all relevant options -L -l ld - takes object files, required libraries and links them together - produces an executable file in a format that the operating system supports You can invoke it explicitly gcc o tedit.exe tedit.o -lm 27/07/

31 ELF ELF is a binary executable file standard supported by UNIX/Linux operating systems It contains several sections ELF header.text.rodata.bss.data... readelf S a.out Auxiliary information Processor instructions constants, string literals un-initialised data initialised data Displays information about ELF file a.out size A a.out Displays size of the ELF file segments 27/07/

32 Program Loading Hard Drive Computer Memory ELF Operating System Loader Stack Heap Un-initialised Data Initialised Data Instructions 27/07/

33 Memory Layout of a C program #include <stdio.h> C Source Code int addnumbers( int a, int b); Loaded C Program Stack int array1[100]; int array2[100] = { 3, 7, 15, -4 }; int main(void) { int result, num1, num2=7; int array3[100]; num1 = 5; result = addnumbers(num1, num2); return 0; } int addnumbers( int a, int b) { return (a+b); } Heap Un-initialised Data Initialised Data Instructions 27/07/

34 Program Execution Shell $ a.out $ Execution begins here Control returns to Shell Linux Start-up code stdlib Shutdown code main( ) is called printf( ) scanf( ) fprintf( ) return 0 Your program main().data.bss stack 27/07/

35 Conclusions To write efficient programs, besides sound knowledge of C language you need to understand: - memory allocation and management issues - interaction between instructions and data - basic machine codes - fundamentals of microprocessor architecture - the process of converting data and C statements into binary form 27/07/

36 Quiz Is gcc a single program or a package? What is the difference between *.c and *.i files? Are *.s files text or binary files? Are *.o files text or binary files? What is incomplete in *.o object files? What is the difference between object and executable files? Are data and computer instructions mixed inside one memory segment? 27/07/

37 Binary Numbering System Programmer int a = 5; Computer Most of the time, conversion between decimal and binary numbering systems is carried out by computers You may need to use binary numbering system to represent data in the following situations: - direct access to computer or external hardware - bit-wise operations - system software development 27/07/

38 Binary vs. Decimal The decimal system uses ten symbols to represent numbers Symbol set: The binary system uses two symbols to represent numbers Symbol set: 0 1 Example: one 1 1 two 2 10 tree 3 11 four /07/

39 Other numbering systems Other numbering systems used in computer science are octal and hexdecimal. Octal: the basis is 8, the symbols used are 0, 1, 2, 3, 4, 5, 6, 7. Is not used anymore. Hexdecimal: the basis is 16, the symbols used are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Example: FF /07/

40 Binary vs. Decimal Apart from symbol sets, there is no conceptual difference between decimal and binary systems Both systems are positional Example: hundreds tens ones five hundred thirty four: = 5* * * is a base A weight of each symbol depends on its position Hundred: In old-english "hund" means "tens", "rad" means "number" 27/07/

41 Binary vs. Decimal Binary number Example: eights fours twos 1011 ones 1011 = 1* * * *2 0 2 is a base A weight of each symbol depends on its position The binary system and binary arithmetic was invented by Gottfried Leibniz and published in 1701 in Paris. The first computer utilising the binary system was built in 1946 at the University of Pennsylvania. 27/07/

42 Binary system A computer memory consists of a set of switches called bits which can be in one of the two states on and off. This means that a bit can store at most one value at a time, and the value can either be 0 or 1. A set of bits is needed in order to store values larger than 1. For example, a set of 8 bits is called a byte which can hold the value of 256 different combinations of 8 on and off values. Thus, all computations in a computer system are based on the binary system. 27/07/

43 Binary to Decimal conversion Binary number = 1* * * * * * = = = = = = = = = 1* *8 + 1*2 + 1*1 = 43 27/07/

44 Quiz Aside of binary and decimal, what other numbering systems are used in computer science? Convert to decimal 0000 = 1000 = 1111 = 0*8 + 0*4 + 0*2 + 0 = 0 1*8 + 0*4 + 0*2 + 0 = 8 1*8 + 1*4 + 1*2 + 1 = = = = = = = = = /07/

45 Decimal to Binary conversion Conversion from binary to decimal: repetitive multiplication and addition Conversion from decimal to binary: repetitive division by 2 and subtraction Example: Convert 23 to binary 23 / 2 = 11 and the remainder = 1 11 / 2 = 5 and the remainder = 1 5 / 2 = 2 and the remainder = 1 2 / 2 = 1 and the remainder = 0 1 / 2 = 0 and the remainder = = STOP Result 27/07/

46 Quiz Convert to binary: 5 The result 5 / 2 = and the remainder = 2 / 2 = and the remainder = / 2 = 0 and the remainder = We can STOP here Convert to binary: 9 The result 27/07/

47 Binary Addition Addition is carried out on individual bits taking into account carry bits Basic rules: = = = 10 Example: Carry /07/

48 Signed Binary Numbers Signed binary numbers are represented in two's complement format unsigned format: 5 = 101 two's complement: 5 = 0101 two's complement: -5 = 1011 an extra bit is required to represent a sign To change a negative unsigned binary number to its two's complement format: 1. Write down its binary representation ignoring a sign: Attach an extra zero at the left: Invert the number( change 0 to 1 and 1 to 0): Add 1 to the number: /07/

49 Binary Subtraction When binary numbers are represented in two's complement format, subtraction is carried out as addition with a negative number = 13 + (-10) = > > in two's complement > > in two's complement (-10) > 3 27/07/

50 Storing Integral Numbers char ASCII codes and numbers in the range [-128 to 127] Format: 8 bits two's complement binary > > > -1 unsigned char numbers in the range [0 to 255] Format: 8 bits unsigned binary > > > /07/

51 Storing Integral Numbers short int numbers in the range [ to ] Format: 16 bits two's complement binary > > > -1 unsigned short int numbers in the range [0 to ] Format: 16 bits unsigned binary > > > /07/

52 Storing Integral Numbers int numbers in the range [ to ] Format: 32 bits two's complement binary > > > -1 unsigned int numbers in the range [0 to ] Format: 32 bits unsigned binary > > > /07/

53 Commonly Used Definitions A bit: A byte: A word: 0 or bit 6 Bit 7 or the most significant bit... bit 2 bit 1 Bit 0 or the least significant bit The high byte The low byte 27/07/

54 Overflow A result of binary arithmetic operations may propagate into the sign bit Example: char result, num1 = 65, num2=67; result = num1 + num2; printf("the result is %d", result); /* is it 132? */ No errors reported A carry bit =1 turns the result into negative > /07/

55 Overflow A result of binary arithmetic operations may fall outside the range Example: unsigned char result, num1 = 130, num2=131; result = num1 + num2; printf("the result is %d", result); /* is it 261? */ No errors reported A carry bit =1 is lost > 5 27/07/

56 Caution C does not provide an implicit type conversion between signed and unsigned data Example: unsigned char result; char num1 = 100, num2=120; result = num1 - num2; printf("the result is %d\n", result); Output: The result is 236 However: printf("the result is %d\n", (char)result); Output: The result is /07/

57 Hexadecimal Numbers Large binary numbers are cumbersome to read Conversion of Decimal numbers into binary is not so straightforward Hexadecimal numbers are usually used to represent binary numbers The hexadecimal numbering system is based on 16 (hexadec is 16 in ancient Greek) Hex 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Dec 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 27/07/

58 Hexadecimal Numbers Hexadecimal Binary A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Each digit in a hexadecimal number represents 4 binary bits Hex: 8C Bin: Hex: 47 Bin: C language syntax int num1 = 1765; /* decimal */ int num2 = 0x1765; /* hexadecimal */ 27/07/

59 Example A software driver controls communication with Intel 8251 interface chip. The control register has 8 bit that are responsible for enabling/disabling different modes. bit 0: 1 transmission enabled, 0 disabled bit 2: 1 reset previous errors bit 5: 0 generate RTS signal bit 7: 1 enable search Declare a variable of type unsigned char that stores an initial value of the control register: A E unsigned char controlreg = 0xAE; 27/07/

60 Quiz The maximum value of a char type variable is: What is the corresponding hexadecimal value? > 7F Declare a constant HIGHLIMIT equal to the maximum hexadecimal value of the char type #define HIGHLIMIT 0x7F 27/07/

61 Conclusions A program design specification may include values represented in binary format It is easier to convert binary numbers into hexadecimal format rather that into decimal You can specify values of variables in your program directly in hexadecimal format starting them with 0x... Unsigned and signed numbers are stored in different binary formats: unsigned char and unsigned int unsigned binary char and int binary two's complement Incorrectly used unsigned and signed variables produce incorrect results 27/07/

62 Suggested Exercises What are the values of the numbers represented in binary two's complement format? What are their hexadecimal equivalents? Show how this subtraction is carried out in binary form: char result, num1 = 7, num2 = 14; result = num1 num2; What is the output and why: unsigned char result, num1 = 7, num2 = 14; result = num1 num2; printf(" Result = %d\n", result); 27/07/

CSCI 192 Engineering Programming 2. Assembly Language

CSCI 192 Engineering Programming 2. Assembly Language CSCI 192 Engineering Programming 2 Week 5 Assembly Language Lecturer: Dr. Markus Hagenbuchner Slides by: Igor Kharitonenko and Markus Hagenbuchner Room 3.220 markus@uow.edu.au UOW 2010 24/08/2010 1 C Compilation

More information

EL2310 Scientific Programming

EL2310 Scientific Programming (yaseminb@kth.se) Overview Overview Roots of C Getting started with C Closer look at Hello World Programming Environment Discussion Basic Datatypes and printf Schedule Introduction to C - main part of

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

Representation of Information

Representation of Information Representation of Information CS61, Lecture 2 Prof. Stephen Chong September 6, 2011 Announcements Assignment 1 released Posted on http://cs61.seas.harvard.edu/ Due one week from today, Tuesday 13 Sept

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

Introduction Presentation A

Introduction Presentation A CSE 2421/5042: Systems I Low-Level Programming and Computer Organization Introduction Presentation A Read carefully: Bryant Chapter 1 Study: Reek Chapter 2 Skim: Reek Chapter 1 08/22/2018 Gojko Babić Some

More information

Topic 6: A Quick Intro To C

Topic 6: A Quick Intro To C Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions

More information

Lectures 5-6: Introduction to C

Lectures 5-6: Introduction to C Lectures 5-6: Introduction to C Motivation: C is both a high and a low-level language Very useful for systems programming Faster than Java This intro assumes knowledge of Java Focus is on differences Most

More information

Draft. Chapter 1 Program Structure. 1.1 Introduction. 1.2 The 0s and the 1s. 1.3 Bits and Bytes. 1.4 Representation of Numbers in Memory

Draft. Chapter 1 Program Structure. 1.1 Introduction. 1.2 The 0s and the 1s. 1.3 Bits and Bytes. 1.4 Representation of Numbers in Memory Chapter 1 Program Structure In the beginning there were 0s and 1s. GRR 1.1 Introduction In this chapter we will talk about memory: bits, bytes and how data is represented in the computer. We will also

More information

Topic 6: A Quick Intro To C. Reading. "goto Considered Harmful" History

Topic 6: A Quick Intro To C. Reading. goto Considered Harmful History Topic 6: A Quick Intro To C Reading Assumption: All of you know basic Java. Much of C syntax is the same. Also: Some of you have used C or C++. Goal for this topic: you can write & run a simple C program

More information

Lectures 5-6: Introduction to C

Lectures 5-6: Introduction to C Lectures 5-6: Introduction to C Motivation: C is both a high and a low-level language Very useful for systems programming Faster than Java This intro assumes knowledge of Java Focus is on differences Most

More information

COMP1917: Computing 1 1. Introduction

COMP1917: Computing 1 1. Introduction COMP1917: Computing 1 1. Introduction Reading: Moffat, Chapter 1. COMP1917 12s2 Introduction 1 Course Web Site http://www.cse.unsw.edu.au/~cs1917/12s2 Please check this Web Site regularly for updated information,

More information

T02 Tutorial Slides for Week 2

T02 Tutorial Slides for Week 2 T02 Tutorial Slides for Week 2 ENEL 353: Digital Circuits Fall 2017 Term Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary 19 September, 2017

More information

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York CSc 10200! Introduction to Computing Lecture 1 Edgardo Molina Fall 2013 City College of New York 1 Introduction to Computing Lectures: Tuesday and Thursday s (2-2:50 pm) Location: NAC 1/202 Recitation:

More information

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015 5055 Santa Teresa Blvd Gilroy, CA 95023 Course Outline COURSE: CSIS 28 DIVISION: 50 ALSO LISTED AS: TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015 SHORT TITLE: COMPUTER ARCHITECTURE LONG

More information

CS241 Computer Organization Spring Data Alignment

CS241 Computer Organization Spring Data Alignment CS241 Computer Organization Spring 2015 Data Alignment 3-26 2015 Outline! Data Alignment! C: pointers to functions! Memory Layout Read: CS:APP2 Chapter 3, sections 3.8-3.9 Quiz next Thursday, April 2nd

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

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

1. Introduction. Course Web Site. COMP1917: Computing 1. Textbook. Occupational Health and Safety (OHS)

1. Introduction. Course Web Site. COMP1917: Computing 1. Textbook. Occupational Health and Safety (OHS) COMP1917 14s2 Introduction 1 COMP1917: Computing 1 1. Introduction Reading: Moffat, Chapter 1. Course Web Site http://www.cse.unsw.edu.au/~cs1917/14s2 Please check this Web Site regularly for updated information,

More information

High Performance Computing MPI and C-Language Seminars 2009

High Performance Computing MPI and C-Language Seminars 2009 High Performance Computing - Seminar Plan Welcome to the High Performance Computing seminars for 2009. Aims: Introduce the C Programming Language. Basic coverage of C and programming techniques needed

More information

Algorithms, Data Structures, and Problem Solving

Algorithms, Data Structures, and Problem Solving Algorithms, Data Structures, and Problem Solving Masoumeh Taromirad Hamlstad University DT4002, Fall 2016 Course Objectives A course on algorithms, data structures, and problem solving Learn about algorithm

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 7: Introduction to C (pronobis@kth.se) Overview Overview Lecture 7: Introduction to C Wrap Up Basic Datatypes and printf Branching and Loops in C Constant values Wrap Up Lecture 7: Introduction

More information

Final exam. Scores. Fall term 2012 KAIST EE209 Programming Structures for EE. Thursday Dec 20, Student's name: Student ID:

Final exam. Scores. Fall term 2012 KAIST EE209 Programming Structures for EE. Thursday Dec 20, Student's name: Student ID: Fall term 2012 KAIST EE209 Programming Structures for EE Final exam Thursday Dec 20, 2012 Student's name: Student ID: The exam is closed book and notes. Read the questions carefully and focus your answers

More information

CpSc 1111 Lab 4 Part a Flow Control, Branching, and Formatting

CpSc 1111 Lab 4 Part a Flow Control, Branching, and Formatting CpSc 1111 Lab 4 Part a Flow Control, Branching, and Formatting Your factors.c and multtable.c files are due by Wednesday, 11:59 pm, to be submitted on the SoC handin page at http://handin.cs.clemson.edu.

More information

Final Labs and Tutors

Final Labs and Tutors ICT106 Fundamentals of Computer Systems - Topic 2 REPRESENTATION AND STORAGE OF INFORMATION Reading: Linux Assembly Programming Language, Ch 2.4-2.9 and 3.6-3.8 Final Labs and Tutors Venue and time South

More information

COMP1917: Computing 1 1. Introduction

COMP1917: Computing 1 1. Introduction COMP1917: Computing 1 1. Introduction Reading: Moffat, Chapter 1. COMP1917 15s2 Introduction 1 Course Web Site http://www.cse.unsw.edu.au/~cs1917/15s2 Please check this Web Site regularly for updated information,

More information

C Tutorial: Part 1. Dr. Charalampos C. Tsimenidis. Newcastle University School of Electrical and Electronic Engineering.

C Tutorial: Part 1. Dr. Charalampos C. Tsimenidis. Newcastle University School of Electrical and Electronic Engineering. C Tutorial: Part 1 Dr. Charalampos C. Tsimenidis Newcastle University School of Electrical and Electronic Engineering September 2013 Why C? Small (32 keywords) Stable Existing code base Fast Low-level

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 6: Introduction to C (pronobis@kth.se) Overview Overview Lecture 6: Introduction to C Roots of C Getting started with C Closer look at Hello World Programming Environment Schedule Last time (and

More information

C and Programming Basics

C and Programming Basics Announcements Assignment 1 Will be posted on Wednesday, Jan. 9 Due Wednesday, Jan. 16 Piazza Please sign up if you haven t already https://piazza.com/sfu.ca/spring2019/cmpt125 Lecture notes Posted just

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

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

ECOM 2325 Computer Organization and Assembly Language. Instructor: Ruba A.Salamah INTRODUCTION

ECOM 2325 Computer Organization and Assembly Language. Instructor: Ruba A.Salamah INTRODUCTION ECOM 2325 Computer Organization and Assembly Language Instructor: Ruba A.Salamah INTRODUCTION Overview Welcome to ECOM 2325 Assembly-, Machine-, and High-Level Languages Assembly Language Programming Tools

More information

Class 9 Saturday, Feb 14

Class 9 Saturday, Feb 14 Jahangirabad Institute of technology Er.Amit Kr Pathak Computer System & Programming in C, NCS-201 Semester II, 2016(Odd Sem.) MASTER SCHEDULE [U-1] week 1 Class 1 Monday, Feb 1 Introduction to digital

More information

Lecture 03 Bits, Bytes and Data Types

Lecture 03 Bits, Bytes and Data Types Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics

More information

Week 1 Introduction to Computer and Algorithm (Part1) UniMAP Sem II 11/12 DKT121: Basic Computer Programming 1

Week 1 Introduction to Computer and Algorithm (Part1) UniMAP Sem II 11/12 DKT121: Basic Computer Programming 1 Week 1 Introduction to Computer and Algorithm (Part1) UniMAP Sem II 11/12 DKT121: Basic Computer Programming 1 General Information Contributes 3 units: 2 hours lectures 2 hours labs and tutorials Main

More information

BLM2031 Structured Programming. Zeyneb KURT

BLM2031 Structured Programming. Zeyneb KURT BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help

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

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

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

Laboratory 2: Programming Basics and Variables. Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information

Laboratory 2: Programming Basics and Variables. Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information Laboratory 2: Programming Basics and Variables Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information 3. Comment: a. name your program with extension.c b. use o option to specify

More information

CSE 12 Spring 2018 Week One, Lecture Two

CSE 12 Spring 2018 Week One, Lecture Two CSE 12 Spring 2018 Week One, Lecture Two Homework One and Two: - Introduction to C - Review of basic programming principles - Building from fgetc and fputc - Input and output strings and numbers - Introduction

More information

CSCI 2021: Binary, Integers, Arithmetic

CSCI 2021: Binary, Integers, Arithmetic CSCI 2021: Binary, Integers, Arithmetic Chris Kauffman Last Updated: Mon Feb 18 14:35:27 CST 2019 1 Logistics Reading Bryant/O Hallaron Ch 2.1-3 Goals Finish C overview Binary Representations / Notation

More information

EE 209: Programming Structures for Electrical Engineering

EE 209: Programming Structures for Electrical Engineering EE 209: Programming Structures for Electrical Engineering 1 Goals for Today s Class Course overview Introductions Course goals Resources Grading Policies Getting started with C C programming language overview

More information

Intel assembly language using gcc

Intel assembly language using gcc QOTD Intel assembly language using gcc Assembly language programming is difficult. Make no mistake about that. It is not for wimps and weaklings. - Tanenbaum s 6th, page 519 These notes are a supplement

More information

LECTURE 1-2. Introduction and Number Systems

LECTURE 1-2. Introduction and Number Systems LECTURE 1-2 Introduction and Number Systems 1 BASIC INFORMATION Course Code: CSE 115 Course Title: Computing Concepts Course Teacher: Dr. Muhammad Asif H. Khan (Mfs), Associate Professor, Dept. of Computer

More information

CS240: Programming in C. Lecture 2: Overview

CS240: Programming in C. Lecture 2: Overview CS240: Programming in C Lecture 2: Overview 1 Programming Model How does C view the world? Stack Memory code Globals 2 Programming Model Execution mediated via a stack function calls and returns local

More information

CSE 12 Spring 2016 Week One, Lecture Two

CSE 12 Spring 2016 Week One, Lecture Two CSE 12 Spring 2016 Week One, Lecture Two Homework One and Two: hw2: Discuss in section today - Introduction to C - Review of basic programming principles - Building from fgetc and fputc - Input and output

More information

gcc o driver std=c99 -Wall driver.c bigmesa.c

gcc o driver std=c99 -Wall driver.c bigmesa.c C Programming Simple Array Processing This assignment consists of two parts. The first part focuses on array read accesses and computational logic. The second part focuses on array read/write access and

More information

CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language. Krste Asanović & Randy Katz

CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language. Krste Asanović & Randy Katz CS 61C: Great Ideas in Computer Architecture Lecture 2: Numbers & C Language Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c Numbers wrap-up This is not on the exam! Break C Primer Administrivia,

More information

Agenda. CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language 8/29/17. Recap: Binary Number Conversion

Agenda. CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language 8/29/17. Recap: Binary Number Conversion CS 61C: Great Ideas in Computer Architecture Lecture 2: Numbers & C Language Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c Numbers wrap-up This is not on the exam! Break C Primer Administrivia,

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

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

C-Programming. CSC209: Software Tools and Systems Programming. Paul Vrbik. University of Toronto Mississauga

C-Programming. CSC209: Software Tools and Systems Programming. Paul Vrbik. University of Toronto Mississauga C-Programming CSC209: Software Tools and Systems Programming Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Adapted from Dan Zingaro s 2015 slides. Week 2.0 1 / 19 What

More information

HUDSON VALLEY COMMUNITY COLLEGE TROY, NEW YORK COURSE OUTLINE

HUDSON VALLEY COMMUNITY COLLEGE TROY, NEW YORK COURSE OUTLINE ACADEMIC YEAR 2017-2018 HUDSON VALLEY COMMUNITY COLLEGE TROY, NEW YORK COURSE OUTLINE COURSE TITLE: Assembly Language And Computer Architecture COURSE SUBJECT AND NUMBER: CISS 280 DEPARTMENT: Computing

More information

Modesto Junior College Course Outline of Record CMPSC 241

Modesto Junior College Course Outline of Record CMPSC 241 Modesto Junior College Course Outline of Record CMPSC 241 I. OVERVIEW The following information will appear in the 2010-2011 catalog CMPSC 241 Assembly Language Programming Prerequisite: Satisfactory completion

More information

CS Programming In C

CS Programming In C CS 24000 - Programming In C Week Two: Basic C Program Organization and Data Types Zhiyuan Li Department of Computer Science Purdue University, USA 2 int main() { } return 0; The Simplest C Program C programs

More information

Binary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2 Fall 2018

Binary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2 Fall 2018 Binary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2 Fall 2018 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB Administrative Stuff The class is full I will not be adding more ppl

More information

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up

More information

Compilation, Disassembly, and Profiling (in Linux)

Compilation, Disassembly, and Profiling (in Linux) Compilation, Disassembly, and Profiling (in Linux) CS 485: Systems Programming Spring 2016 Instructor: Neil Moore 1 Turning C into Object Code Code in files p1.c p2.c Compile with command: gcc O1 p1.c

More information

A software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp)

A software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp) A software view User Interface Computer Systems MTSU CSCI 3240 Spring 2016 Dr. Hyrum D. Carroll Materials from CMU and Dr. Butler How it works hello.c #include int main() { printf( hello, world\n

More information

Programming in C and C++

Programming in C and C++ Programming in C and C++ Types, Variables, Expressions and Statements Neel Krishnaswami and Alan Mycroft Course Structure Basics of C: Types, variables, expressions and statements Functions, compilation

More information

You must pass the final exam to pass the course.

You must pass the final exam to pass the course. Computer Science Technology Department Houston Community College System Department Website: http://csci.hccs.cc.tx.us CRN: 46876 978-1-4239-0146-4 1-4239-0146-0 Semester: Fall 2010 Campus and Room: Stafford

More information

Variables and literals

Variables and literals Demo lecture slides Although I will not usually give slides for demo lectures, the first two demo lectures involve practice with things which you should really know from G51PRG Since I covered much of

More information

Computer Organization and Assembly Language. Lab Session 01

Computer Organization and Assembly Language. Lab Session 01 Objective: Lab Session 01 Introduction to Assembly Language Tools and Familiarization with Emu8086 environment To be able to understand Data Representation and perform conversions from one system to another

More information

Programming in C and C++

Programming in C and C++ Programming in C and C++ 1. Types Variables Expressions & Statements Dr. Anil Madhavapeddy University of Cambridge (based on previous years thanks to Alan Mycroft, Alastair Beresford and Andrew Moore)

More information

Lecture 3. More About C

Lecture 3. More About C Copyright 1996 David R. Hanson Computer Science 126, Fall 1996 3-1 Lecture 3. More About C Programming languages have their lingo Programming language Types are categories of values int, float, char Constants

More information

Software Project. Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva

Software Project. Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva Software Project Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva Emails: (canetti/benriva)@post.tau.ac.il nathan.manor@gmail.com gideon@mta.ac.il http://www.cs.tau.ac.il/~roded/courses/soft-project10.html

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

How Compiling and Compilers Work

How Compiling and Compilers Work How Compiling and Compilers Work Dr. Axel Kohlmeyer Research Professor, Department of Mathematics Associate Director, Institute for Computational Science Assistant Vice President for High-Performance Computing

More information

CSE 1001 Fundamentals of Software Development 1. Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018

CSE 1001 Fundamentals of Software Development 1. Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018 CSE 1001 Fundamentals of Software Development 1 Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018 Identifiers, Variables and Data Types Reserved Words Identifiers in C Variables and Values

More information

Computer Systems Lecture 9

Computer Systems Lecture 9 Computer Systems Lecture 9 CPU Registers in x86 CPU status flags EFLAG: The Flag register holds the CPU status flags The status flags are separate bits in EFLAG where information on important conditions

More information

ENCM 335 Fall 2018 Lab 6 for the Week of October 22 Complete Instructions

ENCM 335 Fall 2018 Lab 6 for the Week of October 22 Complete Instructions page 1 of 5 ENCM 335 Fall 2018 Lab 6 for the Week of October 22 Complete Instructions Steve Norman Department of Electrical & Computer Engineering University of Calgary October 2018 Lab instructions and

More information

CS 31: Intro to Systems Binary Representation. Kevin Webb Swarthmore College September 6, 2018

CS 31: Intro to Systems Binary Representation. Kevin Webb Swarthmore College September 6, 2018 CS 3: Intro to Systems Binary Representation Kevin Webb Swarthmore College September 6, 28 Reading Quiz Announcements Sign up for Piazza! Let me know about exam conflicts! Register your clicker (clarification

More information

Slide Set 1. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

Slide Set 1. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary Slide Set 1 for ENEL 353 Fall 2017 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Fall Term, 2017 SN s ENEL 353 Fall 2017 Slide Set 1 slide

More information

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger.

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger. CS 110 Computer Architecture Lecture 2: Introduction to C, Part I Instructor: Sören Schwertfeger http://shtech.org/courses/ca/ School of Information Science and Technology SIST ShanghaiTech University

More information

Room 3P16 Telephone: extension ~irjohnson/uqc146s1.html

Room 3P16 Telephone: extension ~irjohnson/uqc146s1.html UQC146S1 Introductory Image Processing in C Ian Johnson Room 3P16 Telephone: extension 3167 Email: Ian.Johnson@uwe.ac.uk http://www.csm.uwe.ac.uk/ ~irjohnson/uqc146s1.html Ian Johnson 1 UQC146S1 What is

More information

Introduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang

Introduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang Introduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang Topics History of Programming Languages Compilation Process Anatomy of C CMSC 104 Coding Standards Machine Code In the beginning,

More information

CS , Fall 2004 Exam 1

CS , Fall 2004 Exam 1 Andrew login ID: Full Name: CS 15-213, Fall 2004 Exam 1 Tuesday October 12, 2004 Instructions: Make sure that your exam is not missing any sheets, then write your full name and Andrew login ID on the front.

More information

Quiz1 Fall 2007 October 2 nd, UNIVERSITY OF WINDSOR Fall 2007 QUIZ # 1 Solution. Examiner:Ritu Chaturvedi Dated :October 2nd, 2007.

Quiz1 Fall 2007 October 2 nd, UNIVERSITY OF WINDSOR Fall 2007 QUIZ # 1 Solution. Examiner:Ritu Chaturvedi Dated :October 2nd, 2007. UNIVERSITY OF WINDSOR 60-106-01 Fall 2007 QUIZ # 1 Solution Examiner:Ritu Chaturvedi Dated :October 2nd, 2007. Student Name: Student Number: INSTRUCTIONS (Please Read Carefully) No calculators allowed.

More information

Compila(on, Disassembly, and Profiling

Compila(on, Disassembly, and Profiling Compila(on, Disassembly, and Profiling (in Linux) CS 485: Systems Programming Fall 2015 Instructor: James Griffioen 1 Recall the compila(on process/steps 2 Turning C into Object Code Code in files p1.c

More information

Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance. John Edgar 2

Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance. John Edgar 2 CMPT 125 Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance John Edgar 2 Edit or write your program Using a text editor like gedit Save program with

More information

M2 Instruction Set Architecture

M2 Instruction Set Architecture M2 Instruction Set Architecture Module Outline Addressing modes. Instruction classes. MIPS-I ISA. Translating and starting a program. High level languages, Assembly languages and object code. Subroutine

More information

CS 3330 Introduction. Daniel and Charles. CS 3330 Computer Architecture 1

CS 3330 Introduction. Daniel and Charles. CS 3330 Computer Architecture 1 CS 3330 Introduction Daniel and Charles CS 3330 Computer Architecture 1 lecturers Charles and I will be splitting lectures same(ish) lecture in each section Grading Take Home Quizzes: 10% (10% dropped)

More information

Sir Syed University of Engineering and Technology. Computer Programming & Problem Solving ( CPPS )

Sir Syed University of Engineering and Technology. Computer Programming & Problem Solving ( CPPS ) Computer Programming & Problem Solving ( CPPS ) Chapter No 2 Sir Syed University of Engineering & Technology Computer Engineering Department University Road, Karachi-75300, PAKISTAN Muzammil Ahmad Khan

More information

CS 241 Data Organization Binary

CS 241 Data Organization Binary CS 241 Data Organization Binary Brooke Chenoweth University of New Mexico Fall 2017 Combinations and Permutations In English we use the word combination loosely, without thinking if the order of things

More information

Pointer Casts and Data Accesses

Pointer Casts and Data Accesses C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise

More information

Slide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng

Slide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng Slide Set 1 for ENEL 339 Fall 2014 Lecture Section 02 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Fall Term, 2014 ENEL 353 F14 Section

More information

ENCE Computer Organization and Architecture. Chapter 1. Software Perspective

ENCE Computer Organization and Architecture. Chapter 1. Software Perspective Computer Organization and Architecture Chapter 1 Software Perspective The Lifetime of a Simple Program A Simple Program # include int main() { printf( hello, world\n ); } The goal of this course

More information

CpSc 1111 Lab 4 Formatting and Flow Control

CpSc 1111 Lab 4 Formatting and Flow Control CpSc 1111 Lab 4 Formatting and Flow Control Overview By the end of the lab, you will be able to: use fscanf() to accept a character input from the user and print out the ASCII decimal, octal, and hexadecimal

More information

Lecture 3: Instruction Set Architecture

Lecture 3: Instruction Set Architecture Lecture 3: Instruction Set Architecture CSE 30: Computer Organization and Systems Programming Summer 2014 Diba Mirza Dept. of Computer Science and Engineering University of California, San Diego 1. Steps

More information

CS 253: Intro to Systems Programming 1/21

CS 253: Intro to Systems Programming 1/21 1/21 Topics Intro to Team-Based Learning (TBL) Syllabus and class logistics What is Systems? 2/21 Team-Based Learning Evidence-based instructional practice proven to increase student motivation and comprehension.

More information

COSC 2P91. Introduction Part Deux. Week 1b. Brock University. Brock University (Week 1b) Introduction Part Deux 1 / 14

COSC 2P91. Introduction Part Deux. Week 1b. Brock University. Brock University (Week 1b) Introduction Part Deux 1 / 14 COSC 2P91 Introduction Part Deux Week 1b Brock University Brock University (Week 1b) Introduction Part Deux 1 / 14 Source Files Like most other compiled languages, we ll be dealing with a few different

More information

Introduction to C. Sean Ogden. Cornell CS 4411, August 30, Geared toward programmers

Introduction to C. Sean Ogden. Cornell CS 4411, August 30, Geared toward programmers Introduction to C Geared toward programmers Sean Ogden Slide heritage: Alin Dobra Niranjan Nagarajan Owen Arden Robert Escriva Zhiyuan Teo Ayush Dubey Cornell CS 4411, August 30, 2013 Administrative Information

More information

Introduction to C. Ayush Dubey. Cornell CS 4411, August 31, Geared toward programmers

Introduction to C. Ayush Dubey. Cornell CS 4411, August 31, Geared toward programmers Introduction to C Geared toward programmers Ayush Dubey Slide heritage: Alin Dobra Niranjan Nagarajan Owen Arden Robert Escriva Zhiyuan Teo Cornell CS 4411, August 31, 2012 Administrative Information Outline

More information

Course Syllabus [1/2]

Course Syllabus [1/2] Course Syllabus [1/2] Instructor 逄愛君, acpang@csie.ntu.edu.tw Office Number: 417, Office Hour: 15:00~17:00 (Thursday) Textbook Assembly Language for Intel-Based Computers, Kip R. Irvine, Pearson Education,

More information

Chapter 3 Basic Data Types. Lecture 3 1

Chapter 3 Basic Data Types. Lecture 3 1 Chapter 3 Basic Data Types Lecture 3 1 Topics Scalar Types in C Integers Bit Operations Floating Point Types Conversions Lecture 4 2 Scalar Types in C The amount of memory available for a variable depends

More information

COMP26120: Pointers in C (2018/19) Lucas Cordeiro

COMP26120: Pointers in C (2018/19) Lucas Cordeiro COMP26120: Pointers in C (2018/19) Lucas Cordeiro lucas.cordeiro@manchester.ac.uk Organisation Lucas Cordeiro (Senior Lecturer, FM Group) lucas.cordeiro@manchester.ac.uk Office: 2.44 Office hours: 10-11

More information

COMP s1 Lecture 1

COMP s1 Lecture 1 COMP1511 18s1 Lecture 1 1 Numbers In, Numbers Out Andrew Bennett more printf variables scanf 2 Before we begin introduce yourself to the person sitting next to you why did

More information

Fundamentals of Programming

Fundamentals of Programming Fundamentals of Programming Introduction to the C language Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 29, 2012 G. Lipari (Scuola Superiore Sant Anna) The C language

More information

ENCM 369 Winter 2015 Lab 6 for the Week of March 2

ENCM 369 Winter 2015 Lab 6 for the Week of March 2 page of 2 ENCM 369 Winter 25 Lab 6 for the Week of March 2 Steve Norman Department of Electrical & Computer Engineering University of Calgary February 25 Lab instructions and other documents for ENCM 369

More information