Toc 1
Toc 1
Toc 1
INTRODUCTION
CSC3113-Theory of Computation 2
SELF INTRODUCTION
CSC3113-Theory of Computation 3
THE LIST OF COURSES I TAUGHT:
CS Mathematics
Math 2
Data Structure
Math 3
Theory of Computation
Math 4
Business Mathematics
Computer Fundamental
E-governance
Discrete Mathematics
Research Methodology
Operating System Advanced Operating System (MSc.)
CSC3113-Theory of Computation 4
MY RESEARCH AREAS:
Machine Learning
Computational Modeling
Solar Energy
CSC3113-Theory of Computation 5
SPECIAL AWARD
Best Researcher 2021
Chebyshev grant 2022
6
PUBLICATIONS: Journal papers
Afroza Nahar, Hasanuzzaman, M., Rahim, N. A., & Parvin, S. (2023).
“Thermo-fluid Physiognomies of a Photovoltaic Thermal Collector: A
Comparative Study with Different Flow Channel Materials”. Journal of
Solar Energy Engineering. Vol. 145, pp. 1-13
7
PUBLICATIONS: Journal papers
Md. Navid Bin Anwar, Afroza Nahar, Nashid Kamal Md., Mehedi
Hasan Shuvo (2022). “A Waiting Time Based Bully Algorithm for
Leader Node Selection in Distributed System”. Malaysian Journal of
Science. Vol. 41(3), pp. 38-43
CSC3113-Theory of Computation 8
PUBLICATIONS: Journal papers
Afroza Nahar, Hasanuzzaman, M., Rahim, N. A., & Parvin, S. (2022).
“Thermo-fluid Physiognomies of a Photovoltaic Thermal Collector: A
Comparative Study with Different Flow Channel Materials”. Journal of
Solar Energy Engineering. Vol. 145, pp. 1-13
CSC3113-Theory of Computation 9
PUBLICATIONS: Journal papers
Md. Faruk Abdullah Al Sohan, Afroza Nahar, Md Sajid Bin-Faisal,
(2021). “LEACH-S2: A Brief Approach on a Proposal of an Energy
Efficient LEACH Routing” International Journal of Advanced
Networking and Applications. vol. 13 (2), pp. 4931-4938.
CSC3113-Theory of Computation 10
PUBLICATIONS: Journal papers
Afroza Nahar, Hasanuzzaman, M., Rahim, N. A., Parvin, S. (2019).
Numerical investigation on the effect of different parameters in
enhancing heat transfer performance of photovoltaic thermal
systems. Renewable energy, 132: 284-295.
CSC3113-Theory of Computation 12
PUBLICATIONS: Journal papers
Islam, M. A., Hasanuzzaman, M., Rahim, N.A, Afroza Nahar,
Hosenuzzaman, M. (2014). Global Renewable Energy Based Electricity
Generation and Smart Grid System for Energy Security, The Scientific
World Journal, 2014, Page 13.
CSC3113-Theory of Computation 13
PUBLICATIONS: Conferences
papers
Afroza Nahar, Rifat Al Mamun R., Md. Faruk Abdullah Al Sohan and
Rubina Islam, “Predicting Photovoltaic Power Generation by Machine
Learning Using Time Series Analysis”, 15th International Conference on
Applied Energy (ICAE2023). 03-Dec-2023 - 07-Dec-2023. Doha, Qatar.
Rifat Al Mamun R., Afroza Nahar, Md. Faruk Abdullah Al Sohan and
Rubina Islam. “Enhancing Elderly Healthcare Access in Smart Cities: A
Pathway to Inclusive Wellbeing" ICASF conference. December 5-6,
2023, UAE.
Afroza Nahar, Rubina Reya, Md. Sohan, Rifat Rudro (2023).
“Enhancing Academic Integrity: A Multi-model Deep Learning
Approach for Reliable Test Supervision and Dishonesty Detection”
APQN Academic Conference (AAC), 2-4 November 2023. Dhaka,
Bangladesh.
14
PUBLICATIONS: Conferences papers
Md. Faruk Abdullah Al Sohan, Nusrat Jahan Anannya, Afroza Nahar,
kalpoma Kazi A. (2022), “The International Conference on Electrical,
Computer, Communications and Mechatronics Engineering
(ICECCME)”, 16-18 November 2022, Maldives.
CSC3113-Theory of Computation 16
PUBLICATIONS: Conferences papers
Afroza Nahar, M. Hasanuzzaman, N. A. Rahim, Concentrated Solar
Thermal Based Power Generation, Proceeding of the 2nd Power and
Energy Conversion Symposium ( PECS, 2014), University Technical
Malaysia, Melaka, Malaysia, 12 May 2014, pp.135-140. (Non-ISI/Non-
SCOPUS Cited Publication).
CSC3113-Theory of Computation 17
LECTURE OUTLINE
CSC3113-Theory of Computation 18
LEARNING OBJECTIVE
WELCOME & INTRODUCTION
To know the vision & mission of AIUB and the FST.
CSC3113-Theory of Computation 19
LEARNING OUTCOME
WELCOME & INTRODUCTION
Students will understand the vision & mission of the university and the faculty the
belong to.
Students will know the policies regarding –
Class attendance; Classroom behavior & interaction; Q/A session rules
Outside class interaction, consultation and communication.
Exams/viva/assignment… overall assessment policies and marks distribution
Students will have a clear idea about the –
Objective and outcome of the course; Course outline/syllabus
Weekly distribution of the topics; Books and references
Pre-requisite course/topics provided as a reading material
CSC3113-Theory of Computation 20
MISSION & VISION
American International University-Bangladesh Department of Computer Science
Vision: Our vision is to be the preeminent
Vision: AMERICAN INTERNATIONAL UNIVERSITY- Department of Computer Science through creating
BANGLADESH (AIUB) envisions promoting professionals recognized professionals who will provide innovative
and excellent leadership catering to the technological solutions by leveraging contemporary research
progress and development needs of the country. methods and development techniques of computing
Mission: AMERICAN INTERNATIONAL UNIVERSITY- that is in line with the national and global context.
BANGLADESH (AIUB) is committed to provide quality Mission: The mission of the Department of
and excellent computer-based academic programs Computer Science of AIUB is to educate students in a
responsive to the emerging challenges of the time. It is student-centric dynamic learning environment; to
dedicated to nurture and produce competent world provide advanced facilities for conducting innovative
class professional imbued with strong sense of ethical research and development to meet the challenges of
values ready to face the competitive world of arts, the modern era of computing, and to motivate them
business, science, social science and technology. towards a life-long learning process.
CSC3113-Theory of Computation 24
COURSE OUTCOME
AT THE END OF THIS COURSE, THE FOLLOWING OUTCOME SHALL HAVE BEEN ATTAINED
CSC3113-Theory of Computation 25
COURSE OUTLINE
INTRODUCTION
Automata and Formal Language Theory: Deterministic finite
automata, nondeterministic finite automata, regular expressions;
Pumping Lemma, non-regular languages; Pushdown automata and
context-free languages.
Computability Theory: Turing Machines and the Church-Turing
thesis; Decidability, halting problem;
Complexity Theory: Time complexity, space complexity; Complexity
classes P, NP, PSPACE and the P vs. NP question. Polynomial time
reductions and NP-completeness.
Week wise topic distribution.
CSC3113-Theory of Computation 26
COURSE OUTLINE
INTRODUCTION
Books & References:
Introduction to the Theory of Computation; (Latest Edition) by
Michael Sipser.
CSC3113-Theory of Computation 27
PRE-REQUISITE
MATHEMATICAL REASONING AND ALGORITHMIC THINKING IS REQUIRED:
** some reading material regarding these topics are given at the end.
CSC3113-Theory of Computation 28
WHY STUDY THEORY OF
COMPUTATION?
Let us consider a scenario –
You are in a room full of different objects scattered all over the floor. You need to go from one end
of the room to another end crossing over these objects. You may step onto the objects in the
room or remove the objects from the path to crossover. But some objects may be too hard to
step on or may be too heavy (or fixed on the floor) to be removed from the path.
Now let us consider 3 conditions –
If you are crossing the room blindfolded, you would definitely step onto the objects in the room
to crossover, but some objects may be too hard to step on which may result in painful experience
on your legs.
If you are crossing with eyes open, you may remove/move away some of the objects while
stepping towards the other end but may remove something which shouldn’t be removed or may
try to move something which you can never be moved.
If you are crossing the room with your eyes open and knowing the nature of the objects, you may
reach the other end without any problem by removing the objects which can be removed and
stepping on the (soft) objects which will not give you pain. Still there may be some instances
where you need to step onto some hard objects, but this time you would be prepared as you
know from before.
This is known as classical difference between “Walking the path” and “Knowing the path”.
CSC3113-Theory of Computation 29
…WHY STUDY THEORY OF
COMPUTATION?
Computer science is all about solving problem using the computational capacities
(software/hardware) of a computing devices/tools. So, it is very important to know the
model of these computations, capabilities & limitations of these devices/tools, and the
complexity of the solutions of the given problem, which is the content of the theory of
computation.
At the end of your graduation you can be a programmer, developer, software engineer or
any other CS professionals with clear concept about your favorite areas of computer
science (programming/software engineering etc.), without even knowing the theory of
computation.
But that would be like the first (blindfolded) group, where you would be dependent
on the software tools or device configuration given to you to solve the problem. To
reach at the pick level of your profession, you will be stepping onto a lot of hard
objects where you need to learn some of the concept of theory of computation to
complete your solutions and carry on towards your goal.
If you are an alert/talented person and have a reasonable idea about TOC like the
second (eyes-open) group, you would still be dependent and need to go through the
painful process of re-learning to complete your solutions and achieve your goal.
CSC3113-Theory of Computation 30
…WHY STUDY THEORY OF
COMPUTATION?
If you have a good concept of the theory of computation along with your favorite
areas of computer science, you will definitely have a privilege over others to achieve
your professional goal. You will not be completely dependent on the given
capacities of the devices/tools. As you have the idea of computation, you can come
up with your own tools/devices based on the requirement of your solution.
In present technological world (IoT, BigData, AI, etc.) everything is a blending of
hardware and software. To be a better computer professional, you must know the
computational models, capabilities, and/or complexities to put a software onto a
hardware or engineer a hardware for an intended software.
In theory of computation you will learn abstract machines, systems, or model of
computation, which will be defined mathematically. Every change or enhancement
we made on a mathematical computational model of devices/systems, can surely be
implemented as the theory gives us fundamental capabilities and limitations of
these devices/systems. Now the opposite is not possible. You cannot make a device
or system first then come up with a theory to sustain it.
CSC3113-Theory of Computation 31
…WHY STUDY THEORY OF
COMPUTATION?
The importance to study the theory of computation is to
Better understand the development of formal mathematical models of
computation that reflect the real-world of computer.
To achieve deep understanding about the mathematical properties of computer
hardware and software.
Mathematical definitions of the computation and the algorithm.
To rectify the limitations of computers and answer what kind of problems can be
computed?
Usability of TOC:
Machines Models (different computational devices/SW tools)
Problem/solution Models (machines/algorithms can be used to solve)
Theorems about what types of machines can solve what types of problems, and
at what cost.
We will work on Sequential and single-processor computing, Focus on decision
problems (yes/no answers) on discrete inputs.
CSC3113-Theory of Computation 32
“THEORY” OF “COMPUTATION”
Computation: The processing of information by the unlimited
application of a finite set of operations or rules.
Theory: General ideas that apply to many different systems
(Independence from Technology); Expressed simply, abstractly, and
precisely.
Precision: Can be used to prove formal mathematical theorems
CSC3113-Theory of Computation 33
LINGUISTICS
Linguistics is the scientific study of language. It involves the analysis of language form, language
meaning, and language in context.
Language theory is a branch of mathematics concerned with describing languages as a set of
operations over an alphabet.
We, the human, communicate with language. In written form, we use different symbols to
express. But a machine has no capability to understand such symbols.
We know from our previous courses, that any computing system works on the format – Input
Process Output.
And every input we provide is nothing but a stream of symbols (even a picture or video is
converted to streams of symbols) that is later converted to numbers and lastly into signals that
a device can process.
For every models in this course we will be using the symbols (a-z, 0-9, #, $, etc.) as input and try
to come up with a model of computation to process these streams into a meaningful output.
Our main focus would be to process a given language using a given configuration of
machine/system (mathematical model) and find out if this language can be processed by this
machine or not (decision problem).
CSC3113-Theory of Computation 34
THEORY OF COMPUTATION
We will deal with –
Mathematical abstraction of computing devices/systems called a model of computation.
What problems can be solved on a model of computation, using some computational steps
(algorithm),
How efficiently they can be solved or to what degree (e.g., approximate solutions versus
precise ones).
Theory of computation (TOC) is based on analysis of the fundamental capabilities and
limitations of computing devices/systems.
The objective is to Build a theory out of the idea of computation.
Three areas are explored for this purpose –
Automata (formal languages)
Computability
Complexity
Though these ideas and models are mathematical in nature, each of these three areas has
different interpretation of the analysis. And the solution also very according to the
interpretation.
CSC3113-Theory of Computation 35
AUTOMATA THEORY
Automata comes from the Greek word (Αυτόματα) which means that something is doing
something by itself.
Automata deals with the study of abstract (mathematical model) machines or systems
(definition and properties) and the computational problems (defined in terms of formal
languages) that can be solved (recognized) using these machines.
An automaton can be a finite representation of a formal language that may be an
infinite set (language theory). Formal languages are the preferred mode of
specification (input) for any problem that must be computed (processed).
Automata are used as theoretical models for computing machines (input, process,
output),
These abstract computing machines are used for proofs about computability
(solvability).
Such models include –
finite automaton, used in text processing, compilers, and hardware design
Context-free grammar, used in programming languages and artificial intelligence
CSC3113-Theory of Computation 36
COMPUTABILITY THEORY
Deals with certain basic problems that cannot be solved by computers
(how do we know/prove?).
For example – Problem of determining whether a mathematical
statement is true or false. No computer algorithm can perform this
task, at least, no algorithm is known till now.
Development of ideas concerning theoretical models of computers
that eventually would help to lead to the construction of actual
computers.
In computability theory, the classification of problems is by those that
are solvable and those that are not.
CSC3113-Theory of Computation 37
COMPLEXITY THEORY
Deals with the method and ideas to decide if problems are computationally
hard and/or easy.
There are elegant schemes for classifying problems according to their
computational difficulties. For example –
Try to alter the aspects of the problem which is at the root of the
difficulty so that the problem is more easily solvable.
Settle for less than a perfect solution to the problem. In certain cases
finding solutions that only approximate the perfect one is relatively easy.
Some problems are hard only in the worst-case situation, but easy most
of the time.
Cryptography is one of the examples which requires computational problems
that are hard, rather than easy, because secret codes should be hard to break
without the secret key or password.
CSC3113-Theory of Computation 38
LINKING TO OTHER AREAS OF
SCIENCE
Finite automata arise in compilers, AI, coding, chemistry.
Hard problems are essential to cryptography.
Computation occurs in cells/DNA, the brain, economic systems,
physical systems, social networks, etc.
Following is a link where you will find many more areas that is linked
with this course.
https://cstheory.stackexchange.com/a/14818
CSC3113-Theory of Computation 39
REFERENCES
CSC3113-Theory of Computation 40
CSC3113-Theory of Computation 41