Mohanlal Sukhadia University, Udaipur is a state University of the Government of Rajasthan established as per UGC Act. The University is graded as B++ (80 - 85%, equivalent to five star by NAAC) for its high teaching standards, excellent infrastructure and a very good governance. The University is located in the city of Udaipur, known as city of lakes and fountains. Udaipur city is one of the top tourist centres in the country.

Mohanlal Sukhadia University has an excellent infrastructure in the area of Information Technology. In fact, this is the only University in the state of Rajasthan which is completely networked campus and connects other campuses to utilize the network facilities. In spite of two campuses, 4 km apart, both campuses are completely networked.

The Informatics and Computational Sciences programmes are offered at the Vigyan Bhawan - Information Technology campus which is located at the main campus of the University.

First Year M.Sc. (CA & IT)

Sub No. Subject Name Teaching Scheme Examination Scheme TheoryPractical

Internal Marks External Marks Grand Total (I+E)

Lectures

Hours/

Week
Per Batch *

Hours/Week
Th.
Prac
tical
Total
(I)
Th.
Durations
Prac.
/Oral
Duration
Total

(E)

101
Communication Skills
4

20
10
30
50
3 hrs
20
(Oral)
15 Min
70
100

102
Advanced Mathematics
4

30

30
70
3 hrs


70
100

