Vous êtes sur la page 1sur 37

CS113: Introduction to Programming

BEE4D

Samin Khaliq
samin.khaliq@seecs.edu.pk
Pre-requisites and Credit Hours

Pre-requisites: None

Credit Hours: 1 + 1
1 lecture per week
3 hours lab per week

2
Course Outline
Programming Language: C

Data types and operators

Statements and Control Flow

Declarations and Initialization

Functions

Basic I/O

Arrays

3
Textbook

Published by
W. W. Norton & Company
Reference Books

Object Oriented Programming in C++


Robert Lafore, 4th Edition

C How to Program
Dietel and Dietel, 6th Edition

Internet
Any book you find easy to read
Contact Details

Counseling hours
Thursday (1100 to 1300 hrs)

Email Address: samin.khaliq@seecs.edu.pk

Phone : 90852191

Office: A205, 1st floor, Faculty Block, SEECS

6
Evaluation Criteria

Theory (50%)
1. Quiz 10%
2. Assignments 10%
3. OHTs 30%
4. Final 50%

Practical (50%)
1. Lab Assignments 60%
2. Project 40%

7
Quiz

Announced
Unannounced

No best-of quizzes
All quizzes are counted towards the final result
Lab Work

Each lab will comprise of a lab exercise


Implementation of concepts studied during
lectures

Lab assignment to be submitted individually

Programming Language: C

Programming Tools
MS Visual C++ 2010

9
Project: C Language

Grading will be done based upon


Demo
Viva

Group of 3 to 4 students

Original and creative


Course Website

Primary source of information (LMS)


Lectures and Handouts
Assignments
Online submission on Turnitin
Grade Sheet

http://lms.nust.edu.pk/portal
Deadlines

All work is due on the due date

NO credit on LATE submission of any


deliverable

If LMS is non-functional, e-mail the


assignment

Excuses (no electricity, no internet


connectivity) will not be entertained
12
Plagiarism/cheating Policy

Zero Tolerance Policy


Collaboration / Group work encouraged
Submit work expressed in your own words
Always acknowledge help taken from other
sources
Cheating and plagiarism will not be
tolerated
Referred to the Dean for appropriate action

13
Expectations

Attend all lectures and labs


Do programming assignments yourself
Learn the skill of debugging code yourself
The more mistakes you make, the more you
learn

Practice, Practice, Practice


Todays lecture

Computers

Programming Language

15
History of Computing

Charles Babbage (1791-1871, Famous


mathematician, Professor at Cambridge
University, Chair of Newton)
1833 made a design of a computing device
Worlds first digital general purpose
computer
Named Analytical Engine
A brilliant design
Could not be constructed during his time
Possible after 100 years of his design
Made in Harvard which was similar to his design
Father of the computer
Analytical Engine
Analytical Engine

A programmable mechanical digital


machine.
Nowadays our computers are all electronic.
But at that time electronics technology did
not exist.
All the capabilities of todays modern
computer
Computations
Make decisions: If-else
Input, storage, processor, output
They used to call the processor MILL like sugar
mill.
Harvard Mark I (1943)
Ada (1815 1852)

Famous student of Charles Babbage


Ada (Mathematician)
Her fathers name was Byron who was a
famous poet
Wrote a program for Babbages machine
(considered to be the first computer program)
Worlds first computer programmer
Language: Ada
US Dept. of defence designed this first
language and to honour her they named the
language Ada.
Computer

What is a computer?

Why use a computer?

What value do computers bring to us?

What are computers good at?


Computer

The first use of the word "computer"


recorded in 1613
A person who carried out calculations, or
computations
From the end of the 19th century onwards
though, the word began to take on its
more familiar meaning
A machine that carries out computations
A computer is a programmable machine that
receives input, stores and manipulates data,
and provides output in a useful format.
Advantages

Speed

Storage

Accuracy
Disadvantages

Image and Pattern recognition

Can computers think?

Come up with brand new innovative ideas.


Programming Languages
Programming Language

An artificial language used to write


instructions that can be translated into
machine language and then executed by a
computer.

Programming languages can be used to


create programs that control the
behaviour of a machine and/or to express
algorithms precisely.
Types of Programming Languages
Low Level Languages
1. Machine language (1GL)
Strings of numbers giving machine specific instructions
Example: Calculates nth Fibonacci number
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3
2. Assembly language (2GL)
English-like abbreviations representing elementary computer
operations (translated via assemblers)
Example: fib:
mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax,
0 ret

27
Types of Languages

3. High-level languages (3GL)


Codes similar to everyday English
Use mathematical notations (translated via
compilers)
Example:
grossPay = basePay + overTimePay
Languages:
C, C++, Java, FORTRAN, COBOL, Pascal

28
Development of programming
languages
Development of Programming
Languages
2000 C#
.
.
2001 Visual Basic .NET
.
.
2009 Go by Google Inc. (Similar to C)
.
.
2011 Ceylon (Similar to Java)
A brief history of C
Developed by Dennis M. Ritchie at AT&T Bell Labs
between 19691973 for UNIX
Descendant of Ken Thompsons language B
First published specification standard:
Ritchie and Brian Kernighan The C Programming
Language in 1978
C-dialect now known as K&R-Style
Ease of portability language began to spread
A slightly modified version of K&R was
standardised by ANSI 1989
C-dialect now known as ANSI-C
The latest revision of the Standard is C99 (ISO)
ISO/IEC JTC1/SC22/WG14 is the international standardization
working group for the programming language C.
Dennis Ritchie and Ken Thompson
C and C++

C++ is descended from C


Written by Bjarne Stroustrup during 1983-1985
Originally called C with Classes
ISO/IEC JTC1/SC22/WG21 has produced the
standard ISO/IEC 14882:1998 on the
programming language C++
C and C++ are different languages
Why C / C++ ?
High level language
C is higher level than assembler but still close
to the hardware and allows direct manipulation
of many system aspects: pointers, memory
allocation, bitwise manipulation.
Widely used across the world
Portability - Programs can run on many
different computers
Fast
Structured (Extensive use of functions)
Tiobe Index (www.tiobe.com)
Internet Resources

Programming languages map


http://www.digibarn.com/collections/posters
/tongues/tongues.jpg

Timeline of programming languages


http://en.wikipedia.org/wiki/Timeline_of_pr
ogramming_languages

Vous aimerez peut-être aussi