CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel...

27
CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel...

Page 1: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

CS 192

Problem Solving and Computer ProgrammingWinter 2003

InstructorDr. Shafay Shamail

TAAdeel ZafarIbrar Javed

Page 2: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Schedule

Section Lecture Lab

I MW TBA

II TT TBA

Page 3: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Description

This first level programming course shall cover the principles and practice of problem solving using C++.

Students shall be introduced to the basic C++ techniques such as program control statements, pointers, functions, structures etc.

The students shall gain hands-on experience through several programming assignments.

Page 4: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Text Books

•Primary– Herbert Schildt, ‘C++ from the Ground Up’, 2nd Edition, 1998,

Osborne McGraw-Hill.

•References– Deital & Deital, ‘C++ How to Program’, 3rd Edition, 2001,

Prentice Hall.

– Herbert Schildt, ‘C++: The Complete Reference’, 3rd Edition, 1998, Osborne McGraw-Hill.

 Some handouts may be given to supplement the text

Page 5: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Lectures

There shall be 30 sessionso       20 sessions of 75 minutes eacho       Up to 8 labs of 100 minutes each conducted by TA

Grading

o          15% Quizzes (quizzes may be based on assignments)o          10% Programming Assignments.o          15% Labso          25% Midterm Examo          35% Final Exam

Page 6: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

TopicsIntroduction Introduction to computer

programming and C++ 1 Chapter 1, 2

Overview of C++ and Basic Data Types

Programming practices, variables, constants, operators, expressions etc.

1.5 Chapter 2, 3

More Data Types and Operators

Enumerations, bool, Bitwise Operators, ? operator, dynamic allocation using new and delete etc.

1.5 Chapter 9

Page 7: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Topics …Program Control Statements

if statement, for loop, switch statement, while loop, do-while loop, continue, break, nested loops

2 Chapter 4

Arrays and Strings One dimensional arrays, strings, string library functions, two dimensional arrays, multidimensional arrays, array initialization, arrays of strings

3 Chapter 5

Pointers Pointer operators, pointer expressions, pointers and arrays, arrays of pointers, problems with pointers

3 Chapter 6

Page 8: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Topics …Functions Scope rules of functions, passing

pointers and arrays, argc and argv, return statement, recursion

2 Chapter 7

References, Overloading, and Default Arguments

Argument passing, function-overloading etc.

2 Chapter 8

Structures and Unions

2 Chapter 10

Basic File IO 2 Chapter 18

Page 9: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Scholastic Ethics

Students are expected to maintain high standards of academic honesty. The Disciplinary Committee will deal with breaches in scholastic ethics such as cheating.

    Plagiarism will be suspected if an assignment that calls for independent development and implementation of a program results in two or more solutions so similar that one solution can be converted to the other(s) by a series of simple commands

    Cheating will be suspected if a student who completed an assignment independently cannot explain both the intricacies of the solution and the techniques used to generate that solution

Page 10: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Examples of Cheating

• Turning in someone else's work, in whole or in part, as your own (with or without his/her knowledge)

• Turning in a completely duplicated assignment is a flagrant offense

• Allowing another student to turn in your work as his/her own

• Several people writing one assignment and turning in multiple copies, all represented (implicitly or explicitly) as individual work

Page 11: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Examples of Not Cheating

• Turning in work done alone or with the help of the course's TAs.

• Submitting one assignment for a group of students if group work is explicitly permitted (or required)

• Getting or giving help about using the computers

• Getting or giving help about solving minor syntax errors Penalties for cheating can be an 'F' in the course or worse.

Page 12: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

What is a Computer?• Computer

– A device capable of performing computations and making logical decisions

• Computer programs– Sets of instructions that control a computer’s processing of

data

• Hardware– Various devices comprising a computer

• Examples: keyboard, screen, mouse, disks, memory, CD-ROM, and processing units

• Software– Programs that run a computer

Page 13: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Computer Organization• Six logical units in every computer:

– Input unit• Obtains information from input devices (keyboard, mouse)

– Output unit • Outputs information (to screen, to printer, to control other devices)

– Memory unit • Rapid access, low capacity, stores input information

– Arithmetic and logic unit (ALU) • Performs arithmetic calculations and logic decisions

– Central processing unit (CPU) • Supervises and coordinates the other sections of the computer

– Secondary storage unit • Cheap, long-term, high-capacity storage, stores inactive programs

Page 14: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

A Bit of History

• Which was the first programmable computer?• Charles Babbage’s Analytical Engine (early 1800’s)• First programmer?• Ada Augusta, Countess of Lovelace; Charles’s

colleague and daughter of Lord Byron

Page 15: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

