department of computer science - spicer adventist university
TRANSCRIPT
SPICER ADVENTIST UNIVERSITY AUNDH ROAD, PUNE-411067, MAHARASHTRA, INDIA
ESTABLISHED VIDE MAHARASHTRA ACT XIV OF 2014
(A CHRISTIAN MINORITY UNIVERSITY)
Department of Computer Science
Three Year Curriculum
BSc. Computer Science (Honours)
Revised Syllabus From 2020
(Based on LOCF 2019)
DIVISION OF SCIENCES
BSc Computer Science (Honours)
Introduction Computer Science (CS) has been evolving as an important branch of science and engineering
throughout the world in last couple of decades and it has carved out a space for itself like any
other disciplines of basic science and engineering. Computer science is a discipline that spans
theory and practice and it requires thinking both in abstract terms and in concrete terms.
Nowadays, practically everyone is a computer user, and many people are even computer
programmers. Computer Science can be seen on a higher level, as a science of problem
solving and problem solving requires precision, creativity, and careful reasoning. The ever -
evolving discipline of computer science also has strong connections to other disciplines.
Many problems in science, engineering, health care, business, and other areas can be solved
effectively with computers, but finding a solution requires both computer science expertise
and knowledge of the particular application domain.
Computer science has a wide range of specialties. These include Computer Architecture,
Software Systems, Graphics, Artificial Intelligence, Computational Science, and Software
Engineering. Drawing from a common core of computer science knowledge, each specialty
area focuses on specific challenges. Computer Science is practised by mathematicians,
scientists and engineers. Mathematics, the origins of Computer Science, provides reason and
logic. Science provides the methodology for learning and refinement. Engineering provides
the techniques for building hardware and software.
The Learning Outcome-based Curriculum Framework in Computer Science is aimed at
allowing flexibility and innovation in design and development of course content, in method
of imparting training, in teaching learning process and in assessment procedures of the
learning outcomes. The emphasis in computer science courses, in outcome-based curriculum
framework, help students learn solving problems, accomplishing IT tasks, and expressing
creativity, both individually and collaboratively. The proposed framework will help Students
learn programming techniques and the syntax of one or more programming languages.
Aims of B.Sc. Computer Science (Honours) Program
• Develop theoretical foundations in computer science.
• Develop expertise in programming skills using high level programming languages.
• Develop skills to design, implement and document the solutions for computational
problems.
• Develop soft skills to work effectively in a team to solve a problem.
• Develop the ability to use state of the art technologies.
• Inculcating the understanding of the needs of society and the importance of societal
obligations.
Graduate Attributes in B.Sc. Computer Science (Honours)
• Disciplinary knowledge Ability to build (either independently or by joining higher
academic program) on of the core computer science concepts learnt in the course.
• Ability to apply the core computer science concepts to solve the problems in the IT
industry.
• Problem solving Graduates are equipped with skills to solve the computational
problems at their workplace and for the society.
• Cooperation/Team work Graduates demonstrate competence to use communication
skills to participate or lead a team for a new initiative or for solving an existing
problem.
• Communication Skills Graduates demonstrate effective communication and
presentation skills while interacting with professional peers and in the society.
• Scientific reasoning Given a problem, the graduates will be able to analyse it, suggest
solutions, and critically evaluate the solutions proposed by others.
• Professional Ethics: Graduates follow ethical principles and commitment to
professional ethics, accountability and responsibilities.
Qualification Descriptors for BSc (Hons) in Computer Science • A systematic, extensive and coherent knowledge and understanding of the field of
computer science as a whole and its applications, and links to related disciplinary
areas; including a critical understanding of the established theories, principles and
concepts, and of a number of advanced and emerging issues in the field of Computer
Science
• Procedural knowledge that creates different types of professionals related to
Computer Science, including research and development, teaching industry and
government and public service;
• Skills in areas related to computer science and usage of tools and cur rent
developments, including a critical understanding of the latest developments in the
area, and an ability to use established techniques of analysis and enquiry within the
area of Computer Science.
• Demonstrate comprehensive knowledge, including current research, scholarly,
and/or professional literature, relating to essential and advanced learning areas
pertaining to the chosen disciplinary areas (s) and field of study, and
techniques and skills required for identifying problems and issues relating to th e
disciplinary area and field of study.
• Demonstrate skills in identifying information needs, collection of relevant quantitative
and/or qualitative data drawing on a wide range of sources, effective analysis and
interpretation of data
• Use knowledge, understanding and skills for critical assessment of a wide range of
ideas and complex problems and issues relating to the chosen field of study.
• Communicate the results of studies accurately in a range of different contexts
using the main concepts, constructs and techniques of the subject(s) of study;
• Address one’s own learning needs relating to current and emerging areas of study,
making use of research, development and professional materials as
appropriate
• Apply one’s disciplinary knowledge and transferable skills to
new/unfamiliar contexts and to identify and analyse problems and issues and seek
solutions to real-life problems.
• Demonstrate subject-related and transferable skills that are relevant to industry
and employment opportunities.
Program Learning Outcomes
• The Bachelor of Science degree in Computer Science emphasizes problem solving in the
context of algorithm development and software implementation and prepares students for
effectively using modern computer systems in various applications.
• The curriculum provides required computer science courses such as programming languages,
data structures, computer architecture and organization, algorithms, database systems,
operating systems, and software engineering; as well as elective courses in artificial
intelligence, computer-based communication networks, distributed computing, information
security, graphics, human-computer interaction, multimedia, scientific computing, web
technology, and other current topics in computer science.
• The main aim of this Bachelor’s degree is to deliver a modern curriculum that will equip
graduates with strong theoretical and practical backgrounds to enable them to excel in the
workplace and to be lifelong learners.
• To prepare the student for a position involving the design, development and implementation
of computer software/hardware, and
• To prepare the student for entry into a program of postgraduate study in computer
science/engineering and related fields.
Program Specific Learning Outcomes
The present Learning Outcome-based Curriculum Framework for bachelor’s degrees in
Computer Science (Honours) is intended to facilitate the students to achieve the following:
• To develop an understanding and knowledge of the basic theory of Computer Science
and Information Technology with good foundation on theory, systems and
applications such as algorithms, data structures, data handling, data communication
and computation and use this knowledge to analyse new situations.
• The ability to synthesize the acquired knowledge, understanding and experience for a
better and improved comprehension of the real-life problems and the ability to
formulate, model and design solutions, procedures and use software tools to solve them.
• To work independently on a substantial software project and as an effective team member.
• Ability to operate, manage, deploy, configure computer network, hardware, software
operation of an organization
• To acquire necessary and state-of-the-art skills to take up industry challenges and
become acquainted with the contemporary trends in industrial/research settings and thereby
innovate novel solutions to existing problems
• To learn skills and tools like mathematics, statistics, physics and electronics to find
the solution, interpret the results and make predictions for the future developments
Course Learning Outcomes
COMS 111/112 : PROGRAMMING METHODOLOGY & PRACTICALS
• Learn to Develop simple algorithms and flow charts to solve a problem.
• Develop problem solving skills coupled with top down design principles.
• Learn about the strategies of writing efficient and well-structured computer
algorithms/programs.
• Develop the skills for formulating iterative solutions to a problem.
• Learn array processing algorithms coupled with iterative methods.
• Learn text and string processing efficient algorithms.
• Learn searching techniques and use of pointers.
• Understand recursive techniques in programming.
COMS 113/114 : COMPUTER SYSTEM ARCHITECTURE &
PRACTICALS 1. To make students understand the basic structure, operation and characteristics of
digital computer.
2. To familiarize the students with arithmetic and logic unit as well as the concept
of the concept of pipelining.
3. To familiarize the students with hierarchical memory system including cache
memories and virtual memory.
4. To make students know the different ways of communicating with I/O devices and standard I/Ointerfaces.
COMS 121/122 : DATA STRUCTURES & PRACTICALS
• To be familiar with fundamental data structures and with the manner in which these data
structures can best be implemented; become accustomed to the description of algorithms
in both functional and procedural styles
• To have a knowledge of complexity of basic operations like insert, delete, search on
these data structures.
• To be Able to choose a data structure to suitably model any data used in computer
applications.
• To Design programs using various data structures including hash tables, Binary and
general search trees, heaps, graphs etc.
• To be Able to assess efficiency tradeoffs among different data structure implementations.
• To Implement and know the applications of algorithms for sorting, pattern matching
etc.
COMS 123 : DISCRETE STRUCTURES
• To Understand the notion of mathematical thinking, mathematical proofs, and
algorithmic thinking, and be able to apply them in problem solving.
• To Understand the basics of combinatorics, and be able to apply the methods
from these subjects in problem solving.
• To Be able to use effectively algebraic techniques to analyse basic discrete
structures and algorithms.
• To Understand asymptotic notation, its significance, and be able to use it to
analyse asymptotic performance for some basic algorithmic examples.
• To Understand some basic properties of graphs and related discrete structures, and
be able to relate these to practical examples.
COMS 211/212 : ALGORITHMS & PRACTICALS • To Learn good principles of algorithm design;
• To Learn how to analyse algorithms and estimate their worst-case and average- case behaviour
(in easy cases);
• To become familiar with fundamental data structures and with the manner in which these data
structures can best be implemented; become accustomed to the description of algorithms in
both functional and procedural styles;
• To Learn how to apply their theoretical knowledge in practice (via the practical component of
the course).
COMS 213/214 : OPERATING SYSTEM & PRACTICALS 1. To Describe the important computer system resources and the role of
operating system in their management policies and algorithms.
2. To understand various functions, structures and history of operating
systems and should be able to specify objectives of modern operating
systems and describe how operating systems have evolved over time.
3. To Understand the design issues associated with operating systems.
4. Understanding various process management concepts including
scheduling, synchronization, and deadlocks.
5. To have a basic knowledge about multithreading.
6. To understand concepts of memory management including virtual
memory.
7. To understand issues related to file system interface and implementation,
disk management. 8. To understand and identify potential threats to operating systems and the
security features design to guard against them.
9. To have sound knowledge of various types of operating systems
including Unix and Android.
10. To Describe the functions of a contemporary operating system with
respect to convenience, efficiency, and the ability to evolve.
COMS 215 /216: COMPUTER NETWORKS & PRACTICALS
1. To Understand the structure of Data Communications System and its
components. Be familiarize with different network terminologies.
2. To Familiarize with contemporary issues in network technologies.
3. To Know the layered model approach explained in OSI and TCP/IP
network models
4. To Identify different types of network devices and their functions within a
network.
5. To Learn basic routing mechanisms, IP addressing scheme and
internetworking concepts.
6. To Familiarize with IP and TCP Internet protocols.
7. To understand major concepts involved in design of WAN, LAN and
wireless networks.
8. To Learn basics of network configuration and maintenance.
9. To Know the fundamentals of network security issues.
COMS 221/222:OBJECT ORIENTED PROGRAMMING &PRACTICALS 1. To Learn the concepts of data, abstraction and encapsulation
2. To Be able to write programs using classes and objects, packages.
3. To Understand conceptually principles of Inheritance and
Polymorphism and their use and program level implementation.
4. To Learn exception and basic event handling mechanisms in a program
5. To Learn typical object-oriented constructs of specific object
oriented programming language
COMS 223/224 : SOFTWARE ENGINEERING & PRACTICALS
1. To Gain Basic knowledge and understanding of the analysis and design
of complex systems.
2. To be Able to apply software engineering principles and techniques.
3. To produce efficient, reliable, robust and cost-effective software
solutions.
4. To be Able to work as an effective member or leader of software
engineering teams.
5. To manage time, processes and resources effectively by prioritising
competing demands to achieve personal and team goals Identify and
analyzes the common threats in each domain.
COMS 225/226 : DATABASE MANAGEMENT SYSTEMS &
PRACTICALS 1. To Gain knowledge of database systems and database management
systems software.
2. To be Able to model data in applications using conceptual modelling
tools such as ER Diagrams and design data base schemas based on the
model.
3. To Formulate, using SQL, solutions to a broad range of query and data
update problems.
4. To Demonstrate an understanding of normalization theory and apply
such knowledge to the normalization of a database.
5. Being acquainted with the basics of transaction
processing and concurrency control.
6. To be Familiar with database storage structures and access techniques.
7. To Compare, contrast and analyse the various emerging technologies
for database systems such as NoSQL.
8. To Analyse strengths and weaknesses of the applications of database
technologies to various subject areas.
COMS 311/312 : INTERNET TECHNOLOGIES & PRACTICALS 1. To understand the terms related to the Internet and how the Internet is
changing the world.
2. To understand how computers are connected to the Internet and
demonstrate the ability to use the World Wide Web.
3. To Demonstrate an understanding of and the ability to use electronic
mail and other internet based services
4. To Understand the design principles of Web pages and how they are created
5. To Develop an ability to create basic Web pages with HTML.
COMS 313 : ARTIFICIAL INTELLIGENCE 1. Explain what constitutes "Artificial" Intelligence and how to identify systems with
Artificial Intelligence.
2. Identify problems that are amenable to solution by AI methods, and which AI methods
may be suited to solving a given problem.
3. Formalise a given problem in the language/framework of different AI methods (e.g., as
a search problem, as a constraint satisfaction problem, as a planning problem, etc).
4. Implement basic AI algorithms (e.g., standard search or constraint propagation
algorithms).
5. Design and perform an empirical evaluation of different algorithms on a problem
formalisation, and state the conclusions that the evaluation supports.
6. Explain the limitations of current Artificial Intelligence techniques.
COMS 321 : MACHINE LEARNING 1. To Differentiate between supervised, unsupervised machine Learn approaches
2. To be Able to choose appropriate machine Learn algorithm for solving a
problem
3. To Design and adapt existing machine Learn algorithms to suit applications
4. To Understand the underlying mathematical relationships across various
machine Learn algorithms
5. Design and implement machine Learn algorithms to real world applications
COMS 323/324 : COMPUTER GRAPHICS & PRACTICALS 1. To Acquire familiarity with the concepts and relevant mathematics of
computer graphics.
2. To be Able to implement various algorithms to scan, convert the basic geometrical primitives, transformations, area filling, clipping.
3. To Describe the importance of viewing and projections.
4. To be Able to design basic graphics application programs.
5. To Familiarize with fundamentals of animation and Virtual reality
technologies
6. To be able to design applications that display graphic images to given
specifications.
7. To understand a typical graphics pipeline
COMS 314/315 : SYSTEM SECURITY & PRACTICALS
1. Develop an understanding of information assurance as practiced in computer
operating systems, distributed systems, networks and representative applications.
2. Gain familiarity with prevalent network and distributed system attacks, defenses
against them, and forensics to investigate the aftermath.
3. Develop a basic understanding of cryptography, how it has evolved, and some key
encryption techniques used today.
4. Develop an understanding of security policies (such as authentication, integrity and confidentiality), as well as protocols to implement such policies in the form of message exchanges
COMS 316/317 : DATA ANALYTICS & PRACTICALS
1. To prepares students to gather, describe, and analyze data, and use advanced
statistical tools to support decision making.
2. To gather sufficient relevant data, conduct data analytics using scientific
methods, and understand appropriate connections between quantitative
analysis and real - world problems.
3. To Understand the exact scopes and possible limitations of each method to
provide constructive guidance in decision making.
4. To Use advanced techniques to conduct thorough and insightful analysis, and
interpret the results correctly with detailed and useful information.
5. To make better decisions by using advanced techniques in data analytics. COMS 325/326 : CLOUD COMPUTING & PRACTICALS
1. To Analyze the trade-offs between deploying applications in the cloud and
over the local infrastructure.
2. To Compare the advantages and disadvantages of various cloud computing
platforms.
3. To Deploy applications over commercial cloud computing infrastructures
such as Amazon Web Services, Windows Azure, and Google AppEngine.
4. To Program data intensive parallel applications in the cloud.
5. To Analyze the performance, scalability, and availability of the underlying
cloud technologies and software.
6. To Identify security and privacy issues in cloud computing.
7. To Explain recent research results in cloud computing and identify their pros
and cons.
8. To Solve a real-world problem using cloud computing through group
collaboration
COMS 327/328 : DATA MINING & PRACTICALS 1. To Demonstrate advanced knowledge of data mining concepts and techniques.
2. To Apply the techniques of clustering, classification, association finding, feature
selection and visualisation on real world data
3. To Determine whether a real world problem has a data mining solution 4. To Apply data mining software and toolkits in a range of applications
5. To Set up a data mining process for an application, including data preparation,
modelling and evaluation
6. To Demonstrate knowledge of the ethical considerations involved in data mining.
COMS 314 (B) : IMAGE PROCESSING 1. To familiarize the students with the image fundamentals and mathematical
transforms necessary for image processing.
2. To make the students understand the image enhancement techniques
3. To make the students understand the image restoration and reconstruction procedures.
4. To familiarize the students with the image segmentation procedures.
COMS 316/317 (B) : PYTHON PROGRAMMING & PRACTICALS 1. To Develop and Execute simple Python programs.
2. To Structure a Python program into functions.
3. To Using Python lists, tuples to represent compound data
4. To Develop Python Programs for file processing
COMS 325 (B): MODELLING AD SIMULATIONS 1. To Characterize systems in terms of their essential elements, purpose, parameters,
constraints, performance requirements, sub-systems, interconnections and
environmental context.
2. To Understand the technical underpinning of modern computer simulation software.
3. System problem modelling and solving through the relationship between theoretical,
mathematical, and computational modelling for predicting and optimizing
performance and objective.
4. Mathematical modelling real world situations related to information systems To
Development, prediction and evaluation of outcomes against design criteria.
5. To Develop solutions and extract results from the information generated in the context of the
information systems
6. To Interpret the model and apply the results to resolve critical issues in a real world
environment.
7. To Develop different models to suit special characteristics of the system being
modelled.
COMS 327/328 (B): MOBILE APPLICATION DEVELOPMENT &
PRACTICALS 1. To understand Android platform and its architecture.
2. To Learn about mobile devices types and different modern mobile
operating systems.
3. To Learn activity creation and Android User Interface designing. 4. To Learn basics of Intent, Broadcast and Internet services.
5. To Learn about different wireless mobile data transmission standards.
6. To understand and Learn how to integrate basic phone features,
multimedia, camera and Location based services in Android
Application.
7. To Learn about different systems for mobile application To
Development, deployment and distribution in Mobile market place
(Android, IoS).
8. To understand and carry out functional test strategies for mobile
applications
COMS 217/218 : PROGRAMMING IN JAVA & PRACTICALS 1. To Gain Knowledge of the structure and model of the Java programming
language,
2. To Use Java programming language for various programming technologies
3. To Develop software in the Java programming language,
4. To Evaluate user requirements for software functionality required to decide
whether the Java programming language can meet user requirements
COMS 227/228 : WEB PROGRAMMING & PRACTICALS 1. To understand basics of the Internet and World Wide Web
2. To acquire knowledge and skills for creation of web site considering
both client and server-side programming
3. To Learn basic skill to To Develop responsive web applications 4. To understand different web extensions and web services standards
5. To understand basic concepts of Search Engine Basics.
6. To Learn Web Service Essentials.
7. To Learn Rich Internet Application Technologies.
8. To understand and get acquainted with Web Analytics 2.0
COMS 217 (B): HUMAN COMPUTER INTERFACE
1. To Provide an overview of the concepts relating to the design of human -
computer interfaces in ways making computer-based systems comprehensive,
friendly and usable.
2. To Understand the theoretical dimensions of human factors involved in the
acceptance of computer interfaces.
3. To Understand the important aspects of implementation of human-computer interfaces.
4. To Identify the various tools and techniques for interface analysis, design, and
evaluation.
5. To Identify the impact of usable interfaces in the acceptance and
performance utilization of information systems.
COMS 217/218 (C): UNIX/LINUX PROGRAMMING & PRACTICALS
1. Identifying and use of UNIX/Linux utilities to create and manage simple file processing
operations, organize directory structures with appropriate security
2. Developing Scripts and programs that will demonstrate simple effective user
interfaces and effective use of structured programming.
3. The Ability to read and understand specifications, scripts and programs.
4. Monitoring the system performance and network activities.
COMS 217/218 (D): MATLAB PROGRAMMING & PRACTICALS 1. To Understand the fundaments of procedural and functional
programming;
2. To Understand Matlab data types and structures;
3. To Be able to set up simple real-life numerical problems such that
they can be solved and visualized using basic codes in Matlab;
4. To Be ready to use advanced coding in Matlab in their subsequent
studies
COMS 227 (B): INTERNET OF THINGS 1. To Learn the concepts of Sensors, Wireless Network and Internet
2. To Learn and implement use of Devices in IoT technology.
3. To Learn the different IoT Technologies like Micro-controller,
Wireless communication like Blue Tooth, GPRS, Wi-Fi and
Storage and embedded systems
4. To understand how to program on embedded and mobile
platforms including different Microcontrollers like ESP8266,
Raspberry Pi, Arduino and Android programming
5. To understand how to make sensor data available on the Internet
(data acquisition) and understand how to analyze and visualize
sensor data
6. To understand, analysis and evaluate different protocols used in
IoT.
7. To Learn basic python programming for IoT applications
8. To Learn and design different applications in IoT.
9. To design, To Develop and test different prototypes in IoT.
COMS 227/228 (C): SOFTWARE TESTING & PRACTICALS
1. Develop Various test processes and continuous quality improvement
2. Identifying Types of errors and fault models
3. Methods of test generation from requirements
4. Behavior modeling using UML: Finite state machines (FSM)
5. Test generation from FSM models
6. Input space modeling using combinatorial designs
7. Combinatorial test generation
8. Test adequacy assessment using: control flow, data flow, and program mutations
9. The use of various test tools and application of software testing techniques in
commercial environments
COMS 227/228 (D) : R PROGRAMMING & PRACTICALS
1. Understand the basics in R programming in terms of constructs, control statements,
string functions
2. Understand the use of R for Big Data analytics
3. Learn to apply R programming for Text processing
4. Able to appreciate and apply the R programming from a statistical perspective
COMS 318 Seminar
1. Students will discuss recent and important results in the area of computer systems
research.
2. Guest Lectures by Academicians and Industry experts
3. The seminar will also be centered on presentations of the student’s own research.
4. It will increase students’ familiarity with recent and important research results in
computer systems; to improve students' skills in presenting computer systems
research.
COMS 329 Project
1. Develop a project plan based on informal description of the project.
2. Implement the project as a team.
3. Write a report on the project work carried out by the team and defend the work
done by the team collectively. Present the work done by the team to the evaluation
committee.
AECC 121 Environmental Science
1. Identify environmental impacts on the universe and human beings.
2. Understand key terms and definitions of pollution.
3. Learn basic principles, key concepts and importance of environmental law.
4. Understand business benefits of adopting an environmental management system.
5. Identify key issues related to energy use and waste minimization, water use,
pollution and emergency planning.
6. Encourage and motivate others to practice stewardship, and preservation of the
environment for the future generations.
7. Maintain “Swatch Bharat” as a gift to the citizens of India.
8. Appreciate nature and the Creature of the Universe
UC 2 (HLWL) Health & Wellness
1. Demonstrate an overall knowledge of personal wellness.
2. Establish the behaviors associated with optimum health and wellness.
3. Familiar risk factors and warning signs used in the prevention of disease.
4. Identify basic nutritional principles.
15
BSc Computer Science (Honours) Course Structure
Semester I Course code Course Title L P/Tut Cr.
AECC 1 English Communication Skills AE 4 4
UC1 (MLPR) Moral Principles UC 2 2
MATH 111 Numerical Methods GE 4 4
COMS 111 Programming Methodology CC 4 4
COMS 112 Practicals in Programming Methodology CC 2 2
COMS 113 Computer System Architecture CC 4 4
COMS 114 Practicals in Computer System Architecture CC 2 2
Total credits 22
Semester II Course code Course Title L P/Tut Cr.
AECC 2 Environmental Studies AE 4 4
UC2 (HLWL) Health and Wellness UC 2 2
MATH 121 Number Theory GE 4 4
COMS 121 Data Structure CC 4 4
COMS 122 Practicals in Data Structure CC 2 2
COMS 123 Discrete Structures CC 5 1 6
Total credits CC 22
Semester III Course code Course Title L P Cr.
MATH 211 Linear Programming & Game Theory GE 4 4
COMS 211 Algorithms CC 4 4
COMS 212 Practicals in Algorithms CC 2 2
COMS 213 Operating Systems CC 4 4
COMS 214 Practicals in Operating systems CC 2 2
COMS 215 Computer Networks CC 4 4
COMS 216 Practicals in Computer Networks CC 2 2
COMS 217(A) Programming in Java SEC 2 2
COMS 218(A) Practicals in Programming in Java SEC 2 2
Total credits 26
Semester IV Course code Course Title L P Cr.
MATH 221 Probability & Statistics GE 4 4
COMS 221 Object Oriented Programming CC 4 4
COMS 222 Practicals in Object Oriented Programming CC 2 2
COMS 223 Software Engineering CC 4 4
COMS 224 Practicals in Software Engineering CC 2 2
COMS 225 Database Management Systems CC 4 4
COMS 226 Practicals in Database Management Systems CC 2 2
COMS 227(A) Web Programming SEC 2 2
COMS 228(A) Practicals in Web Programming SEC 2 2
Total credits 26
16
Electives: Discipline Specific Courses
Semester V Semester VI COMS 314 (B) Image Processing COMS 325 (B) Modelling & Simulation COMS 315 (B) Practicals in Image Processing COMS 326 (B) Practicals in Modelling Simulation COMS 316 (B) Python Programming COMS 327 (B) Mobile Application Development COMS 317 (B) Practicals in Python Programming COMS 328 (B) Practicals in Mobile Application
Development
Electives: Skill Enhancement Courses Semester III Semester IV COMS 217 (B) Human Computer Interface (4 cr) COMS 227 (B) Internet of Things (4 cr) COMS 217 (C) LINUX Programming COMS 227 (C) Software Testing COMS 218 (C) Practicals in LINUX programming COMS 228 (C) Practicals in Software Testing COMS 217 (D) MATLAB Programming COMS 227 (D) R Programming COMS 218 (D) Practicals in MATLAB Programming COMS 228 (D) Practicals in R Programming
Mandatory Courses - 4 credits (1 credit for each group) Group 1 – Annual sports participation in at least 3 events/ Participation in any 2 tournaments/ Independence Day/Republic day parade participation Group 2 – Camp & study tour/ field trips, industrial visits Group 3 – SWACH BHARAT Day, Global Youth day, Human Rights Day, Environment day, Science day, Temperance/Health Promotion Day (participation in at least 4) Group 4 – One research paper/poster presentation at national/international Seminar or Conference Group 5 – Completion of any one MOOC course Group 6 – Departmental club leadership (1 Semester) or Departmental club participation (at least 4 semesters)
Semester V Course code Course Title L P/Tut Cr.
COMS 311 Internet Technologies CC 4 4
COMS 312 Practicals in Internet Technologies CC 2 2
COMS 313 Artificial Intelligence CC 5 1 6
COMS 314(A) System Security DSE 4 4
COMS 315(A) Practicals in System Security DSE 2 2
COMS 316(A) Data Analytics DSE 4 4
COMS 317(A) Practicals in Data Analytics DSE 2 2
COMS 318 Seminar DSE 2 2
Total credits 26
Semester VI
Course code Course Title L P Cr.
COMS 321 Machine Learning CC 4 4
COMS 322 Practicals in Machine Learning CC 2 2
COMS 323 Computer Graphics CC 4 4
COMS 324 Practicals in Computer Graphics CC 2 2
COMS 325(A) Cloud Computing DSE 4 4
COMS 326(A) Practicals in Cloud Computing DSE 2 2
COMS 327(A) Data Mining DSE 4 4
COMS 328(A) Practicals in Data Mining DSE 2 2
COMS 329 Project DSE 2 2
Total credits 26
17
CORE COURSES
COMS 111 : PROGRAMMING METHODOLOGY (4 credits)
Learning Outcome
1. Learn to To Develop simple algorithms and flow charts to solve a problem.
2. To Develop problem solving skills coupled with top down design principles.
3. Learn about the strategies of writing efficient and well-structured computer
algorithms/programs.
4. To Develop the skills for formulating iterative solutions to a problem.
5. To Learn array processing algorithms coupled with iterative methods.
6. To Learn text and string processing efficient algorithms.
7. To Learn searching techniques and use of pointers.
8. To Understand recursive techniques in programming.
SYLLABUS
UNIT I. Introduction to Programming, Program Concept, Characteristics of Programming, Stages in
Program To Development, Algorithms, Notations, Design, Flowcharts, Types of Programming
Methodologies, Introduction to C++ Programming - Basic Program Structure In C++, Variables
and Assignments, Input and Output, Selection and Repetition Statements. [18]
UNIT II. Top-Down Design, Predefined Functions, Programmer -defined Function, Local Variable,
Function Overloading, Functions with Default Arguments, Call -By-Value and Call-By-Reference
Parameters, Recursion.[12]
UNIT III. Introduction to Arrays, Declaration and Referring Arrays, Arrays in Memory, Initializing
Arrays. Arrays in Functions, Multi-Dimensional Arrays.[10]
UNIT IV. Structures - Member Accessing, Pointers to Structures, Structures and Functions, Arrays of
Structures, Unions.[7]
UNIT V. Declaration and Initialization, Reading and Writing Strings, Arrays of Strings, String and
Function, Strings and Structure, Standard String Library Functions.[10]
UNIT VI. Searching Algorithms - Linear Search, Binary Search. Use of files for data input and
output. merging and copy files.[8]
TEXT AND REFERENCE BOOKS
● The C Programming Language, Brain W. Kernighan and Dennis M Ritchie,2005.
● Introduction to Programming and C Programming, Sharada Patil,Alok Pawar and Nilima
Padmawar, 2008.
● Fundamentals of Data Structures in C,Horowitz,Sahni Anderson and Freed,2008
18
COMS 112 : PRACTICALS IN ROGRAMMING METHODOLOGY
(2 credits)
PRACTICALS :
1. WAP to print the sum and product of digits of an integer.
2. WAP to reverse a number.
3. WAP to compute the sum of the first n terms of the following series S = 1+1/2+1/3+1/4+……
4. WAP to compute the sum of the first n terms of the following series S =1-2+3-4+5…………….
5. Write a function that checks whether a given string is Palindrome or not. Use this function to find whether the string entered by user is Palindrome or not.
6. Write a function to find whether a given no. is prime or not. Use the same to generate the prime numbers less than 100.
7. WAP to compute the factors of a given number.
8. Write a macro that swaps two numbers. WAP to use it.
9. WAP to print a triangle of stars as follows (take number of lines from user):
*
***
*****
*******
*********
10. WAP to perform following actions on an array entered by the user:
i) Print the even-valued elements
ii) Print the odd-valued elements
iii) Calculate and print the sum and average of the elements of array
iv) Print the maximum and minimum element of array
v) Remove the duplicates from the array
vi) Print the array in reverse order
The program should present a menu to the user and ask for one of the options. The menu should also include options to re-enter array and to quit the program.
11. WAP that prints a table indicating the number of occurrences of each alphabet in the text entered as command line arguments.
12. Write a program that swaps two numbers using pointers.
13. Write a program in which a function is passed address of two variables and then alter its contents.
14. Write a program which takes the radius of a circle as input from the user, passes it to another function that computes the area and the circumference of the circle and displays the value of area and circumference from the main() function.
15. Write a program to find sum of n elements entered by the user. To write this program, allocate memory dynamically using malloc() / calloc() functions or new operator.
16. Write a menu driven program to perform following operations on strings:
17. WAP to display Fibonacci series (i)using recursion, (ii) using iteration
18. WAP to calculate Factorial of a number (i)using recursion, (ii) using iteration
19
19. WAP to calculate GCD of two numbers (i) with recursion (ii) without recursion.
20. Create Matrix class using templates. Write a menu-driven program to perform following Matrix operations (2-D array implementation):
a) Sum b) Difference c) Product d) Transpose
21. Create the Person class. Create some objects of this class (by taking information from the user). Inherit the class Person to create two classes Teacher and Student class. Maintain the respective information in the classes and create, display and delete objects of these two classes (Use Runtime Polymorphism).
22. Create a class Triangle. Include overloaded functions for calculating area. Overload assignment operator and equality operator.
23. Create a class Box containing length, breath and height. Include following methods in it:
a) Calculate surface Area
b) Calculate Volume
c) Increment, Overload ++ operator (both prefix & postfix)
d) Decrement, Overload -- operator (both prefix & postfix)
e) Overload operator == (to check equality of two boxes), as a friend function
f) Overload Assignment operator
g) Check if it is a Cube or cuboid
Write a program which takes input from the user for length, breath and height to test the above class.
24. Create a structure Student containing fields for Roll No., Name, Class, Year and Total Marks. Create 10 students and store them in a file.
25. Write a program to retrieve the student information from file created in previous question and print it in following format:
Roll No. Name Marks
26. Copy the contents of one text file to another file, after removing all whitespaces.
27. Write a function that reverses the elements of an array in place. The function must accept only one pointer value and return void.
20
COMS 113 : COMPUTER SYSTEM ARCHITECTURE
(4 credits)
Learning Outcome
5. To make students understand the basic structure, operation and characteristics of digital
computer.
6. To familiarize the students with arithmetic and logic unit as well as the concept of the
concept of pipelining.
7. To familiarize the students with hierarchical memory system including cache memories and
virtual memory.
8. To make students know the different ways of communicating with I/O devices and standard I/Ointerfaces.
SYLLABUS
UNIT I Fundamentals of Digital Electronics: Data Types, Complements, Fixed-Point Representation,
Floating-Point Representation, Other Binary Codes, Error Detection Codes, Logic Gates,
Boolean Algebra, Map Simplification, Combinational Circuits, Flip- Flops, Sequential Circuits,
Registers, Counters, Multiplexer, Demultiplexer, Decoder, Encoder.[18]
UNIT II Register Transfer and Micro operations: Register Transfer Language, Register Transfer, Bus
& Memory Transfer, Arithmetic Microoperations, Logic Microoperations, Shift
Microoperation.[12]
UNIT III Basic Computer Organization: Instruction codes, Computer Registers, Computer Instructions,
Timing & Control, Instruction Cycles, Memory Reference Instruction, Input - Output & Interrupts,
Complete Computer Description & Design of Basic Computer.[10]
UNIT IV Processor and Control Unit: Hardwired vs. Micro programmed Control Unit, General
Register Organization, Stack Organization, Instruction Format, Data Transfer & Manipulation,
Program Control, RISC, CISC, Pipelining – Pipelined datapath and control
– Handling Data hazards & Control hazards.[7]
UNIT V Memory and I/O Systems: Peripheral Devices, I/O Interface, Data Transfer Schemes,
Program Control, Interrupt, DMA Transfer, I/O Processor. Memory Hierarchy, Processor vs.
Memory Speed, High-Speed Memories, Cache Memory, Associative Memory, Interleave,
Virtual Memory, Memory Management.[10]
UNIT VI Parallelism: Instruction-level-parallelism – Parallel processing challenges – Flynn’s
classification – Hardware multithreading – Multicore processors[8]
TEXT BOOKS
Computer Organization, Carl Hamacher,zvonko Vranesic and Safwatzaky
Computer Organization and Architecture,William Stalling
REFERENCE BOOKS
Microprocessors and Interfacing Douglas V Hall,2008
21
1. Create a machine based on the following architecture:
IR DR
Register Set
AR PC FGI FGO
1 Bit 1 bit 1 Bit 1 Bit 1 Bit 011 011 0 15
The Intel Microprocessors,Barry B. Brey.
COMS 114 : PRACTICALS IN COMPUTER SYSTEM ARCHITECTURE
(2 credits) PRACTICALS :
Memory
Instruction format
4096 words 0 3 4 15
16 bits per word
Basic Computer Instructions
Memory Reference Register Reference Input-Output
Symbol Hex Symbol Hex Symbol Hex
AND
0xxx
CLA
E800
INP F80
0
ADD
2xxx
CLE
E400
OUT
F40
0
LDA
4xxx
CMA
E200
F20
Direct SKI 0
STA
6xxx
CME
E100
F10
Addressing SKO 0
BUN
8xxx
CIR
E080
F08 Optional
ION 0
BSA Axxx
CIL E040
F04
IOF 0
ISZ Cxxx INC E020
AND_I 1xxx SPA E010
ADD_I 3xxx SNA E008
LDA_I 5xxx Indirect SZA E004
STA_I 7xxx Addressing SZE E002
BUN_I 9xxx HLT E001
BSA_I Bxxx
ISZ_I Dxxx
Refer to Chapter-5 of Morris Mano for description of instructions.
2. Create the micro operations and associate with instructions as given in the chapter (except interrupts). Design the register set, memory and the instruction set. Use this machine for the assignments of this section.
Opcode Address
0 15
0 15
22
3. Create a Fetch routine of the instruction cycle.
4. Simulate the machine to determine the contents of AC, E, PC, AR and IR registers in
hexadecimal after the execution of each of following register reference instructions:
a. CLA e. CIR i. SNA
b. CLE f. CIL j. SZA
c. CMA g. INC k. SZE
d. CME h. SPA l. HLT
Initialize the contents of AC to (A937)16, that of PC to (022)16 and E to 1.
5. Simulate the machine for the following memory-reference instructions with I= 0 and
address part = 082. The instruction to be stored at address 022 in RAM. Initialize the memory word at address 082 with the operand B8F2 and AC with A937. Determine the contents of AC, DR, PC, AR and IR in hexadecimal after the execution.
a. ADD f. BSA
b. AND g. ISZ
c. LDA
d. STA
e. BUN
6. Simulate the machine for the memory-reference instructions referred in above question with I=
1 and address part = 082. The instruction to be stored at address 026 in RAM. Initialize the memory word at address 082 with the value 298. Initialize the memory word at address 298 with operand B8F2 and AC with A937. Determine the contents of AC, DR, PC, AR and IR in hexadecimal after the execution.
7. Modify the machine created in Practical 1 according to the following instruction format:
Instruction format
0 2 3 4 15
Opcode I Address
a. The instruction format contains a 3-bit opcode, a 1-bit addressing mode and a 12-bit
address. There are only two addressing modes, I = 0 (direct addressing) and I = 1 (indirect addressing).
b. Create a new register I of 1 bit.
c. Create two new microinstructions as follows :
i. Check the opcode of instruction to determine type of instruction (Memory Reference/Register Reference/Input-Output) and then jump accordingly.
ii. Check the I bit to determine the addressing mode and then jump accordingly.
23
COMS 121 : DATA STRUCTURES (4 credits)
Learning Outcome
1. To be familiar with fundamental data structures and with the manner in which these
data structures can best be implemented; become accustomed to the description of
algorithms in both functional and procedural styles
2. To have a knowledge of complexity of basic operations like insert, delete, search on
these data structures.
3. To be Able to choose a data structure to suitably model any data used in computer
applications.
4. To Design programs using various data structures including hash tables, Binary and
general search trees, heaps, graphs etc.
5. To be Able to assess efficiency tradeoffs among different data structure
implementations.
6. To Implement and know the applications of algorithms for sorting, pattern matching
etc.
SYLLABUS
A. Theory
UNIT I. Basic concepts- Algorithm Specification-Introduction, Recursive algorithms, Data
Abstraction Performance analysis, Linear and Non Linear data structures, Singly Linked Lists-
Operations, Concatenating, circularly linked lists-Operations for Circularly linked lists, Doubly
Linked Lists- Operations. Representation of single, two dimensional arrays, sparse matrices-array
and linked representations.[15]
UNIT II. Stack- Operations, Array and Linked Implementations, Applications- Infix to Postfix
Conversion, Postfix Expression Evaluation, Recursion Implementation, Queue- Definition
and Operations, Array and Linked Implementations, Circular Queues - Insertion and Deletion
Operations, Dequeue (Double Ended Queue).[12]
UNIT III. Trees, Representation of Trees, Binary tree, Properties of Binary Trees, Binary Tree
Representations- Array and Linked Representations, Binary Tree Traversals, Threaded
Binary Trees, Priority Queue- Implementation, Heap- Definition, Insertion, Deletion.[10]
UNIT IV. Graphs, Graph ADT, Graph Representations, Graph Traversals, Searching, Static Hashing-
Introduction, Hash tables, Hash functions, Overflow Handling.[10]
UNIT V. Sorting Methods, Comparison of Sorting Methods, Search Trees- Binary Search Trees,
AVL Trees- Definition and Examples.[8]
UNIT VI. Red-Black and Splay Trees, Comparison of Search Trees, Pattern Matching Algorithm-
The Knuth-Morris-Pratt Algorithm, Tries (examples).[10]
TEXTBOOKS
● Fundamentals of Data structures in C, 2nd Edition, E. Horowitz, S. Sahni and Susan
Anderson-Freed, Universities Press.
● The C Programming Language, Brain W. Kernighan and Dennis M Ritchie,2005.
● Introduction to Programming and C Programming, Sharada Patil,Alok Pawar and Nilima
24
Padmawar, 2008.
COMS 122 : PRACTICALS IN DATA STRUCTURES (2 credits)
PRACTICALS :
1. Write program that uses functions to perform the following:
a) Creation of list of elements where the size of the list, elements to be inserted and deleted
are dynamically given as input.
b) Implement the operations, insertion, deletion at a given position in the list and search for
an element in the list
c) To display the elements in forward / reverse order
2. Write a program that demonstrates the application of stack operations (Eg: infix expression to postfix
conversion)
3. Write a program to implement queue data structure and basic operations on it (Insertion,
deletion, find length ) and code atleast one application using queues.
4. Write a program that uses well defined functions to Create a binary tree of elements and
Traverse the a Binary tree in preorder, inorder and postorder,
5. Write program that implements linear and binary search methods of searching for an elements in a
list
6. . Write and trace programs to understand the various phases of sorting elements using the methods
a) Insertion Sort
b) Quicksort
c) Bubble sort
7. Write and trace programs to Create a Binary search tree and insert and delete from the tree.
8. Represent suitably a graph data structure and demonstrate operations of travesrals on it.
25
COMS 123 : DISCRETE STRUCTURES (5+1 credits)
Learning Outcome
1. To Understand the notion of mathematical thinking, mathematical proofs, and
algorithmic thinking, and be able to apply them in problem solving.
2. To Understand the basics of combinatorics, and be able to apply the methods
from these subjects in problem solving.
3. To Be able to use effectively algebraic techniques to analyse basic discrete
structures and algorithms.
4. To Understand asymptotic notation, its significance, and be able to use it to
analyse asymptotic performance for some basic algorithmic examples.
5. To Understand some basic properties of graphs and related discrete structures,
and be able to relate these to practical examples.
SYLLABUS
UNIT I. Sets: Finite and Infinite Sets, Uncountable Infinite Sets; Functions, Relations, Properties of
Binary Relations, Closure, Partial Ordering Relations; Counting - Pigeonhole Principle,
Permutation and Combination; Mathematical Induction, Principle of Inclusion and Exclusion.[10]
UNIT II. Growth of Functions: Asymptotic Notations, Summation Formulas and Properties, Bounding
Summations, Approximation by Integrals[17]
UNIT III. Recurrences: Recurrence Relations, Generating Functions, Linear Recurrence Relations with
Constant Coefficients and their Solution, Substitution Method, Recurrence Trees, Master
Theorem[18]
UNIT IV. Graph Theory: Basic Terminology, Models and Types, Multigraphs and Weighted Graphs,
Graph Representation, Graph Isomorphism, Connectivity, Euler and Hamiltonian Paths and
Circuits, Planar Graphs, Graph Coloring, Trees, Basic Terminology and Properties of Trees,
Introduction to Spanning Trees[18]
UNIT V. Propositional Logic: Logical Connectives, Well-formed Formulas, Tautologies,
Equivalences, Inference Theory[12]
REFERENCE BOOKS
● C.L. Liu & Mahopatra, Elements of Discrete mathematics, 2nd Sub Edition 1985, Tata McGraw
Hill
● Rosen, Discrete Mathematics and Its Applications, Sixth Edition 2006
● T.H. Coremen, C.E. Leiserson, R. L. Rivest, Introduction to algorithms, Prentice Hall on India
(3rd edition 2009)
● M. O. Albertson and J. P. Hutchinson, Discrete Mathematics with Algorithms 1988 John wiley Publication
26
COMS 211 : ALGORITHMS (4 credits)
Learning Outcome
1. To Learn good principles of algorithm design;
2. To Learn how to analyse algorithms and estimate their worst-case and average- case
behaviour (in easy cases);
3. To become familiar with fundamental data structures and with the manner in
which these data structures can best be implemented; become accustomed to the
description of algorithms in both functional and procedural styles;
4. To Learn how to apply their theoretical knowledge in practice (via the practical
component of the course).
SYLLABUS
A Theory
UNIT I. Introduction: Basic Design and Analysis Techniques of Algorithms, Correctness of Algorithm.
Algorithm Design Techniques: Iterative Techniques, Divide and Conquer, Dynamic Programming,
Greedy Algorithms.[18]
UNIT II. Sorting and Searching Techniques: Elementary Sorting techniques– Bubble Sort,
Insertion Sort, Merge Sort, Advanced Sorting techniques- Heap Sort, Quick Sort, Sorting in
Linear Time - Bucket Sort, Radix Sort and Count Sort, Searching Techniques- Medians &
Order Statistics, complexity analysis[12]
UNIT III. Graphs Algorithms: Graph Algorithms– Breadth First Search, Depth First Search and
its Applications, Minimum Spanning Trees. String Processing[10]
UNIT IV. Lower Bounding Techniques: Decision Trees, Balanced Trees, Red-Black Trees[10]
UNIT V. Advanced Analysis Technique: Randomized Algorithm, Distributed Algorithm,
Heuristics[13]
BOOKS
● T.H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein Introduction to
Algorithms, PHI, 3rd Edition 2009
● Ellis Horowitz, Sartaj Sahni,Sanguthevar Raja Sekaran, Fundamentals of Computer
Algorithms, 2007
27
COMS 212 : PRACTICALS IN ALGORITHMS (2 credits) .
PRACTICALS :
2. Write a test program to implement Divide and Conquer Strategy . Eg: Quick sort algorithm for
sorting list of integers in ascending order
3. Write a program to implement Merge sort algorithm for sorting a list of integers in ascending
order.
4. Write program to implement the DFS and BFS algorithm for a graph.
5. Write program to implement backtracking algorithm for solving problems like N- queens ..
6. Write a program to implement the backtracking algorithm for the sum of subsets problem
7. Write program to implement greedy algorithm for job sequencing with deadlines.
8. Write a program to implement Dijkstra’s algorithm for the Single source shortest path
problem.
9. Write a program that implements Prim’s algorithm to generate minimum cost spanning tree.
10. Write a program that implements Kruskal’s algorithm to generate minimum cost spanning tree
11. Write program to implement Dynamic Programming algorithm for Fibonacii sequence
12.
13. Write program to implement Dynamic Programming algorithm for the 0/1
Knapsack problem.
14. Write program to implement Dynamic Programming algorithm for the Optimal Binary Search
Tree Problem.
28
COMS 213 : OPERATING SYSTEM (4 credits)
Learning Outcome
11. To Describe the important computer system resources and the role of operating system
in their management policies and algorithms.
12. To understand various functions, structures and history of operating systems and
should be able to specify objectives of modern operating systems and describe how
operating systems have evolved over time.
13. To Understand the design issues associated with operating systems.
14. Understanding various process management concepts including scheduling,
synchronization, and deadlocks.
15. To have a basic knowledge about multithreading.
16. To understand concepts of memory management including virtual memory.
17. To understand issues related to file system interface and implementation, disk
management. 18. To understand and identify potential threats to operating systems and the
security features design to guard against them.
19. To have sound knowledge of various types of operating systems including Unix and
Android.
20. To Describe the functions of a contemporary operating system with respect to
convenience, efficiency, and the ability to evolve.
SYLLABUS
UNIT I. (Introduction to Operating System) What is Operating System? History and Evolution
of OS, Basic OS functions, Resource Abstraction, Types of Operating Systems–
Multiprogramming Systems, Batch Systems, Time Sharing Systems; Operating Systems
for Personal Computers, Workstations and Hand-held Devices, Process Control & Real
time Systems.[15]
UNIT II. (Operating System Organization and Process Characterization) Processor and
User Modes, Kernels, System Calls and System Programs, System View of the Process and
Resources, Process Abstraction, Process Hierarchy, Threads, Threading Issues, Thread
Libraries; Process Scheduling, Non-Pre-emptive and Pre- emptive Scheduling
Algorithms.[10]
UNIT III. Process Management (Deadlock) Deadlock, Deadlock Characterization, Necessary
and Sufficient Conditions for Deadlock, Deadlock Handling Approaches: Deadlock
Prevention, Deadlock Avoidance and Deadlock Detection and Recovery.[10]
UNIT IV. (Inter Process Communication and Synchronization) Concurrent and Dependent
Processes, Critical Section, Semaphores, Methods for Inter-process Communication;
Process Synchronization, Classical Process Synchronization Problems: Producer-
Consumer, Reader-Writer.[10]
UNIT V. (Memory Management) Physical and Virtual Address Space; Memory Allocation
Strategies– Fixed and -Variable Partitions, Paging, Segmentation, Virtual Memory.[6]
UNIT VI. (File and I/O Management, OS security) Directory Structure, File Operations, File
Allocation Methods, Device Management, Pipes, Buffer, Shared Memory, Security Policy
Mechanism, Protection, Authentication and Internal Access Authorization[8]
29
UNIT VII. (Introduction to Android Operating System) Introduction to Android Operating
System, Android To Development Framework, Android Application Architecture, Android
Process Management and File System, Small Application To Development using Android
To Development Framework.[8]
TEXT BOOKS AND REFERENCE BOOKS
● A Silberschatz, P.B. Galvin, G. Gagne, Operating Systems Concepts, 8th Edition, John
Wiley Publications 2008.
● Gajanan Deshmukh, Introduction to Operating Systems.
● W. Stallings, Operating Systems, Internals & Design Principles 2008 5th Edition, Prentice
Hall of India.
● Anjali Sardesai, Sonali Deshmukh, Operating Systems- Concepts and design
COMS 214 : PRACTICALS IN OPERATING SYSTEM (2 credits)
PRACTICALS :
1. WRITE A PROGRAM (using fork() and/or exec() commands) where parent and child execute:
a) same program, same code. b) same program, different code. c) before terminating, the parent waits for the child to finish its task.
2. WRITE A PROGRAM to report behaviour of Linux kernel including kernel version, CPU
type and model. (CPU information) 3. WRITE A PROGRAM to report behaviour of Linux kernel including information on
configured memory, amount of free and used memory. (memory information) 4. WRITE A PROGRAM to print file details including owner access permissions, file access
time, where file name is given as argument. 5. WRITE A PROGRAM to copy files using system calls.
6. Write program to implement FCFS scheduling algorithm.
7. Write program to implement Round Robin scheduling algorithm.
8. Write program to implement SJF scheduling algorithm.
9. Write program to implement non-preemptive priority based scheduling algorithm.
10. Write program to implement preemptive priority based scheduling algorithm.
11. Write program to implement SRJF scheduling algorithm.
12. Write program to calculate sum of n numbers using thread library.
13. Write a program to implement first-fit, best-fit and worst-fit allocation strategies.
30
COMS 215 : COMPUTER NETWORKS (4 credits)
Learning Outcome
1. To Understand the structure of Data Communications System and its components.
Be familiarize with different network terminologies.
2. To Familiarize with contemporary issues in network technologies.
3. To Know the layered model approach explained in OSI and TCP/IP network models
4. To Identify different types of network devices and their functions within a network.
5. To Learn basic routing mechanisms, IP addressing scheme and internetworking
concepts.
6. To Familiarize with IP and TCP Internet protocols.
7. To understand major concepts involved in design of WAN, LAN and wireless
networks.
8. To Learn basics of network configuration and maintenance.
9. To Know the fundamentals of network security issues.
SYLLABUS
UNIT I. Introduction to Computer Networks and Networking Elements: Network
Definition, Network Topologies, Network Classifications, Network Protocol, Layered Network
Architecture, Overview of OSI Reference Model, Overview of TCP/IP Protocol Suite, Hub,
Switch (Managed and Unmanaged), Routers[10]
UNIT II. Data Communication Fundamentals and Techniques: Analog and Digital Signal,
Data-Rate Limits, Digital to Digital Line Encoding Schemes, Pulse Code Modulation, Parallel
and Serial Transmission, Digital to Analog Modulation - Multiplexing Techniques- FDM,
TDM, Transmission Media.[10]
UNIT III. Networks Switching Techniques and Access Mechanisms: Circuit Switching,
Packet Switching- Connectionless Datagram Switching, Connection- Oriented Virtual Circuit
Switching; Dial-Up Modems, Digital Subscriber Line, Cable TV for Data Transfer.[10]
UNIT IV. Data Link Layer Functions and Protocol: Error Detection and Error Correction
Techniques, Data-Link Control- Framing and Flow Control, Error Recovery Protocols-Stop
and Wait ARQ, Go-Back-N ARQ, Point to Point Protocol on Internet.[8]
UNIT V. Multiple Access Protocol and Network Layer: CSMA/CD Protocols, Ethernet
LANS; Connecting LAN and Back-Bone Networks- Repeaters, Hubs, Switches, Bridges,
Router and Gateways, Networks Layer Functions and Protocols (6 Lectures) Routing, Routing
Algorithms, Network Layer Protocol of Internet - IP Protocol, Internet Control Protocols.[12]
UNIT VI. Transport Layer and Application Layer Functions and Protocols: Transport Services-
Error and Flow Control, Connection Establishment and Release- Three Way Handshake,
Overview of Application Layer Protocol (5 Lectures) Overview of DNS Protocol; Overview of
WWW & HTTP Protocol.[15]
REFERENCE BOOKS
● B. A. Forouzan: Data Communications and Networking, Fourth edition, THM Publishing
Company Ltd 2007.
● A. S. Tanenbaum: Computer Networks, Fourth edition, PHI Pvt. Ltd 2002
31
COMS 216 : PRACTICALS IN COMPUTER NETWORKS (2 credits)
PRACTICALS :
1. Simulate Cyclic Redundancy Check (CRC) error detection algorithm for noisy channel.
2. Simulate and implement stop and wait protocol for noisy channel.
3. Simulate and implement go back n sliding window protocol.
4. Simulate and implement selective repeat sliding window protocol.
5. Simulate and implement distance vector routing algorithm
6. Simulate and implement Dijkstra algorithm for shortest path routing.
7. Configure a Network Topology using packet tracer software
8. Connect the computers Iin Local Area Network
9. Study of basic network Commands network configuration commands
10. Configure a Network using Distance Vector Routing Protocol
11. Configure a Network using Link State Vector Routing Protocol
32
COMS 221 : OBJECT ORIENTED PROGRAMMING (4 credits)
Learning Outcome 6. To Learn the concepts of data, abstraction and encapsulation
7. To Be able to write programs using classes and objects, packages.
8. To Understand conceptually principles of Inheritance and Polymorphism and their
use and program level implementation.
9. To Learn exception and basic event handling mechanisms in a program
10. To Learn typical object-oriented constructs of specific object oriented
programming language
SYLLABUS
A. Theory
UNIT I. Basics: Introduction to Object Oriented Programming and its Basic Features, Basic
Components of C++, Characteristics of Object-Oriented Language, Structure of a C++ Program,
Flow Control Statements in C++, Functions - Scope of Variables, Inline Functions, Recursive
Functions, Pointers to Functions, C++ Pointers, Arrays, Dynamic Memory Allocation and De-
Allocation[18]
UNIT II. Differences Between Object Oriented and Procedure Oriented Programming, Abstraction,
Overview of Object-Oriented Programming Principles, Encapsulation, C++ Classes, Objects, User
Defined Types, Constructors and Destructors, this Pointer, Friend Functions, Data Abstraction,
Operator Overloading, Type Conversion[12]
UNIT III. Class Inheritance, Base and Derived Classes, Virtual Base Class, Virtual Functions,
Polymorphism, Static and Dynamic Bindings, Base and Derived Class Virtual Functions, Dynamic
Binding through Virtual Functions, Pure Virtual Functions, Abstract Classes, Virtual
Destructors[10]
UNIT IV. Stream Classes Hierarchy, Stream I/O, File Streams, Overloading the Extraction and
Insertion Operators, Error Handling during File Operations, Formatted I/O[13].
UNIT V. Exception Handling- Benefits of Exception Handling, Throwing an Exception, the Try
Block, Catching an Exception, Exception Objects, Exception Specifications, Rethrowing an
Exception, Uncaught Exceptions[10]
TEXT BOOKS
● Object Oriented Programming with C++, E. Balagurusamy
● C++: The Complete Reference, Herbert Schildt, 4th Edition
REFERENCE BOOKS
● Object Oriented Concept and Programming with C++, Anjali Harishchandra
● The C++ Programming Language, B. Stroutstrup, 3rd Edition, Pearson Education
● Programming in C++, Ashok N Kamthane. Pearson 2nd Edition
33
COMS 222 : PRACTICALS IN OBJECT ORIENTED PROGRAMMING
(2 credits)
PRACTICALS
Part A
2. Number of vowels and number of characters in a string.
3. Write a function called zeros maller () that is passed with two introduce arguments by reference and
set the smaller of the number to zero. Write a man() program to access this function.
4. Demonstration of array of object.
5. Using this pointer to return a value ( return by reference).
6. Demonstration of virtual function.
7. Demonstration of static function.
8. Accessing a particular record in a student's file.
9. Demonstration of operator overloading.
Part B
10. Write a program to create a database for students that contains Name, Enrolment no, Department,
Programme using Constructors, destructors, input and output functions ; input and output for 10 people
using different methods.
11. Create a class holding information of the salaries of all the family members (husband, wife, son,
daughter). Using friend functions give the total salary of the family.
34
COMS 223 : SOFTWARE ENGINEERING (4 credits)
Learning Outcome 6. To Gain Basic knowledge and understanding of the analysis and design of complex
systems.
7. To be Able to apply software engineering principles and techniques.
8. To produce efficient, reliable, robust and cost-effective software solutions.
9. To be Able to work as an effective member or leader of software engineering teams.
10. To manage time, processes and resources effectively by prioritising competing
demands to achieve personal and team goals Identify and analyzes the common threats
in each domain.
SYLLABUS
UNIT I. Software To Development Approaches: Introduction; Evolving Role of Software;
Software Characteristics; Software Applications. Software Design Processes: Introduction;
What is Meant by Software Engineering?, Definitions of Software Engineering; The Serial or
Linear Sequential To Development Model; Iterative To Development Model; The incremental
To Development Model[8]
UNIT II. Software Design Principles: Introduction, System Models: Data-flow Models,
Semantic Data Models, Object Models, Inheritance Models, Object Aggregation, Service
Usage Models, Data Dictionaries; Software Design: The Design Process, Design Methods,
Design description, Design Strategies, Design Quality; Architectural Design: System
Structuring, The Repository Model, The Client–Server Model, The Abstract Machine Model,
Control Models, Modular Decomposition, Domain-Specific Architectures.[12]
UNIT III. Object Oriented Design: Introduction; Object Oriented Design: Objects, Object
Classes & Inheritance, Inheritance, Object Identification, An Object -Oriented Design
Example, Object Aggregation; Service Usage; Object Interface Design: Design Evolution,
Function Oriented Design, Data–Flow Design; Structural Decomposition: Detailed
Design.[10]
UNIT IV. An Assessment of Process Life-Cycle Models: Introduction; Overview of the
Assessment of Process; The Dimension of Time; The Need for a Business Model in Software
Engineering; Classic Invalid Assumptions: First Assumption: Internal or External Drivers,
Second Assumption: Software or Business Processes, Third Assumption: Processes or Projects,
Fourth Assumption: Process Centered or Architecture Centered; Implications of the New
Business Model; Role of the Problem - Solving Process in this Approach: Data, Problem
Definition, Tools and Capabilities; Redefining the Software Engineering Process: Round-
Trip Problem-Solving Approach, Activities, Goals, Interdisciplinary Resources, Time.[18]
UNIT V. Software Reliability: Introduction; Software Reliability Metrics; Programming for
Reliability: Fault Avoidance, Fault Tolerance, Software Reuse.[6]
UNIT VI. Software Testing Techniques: Introduction; Software Testing Fundamental;
Testing Principles; White Box Testing; Control Structure Testing; Black Box Testing;
Boundary Value Analysis; Testing GUIs; Testing Documentation and Help Facilities;
Software Testing Strategies: Introduction; Organizing for Software Testing; Software Testing
Strategy,Unit Testing : Unit Testing Considerations,Top-Down Integration,Bottom-Up
Integration[11]
35
TEXT BOOKS AND REFERENCE BOOKS
● R. G. Pressman – Software Engineering, TMH
● Sommerville, Ian, Software Engineering A Practitioner’s Approach, R. G. Pressman
● Rajesh V. Nikam – Software Engineering
● Rajesh V. Nikam and Umesh Surve, A Text Book of Object Oriented Software
Engineering
● M.B. Kadam, Software Engineering-1
COMS 224 : PRACTICALS IN SOFTWARE ENGINEERING
(2 credits)
PRACTICALS :
Sl No Practical Title
1 Problem Statement
Process Model
2 Requirement Analysis :
• Creating a Data Flow
• Data Dictionary, Use Cases
3 Project Management :
• Computing FP
• Effort
• Schedule, Risk Table, Timeline Chart
4 Design Engineering :
• Architectural Design
• Data Design, Component Level Design
5 Testing :
• Basis Path Testing
1. Criminal Record Management: Implement a criminal record management system for jailers, police officers and CBI officers
2. DTC Route Information: Online information about the bus routes and their frequency and
fares
3. Car Pooling: To maintain a web based intranet application that enables the corporate employees within an organization to avail the facility of carpooling effectively.
4. Patient Appointment and Prescription Management System
5. Organized Retail Shopping Management Software
6. Online Hotel Reservation Service System
7. Examination and Result computation system
8. Automatic Internal Assessment System
9. Parking Allocation System
10. Wholesale Management System
36
COMS 225 : DATABASE MANAGEMENT SYSTEMS (4 credits)
Learning Outcome 9. To Gain knowledge of database systems and database management systems software.
10. To be Able to model data in applications using conceptual modelling tools such as
ER Diagrams and design data base schemas based on the model.
11. To Formulate, using SQL, solutions to a broad range of query and data update
problems.
12. To Demonstrate an understanding of normalization theory and apply such knowledge
to the normalization of a database.
13. Being acquainted with the basics of transaction processing and
concurrency control.
14. To be Familiar with database storage structures and access techniques.
15. To Compare, contrast and analyse the various emerging technologies for database
systems such as NoSQL.
16. To Analyse strengths and weaknesses of the applications of database technologies to
various subject areas.
SYLLABUS
A Theory
UNIT I. Basic Database Concepts, Terminology, and Architecture; Types of Database Management
Systems. Differences between Relational and other Database Models. Data Modelling: Relations,
Schemas, Constraints, Queries, and Updates; Conceptual vs. Physical Modeling; Entity Types,
attributes, ER Diagrams.[12]
UNIT II. SQL Data Definition: Specifying Tables, Data Types, Constraints; Simple SELECT,
INSERT, UPDATE, DELETE Statements; Complex SELECT Queries, including Joins and
Nested Queries; Actions and Triggers; Views; Altering Schemas.[10]
UNIT III. Relational Algebra: Definition of Algebra; Relations as Sets; Operations: SELECT,
PROJECT, JOIN, etc. Normalization Theory and Functional Dependencies, 2NF, 3NF, BCNF,
4NF, 5NF;[10]
UNIT IV. Indexing: Files, Blocks, and Records, Hashing; RAID; Replication; Single-Level and
Multi-Level Indexes; B-Trees and B+-Trees. Query Processing Translation of SQL into Query
Plans; Basics of Transactions, Concurrency and Recovery.[12]
UNIT V. DATABASE PROGRAMMING: Embedded SQL; Dynamic SQL, JDBC;
Avoiding Injection Attacks; Stored Procedures; Lightweight Data Access Layers for Python and
JavaScript Applications; PHP and MySQL, Object Relational Modeling: Hibernate for Java, Active
Record for Rails.[12]
UNIT VI. BIG DATA: Motivations; OLAP vs. OLTP; Batch Processing; MapReduce and Hadoop;
Spark; Other Systems: HBase. Working with POSTGRES, REDIS, MONGO, and NEO: Setting
up the same Database on Four Platforms; Basic Queries and Reporting.[9]
TEXTBOOKS
● Elmasri's and Navathe's Fundamentals of Database Systems. Addison-Wesley
REFERENCE BOOK
● Database System Concepts, Abraham Silberschatz
● Data base System Concepts, A. Silberschatz, Henry. F. Korth, S. Sudarshan, McGraw Hill
Education
37
COMS 226 : PRACTICALS IN DATABASE MANAGEMENT SYSTEMS
(2 credits)
PRACTICALS LIST : Practical 1: E-R Model
Analyze the organization and identify the entities , attributes and relationships in it. .
Identify the primary keys for all the entities. Identify the other keys like candidate keys, partial keys, if
any.
Practical 2: Concept design with E-R Model
Relate the entities appropriately. Apply cardinalities for each relationship. Identify strong entities and
weak entities (if any).
Practical 3: Relational Model
Represent all the entities (Strong, Weak) in tabular fashion. Represent relation ships in a tabular fashion.
Practical 4: Normalization
Apply the First, Second and Third Normalization levels on the database designed for the organization
Practical 5: Installation of Mysql and practicing DDL commands
Installation of MySql. Creating databases, How to create tables, altering the database, dropping tables and
databases if not required. Try truncate, rename commands etc.
Practical 6: Practicing DML commands on the Database created for the example organization
DML commands are used to for managing data within schema objects. Some examples:
● SELECT - retrieve data from the a database
● INSERT - insert data into a table
● UPDATE - updates existing data within a table
● DELETE - deletes all records from a table, the space for the records remain
Practical 7: Querying
practice queries (along with sub queries) involving ANY, ALL, IN, Exists, NOT EXISTS,
UNION, INTERSECT, Constraints etc.
Practical 8 and Practical 9: Querying
Practice queries using Aggregate functions (COUNT, SUM, AVG, and MAX and MIN),
GROUP BY, HAVING and Creation and dropping of Views.
Practical 10: Triggers
Work on Triggers. Creation of, insert trigger, delete trigger, update trigger. Practice triggers using the
above database.
38
COMS 311 : INTERNET TECHNOLOGIES (4 credits)
Learn Outcome 1. To understand the terms related to the Internet and how the Internet is changing the
world.
2. To understand how computers are connected to the Internet and demonstrate the
ability to use the World Wide Web.
3. To Demonstrate an understanding of and the ability to use electronic mail and other
internet based services
4. To Understand the design principles of Web pages and how they are created 5. To Develop an ability to create basic Web pages with HTML.
SYLLABUS
UNIT I. Introduction: Overview, Network of Networks, Intranet, Extranet and Internet. World
Wide Web, Domain and Sub domain, Address Resolution, DNS, Telnet, FTP, HTTP.
Review of TCP/IP: Features, Segment, Three-Way Handshaking, Flow Control, Error
Control, Congestion control,[10]
UNIT II. IP Datagram, IPv4 and IPv6. IP Subnetting and addressing: Classful and Classless
Addressing, Subnetting. NAT, IP masquerading, IP tables. Internet Routing Protocol: Routing -
Intra and Inter Domain Routing, Unicast and Multicast Routing, Broadcast. Electronic Mail: POP3,
SMTP.[10]
UNIT III. HTML: Introduction, Editors, Elements, Attributes, Heading, Paragraph. Formatting,
Link, Head, Table, List, Block, Layout, CSS. Form, Iframe, Colors, Colorname, Colorvalue.
Image Maps: map, area, attributes of image area. Extensible Markup Language (XML):
Introduction, Tree, Syntax, Elements, Attributes, Validation, Viewing. XHTML in brief. CGI
Scripts: Introduction, Environment Variable, GET and POST Methods.[8]
UNIT IV. PERL: Introduction, Variable, Condition, Loop, Array, Implementing data structure,
Hash, String, Regular Expression, File handling, I/O handling. JavaScript: Basics, Statements,
comments, variable, comparison, condition, switch, loop, break. Object
- string, array, Boolean, reg-ex. Function, Errors, Validation. Cookies: Definition of cookies,
Create and Store a cookie with example. Java Applets: Container Class, Components, Applet Life
Cycle, Update method; Parameter passing applet, Applications.[10]
UNIT V. Client-Server programming In Java: Java Socket, Java RMI. Threats: Malicious code-viruses,
Trojan horses, worms; eavesdropping, spoofing, modification, denial of service attacks. Network
security techniques: Password and Authentication; VPN, IP Security, security in electronic
transaction, Secure Socket Layer (SSL), Secure Shell (SSH). Firewall: Introduction, Packet
filtering, Stateful, Application layer, Proxy.[18]
UNIT VI. Internet Telephony: Introduction, VoIP. Multimedia Applications: Multimedia over IP:
RSVP, RTP, RTCP and RTSP. Streaming media, Codec and Plugins, IPTV. mywbut.com Search
Engine and Web Crawler: Definition, Meta data, Web Crawler, Indexing,Page rank,overview of
SEO.[10]
REFERENCE BOOKS
● A Text Book of Web Technologies: Rajeshree Khande, Manisha Maddel and Kalpana Joshi
● Web Technology: A To Developer's Perspective, N.P. Gopalan and J. Akilandeswari, PHI, Learn, Delhi, 2013.
● Internetworking Technologies, An Engineering Perspective, Rahul Banerjee, PHI Learn, Delhi, 2011.
39
COMS 312 : PRACTICALS IN INTERNET TECHNOLOGIES
(2 credits)
PRACTICALS :
Exercise #1 – Information Structure
In this exercise, student will practice identifying the structure of an information
object. For the sample document provided below:
Label the information structures you see, including containing structures.
1. Draw a tree representation of the structure.
Exercise 2# Deconstructing an XML Document
<description>The definitive XML resource: applications, products, and technologies. Revised and expanded—over 600 new pages.
</description>
</coverInfo>
</book>
Exercise #3 – Creating XML Markup
In this exercise, create some XML markup based on the tree representation from Exercise #1 above, and the content from the original sample document.
Exercise #4 – Well-Formedness
This exercise checks your understanding of the constraints for well-formedness. Are the following document instances well-formed? Explain any NO answers.
In this exercise, student will practice identifying the explicit structure within an XML document. In a sense, this is the reverse of what you did in Exercise #1. For the sample XML markup below, create a document-like representation (or a simple drawing) for the content contained within the XML tags:
<book>
<coverInfo>
<title>The XML Handbook</title>
<author>Charles F. Goldfarb</author>
<author>Paul Prescod</author>
<edition>Second</edition>
40
<list><title>The first list</title><item>An item</list>
<item>An item</item><item>Another item</item>
<para>Bathing a cat is a <emph>relatively</emph> easy task as long as the cat is willing.</para>
<bibl><title>How to Bathe a Cat<author></title>Merlin Bauer<author></bibl>
Exercise #5-Well Formedness
This exercise is a bit more challenging than the previous example. Here is a fragment of an XML document instance. Identify all the places where it fails to match the constraints for well- formedness.
<PROCEDURE><TITLE>How to Bathe a Cat</TITLE>
<OVERVIEW>
This procedure tells you how to bathe a cat. <WARNING></OVERVIEW>Cats don't like to take baths. You could get hurt doing this. Be sure to obtain all the required protective gear before you start. </WARNING><EQUIPEMENT><ITEM>Hockey Mask <ITEM>Padded Full-body Kevlar Armor</ITEM><ITEM>Tub full of warm water</ITEM><ITEM>Towels </ITEM><ITEM>First Aid kit</ITEM><ITEM>Cat Shampoo</ITEM> <EQUIPMENT><INSTRUCTIONS> <STEP> Locate the cat, who by now is hiding under the bed.</STEP><STEP>Place the cat in the tub of water.</STEP> <ITEM>Using the First Aid kit, repair the damage to your head and arms.</STEP> <STEP>Place the cat back in the tub and hold it down.</STEP> <STEP>Wash it really fast, then make an effort to dry it with the towels.</STEP> <STEP>Decide not to do this again. </STEP> </INSTRUCTIONS>
Exercise #6 Write a Perl program to print the sum and product of digits of an integer.
Exercise #7 Write a Perl program to reverse a number.
Exercise #8 Write a Perl program to compute the sum of the first n terms of the following series S = 1+1/2+1/3+1/4+……
Exercise #9 Write a Perl program to compute the sum of the first n terms of the following series S =1-2+3-4+5…………….
Exercise #10 Write a Perl program to implement a function that checks whether a given string is Palindrome or not. Use this function to find whether the string entered by user is Palindrome or not.
Exercise #11 Write a Perl function to find whether a given no. is prime or not. Use the same to generate the prime numbers less than 100.
Exercise #12 Write a Perl program to compute the factors of a given number (using functions)
Exercise #13 Write a Java Program to implement Client-Server programming
41
COMS 313 : ARTIFICIAL INTELLIGENCE (6 credits)
Learning Outcome
• Explain what constitutes "Artificial" Intelligence and how to identify systems with Artificial
Intelligence.
• Identify problems that are amenable to solution by AI methods, and which AI methods may be
suited to solving a given problem.
• Formalise a given problem in the language/framework of different AI methods (e.g., as a search
problem, as a constraint satisfaction problem, as a planning problem, etc).
• Implement basic AI algorithms (e.g., standard search or constraint propagation algorithms).
• Design and perform an empirical evaluation of different algorithms on a problem formalisation, and
state the conclusions that the evaluation supports.
• Explain the limitations of current Artificial Intelligence techniques.
SYLLABUS
A. Theory
UNIT I. Introduction to Artificial Intelligence: Definition of AI; Turing Test; Brief History of AI.
Problem Solving and Search: Problem Formulation; Search Space; States vs. Nodes; Tree Search:
Breadth-First, Uniform Cost, Depth-First, Depth-Limited, Iterative Deepening; Graph
Search.[10]
UNIT II. Informed Search: Greedy Search; A* Search; Heuristic Function; Admissibility and
Consistency; Deriving Heuristics via Problem Relaxation. Local Search: Hill -Climbing; Simulated
Annealing; Genetic Algorithms; Local Search in Continuous Spaces.[8]
UNIT III. Playing Games: Game Tree; Utility Function; Optimal Strategies; Minimax Algorithm;
Alpha-Beta Pruning; Games with an Element of Chance. Beyond Classical Search: Searching with
Nondeterministic Actions; Searching with Partial Observations; Online Search Agents; Dealing
with Unknown Environments.[12]
UNIT IV. Knowledge Representation and Reasoning: Ontologies, Foundations of Knowledge
Representation and Reasoning, Representing and Reasoning about Objects, Relations, Events,
Actions, Time, and Space; Predicate Logic, Situation Calculus, Description Logics, Reasoning with
Defaults, Reasoning about Knowledge, Sample Applications.[15]
UNIT V. Representing and Reasoning with Uncertain Knowledge: Probability, Connection to
Logic, Independence, Bayes Rule, Bayesian Networks, Probabilistic Inference, and Sample
Applications.[8]
UNIT VI. Planning: The STRIPS Language; Forward Planning; Backward Planning; Planning
Heuristics; Partial-Order Planning; Planning using Propositional Logic; Planning vs.
Scheduling.[12]
TEXT BOOKS
Elaine Rich, Kevin Knight, Shivashankar B Nair, Artificial Intelligence, Third Edition,
McGraw Hill Edition.
REFERENCE BOOKS
● Russell Stuart Jonathan and Norvig Peter, Artificial Intelligence: A Modern Approach, 3rd
Edition, Prentice Hall, 2010
42
COMS 321 : MACHINE LEARNING (6 credits)
Learning Outcome
6. To Differentiate between supervised, unsupervised machine Learn approaches
7. To be Able to choose appropriate machine Learn algorithm for solving a problem
8. To Design and adapt existing machine Learn algorithms to suit applications
9. To Understand the underlying mathematical relationships across various machine Learn
algorithms
10. Design and implement machine Learn algorithms to real world applications
SYLLABUS
UNIT I. Introduction: Concept of Machine Learn, Applications of Machine Learn, Key elements
of Machine Learn, Supervised vs. Unsupervised Learn, Statistical Learn: Bayesian Method, The
Naive Bayes Classifier[18]
UNIT II. Software’s for Machine Learn and Linear Algebra Overview: Plotting of Data, Vectorization,
Matrices and Vectors: Addition, Multiplication, Transpose and Inverse using Available Tool
such as MATLAB.[12]
UNIT III. Linear Regression: Prediction using Linear Regression, Gradient Descent, Linear Regression
with one Variable, Linear Regression with Multiple Variables, Polynomial Regression, Feature
Scaling/Selection.[10]
UNIT IV. Logistic Regression: Classification using Logistic Regression, Logistic Regression vs.
Linear Regression, Logistic Regression with one Variable and with Multiple Variables.[7]
UNIT V. Regularization: Regularization and its Utility: The problem of Overfitting, Application of
Regularization in Linear and Logistic Regression, Regularization and Bias/Variance.[8]
UNIT VI. Neural Networks: Introduction, Model Representation, Gradient Descent vs. Perceptron
Training, Stochastic Gradient Descent, Multilayer Perceptrons, Multiclass Representation, Back
Propagation Algorithm.[10]
TEXT BOOKS
● Ethem Alpaydin, "Introduction to Machine Learn" 2nd Edition, The MIT Press, 2009.
● Tom M. Mitchell, "Machine Learn", First Edition by Tata McGraw-Hill Education, 2013.
● Christopher M. Bishop, "Pattern Recognition and Machine Learn" by Springer, 2007.
● Mevin P. Murphy, "Machine Learn: A Probabilistic Perspective" by The MIT Press, 2012.
43
COMS 323 : COMPUTER GRAPHICS (4 credits)
Learning Outcome 8. To Acquire familiarity with the concepts and relevant mathematics of computer
graphics. 9. To be Able to implement various algorithms to scan, convert the basic geometrical
primitives, transformations, area filling, clipping.
10. To Describe the importance of viewing and projections.
11. To be Able to design basic graphics application programs.
12. To Familiarize with fundamentals of animation and Virtual reality technologies
13. To be able to design applications that display graphic images to given specifications.
14. To understand a typical graphics pipeline.
SYLLABUS
Theory
UNIT I. Application Areas of Computer Graphics, Overview of Graphics Systems and Devices.
Points and Lines, Line Drawing Algorithms, Mid-Point Circle and Ellipse Algorithms. Filled Area
Primitives, Polygon Filling Algorithms. Curve Generation: Bezier and B-Spline Curves.[10]
UNIT II. 2-D Geometrical Transforms: Translation, Scaling, Rotation, Reflection and Shear
Transformations Composite Transforms, Transformations between Coordinate Systems. 2-D
Viewing: The Viewing Pipeline, Viewing Coordinate Reference Frame, Window to Viewport
Coordinate Transformation, Viewing Functions.[12]
UNIT III. Line Clipping Algorithms- Cohen-Sutherland and Cyrus Beck Line Clipping Algorithms,
Sutherland–Hodgeman Polygon Clipping Algorithm. 3-D Object Representation: Polygon
Surfaces, Quadric Surfaces, Spline Representation[10]
UNIT IV. 3-D Geometric Transformations: Translation, Rotation, Scaling, Reflection and Shear
Transformations, Composite Transformations, 3-D Viewing: Viewing Pipeline, Viewing
Coordinates, View Volume, General Projection Transforms and Clipping.[8]
UNIT V. Visible Surface Detection Methods: Classification, Back -Face Detection, Depth- Buffer,
Scanline, Depth Sorting, BSP-Tree Methods, Area Sub-Division and Octree Methods
Illumination Models and Surface Rendering Methods: Basic Illumination Models, Polygon
Rendering Methods Computer Animation: Design of Animation Sequence, General Computer
Animation Functions Key Frame Animation, Animation Sequence, Motion Control Methods,
Morphing, Warping (Only Mesh Warping)[18]
UNIT VI. Virtual Reality : Basic Concepts, Classical Components of VR System, Types of VR
Systems, Three Dimensional Position Trackers, Navigation and Manipulation Interfaces, Gesture
Interfaces. Input Devices, Graphical Rendering Pipeline, Haptic Rendering Pipeline, Open GL
Rendering Pipeline. Applications of Virtual Reality.[8]
TEXTBOOKS
● “Computer Graphics Principles & practice”, Foley, Van Dam, Feiner and Hughes, Pearson Education.
● Donald Hearn and M. Pauline Baker, “Computer Graphics with Open GL”, Prentice
Hall.
44
COMS 324 : PACTICALS IN COMPUTER GRAPHICS (2 credits)
PRACTICALS :
1. Write a program to implement Bresenham‘s line drawing algorithm.
2. Write a program to implement mid-point circle drawing algorithm.
4. Write a program to clip a polygon using Sutherland Hodgeman algorithm. 5. Write a program to apply various 2D transformations on a 2D object (use homogenous
coordinates).
6. Write a program to apply various 3D transformations on a 3D object and then apply parallel
and perspective projection on it.
7. Write a program to draw Hermite/Bezier curve.
3. Write a program to clip a line using Cohen and Sutherland line clipping algorithm.
45
DISCIPLINE SPECIFIC ELECTIVES
COMS 314 : SYSTEM SECURITY (4 credits)
Learning Outcome 5. Develop an understanding of information assurance as practiced in computer operating systems,
distributed systems, networks and representative applications.
6. Gain familiarity with prevalent network and distributed system attacks, defenses against them,
and forensics to investigate the aftermath.
7. Develop a basic understanding of cryptography, how it has evolved, and some key encryption
techniques used today.
8. Develop an understanding of security policies (such as authentication, integrity and
confidentiality), as well as protocols to implement such policies in the form of message exchanges.
SYLLABUS
UNIT 1. Cryptographic Tools- Confidentiality with Symmetric Encryption, Message
Authentication and Hash Functions, Public-Key Encryption, Digital Signatures and Key
Management, Random and Pseudorandom Numbers, Practical Application: Encryption of
Stored Data[10]
UNIT 2. User Authentication- Means of Authentication, Password-Based
Authentication, Token-Based Authentication, Biometric Authentication, Remote User
Authentication, Security Issues for User Authentication, Practical
Application: An Iris Biometric System, Case Study: Security Problems for ATM
Systems[12]
UNIT 3. Access Control- Access Control Principles, Subjects, Objects, and Access
Rights, Discretionary Access Control, Example: UNIX File Access Control, Role-
Based Access Control, Case Study: RBAC System for a Bank[7]
UNIT 4. Database Security-The Need for Database Security, Database Management Systems,
Relational Databases, Database Access Control, Inference, Statistical Databases, Database
Encryption, Cloud Security[8]
UNIT 5. Malicious Software-Types of Malicious Software (Malware), Propagation– Infected
Content–Viruses, Propagation–Vulnerability Exploit–Worms, Propagation–Social
Engineering–SPAM E-mail, Trojans, Payload–System Corruption, Payload–Attack Agent–
Zombie, Bots, Payload–Information Theft– Keyloggers, Phishing, Spyware, Payload–
Stealthing–Backdoors, Rootkits,, Countermeasures[18]
UNIT 6. Denial-of-Service Attacks- Denial-of-Service Attacks, Flooding Attacks,
Distributed Denial-of-Service Attacks, Application-Based Bandwidth Attacks,
Reflector and Amplifier Attacks, Defenses Against Denial-of-Service Attacks,
Responding to a Denial-of-Service Attack.[10]
TEXT BOOKS
● P-Wiley, A-Nina GodBole, “Information System Security.
● Varada Inamdar and A Smita Hendre, “A Text Book of Information Security”
● A. A. Ukidve, S. S. Velenkar and V. T. Patil, “Information Security”
● M. E. Whitman and H. J. Mattord, “Principles of Information Security,” 4 st Edition, Course Technology, ISBN: 1111138214, 2011.
46
COMS 315 : PRACTICALS IN SYSTEM SECURITY
(2 credits)
PRACTICALS :
1. Demonstrate the use of Network tools: ping, ipconfig, ifconfig, tracert, arp, netstat, whois
2. Use of Password cracking tools : John the Ripper, Ophcrack. Verify the strength of
passwords using these tools.
3. Perform encryption and decryption of Caesar cipher. Write a script for performing these
operations.
4. Perform encryption and decryption of a Rail fence cipher. Write a script for performing these
operations.
5. Use nmap/zenmap to analyse a remote machine.
6. Use Burp proxy to capture and modify the message.
7. Demonstrate sending of a protected word document.
8. Demonstrate sending of a digitally signed document.
9. Demonstrate sending of a protected worksheet.
10. Demonstrate use of steganography tools.
11. Demonstrate use of gpg utility for signing and encrypting purposes.
47
COMS 316 : DATA ANALYTICS (4 credits)
Learning Outcome 6. To prepares students to gather, describe, and analyze data, and use advanced statistical
tools to support decision making.
7. To gather sufficient relevant data, conduct data analytics using scientific methods, and
understand appropriate connections between quantitative analysis and real - world
problems.
8. To Understand the exact scopes and possible limitations of each method to provide
constructive guidance in decision making.
9. To Use advanced techniques to conduct thorough and insightful analysis, and interpret the
results correctly with detailed and useful information.
10. To make better decisions by using advanced techniques in data analytics.
SYLLABUS
UNIT I. Data Definitions and Analysis Techniques: Elements, Variables, and Data Categorization,
Levels of Measurement, Data Management and Indexing[8]
UNIT II. Descriptive Statistics: Measures of Central Tendency, Measures of Location of Dispersions,
Error Estimation and Presentation (Standard Deviation, Variance), Introduction to Probability[7]
UNIT III. Basic Analysis Techniques: Statistical Hypothesis Generation and Testing, Chi-
Square Test, T-Test, Analysis of Variance, Correlation Analysis, Maximum Likelihood Test[10]
UNIT IV. Data Analysis Techniques-I: Regression Analysis, Classification
Techniques, Clustering Techniques (K-Means, K-Nearest Neighborhood) [12]
UNIT V. Data Analysis Techniques-II: Association Rules Analysis, Decision Tree[10]
UNIT VI. Introduction to R Programming: Introduction to R Software Tool, Statistical
Computations using R (Mean, Standard Deviation, Variance, Regression, Correlation etc.)[9]
UNIT VII. Practice and Analysis with R and Python Programming, Sensitivity Analysis[9]
TEXT BOOK AND REFERENCE BOOKS
● Fundamentals of Statistics, D. N. Elhance, Veena Elhance, B.M. aggarwal
● The Elements of Statistical Learn, Data Mining, Inference, and Prediction (2nd Edn.) Travor
Hastie Robert Tibshirani Jerome Friedman, Springer, 2014
48
COMS 317 : PRACTICALS IN DATA ANALYTICS (USING R/ PYTHON)
(2 credits) PRACTICALS :
1. Write a program that prints ‗Hello World‘ to the screen.
2. Write a program that asks the user for a number n and prints the sum of the numbers 1 to
n
3. Write a program that prints a multiplication table for numbers up to 12.
4. Write a function that returns the largest element in a list.
5. Write a function that computes the running total of a list.
6. Write a function that tests whether a string is a palindrome.
7. Implement linear search.
8. Implement binary search.
9. Implement matrices addition , subtraction and Multiplication
10. Fifteen students were enrolled in a course. There ages were:
20 20 20 20 20 21 21 21 22 22 22 22 23 23 23
i. Find the median age of all students under 22 years
ii. Find the median age of all students
iii. Find the mean age of all students iv. Find the modal age for all students
v. Two more students enter the class. The age of both students is 23. What is now mean, mode and median
11. Following table gives a frequency distribution of systolic blood pressure. Compute all the
measures of dispersion.
Midpoint 95.5 105.5 115.5 125.5 135.5 145.5 155.5 165.5 175.5
Number 5 8 22 27 17 9 5 5 2
12. Obtain probability distribution of , where X is number of spots showing when a six-sided
symmetric die (i.e. all six faces of the die are equally likely) is rolled. Simulate random samples
of sizes 40, 70 and 100 respectively and verify the frequency interpretation of probability.
13. Make visual representations of data using the base, lattice, and ggplot2 plotting systems in R,
apply basic principles of data graphics to create rich analytic graphics from available datasets.
14. Use Git / Github software to create Github account. Also, create a repo using Github.
49
COMS 325 : CLOUD COMPUTING (2 credits)
Learning Outcome
9. To Analyze the trade-offs between deploying applications in the cloud and over the
local infrastructure.
10. To Compare the advantages and disadvantages of various cloud computing platforms.
11. To Deploy applications over commercial cloud computing infrastructures such as
Amazon Web Services, Windows Azure, and Google AppEngine.
12. To Program data intensive parallel applications in the cloud.
13. To Analyze the performance, scalability, and availability of the underlying cloud
technologies and software.
14. To Identify security and privacy issues in cloud computing.
15. To Explain recent research results in cloud computing and identify their pros and cons.
16. To Solve a real-world problem using cloud computing through group collaboration.
SYLLABUS
A. Theory
Unit I. Introduction to cloud computing
Definition, characteristics, components, Cloud service provider, the role of networks in Cloud
computing, Cloud deployment models- private, public & hybrid, Cloud service models,
multitenancy, Cloud economics and benefits, Cloud computing platforms - IaaS: Amazon EC2,
PaaS: Google App Engine, Microsoft Azure, SaaS.[8]
Unit II. Virtualization
Virtualization concepts , Server virtualization, Storage virtualization, Storage services, Network
virtualization, Service virtualization, Virtualization management, Virtualization technologies and
architectures, virtual machine, Measurement and profiling of virtualized applications. Hypervisors:
KVM, Xen, VMware hypervisors and their features.[11]
Unit III. Data in cloud computing
Relational databases, Cloud file systems: GFS and HDFS, BigTable, HBase and Dynamo.
MapReduce and extensions: Parallel computing, the map-Reduce model, Parallel efficiency of
MapReduce, Relational operations using Map-Reduce, Enterprise batch processing using
MapReduce.[10]
Unit IV. Cloud security
Cloud security fundamentals, Vulnerability assessment tool for cloud, Privacy and Security in
cloud. Cloud computing security architecture: General Issues, Trusted Cloud computing, Secure
Execution Environments and Communications, Micro - architectures; Identity Management and
Access control, Autonomic security, Security challenges : Virtualization security management -
virtual threats, VM Security Recommendations, VM - Specific Security techniques, Secure
Execution Environments and Communications in cloud.[18]
Unit V. Issues in cloud computing
Implementing real time application over cloud platform, Issues in Inter-cloud environments,
QOS Issues in Cloud, Dependability, data migration, streaming in Cloud. Quality of Service (QoS)
monitoring in a Cloud computing environment. Cloud Middleware. Mobile Cloud Computing.
Inter Cloud issues. A grid of clouds, Sky computing, load balancing, resource optimization,
resource dynamic reconfiguration, Monitoring in Cloud.[18]
TEXT BOOK:
1. Cloud Computing, Tanmay A. Deshpande, Nitin N. Sakhare, Ganesh R. Kdam, Pallavi S.
Bangare
2. Cloud Computing Practical, Anthony T. Velte
50
REFERENCE BOOK:
1. A Text Book of Mobile Computing, Ravi Patki, Manisha Patil and
Rajkamal Sangole
2. Cloud Security by Ronald Krutz and Russell Dean Vines, Wiley-India 2..
Dr. Kumar Saurabh,”Cloud Computing”, Wiley Publication
COMS 326 : PRACTICALS IN CLOUD COMPUTING (2 credits)
List of Practicals :
3. Install Virtualbox/VMware Workstation with different flavours of linux or
windows OS with virtualization support
4. Install a C compiler in the virtual machine created using virtual box and execute
Simple Programs
5. Install Google App Engine. Create hello world app and other simple web
applications using python/java.
6. Simulate a cloud scenario using CloudSim and run a scheduling algorithm that is not
present in CloudSim.
7. Experiment a procedure to transfer the files from one virtual machine to another virtual
machine.
8. Experiment a procedure to launch virtual machine using trystack (Online
Openstack Demo Version)
9. Install Hadoop single node cluster and run simple applications like word count.
51
COMS 327 : DATA MINING (4 credits)
Learning Outcome 7. To Demonstrate advanced knowledge of data mining concepts and techniques.
8. To Apply the techniques of clustering, classification, association finding, feature selection and
visualisation on real world data 9. To Determine whether a real world problem has a data mining solution 10. To Apply data mining software and toolkits in a range of applications
11. To Set up a data mining process for an application, including data preparation, modelling and
evaluation
12. To Demonstrate knowledge of the ethical considerations involved in data mining.
SYLLABUS
UNIT I. Introduction to Data Mining, Understanding Data, Relations to Database, Statistics,
Machine Learn[10]
UNIT II. Association Rule Mining, Level-wise Method, FP-Tree Method, Other Variants [12]
UNIT III. Classification, Decision Tree Algorithm, CART, PUBLIC, Pruning Classification
Tree[10]
UNIT IV. Clustering Techniques, Clustering of Numeric Data, of Ordinal Data, Efficiency of
Clustering, Consensus Clustering, Spectral Clustering[10]
UNIT V. Rough Set Theory and its Application to Data Mining [8]
UNIT VI. ROC Analysis[7]
UNIT VII. Data Mining Trends, Big Data, Data Analytics[8]
TEXT BOOKS
● Data Mining Techniques (4e) Universities Press Arun K Pujari
52
COMS 328 : PRACTICALS IN DATA MINING
(2 credits)
PRACTICALS :
1. Preprocessing : Apply the following filters –
a. weka>filter>supervised>attributed>
AddClassification , AttributeSelection, Discretize , NominalToBinary
b. weka>filter>supervised>instance:
StratifiedRemoveFolds, Resample
c. weka>filter>unsupervised>attribute> Add, AddExpression, AddNoise , Center , Discretize , MathExpression ,
MergeTwoValues , NominalToBinary , NominalToString, Normalize NumericToBinary ,
NumericToNominal , NumericTransform , PrincipalComponent ,
RandomSubset , Remove , RemoveType , ReplaceMissingValues , Standardize
d. weka>filter>unsupervised>instance>
Normalize , Randomize , Standardize, RemoveFrequentValues, RemoveWithValues ,
Resample , SubsetByExpression
2. Explore the 'select attribute' as follows
weka>attributeSelection> , FilteredSubsetEval , WrapperSubsetEval
3. Association mining
weka>associations> , Apriori, FPGrowth
4. Classification**
a. weka>classifiers>bayes> , NaïveBayes , weka>classifiers>lazy> : IB1 ,IBk
b. weka>classifiers>trees , SimpleCart , RandomTree , ID3
5. Clustering**
weka>clusters> , SimpleKMeans , FarthestFirst algorithm, DBSCAN,
hierarchicalClusterer
53
COMS 314 (B) : IMAGE PROCESSING (6 credits)
Learning Outcome 5. To familiarize the students with the image fundamentals and mathematical transforms
necessary for image processing.
6. To make the students understand the image enhancement techniques
7. To make the students understand the image restoration and reconstruction procedures.
8. To familiarize the students with the image segmentation procedures.
SYLLABUS
UNIT I Digital Image Fundamentals: Elements of Visual Perception, Light, Brightness Adaption and
Discrimination, Image Sensing and Acquisition, Image Sampling and Quantization, Pixels, Some
Basic Relationships between Pixels, Coordinate Conventions, Imaging Geometry, Perspective
Projection, Linear and Nonlinear Operations[12]
UNIT II Image Enhancement in the Spatial Domain: Intensity transformations, Contrast Stretching,
Histogram Equalization, Correlation and Convolution, Basics of Spatial Filtering, Smoothing
Filters, Sharpening Filters, Gradient and Laplacian.[7]
UNIT III Filtering in the Frequency domain: Hotelling Transform, Fourier Transforms and properties,
FFT (Decimation in Frequency and Decimation in Time Techniques), Convolution, Correlation, 2
-D sampling, Discrete Cosine Transform, Frequency domain filtering.[8]
UNIT IV Image Restoration and Reconstruction: Basic Framework, Interactive Restoration, Image
deformation and geometric transformations, image morphing, Restoration techniques, Noise
characterization, Noise restoration filters, Adaptive filters, Linear, Position invariant degradations,
Estimation of Degradation functions, Restoration from projections.[18]
UNIT V Color Image Processing, Color Fundamentals, Color Models, Pseudocolor Image Processing,
Basics of Full-Color Image Processing, Color Transformations, Smoothing and Sharpening, Color
Segmentation. Morphological Image Processing, Dilation and Erosion, Opening and Closing.,
Extensions to Gray -Scale Images.[10]
UNIT VI Image Segmentation: Detection of Discontinuities, Edge Linking and Boundary Detection,
Thresholding, Region-Based Segmentation, Segmentation by Morphological Watersheds.[10]
TEXT BOOKS
Digital Image Processing, Rafael C. Gonzalez and Richard E. Woods, 4th Edition, Prentice
Hall.
REFERENCE BOOKS
Anil K. Jain, Fundamentals of Digital Image Processing, Prentice Hall. Stan
Birchfield, Image Processing and Analysis, Cengage Learn.
54
COMS 316 (B) : PYTHON PROGRAMMING (4 credits)
Learning Outcome 5. To Develop and Execute simple Python programs.
6. To Structure a Python program into functions.
7. To Using Python lists, tuples to represent compound data
8. To Develop Python Programs for file processing
SYLLABUS
Theory
UNIT I. Introduction to Python, Python, Features of Python, Execution of a Python, Program,
Writing Our First Python Program, Data types in Python. Python Interpreter and Interactive Mode;
Values and Types: int, float, boolean, string, and list; Variables, Expressions, Statements, Tuple
Assignment, Precedence of Operators, Comments; Modules and Functions, Function Definition
and use, Flow of Execution, Parameters and Arguments[18]
UNIT II. Operators in Python, Input and Output, Control Statements. Boolean Values and operators,
Conditional (if), Alternative (if-else), Chained Conditional (if-elif-else); Iteration: state, while,
for, break, continue, pass; Fruitful Functions: Return Values, Parameters, Local and Global Scope,
Function Composition, Recursion[12]
UNIT III. Arrays in Python, Strings and Characters. Strings: String Slices, Immutability, String
Functions and Methods, String Module; Lists as Arrays. Illustrative Programs: Square Root, gcd,
Exponentiation, Sum an Array of Numbers, Linear Search, Binary Search.[10]
UNIT IV. Functions, Lists and Tuples. List Operations, List Slices, List Methods, List Loop,
Mutability, Aliasing, Cloning Lists, List Parameters; Tuples: Tuple Assignment, Tuple as Return
Value; Dictionaries: Operations and Methods; Advanced List Processing - List Comprehension;
Illustrative Programs: Selection Sort, Insertion Sort, Merge sort, Histogram.[15]
UNIT V. Files and Exception: Text Files, Reading and Writing Files, Format Operator; Command
Line Arguments, Errors and Exceptions, Handling Exceptions, Modules, Packages; Illustrative
Programs: Word Count, Copy File.[10]
TEXT BOOKS
● P-Oxford Higher Edu,A-Reema Thareja, Python Programming Using Problem Solving Approach
● Mark Lutz, Learn Python
● Tony Gaddis, Starting Out With Python
● Kenneth A. Lambert, Fundamentals of Python
● James Payne, Beginning Python using Python 2.6 and Python 3
55
COMS 317 (B): PRACTICALS IN PYTHON PROGRAMMING
(2 credits)
PRACTICALS :
2. Write a program to demonstrate different number data types in Python.
3. Write a program to perform different Arithmetic Operations on numbers in Python.
4. Write a program to create, concatenate and print a string and accessing sub-string from a given
string.
5. Write a python script to print the current date in the following format “Fri Oct 11 02:26:23 IST
2019”
6. Write a program to create, append, and remove lists in python.
7. Write a program to demonstrate working with tuples in python.
8. Write a program to demonstrate working with dictionaries in python.
9. Write a python program to find largest of three numbers.
10. Write a Python program to construct the following pattern, using a nested for loop
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
11. Write a Python script that prints prime numbers less than 20.
12. Write a python program to define a module to find Fibonacci Numbers and import the
module to another program.
13. Write a python program to define a module and import a specific function in that module to
another program.
14. Write a program that inputs a text file. The program should print all of the unique words in the
56
file in alphabetical order.
15. Write a Python class to convert an integer to a roman numeral.
16. Write a Python class to reverse a string word by word.
57
COMS 325 (B): MODELLING AD SIMULATIONS (6 credits)
Learning Outcome 8. To Characterize systems in terms of their essential elements, purpose, parameters, constraints,
performance requirements, sub-systems, interconnections and environmental context.
9. To Understand the technical underpinning of modern computer simulation software.
10. System problem modelling and solving through the relationship between theoretical, mathematical,
and computational modelling for predicting and optimizing performance and objective.
11. Mathematical modelling real world situations related to information systems To Development,
prediction and evaluation of outcomes against design criteria.
12. To Develop solutions and extract results from the information generated in the context of the
information systems
13. To Interpret the model and apply the results to resolve critical issues in a real world environment.
14. To Develop different models to suit special characteristics of the system being modelled.
SYLLABUS
UNIT 1. Systems and environment: Concept of model and model building, model
classification and representation, Use of simulation as a tool, steps in simulation study. [7]
UNIT 2. Continuous-time and Discrete-time systems: Laplace transform, transfer
functions, statespace models, order of systems, z-transform, feedback systems, stability,
observability, controllability. Statistical Models in Simulation: Common
discrete and continuous distributions, Poisson process, empirical distributions[8]
UNIT 3. Random Numbers: Properties of random numbers, generation of pseudo
random numbers, techniques of random number generation, tests for randomness, random
variate generation using inverse transformation, direct transformation, convolution method,
acceptance-rejection[10]
UNIT 4. Design and Analysis of simulation experiments: Data collection, identifying
distributions with data, parameter estimation, goodness of fit tests, selecting input models
without data, multivariate an time series input models, verification and validation of models,
static and dynamic simulation output analysis, steady -state simulation, terminating
simulation, confidence interval estimation, Output analysis for steady state simulation,
variance reduction techniques[18]
UNIT 5. Queuing Models: Characteristics of queuing systems, notation, transient and
steady state behavior, performance, network of queues[12]
UNIT 6. Large Scale systems: Model reduction, hierarchical control, decentralized
control, structural properties of large-scale systems[10]
REFERENCE BOOKS
Shailendra Jain, Modeling and Simulation using MATLAB - Simulink, 2ed, Kindle
edition
58
COMS 327 (B): MOBILE APPLICATION DEVELOPMENT
(4 credits)
Learning Outcome 1. To understand Android platform and its architecture.
2. To Learn about mobile devices types and different modern mobile operating
systems. 3. To Learn activity creation and Android User Interface designing. 4. To Learn basics of Intent, Broadcast and Internet services.
5. To Learn about different wireless mobile data transmission standards.
6. To understand and Learn how to integrate basic phone features, multimedia, camera
and Location based services in Android Application.
7. To Learn about different systems for mobile application To Development,
deployment and distribution in Mobile market place (Android, IoS).
8. To understand and carry out functional test strategies for mobile applications.
SYLLABUS
UNIT I. (Introduction) What is Android, Android Versions and its Feature Set, Various Android
Devices on the Market, Android Market Application Store, Android To Development Environment
System Requirements, Android SDK, Installing Java, and ADT bundle - Eclipse Integrated To
Development Environment (IDE), Creating Android Virtual Devices (AVDs) [6]
UNIT II. (Android Architecture Overview and Application) Android Software Stack, The Linux
Kernel, Android Runtime - Dalvik Virtual Machine, Android Runtime – Core Libraries, Dalvik
VM Specific Libraries, Java Interoperability Libraries, Android Libraries, Application
Framework, Creating a New Android Project ,Defining the Project Name and SDK Settings, Project
Configuration Settings, Configuring the Launcher Icon, Creating an Activity, Running the
Application in the AVD, Stopping a Running Application, Modifying the Example Application,
Reviewing the Layout and Resource Files, [12]
UNIT III. (Android Software To Development Platform and Framework) Understanding Java SE and
the Dalvik Virtual Machine, The Directory Structure of an Android Project, Common Default
Resources Folders, The Values Folder, Leveraging Android XML, Screen Sizes , Launching
Mobile Application: The AndroidManifest.xml File, Android Application Components, Android
Activities: Defining the UI, Android Service s: Processing in the Background, Broadcast Receivers:
Announcements and Notifications Content Providers: Data Management, Android Intent Objects:
Messaging for Components, Android Manifest XML: Declaring Your Components [12]
UNIT IV. (Understanding Android User Interfaces, Views and Layouts) Designing for Different
Android Devices, Views and View Groups, Android Layout Managers, The View Hierarchy,
Designing an Android User Interface using the Graphical Layout Tool Displaying Text with
TextView, Retrieving Data from Users, Using Buttons, Check Boxes and Radio Groups, Getting
Dates and Times from Users, Using Indicators to Display Data to Users, Adjusting Progress with
Seek Bar, Working with Menus using views, Gallery, Image Switcher, Grid View, and Image View
views to display images, Creating Animation [12]
UNIT V. (Databases, Intents, Location-based Services) Saving and Loading Files, SQLite
Databases, Android Database Design, Exposing Access to a Data Source through a Content
Provider, Content Provider Registration, Native Content Providers Intents and Intent Filters:
Intent Overview, Implicit Intents, Creating the Implicit Intent Example Project, Explicit Intents,
Creating the Explicit Intent Example Application, Intents with Activities, Intents with Broadcast
Receivers [13]
UNIT VI. Sending SMS Messages Programmatically, Getting Feedback after Sending the Message
59
Sending SMS Messages Using Intent Receiving, sending email, Introduction to location-based
service, configuring the Android Emulator for Location -Based Services, Geocoding and Map-
Based Activities Multimedia: Audio, Video, Camera: Playing Audio and Video, Recording Audio
and Video, Using the Camera to Take and Process Pictures [10]
TEXTBOOKS
● Android by Prasanna Kumar Dixit
REFERENCE BOOKS
● Android by Prasanna Kumar Dixit
● Android Programming Unleashed (1st Edition) by Harwani.
● Beginning Mobile Application To Development in the Cloud (2011), Richard Rodger.
COMS 328 (B) : PRACTICALS IN MOBILE APPLICATION DEVELOPMENT
(2 credits) PRATICALS :
1. Create ―Hello World‖ application. That will display ―Hello World‖ in the middle of the screen in the emulator. Also display ―Hello World‖ in the middle of the screen in the Android Phone.
2. Create an application with login module. (Check username and password).
3. Create spinner with strings taken from resource folder (res >> value folder) and on changing the spinner value, Image will change.
4. Create a menu with 5 options and and selected option should appear in text box.
Create a list of all courses in your college and on selecting a particular course teacher- in-
charge of that course should appear at the bottom of the screen.
5. Create an application with three option buttons, on selecting a button colour of the screen will change.
6. Create and Login application as above. On successful login, pop up the message.
7. Create an application to Create, Insert, update, Delete and retrieve operation on the
database.
60
SKILL ENHANCEMENT COURSES
COMS 217 : PROGRAMMING IN JAVA (2 credits)
Learning Outcome 5. To Gain Knowledge of the structure and model of the Java programming language,
6. To Use Java programming language for various programming technologies
7. To Develop software in the Java programming language,
8. To Evaluate user requirements for software functionality required to decide whether the
Java programming language can meet user requirements
SYLLABUS
A. Theory
UNIT I. Introduction: Java Essentials, Its characteristics, Execution and Compilation, Data
types, Variables, Control Statements, Standard Input/ Output.[14]
UNIT II. Constructors, Object Oriented Concepts: Encaptulation, Abstraction, Inheritance,
Polymorphisms, JAVA Packages.[15]
UNIT III. Exception Handling, Wrapper Classes, Autoboxing, Multi-thread Programming.[18]
UNIT IV. Applets, Event Handling, AWT, Database Handling using JDBC.[18]
TEXT BOOKS
E Balaguruswamy, Programming with JAVA, A Primer (5e), Kindle Edition
REFERENCE BOOKS
● Harshada B. Deshmukh, Java Programming (4e)
● Herbert Schildt, Java: The Complete Reference (9e)
● Rashmi Kanta Das, Core Java for Beginners
61
COMS 218 : PRACTICALS IN PROGRAMMING IN JAVA (2 credits)
PRACTICALS :
1. To find the sum of any number of integers entered as command line arguments
2. To find the factorial of a given number
3. To learn use of single dimensional array by defining the array dynamically.
4. To learn use of .lenth in case of a two dimensional array
5. To convert a decimal to binary number
6. To check if a number is prime or not, by taking the number as input from the keyboard
7. To find the sum of any number of integers interactively, i.e., entering every number from the keyboard, whereas the total number of integers is given as a command line argument
8. Write a program that show working of different functions of String and StringBufferclasss like setCharAt(, setLength(), append(), insert(), concat()and equals().
9. Write a program to create a ―distance‖ class with methods where distance is computed in terms of feet and inches, how to create objects of a class and to see the use of this pointer
10. Modify the ―distance‖ class by creating constructor for assigning values (feet and inches) to the distance object. Create another object and assign second object as reference variable to another object reference variable. Further create a third object which is a clone of the first object.
11. Write a program to show that during function overloading, if no matching argument is found, then java will apply automatic type conversions(from lower to higher data type)
12. Write a program to show the difference between public and private access specifiers. The program should also show that primitive data types are passed by value and objects are passed by reference and to learn use of final keyword
13. Write a program to show the use of static functions and to pass variable length arguments in a function.
14. Write a program to demonstrate the concept of boxing and unboxing.
15. Create a multi-file program where in one file a string message is taken as input from the user and
the function to display the message on the screen is given in another file (make use of Scanner
package in this program).
16. Write a program to create a multilevel package and also creates a reusable class to generate Fibonacci series, where the function to generate fibonacii series is given in a different file belonging to the same package.
17. Write a program that creates illustrates different levels of protection in classes/subclasses belonging to same package or different packages
18. Write a program ―DivideByZero‖ that takes two numbers a and b as input, computes a/b, and invokes Arithmetic Exception to generate a message when the denominator is zero.
19. Write a program to show the use of nested try statements that emphasizes the sequence of checking for catch handler statements.
20. Write a program to create your own exception types to handle situation specific to your application (Hint: Define a subclass of Exception which itself is a subclass of Throwable).
21. Write a program to demonstrate priorities among multiple threads.
22. Write a program to demonstrate multithread communication by implementing synchronization among threads (Hint: you can implement a simple producer and consumer problem).
23. Write a program to create URL object, create a URLConnection using the openConnection() method and then use it examine the different components of the URLand content.
24. Write a program to implement a simple datagram client and server in which a message that is typed into the server window is sent to the client side where it is displayed.
25. Write a program that creates a Banner and then creates a thread to scrolls the message in the banner from left to right across the applet‘s window.
26. Write a program to get the URL/location of code (i.e. java code) and document(i.e. html file).
62
27. Write a program to demonstrate different mouse handling events like mouseClicked(), mouseEntered(), mouseExited(), mousePressed, mouseReleased() and mouseDragged().
28. Write a program to demonstrate different keyboard handling events.
29. Write a program to generate a window without an applet window using main() function
COMS 227 : WEB PROGRAMMING (4 credits)
Learning Outcome
9. To understand basics of the Internet and World Wide Web
10. To acquire knowledge and skills for creation of web site considering both client and
server-side programming
11. To Learn basic skill to To Develop responsive web applications 12. To understand different web extensions and web services standards
13. To understand basic concepts of Search Engine Basics.
14. To Learn Web Service Essentials.
15. To Learn Rich Internet Application Technologies.
16. To understand and get acquainted with Web Analytics 2.0
SYLLABUS
UNIT I. (Introduction to World Wide Web) -Internet Standards, Introduction to WWW and WWW
Architecture, Internet Protocols, Overview of HTTP, HTTP request – response, Generations of
dynamic web pages[12]
UNIT II. (User Interface Design) Introduction to HTML and HTML5, TML Tags, Formatting and
Fonts, Commenting Code, Anchors, Backgrounds, Images, Hyperlinks, Lists, Tables, Frames,
HTML Forms. The need for CSS, Introduction to CSS, Basic syntax and structure, Inline Styles,
Embedding Style Sheets, Linking External Style, Backgrounds, Manipulating Text, Margins
and Padding, Positioning using CSS.[10]
UNIT III. (Java Programming) Java Script, Introduction, Core features, Data types and Variables,
Operators, Expressions, Functions, Objects, Array, Date and Math related Objects. JAVA
Networking classes, TCP/IP Protocol Suite, File Transfer Protocol (FTP), Java Environment |Setup
for Web Applications, JavaBean, Application Builder Tool, Bean To Developer Kit (BDK), The
Java Beans API, Introduction to EJB[10]
UNIT IV. (Database) Database basics, SQL, MySQL, PostgreSQL, JDBC API, Driver Types, Two-
tier and Three-tier Models, Connection Overview, Transactions, Driver Manager Overview,
Statement Overview, Result Set Overview, Types of Result Sets, Concurrency Types, Prepared
Statement Overview[12]
UNIT V. (Java Applet and JSP) Java Web Programs and Applets, Web Application, Servlet, Servlet
Life Cycle, Servlet Programming, Introduction to JSP, Life Cycle of a JSP Page, Translation and
Compilation, Creating Static Content, Response and Page Encoding, Creating Dynamic Content,
Using Objects within JSP Pages, JSP Programming[12]
UNIT VI. (Dot Net Framework) Introduction to Dot Net, Dot Net framework and its architecture,
CLR, Assembly, Components of Assembly, DLL hell and Ass embly Versioning, Overview to C#,
Introduction to ASP.net, Asp.net Programming[9]
63
TEXT BOOKS AND REFERENCE BOOKS
● Web Design Technology, D. P. Nagpal
● J2EE: The complete Reference by James Keogh. ● Struts: The Complete Reference, 2nd Edition by James Holmes
● ASP.NET Web Programming by Matt J. Crouch
● Microsoft Visual C# 2013 Step by Step by John Sharp
COMS 228 : PRACTICALS IN WEB PROGRAMMING
(2 credits)
PRATICALS :
Q.1 Create an HTML document with the following formatting options:
I. Bold
II. Italics
III. Underline
IV. Headings (Using H1 to H6 heading styles)
V. Font (Type, Size and Color)
VI. Background (Colored background/Image in background)
VII. Paragraph
VIII. Line Break
IX. Horizontal Rule
X. Pre tag
Q.2 Create an HTML document which consists of:
I. Ordered List
II. Unordered List
64
Result
III. Nested List
IV. Image
Q.3 Create an HTML document which implements Internal linking as well as External linking.
Q4.Create a table using HTML which consists of columns for Roll No., Student‘s name
and grade.
Roll No. Name Grade
Q.5 Create a Table with the following view:
Q.6
Create a form using HTML which has the following types of controls:
I. Text Box
II. Option/radio buttons
Place an image here
65
III. Check boxes IV. Reset and Submit buttons
Q.7 Create HTML documents (having multiple frames) in the following three formats:
Frame1
Frame2
Frame3
COMS 217 (B): HUMAN COMPUTER INTERFACE (4 credits)
Learning Outcome 6. To Provide an overview of the concepts relating to the design of human -computer interfaces
in ways making computer-based systems comprehensive, friendly and usable.
7. To Understand the theoretical dimensions of human factors involved in the acceptance of
computer interfaces.
8. To Understand the important aspects of implementation of human-computer interfaces.
9. To Identify the various tools and techniques for interface analysis, design, and evaluation.
10. To Identify the impact of usable interfaces in the acceptance and performance utilization
of information systems.
SYLLABUS
UNIT I. Introduction: Historical Evolution of HCI, Interactive System Design: Concept of Usability-
Definition and Elaboration, HCI and Software Engineering, GUI Design and Aesthetics,
Prototyping Techniques[12]
UNIT II. Model-Based Design and Evaluation: Basic Idea, Introduction to Different Types of
Models, GOMS Family of Models (KLM And CMN -GOMS), Fitts’ Law and Hickhyman’s
Law,[18]
UNIT III. General To Development Guidelines and Principles: Shneiderman’s Eight Golden Rules,
Norman’s Seven Principles, Norman’s Model of Interaction, Nielsen’s Ten Heuristics with
Example of its use, Contextual Inquiry[10]
Frame2
Frame1
66
UNIT IV. Dialog Design: Introduction to Formalism in Dialog Design, Design using FSM (Finite
State Machines), State Charts and (Classical) Petri Nets in Dialog Design[8]
UNIT V. Task Modeling and Analysis: Hierarchical Task Analysis (HTA), Engineering Task Models
and Concur Task Tree (CTT)[7]
UNIT VI. Object Oriented Modelling: Object Oriented Principles, Definition of Class and Object and
their Interactions, Object Oriented Modelling for User Interface Design, Case Study Related to
Mobile Application To Development[10]
REFERENCE BOOKS
● Dix A., Finlay J.,Abowd G. D. and Beale R. Human Computer Interaction, 3 rd edition,
Pearson Education, 2005.
● Preece J., Rogers Y.,Sharp H.,Baniyon D., Holland S. and Carey T. Human Computer
Interaction,Addison-Wesley, 1994.
● B.Shneiderman; Designing the User Interface,Addison Wesley 2000 (Indian Reprint).
COMS 217 (C): UNIX/LINUX PROGRAMMING (4 credits)
Learning Outcomes
5. Identifying and use of UNIX/Linux utilities to create and manage simple file processing operations, organize
directory structures with appropriate security
6. Developing Scripts and programs that will demonstrate simple effective user interfaces and effective use of
structured programming.
7. The Ability to read and understand specifications, scripts and programs.
8. Monitoring the system performance and network activities.
SYLLABUS
UNIT I. Introduction:
History of Linux and UNIX, Linux overview, shell Bourne Korn and –shell, File Structure:
Diretories and files, Utilities: Editors,Filters, and Communications.[7]
UNIT II. Installing Linux :
Hardware and software requirements,Creating Linux partition, Creating install disks,Installing
Open Linux System, Network Configuration, final configuration, Installing LILO, Installing and
Configuring X-Windows[5]
UNIT III. Linux Start up and Setup :
User Accounts, Accessing your Linux System starting and shutting down, Login/Logout Linux
Commands, Installing Software packages, Remote communications, Modern Setup, Internet
Connections with Modems: pppd & ezppp, XFmail, X-Windows and network configuration[10]
67
UNIT IV. Shell Operations :
The command Line, Standard I/O and Redirection, Pipes, Shell Variables, Shell Scripts, User
defined commands, Jobs: Background, Kills and Interruptions, Delayed Execution.[7]
UNIT V. Linux File Structure :
Linux Files, File Types Classifications: the file & od commands. The file structure, Home
Directories, Path Names, System Directories. Listing, Displaying and printing fles, Ls,cat, more
and lpr commands. Managing directories: mkdir, ls cd and pwd. Nested directories, File and
Director Operations: find cp, mv,rm,ln[12]
UNIT VI. F i l e M a n a g e m e n t O p e r a t i o n s :
Displaying File Information; ls –l File directory permissions: Chmod, Setting Permissions:
Permission Symbols, chown and chgrp, Mounting and Formatiing Floppy Disks, Mounting CD-
Roms Mounting Head Drives partitions Linux and MS-DOS, Archive Files and Devices: tar Xtar,
File Compression : gzipm installing Software from Compressed Archives: .tar.gz,Downloading,
Compressed Archives, compiling Software, The mtools Utilities: msdos, Dos and Windows
Emulators, DOSemu, Wine and Willow.[18]
UNIT VII Vi Editor:
Create a file, Enter the text, Edit Text, Moving around, Save the file, customizing ex/vi, .exrc file
& Exinit, options to vi, splitting a file using split command.[10]
Text Books:
2. Operating Systems by William Stallings (PHI)
3. The Design of the Unix Operating System, Maurice J
4. Linux administration handbook – E. Nemethgsnydu, T Hein
Reference Book :
1. Linux Programming – M. Thalor & Vijay Patil
2. Fedora 8 and Redhat Enterprise Linux Bible, Chistopher Negus
COMS 218 (C): PRACTICALS IN UNIX/LINUX PROGRAMMING
(2 credits)
Practical List :
1. Write a shell script to check if the number entered at the command line is prime or not. 2. Write a shell script to modify ―cal‖ command to display calendars of the specified months.
3. Write a shell script to modify ―cal‖ command to display calendars of the specified range of months.
4. Write a shell script to accept a login name. If not a valid login name display message – ―Entered login name is invalid‖.
5. Write a shell script to display date in the mm/dd/yy format.
6. Write a shell script to display on the screen sorted output of ―who‖ command along with the total number of users .
7. Write a shell script to display the multiplication table any number,
8. Write a shell script to compare two files and if found equal asks the user to delete the duplicate file.
9. Write a shell script to find the sum of digits of a given number
10. Write a shell script to merge the contents of three files, sort the contents and then display them page by page.
11. Write a shell script to find the LCD(least common divisor) of two numbers.
68
12. Write a shell script to perform the tasks of basic calculator.
13. Write a shell script to find the power of a given number.
14. Write a shell script to find the binomial coefficient C(n , x).
15. Write a shell script to find the permutation P(n,x).
16. Write a shell script to find the greatest number among the three numbers.
17. Write a shell script to find the factorial of a given number.
18. Write a shell script to check whether the number is Armstrong or not.
19. Write a shell script to check whether the file have all the permissions or no.
69
COMS 217 (D): MATLAB PROGRAMMING
(4 credits)
Learning Outcome 5. To Understand the fundaments of procedural and functional programming;
6. To Understand Matlab data types and structures;
7. To Be able to set up simple real-life numerical problems such that they can
be solved and visualized using basic codes in Matlab;
8. To Be ready to use advanced coding in Matlab in their subsequent studies
SYLLABUS
UNIT 1. Introduction to MATLAB Programming- Basics of MATLAB
programming, Array operations in MATLAB, Loops and execution control, Working
with files: Scripts and Functions, Plotting and program output[12]
UNIT 2. Approximations and Errors- Defining errors and precision in numerical
methods, Truncation and round-off errors, Error propagation, Global and local truncation
errors[10]
UNIT 3. Linear Equations- Linear algebra in MATLAB, Gauss Elimination, LU
decomposition and partial pivoting, Iterative methods: Gauss Siedel Method[13]
UNIT 4. Regression and Interpolation- Introduction, Linear least squares
regression(including lsqcurvefit function), Functional and nonlinear regression
(including lsqnonlin function), Interpolation in MATLAB using spline and pchip[18]
UNIT 5. Nonlinear Equations- Nonlinear equations in single variable, MATLAB
function fzero in single variable, Fixed-point iteration in single variable, Newton-
Raphson in single variable, MATLAB function fsolve in single and multiple variables,
Newton-Raphson in multiple variables[10]
TEXT BOOKS
1. Fausett L.V.(2007) Applied NumericalAnalysis Using MATLAB, 2nd Ed.,Pearson
Education
2. Essential MATLAB for Engineers and Scientists, 6th Edition, Brian Hahn; Daniel T.
Valentine, Academic Press, Web ISBN-13: 978-0-12-805271-6,
70
COMS 218 (D): PRACTICALS IN MATLAB PROGRAMMING
(4 credits)
PRACTICALS LIST :
1. Write a program to assign the following expressions to a variable A and then to print out the value of A.
a. (3+4)/(5+6)
b. c.
d. (0.0000123 + 5.67×10-3
) × 0.4567×10-4
2. Celsius temperatures can be converted to Fahrenheit by multiplying by 9, dividing by 5, and adding 32. Assign a variable called C the value 37, and implement this formula to assign a variable F the Fahrenheit equivalent of 37 Celsius.
3. Set up a vector called N with five elements having the values: 1, 2, 3, 4, 5. Using N, create assignment statements for a vector X which will result in X having these values:
a. 2, 4, 6, 8, 10
b. 1/2, 1, 3/2, 2, 5/2
c. 1, 1/2, 1/3, 1/4, 1/5
d. 1, 1/4, 1/9, 1/16, 1/25
4. A supermarket conveyor belt holds an array of groceries. The price of each product (in pounds) is [ 0.6, 1.2 ,0.5, 1.3 ] ; while the numbers of each product are [ 3, 2 ,1 ,5 ]. Use MATLAB to calculate the total bill.
5. The sortrows(x) function will sort a vector or matrix X into increasing row order. Use this function to sort a list of names into alphabetical order.
6. The ―identity‖ matrix is a square matrix that has ones on the diagonal and zeros elsewhere. You can generate one with the eye() function in MATLAB. Use MATLAB to find a matrix B, such that when multiplied by matrix A=[ 1 2; -1 0 ] the identity matrix I=[ 1 0; 0 1 ] is generated. That is A*B=I.
7. Create an array of N numbers. Now find a single MATLAB statement that picks out from that array the 1,4,9,16,…,√Nth entries, i.e. those numbers which have indices that are square numbers.
8. Draw a graph that joins the points (0,1), (4,3), (2,0) and (5,-2).
9. The seeds on a sunflower are distributed according to the formula below. Plot a small circle at each of the first 1000 co-ordinates :
10. Calculate 10 approximate points from the function y=2x by using the formulae:
i. xn = n
ii. yn = 2n + rand - 0.5 Fit a line of best fit to these points using the function polyfit() with degree=1, and generate co-ordinates from the line of best fit using polyval(). Use the on-line help to find out how to use these functions. Plot the raw data and the line of best fit.
11. Calculate and replay 1 second of a sinewave at 500Hz with a sampling rate of 11025Hz. Save the sound to a file called "ex35.wav". Plot the first 100 samples.
12. Calculate and replay a 2 second chirp. That is, a sinusoid that steadily increases in frequency with time, from say 250Hz at the start to 1000Hz at the end.
13. Build a square wave by adding together 10 odd harmonics: 1f, 3f, 5f, etc. The
71
amplitude of the nth harmonic should be 1/n. Display a graph of one cycle of the result superimposed on the individual harmonics.
14. Write a function called FtoC (ftoc.m) to convert Fahrenheit temperatures into Celsius. Make sure the program has a title comment and a help page. Test from the command window with:
i. FtoC(96)
ii. lookfor Fahrenheit
iii. help FtoC
15. Write a program to input 2 strings from the user and to print out (i) the concatenation of the two strings with a space between them, (ii) a line of asterisks the same length as the concatenated strings, and (iii) the reversed concatenation. For example:
i. Enter string 1: Mark
ii. Enter string 2: Huckvale
iii. Mark
Huckvale iv.
*********
**** v. elavkcuH kraM
72
COMS 227 (B): INTERNET OF THINGS (4 credits)
Learning Outcome 10. To Learn the concepts of Sensors, Wireless Network and Internet
11. To Learn and implement use of Devices in IoT technology.
12. To Learn the different IoT Technologies like Micro-controller, Wireless
communication like Blue Tooth, GPRS, Wi-Fi and Storage and embedded
systems
13. To understand how to program on embedded and mobile platforms
including different Microcontrollers like ESP8266, Raspberry Pi,
Arduino and Android programming
14. To understand how to make sensor data available on the Internet (data
acquisition) and understand how to analyze and visualize sensor data
15. To understand, analysis and evaluate different protocols used in IoT.
16. To Learn basic python programming for IoT applications
17. To Learn and design different applications in IoT.
18. To design, To Develop and test different prototypes in IoT.
SYLLABUS
UNIT I. (Introduction to IoT, Sensors and Actuators) Introduction to IoT: Definition,
Characteristics, Applications, Evolution, Enablers, Connectivity Layers, Addressing,
Networking and Connectivity Issues, Network Configurations, Multi-Homing, Sensing:
Sensors and Transducers, Classification, Different Types of Sensors, Errors, Actuation:
Basics, Actuator Types- Electrical, Mechanical Soft Actuators[12]
UNIT II. (Introduction to Networking, Communication Protocols and Machine-to-Machine
Communication) Basics of Networking, Communication Protocols, Sensor Network,
Machine to Machine Communication (IoT Components, Inter-Dependencies, SoA,
Gateways, Comparison Between IoT & Web, Difference Protocols, Complexity of
Networks, Wireless Networks, Scalability, Protocol Classification, MQTT & SMQTT,
IEEE 802.15.4, Zigbee)[15]
UNIT III. (Arduino Programming) Interoperability in IoT, Introduction To Arduino
Programming, Integration Of Sensors And Actuators With Arduino[6]
UNIT IV. (Python Programming and Raspberry Pi) Introduction to Python Programming,
Introduction to Raspberry Pi, Implementation of IoT with Raspberry Pi, Implementation
of IoT with Raspberry Pi [8]
UNIT V. (Data Analytics and Cloud Computing) Data Handling and Analytics, Cloud
Computing Fundamentals, Cloud Computing Service Model, Cloud Computing Service
Management and Security, Sensor-Cloud Architecture, View and Dataflow[12]
UNIT VI. (FOG Computing and Case Studies) FOG Computing: Introduction, Architecture,
Need, Applications and Challenges [6]
UNIT VII. Industrial IoT, Case Studies: Agriculture, Healthcare, Activity Monitoring [6]
73
TEXTBOOK AND REFERENCE
● The Internet of Things: Enabling Technologies, Platforms, and Use Cases", by Pethuru
Raj and Anupama C. Raman (CRC Press).
● Internet of Things: A Hands-on Approach", by A Bahga and Vijay Madisetti
(Universities Press)
COMS 227 (C): SOFTWARE TESTING (4 credits)
1. Develop Various test processes and continuous quality improvement
2. Identifying Types of errors and fault models
3. Methods of test generation from requirements
4. Behavior modeling using UML: Finite state machines (FSM)
5. Test generation from FSM models
6. Input space modeling using combinatorial designs
7. Combinatorial test generation
8. Test adequacy assessment using: control flow, data flow, and program mutations
9. The use of various test tools and application of software testing techniques in commercial
environments
SYLLABUS :
Unit I: Introduction to Software Testing
Definition of Software Testing, Need for software Testing, various approaches to Software Testing,
defect distribution, Software Testing Fundamentals. General characteristics of testing, seven principles
of testing,Software testing strategies Testing strategies in software testing, basic concept of
verification and validation, criteria for completion of testing and debugging process, Software To
Development life cycle and testing Water fall model, V-model, Spiral model, agile model, Life cycle
testing concepts, testing methods, testing levels.[10]
Unit II: Static Testing and dynamic testing
Static Testing, static analysis tools, dynamic test ing, White box testing, block box testing,Regression
testing, dynamic testing tools, Functional testing Functional testing concepts, Equivalence class
partitioning, Boundary value analysis, Decision tables, Random testing, Error guessing,Test
management Test planning, cost-benefit analysis of testing, Test organization, Test strategies, Test
progress monitoring and control- test reporting, test control, Specialized testing.[10]
UNIT III Testing tools
Test automation approach, Testing frame work, types of testing tools,Object-Oriented testing
Object-Oriented testing challenges, Unit testing for Object-Oriented programming, Integration testing
(top-down, bottom-up), cluster testing,Software quality and software quality assurance Introduction to
software quality and software quality assurance, basic principles about the software quality and
software quality assurance. Planning for SQA, Composition of SQA plan and organizational initiatives
required for a SQA.[10]
74
Unit IV: Product quality and Process quality “Product quality” and “process quality”, various models
for software product quality and process quality, Software Configuration Management Software
configuration management activities like software configuration identification, software configuration
control, software configuration auditing.[10]
Unit V Software Testing Report
Access Project Management To Development Estimate and status, Requirement Phase Testing, Design
Phase Testing program Phase Testing, Execute Test and record results, Acceptance Test Repor t Test
results, Testing Software Installation, Test Software Change, Evaluate Test Effectiveness. Testing
calculating model(TCM)[10]
Unit VI: Testing Specialized Systems and Application
Client/Server Systems, RAD, System Documentation, Web based systems, Off-the self software, Multi
platform environment, Security, Data Warehouse, Selecting and Installing Software Testing
tools,Testing tools-hammers of testing, Selecting and using the test tools, appointing managers for
testing tools[10]
TEXT BOOKS :
1. Louise Tamres,Introducing Software Testing a Pratical Guide to Getting Started
REFERENCES :
● R. G. Pressman – Software Engineering, TMH
● Sommerville, Ian, Software Engineering, Pearson Education
● Pankaj Jalote – An Integrated Approach to Software Engineering,
Narosa Publications.
● Pfleeger, Shari Lawrence, Software Engineering Theory and Practice, second
edition. Prentice- Hall 2001.
● Object Oriented & Classical Software Engineering (Fifth Edition), SCHACH,TMH
COMS 228 (C) : PRACTICALS IN SOFTWARE TESTING (2 credits)
PRACTICALS :
1. Write a program that take three inputs (a,b &c) that represent the sides of a triangle, and the output is one of the below four:
a. Not a triangle
b. Scalene triangle
c. Isosceles triangle
d. Equilateral triangle
1.1 Generate test cases using Boundary Value Analysis, Equivalence Class Partitioning and Decision Table Testing.
75
1.2 Generate test cases using Basis path testing.
1.3 Run code coverage tool.
2. Write a program that determines the nature of roots of a quadratic equation. Output should be one of the following:-
• Not a quadratic equation.
• Complex roots
• Real roots
• Single roots
I. Generate test cases using Boundary Value Analysis, Equivalence Class Partitioning and Decision Table Testing.
II. Generate test cases using Basis path testing.
III. Run code coverage tool
3. Write a program that checks whether the number is even or odd. Run code coverage tool and find the amount of code being covered.
4. Write a program that dynamically allocates memory to10 integers using malloc() or calloc() and
• donot free memory leading to memory leaks. Verify the same usingValgrind.
• Now, free memory using free() at the end of the program to avoid memory leaks. Verify the same using Valgrind.
5. Use LoadUI load testing tool to test the web application performance.
76
COMS 227 (D) : R PROGRAMMING (4 credits)
Learning Outcomes
5. Understand the basics in R programming in terms of constructs, control statements, string
functions
6. Understand the use of R for Big Data analytics
7. Learn to apply R programming for Text processing
8. Able to appreciate and apply the R programming from a statistical perspective
SYLLABUS :
UNIT I Data Scientist’s Tool Box: Turning data into actionable knowledge, introduction to the tools that will be used in building data analysis software: version control, markdown, git, GitHub, R, and RStudio.[8]
UNIT II R Programming Basics: Overview of R, R data types and objects, reading and writing data, Control structures, functions, scoping rules, dates and times, Loop functions, debugging tools, Simulation, code profiling[12]
UNIT III Getting and Cleaning Data: Obtaining data from the web, from APIs, from databases and from colleagues in various formats. basics of data cleaning and making data ―tidy.[10]
UNIT IV Exploratory Data Analysis: Essential exploratory techniques for summarizing data, applied
before formal modeling commences, eliminating or sharpening potential hypotheses about the world
that can be addressed by the data, common multivariate statistical techniques used to visualize high-
dimensional data.[18]
UNIT V Reproducible Research: Concepts and tools behind reporting modern data analyses in a reproducible manner, To write a document using R markdown, integrate live R code into a literate statistical program, compile R markdown documents using knitr and related tools, and organize a data analysis so that it is reproducible and accessible to others.[18] TEXTBOOKS
● Rachel Schutt, Cathy O'Neil, "Doing Data Science: Straight Talk from the Frontiline" by
Schroff/O'Reilly, 2013
● The Elements of Statistical Learn, Data Mining, Inference, and Prediction (2nd Edn.)
Travor Hastie Robert Tibshirani Jerome Friedman, Springer, 2014
Reference Books :
1. Software for Data Analysis: Programming with R (Statistics and Computing), John M.
Chambers, Springer
77
COMS 228 (D) : PRACTICALS IN R PROGRAMMING (2 credits)
PRACTICALS:
1. Write a program that prints ‗Hello World‘ to the screen.
2. Write a program that asks the user for a number n and prints the sum of the numbers 1 to n
3. Write a program that prints a multiplication table for numbers up to 12.
4. Write a function that returns the largest element in a list.
5. Write a function that computes the running total of a list.
6. Write a function that tests whether a string is a palindrome.
7. Implement the following sorting algorithms: Selection sort, Insertion sort, Bubble Sort
8. Implement linear search.
9. Implement binary search.
10. Implement matrices addition, subtraction and Multiplication
COMS 329 Project (2 credits) The students will undergo one semester of project work based on the concepts studied in a subject of their
choice. The objective is to train the students for the industry by exposing them to prototype development of
real-life software.
Learning Outcomes
• Develop a project plan based on informal description of the project.
• Implement the project as a team.
• Write a report on the project work carried out by the team and defend the work done by the team
collectively. Present the work done by the team to the evaluation committee.
1. The students will work on any project based on the concepts studied in core/elective/ skill based elective
courses. Specifically, the project could be a research study, or a software development project.
2. Project Group Organization/Plan
● Students will initially prepare a synopsis (500 words) and submit it to their respective department.
● For a given project, the group size could be a maximum of four (04) students.
● Each group will be assigned a teacher as a supervisor who will be responsible for their lab classes.
3. A written report on the project will be submitted and each member of the team will defend the work done
by them.