Department of Computer Science & Information Systems

Computer Science & Information Systems


    The department has around 400 DELL/Lenovo machines with few as workstations and few as desktop PCs catering to the needs of Computer Science & Information Systems students for running their labs/programming assignments for the courses listed below. In addition to these, the department has IBM IBM e-Server Blade Center running Windows 2003 Enterprise edition and Linux with servers like RedhatEnterprise Compute server, and FTP servers for use in the courses. The development tools and softwares available over these labs are TC Plus, Visual Studio 208, Compliers (gcc/g++ & Sun JDK), Script Interpreters (Tcl/Tk, Perl 5.0, and gawk), GNU Assemblers, flex, flex++, X-development tools, IBM Rational Rose, NetSim, IBM DB2, Oracle, VM Ware, Microsoft Virtual PC etc.

    1) Operating System Lab :

    In Linux environment students get hands on with the implementation of OS concepts. Coding assignments and laboratories include experiments on OS installation – including partitioning and recovery, memory management, thread synchronization using semaphores, setting priority of processes, performance evaluation of different type of schedulers, kernel build and modifications to add custom system calls and device drivers, and debugging of applications.

    2) Computer Networks &Network Programming lab :

    In Computer networks laboratory, students diagnose various protocol message details like TCP/UDP using Wireshark. NetSim is used to simulate the features of IP routing, transport layer flow and congestion control, data link layer protocol modelling over CSMA/CD. In network programming, students develop programs to understand the client server model. Special emphasis is given on advanced topics like high request throughput (including ability to scale), multiplexing, buffering, stream/datagram based communication. Students implement a three tier application(client browser, apache2 WebServer, MySQL DB) and study the implementation options. They also do a performance benchmark of separating the DB to another machine. Additionally, students develop network centric applications for Android devices and understand the limitations, when the computation and network bandwidth are constrained to preserve battery charge.

    3) Data storage lab :

    Using open source tools and shareware, students setup and work with SAN/NAS. They also look at the impact of network bandwidth on SAN performance. Multi-NIC machines are used in dedicated setup to allow for separate storage and IP-data traffic.

    4) Computer organization and Advanced Computer Architecture Lab :

    The Computer organization and architecture lab provides hands on experience on 8086 assembly programming using emu8086™ emulator. Students design and implement combinational and sequential circuits such as adders, comparators, multiplexors, decoders as well as storage elements like the basic latch, flip-flops and registers etc. The logic design and implementation of these circuits is done using Hardware Description Language (HDL) in the Xilinx Integrated Software Environment. The Advanced architecture lab provides practical exposure to students using Intel VTune Performance Amplifier to find and fix performance problems in a compiled program written in the C/C++ language. Students analyze assembly files or disassembled compiler outputs. Students also use the VTune Performance Amplifier™’s dynamic assembly analyzer to dynamically analyze and fine-tune small sections of application and identify the exact instructions that cause critical performance problems. Students also get a hands-on exposure in parallelizing a sequential program like dense matrix and Graph algorithms to improve its performance using Intel Parallel Studio, and OpenMP/MPI.

    5) Software Engineering Lab :

    Students are exposed to live projects and take requirements from customers directly for implementing IT projects using well known software engineering principles like water-fall model, iterative model, and agile model etc. Students use tools like IBM Rational Rose to capture requirements, different views of systems architecture and design artifacts. They implement well known design patterns like observe-observable pattern, immediate pattern, and factory pattern etc.

    6) Distributed systems and Information Security Lab :

    Students in this lab develop transparent programs for remote procedure calls over platforms like Sun RPC, and Java RMI. They create threads over Linux environment to build a distributed computing environment over multiple machines in the lab. Students implement logical clocks, and use these to guarantee distributed mutual exclusion. Students also implement their own distributed file systems and distributed schedulers using techniques like mounting, caching, sender initiated load distribution etc.

    In the Information Security Lab, students write programs using OpenSSL API over Linux to build secure communication models in a client server environment.