100% found this document useful (1 vote)
49 views25 pages

CSE 203G: Introduction To C: Lecture - 1

This document provides an overview of an introductory C programming course. It discusses the course teacher's background and research interests. The course will cover basic C programming concepts like variables, operators, control statements, functions, arrays, pointers, structures and files. It motivates learning C by explaining that C is a mid-level language that is fast and requires coding many functionalities from scratch. The document also provides a high-level introduction to computers, describing their basic components and how they process input data to produce output through programs.

Uploaded by

Anik Sazid Ahsan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
49 views25 pages

CSE 203G: Introduction To C: Lecture - 1

This document provides an overview of an introductory C programming course. It discusses the course teacher's background and research interests. The course will cover basic C programming concepts like variables, operators, control statements, functions, arrays, pointers, structures and files. It motivates learning C by explaining that C is a mid-level language that is fast and requires coding many functionalities from scratch. The document also provides a high-level introduction to computers, describing their basic components and how they process input data to produce output through programs.

Uploaded by

Anik Sazid Ahsan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

CSE 203G: Introduction to C

Lecture – 1

Course Teacher: Dr. Md Sadek Ferdous


Assistant Professor, CSE, SUST
E-mail: ripul.bd@gmail.com
Background
• CSE, SUST Alumni: 6th Batch
• MSc in Security & Mobile Computing
• Norwegian University of Science & Tech, Norway
• University of Tartu, Estonia
• PhD – University of Glasgow, UK
• Thesis: Mobile Identity Management
• 3+ years of post-doctoral experience
• University of Glasgow, UK
• University of Southampton, UK
• Imperial College London, UK
• Current research interests:
• Blockchain, Security & Privacy
Outline
• Motivations
• Course Information
• Basic concepts
Outline
• Motivations
• Course Information
• Basic concepts
Motivations
• Computer Science as an academic discipline is expanding its root to almost every
other academic domains
• Social scientists are increasingly relying on big data and data analysis for carrying
out their research work
• Computers are increasingly being used in Medicine
• Think about the need of image processing in medical fields, AI/ML-based analysis that can
predict/detect a certain disease much more efficiently
• I read this somewhere: “if you want to be a good medical scientist, learn how to program!”
• For IPE, it is even for relevant:
• Computer-controlled Robots
• Automated production systems
• Computer-aided manufacturing
• Computer-aided design
Motivations
• To achieve effective results:
• Learning a programming language often helps!
• There are other perks:
• Programming helps you expand your critical thinking capability
• You will often find that programming is all about an exercise in logic!
• Learning to program teaches you persistence J
• Coding develops structured and creative thinking
• When a problem is given, you try to solve it breaking down into small pieces!
Motivations
• Why will you learn C? Not any other language?
• A quick search on Wikipedia reveals around __ programming
languages??
Motivations
• Why will you learn C? Not any other language?
• A quick search on Wikipedia reveals around 600++ programming
languages
• But why learn C?
• C is considered the mother of all programming languages!
• C is mid level language, not so high-level and not so low level
• C has limited programming libraries, meaning there is no short-cut, many
times you will need to code your own functionalities
• C is extremely fast
Motivations

https://cdn-images-1.medium.com/max/800/1*1G-6zH8XnZE8TjV5vsPDOg.jpeg
Outline
• Motivations
• Course Information
• Basic concepts
Course information
• Text book:
• Programming with C (Second Edition) By Byron Gottfried. Schaum’s Outlines
Series
• Head First C, By David Griffiths & Dawn Griffiths. O’ Reilly
Course syllabus
• Introductory concepts on programming languages
• C Fundamentals
• C Operators and Expressions
• Control statements
• Functions
• Arrays
• Pointers, Structures and Files
Outline
• Motivations
• Course Information
• Basic concepts
Computer
• Computer is a machine that can perform computation
1. Input : User gives a set of Input
2. Processing : Input data is processed by a well defined and finite
sequence of steps
3. Output: Some data available from processing step and output to the
user
A Barebone Computer

Input Central
Output
Peripherals Processing
Peripherals
Unit (CPU)

Main
Memory

Storage
Peripherals
I/O & Peripherals
• Input Devices
• Keyboard, Mouse, Digital Camera
• Output Devices
• Monitor, Printer, Speaker
• Storage Peripherals
• Magnetic Disks: hard disk
• Optical Disks: CDROM, CD-RW, DVD
• Flash Memory: pen drives
Computer
• All digital computers, regardless of their size, are basically electronic
devices that can transmit, store, and manipulate information (i.e., data)
• Several different types of data can be processed by a computer including:
• numeric data, character data (names, addresses, etc.), graphic data (charts,
drawings, photographs, etc.), and sound (music, speech patterns, etc.)
• The two most common types, from the standpoint of a beginning
programmer, are numeric data and character data
• Scientific and technical applications are concerned primarily with numeric
data
• Business applications usually require processing of both numeric and
character data
Computer types
• Mainframe computers
• Supercomputers
• Personal computers
• Mobile computers
Computer types
IBM mainframe computers

• Mainframe computer:
• “Mainframe computers or mainframes
(colloquially referred to as "big iron") are
computers used primarily by large organizations
for critical applications; bulk data processing, such
as census, industry and consumer statistics,
enterprise resource planning; and transaction https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/IBM_z13_and_LinuxO

processing” [From Wikipedia] NE_Rockhopper.jpg/220px-IBM_z13_and_LinuxONE_Rockhopper.jpg

IBM Blue Gene supercomputers

• Supercomputers:
• A particular type of mainframe computer with
more computational capability
• IBM Blue Gene has 164,000 processor cores!!
Computer types
• Personal computers:
• Have moderate computational capabilities with around 8 core facilities
• Mobile computers:
• Quite powerful nowadays
• My first PC in 1998 had a single-core Intel processor with 64MB RAM and 20
GB HDD
• Quite powerful at that time
• SAMSUNG Galaxy S10 has 2 octa-core processors with 8GB RAM and 128 GB
ROM
What a computer does
• Solve Types of Problems
1. Functional Problem (Matrix Inverse)
2. Decision Problem (Primality test)
3. Search Problem
4. Optimization problem
What a computer does
• Determining if a given integer is a prime number
• Root finding
• Read in airline route information as a matrix and determine the shortest time
journey between two airports
• Telephone pole placement problem
• Matrix multiplication
• Finger-print recognition
• Chess Player
• Speech Recognition
• Language Recognition
• Discovering New Laws in Mathematics
• Automatic drug discovery
• …..
Practical view of a computer
• To process a particular set of data, the computer must be given an
appropriate set of instructions called a program
• These instructions are entered into the computer and then stored in a
portion of the computer’s memory
• A stored program can be executed at any time. This causes the following
things to happen:
• A set of information, called the input data, will be entered into the computer (from
the keyboard, a floppy disk, etc.) and stored in a portion of the computer’s memory
• The input data will be processed to produce certain desired results, known as the
output data
• The output data, and perhaps some of the input data, will be printed onto a sheet of
paper or displayed on a monitor (a television receiver specially designed to display
computer output)
Practical view of a computer
• Computer needs to be programmed to do such tasks
• Programming is the process of writing instructions in a language that
can be understood by the computer so that a desired task can be
performed by it
• Program: sequence of instructions to do a task, computer processes
the instructions sequentially one after the other
• Software: programs for doing tasks on computers
The lecture slides can be found in the following location!

You might also like