“The Analytical Engine has no pretensions whatever to originate anything. It can do

whatever we know how to order it to perform. It can follow analysis; but it has no power of

anticipating any analytical relations or truths. Its province is to assist us in making available

what we are already acquainted with.”

-Ada Augusta, Countess of Lovelace

Page 16: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Evolution of Operating Systems

• Batch processing– Do only one job or task at a time

• Operating systems – Manage transitions between jobs– Increased throughput

• Amount of work computers process

• Multiprogramming – Many jobs or tasks sharing a computer’s resources

• Timesharing– Perform a small portion of one user’s job then move on

to service the next user

Page 17: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Personal ComputingDistributed Computing

Client/Server Computing• Personal computers

– Economical enough for individual

• Distributed computing – Organizations computing is distributed over networks

• Client/server computing– Sharing of information, across computer networks,

between file servers and clients (personal computers)

Page 18: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Types of Programming Languages• Machine languages

– Strings of numbers giving machine specific instructions– Example:

+1300042774+1400593419+1200274027

• Assembly languages– English-like abbreviations representing elementary computer

operations (translated via assemblers)– Example:

LOAD BASEPAYADD OVERPAYSTORE GROSSPAY

• High-level languages – Similar to everyday English, use mathematical notations

(translated via compilers)– Example:

grossPay = basePay + overTimePay

Page 19: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Some High-Level Languages• Java used to

– Create web pages with dynamic and interactive content– Develop large-scale enterprise applications– Enhance the functionality of web servers– Provide applications for consumer devices (such as cell phones, pagers and

personal digital assistants)

• FORTRAN– Used in scientific and engineering applications

• COBOL – Used to manipulate large amounts of data

• Pascal – Used to teach structured programming

• C/C++– Middle-level language– Provides facilities for both high level as well as low level programming

Page 20: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

History of C and C++• C++ evolved from C

– C evolved from two other programming languages, BCPL and B

• ANSI C– Established worldwide standards for C programming

• C invented by Dennis Ritchie of AT&T Bell Labs in the 1970s

• C++ by Bjarne Stroustrup of the same labs in the early 1980s

• C++ “spruces up” C– Provides capabilities for object-oriented programming

• Objects are reusable software components that model things in the real world

• Object-oriented programs are easy to understand, correct and modify

• C is a subset of C++

Page 21: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Structured Programming

• Structured programming – Disciplined approach to writing programs– Clear, easy to test and debug, and easy to

modify

• Multitasking– Many activities to run in parallel

Page 22: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Basics of a Typical C++ Environment

Phases of C++ Programs:

1. Edit

2. Preprocess

3. Compile

4. Link

5. Load

6. Execute

Loader

PrimaryMemory

Program is created inthe editor and storedon disk.

Preprocessor programprocesses the code.

Loader puts programin memory.

CPU takes eachinstruction andexecutes it, possiblystoring new datavalues as the programexecutes.

CompilerCompiler createsobject code and storesit on disk.

Linker links the objectcode with the libraries,creates a.out andstores it on disk

Editor

Preprocessor

Linker

 CPU

PrimaryMemory

.

.

.

.

.

.

.

.

.

.

.

.

Disk

Disk

Disk

Disk

Disk

Files:

*.cpp, *.c, *.h

*.obj, *.exe

Page 23: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Errors• Syntax errors

– reported by the compiler• Linker errors

– reported by the linker• Execution/Run-time errors

– reported by the operating system• Logic errors

– not reported

Page 24: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Introduction to C++ Programming

• C++ language– Facilitates a structured and disciplined

approach to computer program design

• C and C++ are portable languages – Programs written in C and C++ can run on

many different computers

Page 25: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Identifiers in C++

• A name assigned to:– A constant

– Variable

– Function

– User defined data type

Page 26: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Identifiers in C++ …

• Rules– Can be from one to several characters long

– First 1024 characters are significant

– May consist of alphanumeric and underscore characters

– May start with any letter of alphabet, or with an underscore

– Are case sensitive

– No special characters are allowed

– Spaces are not allowed as part of the identifier name

– Keywords cannot be used as identifiers

– Any other reserved words by the language (such as names of library functions) shall not be used as identifiers

Page 27: CS 192 Problem Solving and Computer Programming Winter 2003 Instructor Dr. Shafay Shamail TA Adeel Zafar Ibrar Javed.

Identifiers in C++ …

• Conventions– Use identifier names that reflect the meaning or usage

of the items being named

– THISISACONSTANT or THIS_IS_A_CONSTANT

– thisisavariable or this_is_a_variable

– thisIsAFunction

– ThisIsAUserDefinedDataType