103
Computer Fundamental & Programming in `C’
3
3
15
15
30
35
3 hrs
35
3 hrs
70
100

104
Financial Accounting & Management
4

30

30
70
3 hrs


70
100

105
Basic Microcomputer & Application
3
3
15
15
30
35
3 hrs
35
3 hrs
70
100

106
Information Technology
4

30

30
70
3 hrs


70
100

107
Internet & Web
3
3
15
15
30
35
3 hrs
35
3 hrs
70
100

Total
25
9

210

490
700

* Note : 40 Students batch for Practical.

Common Courses (First two semesters)
Semester 1
CS-101 Introduction to Programming
CS-102 Logical Organization of Computers
CS-103 Mathematical Foundations
CS-104 Concrete Maths & Graph Theory
CS-105 Numerical Methods
Semester 2

CS-201 Data Structures & Algorithms
CS-202 Theoretical Computer Science
CS-203 Low-level Programming
CS-205 Computer Architecture and Operating Systems
CS-206 Programming Paradigms
Courses Specific to M.C.A. (Last four semesters)
Semester 3

CS-204 Design & Analysis of Algorithms
CS-301 Database Management System
CS-302 Computer Networks
CS-303 Systems Programming
Semester 4

CS-305 Computer Graphics
CS-401 Modelling and Simulation
CS-402 Operations Research
CS-403 Systems Analysis and Design
Elective-1
Semester 5

Full-time Industrial Training
Semester 6

CS-304 Science of Programming
CS-601 Software Engineering
Elective-2
Courses Specific to M. Sc. (Last two semesters)
Semester 3

CS-204 Design & Analysis of Algorithms
CS-301 Database Management System
CS-302 Computer Networks
CS-303 Systems Programming
CS-MSP Degree Project I
Semester 4

CS-304 Science of Programming
CS-601 Software Engineering
CS-MSP Degree Project II
Elective-1
Courses Specific to M.Tech. (Last two semesters)
Semester 3

CS-204 Design & Analysis of Algorithms
CS-301 Database Management System
CS-302 Computer Networks
CS-303 Systems Programming
CS-MTP Degree Project I
Semester 4

CS-304 Science of Programming
CS-601 Software Engineering
CS-MTP Degree Project II
Elective-1
Elective Courses (offered in the last few years)

Advanced Computer Architecture
Advanced Theoretical
Computer Science
Advanced Topics in DBMS
Artificial Intelligence and Tools
Category Theory
Code Optimization
Compiler Construction
Data Warehousing and Mining
Discrete Optimization
Implementation of RDBMS
Geometric Modelling
Issues in Programming
Logic Programming
Parallel Algorithms
Parallel Architectures
Programming Languages:Theory and Implementation
Soft Computing
Software Tools
Spatial Information Systems
System Management and Modeling
User Interface Design
CS-101 - Introduction to Programming
Aims and Objectives :
To give students the grounding that makes it possible to approach problems and solve them on the computer.

The aspects covered range across:

Modelling a given problem domain appropriately
Designing a solution
Implementing the solution in a high level programming language

Contents :
Two paradigms are used as vehicles to carry the ideas and execute practicals for this course the functional and the imperative.

The Functional Paradigm :
The central issue here is to be able to use the computer as a highlevel tool for problem solving. The paradigm conveyed may be simply expressed as:

A modern nonstrict functional language with a polymorphic type system is the medium for this part. The currently used language is the internationally standardized language, Haskell.

Important ideas that are to be covered include:

Standard Constructs
Function and type definition, block structure.
Guarded equations, pattern matching.
Special syntax for lists, comprehension.

Standard Data Types Fluency is to be achieved in the standard data types: numbers, boolean, character, tuple, list.
List programs in an algebraic vein.
Lists in the context of general collections sets, bags, lists, tuples. (MF)

calculus
A direct way for denoting functions.

First Classness
All values are uniformly treated and conceptualized.

Higher Order Functions Use of first class, higher order functions to capture large classes of computations in a simple way. An understanding of the benefits that accrue modularity, flexibility, brevity, elegance.

Laziness The use of infinite data structures to separate control from action.

Type discipline

Polymorphism:
The use of generic types to model and capture large classes of data�structures by factorizing common patterns.

Inference:
The types of expressions may be determined by simple examination of the program text.
Understanding such rules.

User defined types:
User defined types as
a means to model
a means to extend the language
a means to understand the built in types in a uniform framework.

Concrete types:
Types are concrete. i.e. values that are read or written by the system correspond directly to the abstractions that they represent. More specifically, unlike abstract types which are defined in terms of admissable operations, concrete types are defined by directly specifying the set of possible values.

Recursion
Recursive definitions as
a means of looping indefinitely
a structural counterpart to recursive data type definitions
a means to understand induction in a more general framework than just for natural numbers

Operational Semantics
Functional programs execute by rewriting.
calculus as a rewriting system
Reduction, confluence, reasons for preferring normal order reduction.

Type Classes
Values are to types as types are to classes. Only elementary ideas.

The Imperative Paradigm :
The imperative paradigm is smoothly introduced as follows:

Worlds The Timeless World World of Time
Domain Mathematics Programming
Syntax Expressions Statements
Semantics Values Objects
Explicit Data Structures Control Structure
Think with Input Output relations State Change
Abstractions Functions Procedures
Relation Denote programs Implement functions

In the following we spell out some of the points of how FP translates into Imp P. The examples may be analogized from say how one would teach assembly language to someone who understands structured programming.

Semantic relationsThe central relation is that imperative programming’s denotational semantics is FP, FP’s operational semantics is imperative programming.

Operational Thinking
IN FP data dependency implicitly determines sequencing whereas in Imp P it is done explicitly. Advantages and disadvantages of operational thinking.

Environment
In imperative programming there is a single implicit environment memory. In FP there are multiple environments; which could be explicit to the point of first classness (the value of variables bound in environments could be other environments). Use of environments to model data abstraction, various object frameworks, module systems.

Semi Explicit Continuation
Explicit in the sense that goto labels can be dealt with firstclassly (as in assembly), but not explicit in the sense of capturing the entire future of a computation dynamic execution of a code block may be ‘concave’.

Recursion iteration equivalence
General principles as well as scheme semantics of tailrecursion.

Type Issues
Monomorphic, polymorphic and latent typing: translating one into another.

Guile
A variety of vehicles have been used for the imperative paradigm, eg. Pascal, C, Java,Tcl. The current choice is Scheme in the guile dialect because it gives a full support for the functional and the imperative paradigm. In fact Guile has been chosen over C because the single data structure in guile sexpressions is universal (aka XML) and thus imperative and functional thinking do not quarrel with datastructure issues.

Orthogonal kinds of abstractions, which are usually considered ‘advanced’, such as functional, higherorder functional, objectoriented, streambased, datadriven, language extensions via eval, via macros, via C can be easily demonstrated. In fact, once guile has been learnt, it is much faster to pick up C in the subsequent semester.

Note: In addition to being a system programming and general purpose language Guile is also a scripting, extension and database programming language because it is the flagship language for FSF (The free software foundation).

Bibliography :
Introduction to Functional Programming, Bird and Wadler, Prentice Hall
Algebra of Programs, Bird, Prentice Hall
Structure and Interpretation of Computer Programs, Abelson and Sussman, MIT Press
Scheme and the Art of Programming, Friedmann and Haynes, MIT Press
Equations Models and Programs,, Thomas Myers, Prentice Hall
Algorithms + Data Structures = Programs, N Wirth
Functional Programming, Reade
Programming from First Principles, Bornat, Prentice Hall
Discrete Maths with a computer, Hall and Donnell, Springer Verlag
Guile Reference Manual, www.gnu.org


© 2008 | MCA Papers

Add to Google Reader or Homepage Subscribe in NewsGator Online Add to My AOL Add to netvibes Subscribe in Bloglines Add to The Free Dictionary Subscribe in podnova Add to Pageflakes