Slides by Omer Strulovich and Ron Rubinstein

Size: px
Start display at page:

Download "Slides by Omer Strulovich and Ron Rubinstein"

Transcription

1 Slides by Omer Strulovich and Ron Rubinstein With thanks to: Chaim Gotsman, Yechiel Kimchi, Yossi Gil, Eliezer Kantorowitz, Ayal Itzkoviz, Dani Kotlar and Itai Sharon.

2 Learn to develop large scale software Learn about object oriented programming Meet C++ Extend knowledge of C Learn to work in UNIX environment 2

3 Typically 10-1,000 lines. Typically at least 10,000 lines. Consequences Developed by an individual. Used by the programmer. Might run first time. Can be coded immediately. May have flaws Requires debugging. No standards required. Easy!! Developed by a team. Used by a customer. Never runs first time. Requires analysis/design. Must be robust. Requires long-term maintenance. Standard compliant. Difficult!! Example: A sorting program Example: Firefox 3

4 Fulfilling requirements Determining software requirements is not the subject of this course Easy to maintain: code is correct Fix bugs Add new features Not breaking old code! code is good 4

5 Simple to read No code duplication Can be tested easily Errors are found early Intuitive Efficient? Commented? 5

6 void printbeststudent(char* names[], int n, double* grades[], int gradecounts[]) { int i, j; double gradesum, bestavg, curravg; char* beststudent; if (n <= 0) return; gradesum = 0.0; for (i = 0; i < gradecounts[0]; i++) { gradesum += grades[0][i]; bestavg = gradesum / gradecounts[0]; beststudent = names[0]; for (i = 1; i < n; i++) { gradesum = 0.0; for (j = 0; j < gradecounts[i]; j++) { gradesum += grades[i][j]; curravg = gradesum / gradecounts[i]; if (curravg > bestavg) { beststudent = names[i]; bestavg = curravg; printf("the student with the highest average is %s", beststudent); 6

7 void printbeststudent(student* students[], int size) { int i, j; double gradesum = 0.0, bestavg, curravg; Student* beststudent; improving and restructuring the code, without harming its correctness if (size <= 0) return; gradesum = 0.0; for (i = 0; i < students[0]->numgrades; i++) { gradesum += students[0]->grades[i]; bestavg = gradesum / students[0]->numgrades; beststudent = students[0]; for (i = 1; i < size; i++) { gradesum = 0.0; for (j = 0; j < students[i]->numgrades; j++) { gradesum += students[i]->grades[j]; curravg = gradesum / students[i]->numgrades; if (curravg > bestavg) { beststudent = students[i]; bestavg = curravg; struct student { char* name; double* grades; int numgrades; ; typedef struct student Student; 7 printf("the student with the highest average is %s", beststudent->name);

8 void printbeststudent(student* students[], int size) { if (size <= 0) return; double gradesum = 0.0; for (int i = 0; i < students[0]->numgrades; i++) { gradesum += students[0]->grades[i]; double bestavg = gradesum / students[0]->numgrades; Student* beststudent = students[0]; declare variables only when actually needed for (int i = 1; i < size; i++) { gradesum = 0.0; for (int j = 0; j < students[i]->numgrades; j++) { gradesum += students[i]->grades[j]; double curravg = gradesum / students[i]->numgrades; if (curravg > bestavg) { beststudent = students[i]; bestavg = curravg; printf("the student with the highest average is %s", beststudent->name); 8

9 void printbeststudent(student* students[], int size) { if (size <= 0) return; double gradesum = 0.0; for (int i = 0; i < students[0]->numgrades; i++) { gradesum += students[0]->grades[i]; double bestavg = gradesum / students[0]->numgrades; Student* beststudent = students[0]; for (int i = 1; i < size; i++) { gradesum = 0.0; for (int j = 0; j < students[i]->numgrades; j++) { gradesum += students[i]->grades[j]; double curravg = gradesum / students[i]->numgrades; if (curravg > bestavg) { beststudent = students[i]; bestavg = curravg; Déjà vu printf("the student with the highest average is %s", beststudent->name); 9

10 double getstudentaverage(student* student) { double sum = 0.0; for (int i = 0; i < student->numgrades; ++i) { sum += student->grades[i]; return sum / student->numgrades; code duplication removed void printbeststudent(student* students[], int size) { if (size <= 0) return; double bestaverage = getstudentaverage(students[0]); Student* beststudent = students[0]; for (int i = 1; i < size; i++) { double currentaverage = getstudentaverage(students[i]); if (currentaverage > bestaverage) { beststudent = students[i]; bestaverage = currentaverage; printf("the student with the highest average is %s", beststudent->name); 10

11 Student* getbeststudent(student* students[], int size) { if (size <= 0) return NULL; Student* best = students[0]; for (int i = 1; i < size; i++) { if (getstudentaverage(students[i]) > getstudentaverage(best)) { best = students[i]; split code to coherent functions to make it more reusable return best; void printbeststudent(student* students[], int size) { Student* best = getbeststudent(students, size); if (best!= NULL) { printf("the student with the highest average is %s", best->name); 11

12 More C and the C99 standard Splitting code into modules Testing Object Oriented Programming Introduction to C++ Working in a UNIX environment (Tutorials) 12

13 De-facto industrial standard. Mother tongue of Unix systems. Structured language. C++ is an object-oriented syntactic extension of C. 13

14 An intuitive concept. Enables modularity and information hiding. Makes maintenance easier. 14

15 Multi-user/multi-tasking operating system. De-facto standard across multiple platforms. Powerful procedural user-interface. The UNIX System Stable. 15

16 Can run on a variety of platforms. Good programming tools (e.g. text manipulation programs). The open systems philosophy 16

17 The C Programming Language (2nd Edition, ANSI-C) B. Kernighan and D. Ritchie, Prentice-Hall, 1988 A Book on C: Programming in C (4th Edition) A. Kelley and I. Pohl, Addison-Wesley Professional, 1998 Unix in a Nutshell (4th Edition) A. Robbins, O'Reilly Media, Inc,

18 The C++ Programming Language (3rd Edition) B. Stroustrup, Addison-Wesley Longman, 1997 Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) S. Meyers, Addison-Wesley Professional, 2005 C++ Primer (4th Edition) S. Lippman, J. Lajoie, B. Moo, Addison-Wesley Professional, 2005 Code Complete: A Practical Handbook of Software Construction 2nd edition Steve McConnell, Microsoft Press,

19 "Programs must be written for people to read, and only incidentally for machines to execute." - Abelson and Sussman 19

Introduction to Systems Programming

Introduction to Systems Programming Introduction to Systems Programming (234122) 1 http://webcourse.tecnion.ac.il/234122 Lecture Slides March 2013 Yechiel Kimchi With thanks to Yossi Gil, Eliezer Kantorowitz, Ayal Itzkoviz, Omer Strulovich,

More information

Course Administration

Course Administration CS 246: Software Abstraction and Specification (Software Engineering Section) Lecture 1 Course Administration http://www.student.cs.uwaterloo.ca/~cs247 Calendar Description CS 247 Software Engineering

More information

C++ Programming for Programmers using Microsoft Visual C Professional

C++ Programming for Programmers using Microsoft Visual C Professional C++ Programming for Programmers using Microsoft Visual C++ 6.0 Professional Compiled and Presented by Thomas P. Sturm, Ph.D. Graduate Programs in Software Technical Seminar The University of St. Thomas

More information

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS ITT Technical Institute ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS Credit hours: 4.5 Contact/Instructional hours: 67 (41 Theory Hours, 26 Lab Hours Prerequisite(s and/or Corequisite(s:

More information

C++ Programming for Programmers

C++ Programming for Programmers C++ Programming for Programmers Compiled and Presented by Thomas P. Sturm, Ph.D. Graduate Programs in Software Technical Seminar The University of St. Thomas St. Paul, Minnesota Copyright 1992, 1993, 1994,

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

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

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

Advanced Programming CMPS 109

Advanced Programming CMPS 109 Advanced Programming CMPS 109 Dr. Karim Sobh Computer Science Department Jack Baskin School of Engineering ksobh@cs.ucsc.edu Winter 2017 Basic Information Course Title: Advanced Programming (CMPS 109)

More information

PESIT-BSC Department of Science & Humanities

PESIT-BSC Department of Science & Humanities LESSON PLAN 15PCD13/23 PROGRAMMING IN C AND DATA Course objectives: STRUCTURES The objective of this course is to make students to learn basic principles of Problem solving, implementing through C programming

More information

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics Zarqa University Faculty: Information Technology Department: Computer Science Course title: Programming LAB 1 (1501111) Instructor: Lecture s time: Semester: Office Hours: Course description: This introductory

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

Structure of this course. C and C++ Past Exam Questions. Text books

Structure of this course. C and C++ Past Exam Questions. Text books Structure of this course C and C++ 1. Types Variables Expressions & Statements Alastair R. Beresford University of Cambridge Lent Term 2008 Programming in C: types, variables, expressions & statements

More information

(heavily based on last year s notes (Andrew Moore) with thanks to Alastair R. Beresford. 1. Types Variables Expressions & Statements 2/23

(heavily based on last year s notes (Andrew Moore) with thanks to Alastair R. Beresford. 1. Types Variables Expressions & Statements 2/23 Structure of this course Programming in C: types, variables, expressions & statements functions, compilation, pre-processor pointers, structures extended examples, tick hints n tips Programming in C++:

More information

2D1358 Object Oriented Program Construction in C++ Exercises & Labs. Course Registration / Accounts. Course Literature

2D1358 Object Oriented Program Construction in C++ Exercises & Labs. Course Registration / Accounts. Course Literature 2D1358 Object Oriented Program Construction in C++ Exercises & Labs Lecturer: Frank Hoffmann hoffmann@nada.kth.se Assistents: Danica Kragic danik @nada.kth.se Anders Orebäck oreback @nada.kth.se Peter

More information

CIS* Programming

CIS* Programming CIS*1300 - Programming CALENDAR DESCRIPTION This course examines the applied and conceptual aspects of programming. Topics may include data and control structures, program design, problem solving and algorithm

More information

C Programming. A quick introduction for embedded systems. Dr. Alun Moon UNN/CEIS. September 2008

C Programming. A quick introduction for embedded systems. Dr. Alun Moon UNN/CEIS. September 2008 C Programming A quick introduction for embedded systems Dr. Alun Moon UNN/CEIS September 2008 Dr. Alun Moon (UNN/CEIS) C Programming September 2008 1 / 13 Programming is both an art and a science. It is

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

B16 Object Oriented Programming

B16 Object Oriented Programming B16 Object Oriented Programming Michael A. Osborne mosb@robots.ox.ac.uk http://www.robots.ox.ac.uk/~mosb/teaching.html#b16 Hilary 2013 This course will introduce object-oriented programming (OOP). It will

More information

3F6 - Software Engineering and Design. Handout 1 Architecture of a Computer With Markup. Ed Rosten

3F6 - Software Engineering and Design. Handout 1 Architecture of a Computer With Markup. Ed Rosten 3F6 - Software Engineering and Design Handout 1 Architecture of a Computer With Markup Ed Rosten Contents 1. Course Aims 2. Basic Computer Architecture 3. Procedural Design 4. Data Structures 5. Invariants

More information

CS120 Computer Science I. Instructor: Jia Song

CS120 Computer Science I. Instructor: Jia Song CS120 Computer Science I Instructor: Jia Song Instructor Contact Information Instructor: Dr. Jia Song Email: jsong@uidaho.edu (Preferred) Phone: (208) 885-1710 Office: JEB 240 (CSDS Security Lab) JEB 340

More information

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

More information

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

More information

TDDB68 Concurrent Programming and Operating Systems. Lecture 2: Introduction to C programming

TDDB68 Concurrent Programming and Operating Systems. Lecture 2: Introduction to C programming TDDB68 Concurrent Programming and Operating Systems Lecture 2: Introduction to C programming Mikael Asplund, Senior Lecturer Real-time Systems Laboratory Department of Computer and Information Science

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

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject Cat-nbr Class Term Mode Units Campus CSC 2402 30366 1, 2004 ONC 1.00 TWMBA Academic group:

More information

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca SYLLABUS 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca institution 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Departament Departament

More information

Fibonacci in Lisp. Computer Programming: Skills & Concepts (CP1) Programming Languages. Varieties of Programing Language

Fibonacci in Lisp. Computer Programming: Skills & Concepts (CP1) Programming Languages. Varieties of Programing Language Fibonacci in Lisp Computer Programming: Skills & Concepts (CP1) Programming Languages (defun fibonacci (n) (if (or (= n 0) (= n 1)) 1 (+ (fibonacci (- n 1)) (fibonacci (- n 2))))) 22nd November 2010 defun-

More information

Chapter 10 C Structures and Unions

Chapter 10 C Structures and Unions Chapter 10 C Structures and Unions C How to Program, 8/e, GE 2016 Pearson Education, Ltd. All rights reserved. User-Defined Structure Types A database is a collection of information subdivided into records.

More information

Model-View-Controller

Model-View-Controller CNM STEMulus Center Web Development with PHP November 11, 2015 1/8 Outline 1 2 2/8 Definition A design pattern is a reusable and accepted solution to a particular software engineering problem. Design patterns

More information

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject CSC Cat-nbr 2402 Class 40341 Term 1, 2005 Mode ONC Units 1.00 Campus Toowoomba Academic

More information

Computer Science 1321 Course Syllabus

Computer Science 1321 Course Syllabus Computer Science 1321 Course Syllabus Jeffrey D. Oldham 2000 Jan 11 1 Course Course: Problem Solving and Algorithm Design II Prerequisites: CS1320 or instructor consent This course is the second course

More information

Midterm Examination # 2 Wednesday, March 19, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

Midterm Examination # 2 Wednesday, March 19, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER: Page 1 of 7 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2014 Midterm Examination # 2 Wednesday, March 19, 2014 ANSWERS Duration of examination: 75 minutes STUDENT

More information

Arrays in C++ Instructor: Andy Abreu

Arrays in C++ Instructor: Andy Abreu Arrays in C++ Instructor: Andy Abreu Reason behind the idea When we are programming, often we have to process a large amount of information. We can do so by creating a lot of variables to keep track of

More information

Defining new types and interfaces

Defining new types and interfaces Defining new types and interfaces Assume we need complex numbers in our software We create the following struct: typedef struct { double real; double imag; Complex; Is this enough? No! 2 What do we want

More information

EECS 388 C Introduction. Gary J. Minden August 29, 2016

EECS 388 C Introduction. Gary J. Minden August 29, 2016 EECS 388 C Introduction Gary J. Minden August 29, 2016 1 C Developed at AT&T Bell Laboratories in the early 1970s by Dennis Richie Intended as a systems programming language, that is used to write operating

More information

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER: Page 1 of 8 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2015 Midterm Examination # 2 Wednesday, March 18, 2015 ANSWERS Duration of examination: 75 minutes STUDENT

More information

PROPOSAL TO INTRODUCE A NEW COURSE

PROPOSAL TO INTRODUCE A NEW COURSE PROPOSAL TO INTRODUCE A NEW COURSE 1. COURSE DETAILS 1.1 Course ID COMP3021 1.2 Course name -- Long Object-Oriented Programming 1.3 Course name -- Abbreviated OOP 1.4 Course Authority Assoc. Professor

More information

Programming II. Modularity 2017/18

Programming II. Modularity 2017/18 Programming II Modularity 2017/18 Module? Lecture Outline Evolution and history of programming languages Modularity Example History of Programming Programming Paradigms How and why languages develop? How

More information

Chapter 1. The C Programming Language. (Advanced Features) beginslide Some Simple Changes at C99. Improving Safety

Chapter 1. The C Programming Language. (Advanced Features) beginslide Some Simple Changes at C99. Improving Safety 13 Chapter 1 The C Programming Language (Advanced Features) Some Simple Changes at C99 14 Improving Safety No implicit int No implicit function declaration Strict return statements Page 1 Some Simple Changes

More information

Linked Lists in C and C++

Linked Lists in C and C++ Linked Lists in C and C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by

More information

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays A First Book of ANSI C Fourth Edition Chapter 8 Arrays One-Dimensional Arrays Array Initialization Objectives Arrays as Function Arguments Case Study: Computing Averages and Standard Deviations Two-Dimensional

More information

Loops / Repetition Statements. There are three loop constructs in C. Example 2: Grade of several students. Example 1: Fixing Bad Keyboard Input

Loops / Repetition Statements. There are three loop constructs in C. Example 2: Grade of several students. Example 1: Fixing Bad Keyboard Input Loops / Repetition Statements Repetition s allow us to execute a multiple times Often they are referred to as loops C has three kinds of repetition s: the while loop the for loop the do loop The programmer

More information

Lecture #2 on Object-Oriented Modeling

Lecture #2 on Object-Oriented Modeling Outline Lecture #2 on Object-Oriented Modeling Thierry Géraud EPITA Research and Development Laboratory (LRDE) 2006 Thierry Géraud Lecture #2 on Object-Oriented Modeling EPITA-LRDE 2006 1 / 38 Outline

More information

Programming in C/C

Programming in C/C Programming in C/C++ 2004-2005 http://cs.vu.nl/~nsilvis/c++/2005 Natalia Silvis-Cividjian e-mail: nsilvis@few.vu.nl Topics about C++ language about this course C++ basics self test exercises (10 min) (10

More information

ITE 205 Software Design and Programming I

ITE 205 Software Design and Programming I Computer Science Department cs.salemstate.edu ITE 205 Software Design and Programming I 4 cr. Catalog description: This course introduces a set of fundamental design principles and problem-solving techniques

More information

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS Manish Dronacharya College Of Engineering, Maharishi Dayanand University, Gurgaon, Haryana, India III. Abstract- C Language History: The C programming language

More information

CS201 - Introduction to Programming FAQs By

CS201 - Introduction to Programming FAQs By CS201 - Introduction to Programming FAQs By What are pointers? Answer: A pointer is a variable that represents/stores location of a data item, such as a variable or array element What s the difference

More information

IS 0020 Program Design and Software Tools

IS 0020 Program Design and Software Tools 1 IS 0020 Program Design and Software Tools Introduction to C++ Programming Spring 2005 Lecture 1 Jan 6, 2005 Course Information 2 Lecture: James B D Joshi Tuesdays/Thursdays: 1:00-2:15 PM Office Hours:

More information

Outline EXPERIENCE WITH TWO OOP LANGUAGES IN ONE COURSE. HISTORY Methodology and learning design of the course Experience from classes

Outline EXPERIENCE WITH TWO OOP LANGUAGES IN ONE COURSE. HISTORY Methodology and learning design of the course Experience from classes EXPERIENCE WITH TWO OOP LANGUAGES IN ONE COURSE Ana Madevska Bogdanova, FCSE, Skopje, Macedoia Outline HISTORY Methodology and learning design of the course Experience from classes Lectures exercises Questionnaire

More information

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays A First Book of ANSI C Fourth Edition Chapter 8 Arrays Objectives One-Dimensional Arrays Array Initialization Arrays as Function Arguments Case Study: Computing Averages and Standard Deviations Two-Dimensional

More information

The Contract Pattern. Design by contract

The Contract Pattern. Design by contract The Contract Pattern Copyright 1997, Michel de Champlain Permission granted to copy for PLoP 97 Conference. All other rights reserved. Michel de Champlain Department of Computer Science University of Canterbury,

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

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

SAURASHTRA UNIVERSITY

SAURASHTRA UNIVERSITY SAURASHTRA UNIVERSITY RAJKOT INDIA Accredited Grade A by NAAC (CGPA 3.05) CURRICULAM FOR B.Sc. (Computer Science) Bachelor of Science (Computer Science) (Semester - 1 Semester - 2) Effective From June

More information

Computer Science Foundation Exam

Computer Science Foundation Exam Computer Science Foundation Exam August 8, 2014 Section I B COMPUTER SCIENCE NO books, notes, or calculators may be used, and you must work entirely on your own. SOLUTION Question # Max Pts Category Passing

More information

Computer Science II CSci 1200 Sections 6-10 Week 3, Monday Lecture January 28, 2002 Functions, Structs and Multiple Files

Computer Science II CSci 1200 Sections 6-10 Week 3, Monday Lecture January 28, 2002 Functions, Structs and Multiple Files Computer Science II CSci 1200 Sections 6-10 Week 3, Monday Lecture January 28, 2002 Functions, Structs and Multiple Files Review from last Thursday s Class Koenig & Moo: Chapter 3 vector container class,

More information

CENG 707 Data Structures and Algorithms

CENG 707 Data Structures and Algorithms CENG 707 Data Structures and Algorithms Tolga Can Department of Computer Engineering Middle East Technical University Fall 2011 1 Instructor: Tolga Can Office: B-109 CENG 707 Email: tcan@ceng.metu.edu.tr

More information

Computer Science Foundation Exam

Computer Science Foundation Exam Computer Science Foundation Exam December 18, 015 Section I B COMPUTER SCIENCE NO books, notes, or calculators may be used, and you must work entirely on your own. SOLUTION Question # Max Pts Category

More information

Deep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems

Deep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse

More information

The Imperative Paradigm

The Imperative Paradigm The Imperative Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion What makes a Language Imperative? Procedural Abstraction Expressions and Assignment Library Support for Data Structures

More information

beginslide Chapter 1 (Advanced Features) Copyright C. Gotsman & Y.M. Kimchi, Computer Science Dept. Technion

beginslide Chapter 1 (Advanced Features) Copyright C. Gotsman & Y.M. Kimchi, Computer Science Dept. Technion 1 Chapter 1 The C Programming Language (Advanced Features) 2 MACRO Definitions #define identifier token-sequence #define identifier ( parameter-list ) token-sequence No space is allowed between the identifier

More information

w3.ualg.pt/~jvo/poo

w3.ualg.pt/~jvo/poo POO - Programação Orientada por Objetos OOP - Object-oriented programming 2015/2016 José Valente de Oliveira jvo@ualg.pt 1 www.ualg.pt w3.ualg.pt/~jvo/poo 1 http://www.fct.ualg.pt/gcal?curso=lei What is

More information

Arrays and Pointers. CSC209: Software Tools and Systems Programming (Winter 2019) Furkan Alaca & Paul Vrbik. University of Toronto Mississauga

Arrays and Pointers. CSC209: Software Tools and Systems Programming (Winter 2019) Furkan Alaca & Paul Vrbik. University of Toronto Mississauga Arrays and Pointers CSC209: Software Tools and Systems Programming (Winter 2019) Furkan Alaca & Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Week 2 Alaca & Vrbik (UTM)

More information

Proposed syllabus for

Proposed syllabus for Proposed syllabus for Skill Enhancement Course Papers for B.Sc.(H) Mathematics/ B.Sc. (Prog)/B.A.(Prog) Department of Mathematics University of Delhi Delhi-110007 1 Sl. No. CORE COURSE (12) I II III IV

More information

COURSE DESCRIPTION. John Lewis and William Loftus; Java: Software Solutions; Addison Wesley

COURSE DESCRIPTION. John Lewis and William Loftus; Java: Software Solutions; Addison Wesley COURSE DESCRIPTION Dept., Number Semester hours IS 323 Course Title 4 Course Coordinator Object Oriented Programming Catherine Dwyer and John Molluzzo Catalog Description (2004-2006) Continued development

More information

UNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 10 INTRODUCTION TO ARRAYS

UNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 10 INTRODUCTION TO ARRAYS UNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 10 INTRODUCTION TO ARRAYS EXERCISE 10.1 1. An array can contain many items and still be treated as one thing. Thus, instead of having many variables for

More information

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department COURSE: CST1201 Programming Fundamentals (2 class hours, 2 lab hours, 3 credits) Course Description: This course is an intensive

More information

Chapter 1 Introduction to Computers and C++ Programming

Chapter 1 Introduction to Computers and C++ Programming Chapter 1 Introduction to Computers and C++ Programming 1 Outline 1.1 Introduction 1.2 What is a Computer? 1.3 Computer Organization 1.7 History of C and C++ 1.14 Basics of a Typical C++ Environment 1.20

More information

Welcome to... CS113: Introduction to C

Welcome to... CS113: Introduction to C Welcome to... CS113: Introduction to C Instructor: Erik Sherwood E-mail: wes28@cs.cornell.edu Course Website: http://www.cs.cornell.edu/courses/cs113/2005fa/ The website is linked to from the courses page

More information

C Language, Token, Keywords, Constant, variable

C Language, Token, Keywords, Constant, variable C Language, Token, Keywords, Constant, variable A language written by Brian Kernighan and Dennis Ritchie. This was to be the language that UNIX was written in to become the first "portable" language. C

More information

Crash Course into. Prof. Dr. Renato Pajarola

Crash Course into. Prof. Dr. Renato Pajarola Crash Course into Prof. Dr. Renato Pajarola These slides may not be copied or distributed without explicit permission by all original copyright holders C Language Low-level programming language General

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

Frequently asked questions from the previous class survey

Frequently asked questions from the previous class survey CS 370: OPERATING SYSTEMS [THREADS] Shrideep Pallickara Computer Science Colorado State University L7.1 Frequently asked questions from the previous class survey When a process is waiting, does it get

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

MISRA-C Compliance Matrix _ Using PC Lint

MISRA-C Compliance Matrix _ Using PC Lint MISRA-C Compliance Matrix _ Using PC Lint by Chris Hills Revision 0.2 15 April 2002 Part of the QuEST series:- QA4 chris@phaedsys.org quest.phaedsys.org quest.phaedsys.org page 2 of 26 15/04/2002 MISRA-C

More information

6.088/6.084 Robotics Project Subject Information and Syllabus

6.088/6.084 Robotics Project Subject Information and Syllabus 6.088/6.084 Robotics Project Subject Information and Syllabus Staff: Prof. Daniela Rus (Course Coordinator), Rm 32-374, rus@csail.mit.edu, x8-7567 Dr. Nikolaus Correll, Rm 32-375, nikolaus@csail.mit.edu,

More information

Storage class and Scope:

Storage class and Scope: Algorithm = Logic + Control + Data Data structures and algorithms Data structures = Ways of systematically arranging information, both abstractly and concretely Algorithms = Methods for constructing, searching,

More information

Assignment 5 Files, Linked Lists, and Binary Search Trees

Assignment 5 Files, Linked Lists, and Binary Search Trees Assignment 5 Files, Linked Lists, and Binary Search Trees Technical details We advise you to look carefully at the example input and output files that we supply. Many questions will be answered by simply

More information

AE Computer Programming for Aerospace Engineers

AE Computer Programming for Aerospace Engineers AE 030 - Computer Programming for Aerospace Engineers Instructor Information: Credit: Professor Long Lu Long.Lu@sjsu.edu 2 units Class Times & Locations: Section 01 (Lecture): M 16:30-17:20 in CL 226 Section

More information

15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills

15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills 15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills 1 Logistics Assigned: Tues., Aug. 29, 2017 Due: Thurs., Sept. 7, 11:59 pm Last possible hand in: Tues., Sept. 7, 11:59

More information

Binary Trees (and Big O notation)

Binary Trees (and Big O notation) Binary Trees (and Big O notation) Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute

More information

Partha Sarathi Mandal

Partha Sarathi Mandal MA 253: Data Structures Lab with OOP Tutorial 1 http://www.iitg.ernet.in/psm/indexing_ma253/y13/index.html Partha Sarathi Mandal psm@iitg.ernet.in Dept. of Mathematics, IIT Guwahati Reference Books Cormen,

More information

Lecture 1: Preliminaries

Lecture 1: Preliminaries Lecture 1: Preliminaries Edgardo Molina Department of Computer Science City College of New York August 30, 2011 Edgardo Molina (CS@CCNY) Lecture 1 August 30, 2011 1 / 44 Info and Schedule Course Info and

More information

ENGINEERING PROGRAMMING

ENGINEERING PROGRAMMING ENGINEERING PROGRAMMING MS in Earth Science Engineering Semester 1, 2018/19 COURSE COMMUNICATION FOLDER University of Miskolc Faculty of Earth Science and Engineering Institute of Geophysics and Geoinformatics

More information

C++ Programming Language Lecture 2 Problem Analysis and Solution Representation

C++ Programming Language Lecture 2 Problem Analysis and Solution Representation C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department Program Development Cycle Program development

More information

Structures and Union. Fall Jinkyu Jeong GEBD029: Basis and Practice in Programming Fall 2014 Jinkyu Jeong

Structures and Union. Fall Jinkyu Jeong GEBD029: Basis and Practice in Programming Fall 2014 Jinkyu Jeong Structures and Union Fall 2014 Jinkyu Jeong (jinkyu@skku.edu) 1 Review Bitwise operations You need them for performance in terms of space and time Shifts are equivalent to arithmetics Enumeration you can

More information

Guidelines for Writing C Code

Guidelines for Writing C Code Guidelines for Writing C Code Issue 01-bugfix Martin Becker Institute for Real-Time Computer Systems (RCS) Technische Universität München becker@rcs.ei.tum.de June 9, 2014 Contents 1 Introduction 1 2 Pragmatic

More information

Practical C Programming (Nutshell Handbooks) Ebooks Free

Practical C Programming (Nutshell Handbooks) Ebooks Free Practical C Programming (Nutshell Handbooks) Ebooks Free There are lots of introductory C books, but this is the first one that has the no-nonsense, practical approach that has made Nutshell HandbooksÂ

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++ CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 19 Introduction to C++ C++ C++ is an enormous language: All of C Classes and objects (kind of like Java, some crucial differences) Many

More information

ENCM 339 Fall 2017 Tutorial for Week 8

ENCM 339 Fall 2017 Tutorial for Week 8 ENCM 339 Fall 2017 Tutorial for Week 8 for section T01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary 2 November, 2017 ENCM 339 T01 Tutorial

More information

Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, Vol. 2. pp Virtuoso Virtuality

Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, Vol. 2. pp Virtuoso Virtuality Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 375 381. Virtuoso Virtuality Marianna Sipos Department of Information Technology,

More information

Maltepe University Computer Engineering Department. BİL 133 Algoritma ve Programlama. Chapter 8: Arrays and pointers

Maltepe University Computer Engineering Department. BİL 133 Algoritma ve Programlama. Chapter 8: Arrays and pointers Maltepe University Computer Engineering Department BİL 133 Algoritma ve Programlama Chapter 8: Arrays and pointers Basics int * ptr1, * ptr2; int a[10]; ptr1 = &a[2]; ptr2 = a; // equivalent to ptr2 =

More information

Outline. Program development cycle. Algorithms development and representation. Examples.

Outline. Program development cycle. Algorithms development and representation. Examples. Outline Program development cycle. Algorithms development and representation. Examples. 1 Program Development Cycle Program development cycle steps: Problem definition. Problem analysis (understanding).

More information

Calculus Early Transcendentals 7th Edition Pdf

Calculus Early Transcendentals 7th Edition Pdf Calculus Early Transcendentals 7th Edition Pdf Read Book Online: Calculus Early Transcendentals 7th Edition Pdf Download or read online ebook calculus early transcendentals 7th edition pdf in any format

More information

CPS1011. Program Structure {C};

CPS1011. Program Structure {C}; CPS1011 Program Structure {C}; Content Basic Constructs Statements Keywords Identifiers Operators Data Debugging CPS1011 2/18 Basic Constructs (i) Preprocessor directives e.g. #include Text merge

More information

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description CNG 140 C Programming 2012-2013 Fall Semester Syllabus Course Info Catalog Description Advanced programming with C: Storage and control structures, recursion and programming with dynamic data structures.

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject CSC Cat-nbr 2402 Class 35101 Term 2, 2004 Mode ONC Units 1.00 Campus WIBAY Academic group:

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Syllabus Web Page http://www.cs.northwestern.edu/~pdinda/icsclass Instructor Peter A. Dinda 1890 Maple Avenue, Room 338 847-467-7859 pdinda@cs.northwestern.edu Office hours:

More information