ahmedabad university school of engineering and applied science · cse discrete mathematics (3-0-3)...
TRANSCRIPT
Major in COMPUTER SCIENCE AND ENGINEERING 1
Ahmedabad University
School of Engineering and Applied Science
Bachelor of Technology programmes
The Bachelor of Technology programmes are the entry level for education and career in
engineering and technology. A minimum academic preparation at the level of 12th standard
physics, chemistry and mathematics is required. The curriculum provides wholesome education
with in-depth focus on an engineering major alongside breadth via a strong multi-disciplinary
engineering foundation, and in humanities and social sciences. Team-work, design, learning-by-
doing, project-based learning, developing communication skills, awareness of societal issues and
lifelong learning abilities are strongly emphasized. Sustainability is a common theme. The
education will also provide a strong base for undertaking higher studies in engineering and
technology, pursuing a career and becoming an entrepreneur, amongst others. Classroom
instruction is strongly augmented with laboratory work and use of associated software packages.
School of Engineering and Applied Science offers three majors, at bachelor’s level, viz., Chemical
Engineering, Computer Science and Engineering, and Mechanical Engineering.
Major in Computer Science and Engineering
Curriculum Structure
The Computer Science and Engineering undergraduate program objectives are as under:
Programme Objectives
• Sound knowledge of fundamentals of computer science and engineering including software and
hardware.
• Enable students with strong analysis, design, development, implementation and testing skills to
formulate simple to complex computing solutions to solve the business and societal needs.
• Use various programming languages, tools and technology supporting modern software
frameworks for solving problems having large volume of data of various domains.
Major in COMPUTER SCIENCE AND ENGINEERING 2
Introduction to the major including why major in that discipline
The core courses of computer science and engineering are basic electronic circuits, data
structures, digital design, operating systems, database management system, computer
organization, computer architecture, algorithm design, computer networks, embedded system
design, and models of computation. The curriculum design philosophy truly utilizes the multi-
disciplinary nature. These courses enable students to develop the expertise as well as widen their
competence and global perspectives in the areas of Data Science, Cyber Physical Systems,
Intelligent Systems, and Theoretical Computer Science.
The Computer Science and Engineering program combines a rigorous education in computer
science with added emphasis on the physical and architectural design of modern computer
system. Based on the breadth of computer science and computer engineering, our graduates will
be able to address design, develop and deploy computing systems across the hardware-software
spectrum.
Philosophy of the Major
The guiding philosophy of the B.Tech. programme with major in Computer Science and
Engineering at Ahmedabad University is distinct in many ways. Our students go through
university and engineering foundation courses. These foundation courses give broader
perspective and ensure that the students have core basic skills, such as, effective communication,
programming, data analysis as well as ability to think critically. We encourage learning by doing.
Student projects and research are strongly emphasized. Students have the opportunity to engage
in research with some faculty or with someone in industry early-on to gain in-depth
understanding and acquire skills in specific areas. We keep our programmes in sync with current
technologies. Several of our elective courses focus on skill-sets and know how that are in current
demand.
Major in COMPUTER SCIENCE AND ENGINEERING 3
Structure of the Major including any requirements
Foundation Programme 12
General Education Requirements 30
Engineering Foundation 27
Internship (3) + Capstone Project or Thesis (3+3)
OR
Industry Project (off-campus)
9
15
Branch Core (CSE) 42.5
Branch Elective (CSE) 12
Free Elective 3
TOTAL Credits:
For students doing Internship and Capstone / Thesis
OR
For students doing Industry Projects in semester 8
135.5
141.5
Learning Outcomes of the Major
At the successful completion of the program the student will be able to
• Apply knowledge of computing and mathematics to design and analyze algorithms to solve
problems and verify correctness of hardware and software systems.
• Apply mathematical foundations, algorithmic principles, and computer science theory in the
modeling and design of computer-based systems in a way that demonstrates
comprehension of the tradeoffs involved in design choices.
• Design, implement, and evaluate a computer-based system, process, component, or
program to meet desired needs.
• Implement algorithms in various programming languages
• Design and analyze various computer architectures and networks
• Function effectively on teams to accomplish a common goal.
• To appreciate and develop basic functionalities of database systems and operating systems
for various applications.
Major in COMPUTER SCIENCE AND ENGINEERING 4
• To appreciate modern trends and technologies such as internet of things, artificial
intelligence, cloud computing and visual analytics.
• Appreciate techniques for studying issues in social sciences.
• Appreciate human values in product design.
Core Courses, Electives, Thesis/Capstone: titles and brief
descriptions
EFC Physics – 1 (3-0-3)
Topics include Coulomb’s law, Electric fields, Gauss’s law, Electric potential, Capacitance,
Current and resistance, Circuits, Magnetic fields, Magnetic fields due to currents, Induction and
inductance, Electromagnetic oscillations and Alternating current, Atoms, Conduction of
electricity in solids, Semiconductors and doping, P-N junction and transistor.
EFC Physics – 2 (3-0-3)
Topics include Measurement, Motion along a straight line, Vectors, Motion of two and three
dimensions, Force and motion, Kinetic energy and work, Potential energy and conservation of
energy, Center of mass and linear momentum, Rotation, Rolling, Torque and angular
momentum, Equilibrium and elasticity, Gravitation, Temperature, heat and the first law of
thermodynamics, The kinetic theory of gases, Entropy and the second law of thermodynamics.
EFC Signal and Systems (3-0-3)
Topics include Discrete time signals and systems, Sampling and Quantization, Convolution and
Correlation, Discrete time Fourier Series, Discrete time Fourier Transform, the z-Transform,
Filter concepts, DFT &, FFT, Adaptive filters, Applications.
EFC Basic Electronic Circuits (1.5-3-3)
Topics include Introduction, Voltage and current sources, Circuit theorems, Time domain and
Frequency domain concepts, Bode plots, Rise time bandwidth relationship, Operational
Amplifiers, Linear ICs, Linear Op Amp Circuits, Filters, Nonlinear op amp circuits, Oscillators,
Regulated power supplies, Transducers, Electronic switches, and Introduction to digital circuits
EFC Computer Programming (1.5-3-3)
Introduction to problem solving methodologies and top-down problem solving. Introduction to
Java / Python language, including functions, arrays, standard libraries, classes and objects. Basic
Major in COMPUTER SCIENCE AND ENGINEERING 5
skills for using standard libraries, user interfaces (AWT), operating system environment - File
I/O, and Basic Data Structures (Lists, Queues, Stacks). Prerequisites: None.
GER Probability and Stochastic Processes
The Probability and Random Process (PRP) is an undergraduate math course aimed at teaching
the fundamentals of probability and random processes to model an uncertainty in human’s
daily life and applied the knowledge gain into the field of engineering like Finance, Biology,
Signal Processing and Communications, Biomedical, Data Analytics, Computer Science etc. The
course is designed to develop the student’s various soft skills like problem-solving, teamwork,
critical thinking, and Monte Carlo simulation framework to model an uncertainty. This course
would cover the axioms of probability, conditional probability, Bayes’ and total probability
theorem, Random variables, Probabilistic distributions, Random processes, Markov chains,
Brownian motion and Poisson point processes.
CSE Programming Lab (0-3-1.5)
Basic Concepts of Object-Oriented Programming Paradigm, Designing Object Oriented
Programs, Arrays and Collections, Static Polymorphism, Inheritance, Exception Handling,
Dynamic Polymorphism, Abstract Class, Interface, Package, Understanding Java / Python
Library, File Handling, Multi-threaded Programming, Event-driven Programming, User Interfaces
and Applets, Prerequisites: Computer Programming
CSE Digital Design (3-2-4)
This course is aimed to prepare students for basic understanding behind the digital circuits and
their design techniques. Topics include Number systems, Digital Logic Gates, Combinational
Design Principles, Timing Hazards, Sequential Design Principles, Designing State Machine,
Feedback Sequential Circuit, Iterative versus Sequential Circuits, Hardware Description
Languages, and Logic families. Prerequisites: Basic Electronic Circuits.
CSE Discrete Mathematics (3-0-3)
Basic discrete mathematical structures: sets, relations, functions, sequences, equivalence
relations, partial orders, and number systems. Methods of reasoning and proofs: prepositional
logic, predicate logic, induction, recursion, and pigeonhole principle. Basic counting techniques;
permutation and combinations. Prerequisites: None.
Major in COMPUTER SCIENCE AND ENGINEERING 6
CSE Data Structures (3-0-3)
Basic data structures including linked lists, stacks, and queues, advanced structures such as
binary trees, hash tables and graphs. Recursion, Algorithms for Searching and Sorting, Graph
Algorithms. Prerequisites: Computer Programming.
CSE Data Structures Lab (0-2-1)
Use and implementation of basic data structures including linked lists, stacks, and queues. Use
of advanced structures such as binary trees, hash tables and graphs. Object-oriented design
including interfaces, polymorphism, encapsulation, and abstract data types.
Prerequisites: Computer Programming.
CSE Database Management System (3-2-4)
Topics include concepts of data models, entity relationship diagrams, theory of normalization,
database system architecture, database design, transaction management, concurrency control,
relational calculus and algebra, structured query language, query optimization, and
introduction NoSQL.
CSE Embedded System Design (3-2-4)
This course explores the design of Embedded Systems using AVR Microcontrollers, widely used
peripheral devices and C Programming. The internal architecture and features (examples:
timers, interrupts, serial communication, etc.) of ATmega32 microcontroller will be discussed in
detail. The interfacing of ATmega32 with widely used peripherals (examples: LCD Displays, Key-
boards, DC motors, etc.) using C Programming will be performed. Students will work on a team
project to design and build one prototype of an embedded system that may have real life
application. Prerequisite: Digital Design
CSE Programming Language Concepts and Paradigms (3-0-3)
This course introduces foundations of programming language design, Semitics and
implementation. The course addresses the concepts of types, objects and program safety. The
course introduces procedural, functional and logical programming paradigms. After taking this
course, the students will understand and appreciate the concepts that are common across a
variety of seemingly different programming languages and will be able to make right decisions
on the choice of language(s) for a project.
Major in COMPUTER SCIENCE AND ENGINEERING 7
CSE Computer Organization (3-2-4)
The Objective is to help students learn the fundamental components that organize a computer
and be capable of designing the system on their own. Topics include overview of digital
combinational and sequential circuits, basics of Verilog as a programming language, basic
component of computer, CPU, memory, Input /Output, Von Neumann model and their
interactions, Instruction Set Architecture (ISA), ), Micro-programed Architecture, Concepts of
Hardwired Control, Micro-programed control, Pipelining, Design of an ALU with Verilog, Design
of a Control Unit with Verilog, Memory and CPU interactions, Design of a Scalar processor with
Verilog.
Lab experiments include Fundamental architectural features of a processor, Instruction set and
Assembly programming of the processor, Data path and control logic design aspects of the
microprocessor architecture, Microinstructions, firm ware design and hardwired design of
processor, Design and implement their own scalar processor and implement it on a Field
programmable gate array, Architectural features and applications of an FPGA.
Prerequisites: Digital Design and Data Structures.
CSE Design and Analysis of Algorithms (3-0-3)
Design and analysis of efficient algorithms for sorting, searching, pattern matching, and graph
and network algorithms. Greedy algorithms, dynamic programming and amortized analysis.
Measuring complexity of algorithms, time and storage. NP-complete problems. Prerequisites:
Discrete Mathematics and Data Structures.
CSE Theory of Computation (3-0-3)
This course introduces models of computation that include deterministic and non-deterministic
finite automata, pushdown automata, Turing machines, decidable and undecidable
computation problems. The topics will include the introduction to computational complexity.
Time complexity: classes P, NP, and NP-complete problems and P vs NP problem. Space
complexity: Pspace=NPspace (Savitch’s Theorem). Some open problems in the area will be
mentioned.
CSE Operating Systems (3-0-3)
The course introduces the fundamental concepts of operating system the design issues related
to the development of modern operating systems. Topics include Unix Operating System, Shell
Programming, Process Management, Inter-process Communication, File Systems, Process
Scheduling, Concurrency, Memory Management, Virtual Memory, I/O Management and Disk
Scheduling, Security, Distributed Systems, and Virtualization.
Major in COMPUTER SCIENCE AND ENGINEERING 8
CSE Computer Networks (3-0-3)
The computer network provides a communication link between independent and standalone
systems to create a homogeneous network. Questions like how this infrastructure work, what
are its design principles etc. would be answered in this course. This course would cover the
Network architecture and protocols, Packet vs. circuit switching, Performance of networks:
delay and throughput, Socket programming, TCP details, variants and analysis, Router
architectures, Link layer, Data center networking and Software defined networking.
CSE Computer Architecture (3-0-3)
Topics include Computer Systems and technology; Instruction Set Architectures and its
components: Registers, Instruction formats, Subroutine call and return; The stack and data
storage: Passing parameters via stack, Memory indirect addressing, Variable length instructions,
Reinventing the CISC; Introduction to SIMD(single instruction multiple data) processing; Cache
memory and Virtual memory: Introduction to Cache, Cache organization, Considerations in
Cache design, Virtual memory and memory management, Main memory; Processor level
parallelism: Flynn’s taxonomy and Multiprocessor topologies, Memory in multiprocessor
systems, Multithreading, Parallel programming; Input output organization: Asynchronous data
transfer, Isolated vs memory mapped i/o, serial communication, priority interrupt, Direct
memory access etc. Prerequisites: Digital Design and Computer Organization.
CSE Software Engineering (3-0-3)
This course teaches the fundamentals of software engineering. These are the set of core skills
needed in a complex software development project. The students will learn the process of
collecting and understanding system requirements, software design techniques, software
development and debugging techniques, and software management techniques. Students will
also get familiarity with software tools that facilitate these.
Undergraduate Thesis / Group Capstone Project
As with all majors at Ahmedabad University, students pursue their own interest with an
undergraduate thesis in Computer Science and Engineering that fits in any of the specified
electives. Alternatively, they can work on a Capstone Project defined and supported by any
industry or Research project supervised either directly by a faculty member or indirectly
through a project at any leading company with prior approval of the program coordinator.
Major in COMPUTER SCIENCE AND ENGINEERING 9
A sample semester wise distribution of course work
Major in COMPUTER SCIENCE AND ENGINEERING 10
Credits
No of Courses
Foundation Courses 12 4
Engineering Foundations 24 10
General University Requirements 30 10
Major Core Courses 33.5 12
Major Electives 12 4
BTech / Capstone Project 15
Free Electives 15 5
Internship 3
ISP and Community Project
Total: 144.5 45
Major in COMPUTER SCIENCE AND ENGINEERING 11
Electives TE1 TE2 TE3 TE4 TE5 TE6 TE7 TE7 TE8
Data Science Optimization
Algorithms for
Big Data
Machine
Learning
Cloud
Computing
Data Analytics
and
Visualization
Blockchain
Technology
Advanced
Statistics
Cyber Physical
Systems
Internet of
Things
Advanced
Security
High
Performance
Computing
Cloud
Computing
Data Analytics
and
Visualization
Wireless
Sensor
Networks
Simulation
and Modelling
Blockchai
n
Technolo
gy
Real Time
Systems
Intelligent
Systems
Artificial
Intelligence
Natural
Language
Processing
Neuro Fuzzy
Systems
Computer
Vision
Expert
Systems
Machine
Learning
Blockchain
Technology
Theoretical
Computer
Science
Complexity
Theory
Approximatio
n and
Randomized
Algorithms
Computation
al Logic
Formal
Methods
Combitorial
Optimization
Graph
Algorithms
Combinatorics
ICT Analog and
Digital
Communication
VLSI Design Wireless
Communicati
on
Machine
Learning
Computer
Vision
Internet of
Things (IoT)
VLSI
Subsystem
Design
Integrate
d Circuit
Devices
andFabri
cation
Technolo
gy
Circuit
Characterisat
ion of VLSI
subsystem
Major in COMPUTER SCIENCE AND ENGINEERING 12
Description of a Minor in the discipline
Minor in Computer Science and Engineering
For engineering (Mechanical, Chemical), Science (Physics, Life Sciences) students, currently in
their second semester in Winter 2019, who wish to pursue a minor in Computer Science and
Engineering
A minor in Computer Science and Engineering (CSE) will require a student to complete a
minimum of 18 credits of course work in CSE. Students will have to complete six courses in CSE,
out of which four will be from the core courses and two from either core or discipline electives.
Any CSE course offered as elective to CSE majors can also be taken as minor elective.
The core courses are
• Object Oriented Programming Lab
• Digital Design
• Computer Organization
• Database Management System
• Design and Analysis of Algorithms
• Operating Systems
• Computer Networks
• Embedded System Design
• Theory of Computation
• Software Engineering
The electives include
• Machine Learning
• Introduction to Artificial Intelligence
• Internet of Things
• Cloud Computing
• High Performance Computing
Major in COMPUTER SCIENCE AND ENGINEERING 13
Table below is the recommended semester wise distribution of the above-mentioned courses:
Semester CSE
I Monsoon 2019
II Winter 2020 Object Oriented Programming Lab
III Monsoon 2020 Digital Design
IV Winter 2021 Computer Organization, Design and Analysis of Algorithms, Database Management System
V Monsoon 2021 Operating Systems, Embedded System Design
VI Winter 2022 Computer Networks
VII Monsoon 2022 Theory of Computation