department of computer science - spicer adventist university

78
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

Upload: khangminh22

Post on 25-Jan-2023

0 views

Category:

Documents


0 download

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.

78