CSL1010: Introduction to
Computer Science
About Me
• Professor, CSE department - December 2019 onwards
• Faculty, IIIT Delhi - 2009 - 2019
• PhD, West Virginia University, USA
• Research Area: AI, ML, Biometrics, Forensics, Medical Image Analysis
• Image Analysis and Biometrics Lab@CSE IIT Jodhpur
Tutors and Teaching Assistants
• Will be shared shortly
• Weekly labs will be scheduled
Google Classroom Code
What is this course about?
Why do you need to study this course?
What is this course about?
• Fundamentals of computers
• Fundamentals of programming
• Computational thinking
Syllabus - broadly
• Basics: • Programming:
• Organization, • Data representation,
• Operating system • Programming constructs
• Computational thinking • Object oriented programming
• Programming paradigms
Syllabus… detailed syllabus
• Introduction: Basics of computer organization: illustration using Arduino, Operating System,
Computational Thinking: Problem solving, system design, algorithms.
• Basics of Data Representation: Binary representation: Integer, Fixed point and oating point
numbers, variables, arrays and linked-list, data-types
• Programming Constructs: Imperative programming, statements, control constructs, procedures,
functions and program structure, pointers, structures, storage. Simple I/O, File I/O. Examples in
C.
• Object oriented Programming: Concept of class, instances, encapsulation, inheritance, static
Methods and class Methods, object memory management, illustrations using C and Python.
Lists, Tuples, Sets, Dictionaries, Generators Modules, packages, containers.
• Programming Paradigms: Functional programming, The lambda operator, Procedural programming,
Dynamic typing, Polymorphism Dynamic Binding and Duck Typing, Illustrations using Python.
Books
Tentative Evaluation Policy
• Exams: 50% (20-30) • Projects: group based
• Labs: 25% • Rest all: individual
• Quizzes: 10% • No cheating will be tolerated
• Project: 15% • Institute attendance policy will be
applied.
Why do you need to study this course?
• I am from non-CSE, non-AI program, or from non-circuital branches, why do
I need this course?
Why do you need to study this course?
• Today, automation and problem solving skills are at the core of any problem
• How do you solve a problem computationally?
History of Computing
Abacus, 16th century Blaise Pascal, 17th century Jacquard’s loom, 18th century
History of Computing
• 1850: Analytical Engine, Charles Babbage and Ada Byron
• 1939 - 1942: Atanasoff Berry Computer - binary system of of arithmetic,
parallel processing, regenerative memory, separation of memory and
computing functions etc.
• 1940s - Colossus - a vacuum tube computing machine which broke Hitler's
codes during WW II.
• 1946 - ENIAC - World's rst electronic, large scale, general-purpose
computer, built by Mauchly and Eckert,
fi
That’s all for today.