COURSE TEMPLATE

 

1.

Department/Centre proposing the course

Computer Science and Engineering

2.

Course Title

(< 45 characters)

Introduction to computers and computer science

3.

L-T-P structure

3-0-2

4.

Credits

4

5.

Course number

CSL100

6.

Status

(category for program)

UG core

 

7.

Pre-requisites

(course no./title)

Nil

 

8.

Status vis-à-vis other courses (give course number/title)

8.1

Overlap with any UG/PG course of the Dept./Centre

CSL101/CSL102

8.2

Overlap with any UG/PG course of other Dept./Centre

None

8.3

Supercedes any existing course

CSL101/102

 

9.

Not allowed for

(indicate program names)

Students with Comp Sci or Informatics background in school

 

10.

Frequency of offering

Every sem   1st sem     2nd sem    Either sem

 

11.

Faculty who will teach the course

Multiple faculty members may be assigned.

12.

Will the course require any visiting faculty?

No

 

13.

Course objective (about 50 words):

Use of high level programming language for the systematic development of programs. Introduction to the design and implementation of correct, efficient and maintainable programs.

 

14.

Course contents (about 100 words) (Include laboratory/design activities):

Computing as a process vs. the digital computer as a tool for computing. Using a modern networked digital computing facility. Basic notions of accessing and using a digital computer securely. Concept of an algorithm; basic conceptual primitives for describing an algorithm; termination and correctness. Algorithms to programs: specification, top-down development and step-wise refinement. Iterative versus recursive style; problem solving using a functional style; correctness issues in programming; efficiency issues in programming; time and space measures. Structured style of imperative programming; Assertions and loop invariants; programming in an imperative language using advanced features: procedures, functions. Introduction to basic numerical methods.

 

 

15.

Lecture Outline (with topics and number of lectures)

 

Module no.

Topic

No. of hours

1

- Computing as a process: examples from school Mathematics

- The modern digital computer as a tool

- The basics of logging in, password, security

- Using the shell and the GUI environments

6

2

- Models of computation. The stored program model

- Mathematical preliminaries

- Computer organization and basic principles of operation

- A functional model of computation

- The primitive expressions

- Function parameter substitution and variable binding

- Definition of functions using conditionals and cases

4

3

- Functions as inductively defined computational processes

- Recursive processes

- Analysis of correctness and efficiency

- Tail-recursion and iterative processes

- Correctness of an iterative process

- Examples of iterative processes

8

4

- Analysis of correctness and efficiency

- Correctness

- Efficiency

- Efficiency, Why and How?

- In the long run: Asymptotic analysis and Orders of growth

- More examples of recursive algorithms

6

5

The imperative model of computation

- The primitives for the imperative model

- Variables and the assignment instruction

- Assertions

- The if-then-else instruction and the while-do instruction

- Functions and procedures in the imperative models

- Step-wise refinement and procedural abstraction

5

6

Linear Data Structures:

- Lists, Arrays, Strings

- Sequence operations

- Stacks and Queues

- Searching and Sorting

8

7

- Object orientation concepts

- Executable specifications and rapid prototyping; Examples of step-wise refinement

5

8

    

    

9

  

    

10

    

    

11

    

12

    

    

  COURSE TOTAL (14 times ‘L’)

   42                                                                                                                                                        

 

16.

Brief description of tutorial activities

 

NA

 

17.

Brief description of laboratory activities

 

Moduleno.

Experiment description

No. of hours

1

Logins, passwords, editing, shell and GUI usage

4

2

Multiple programming assignments of varying difficulty will be given on topics such as -

    

3

- Numerical computations

6

4

- Working with linear data structures - lists and strings

6

5

- Searching and sorting

6

6

- Multi-objective search

6

7

    

    

8

    

    

9

    

    

10

    

    

  COURSE TOTAL (14 times ‘P’)

28

 

18.

Suggested texts and reference materials

STYLE: Author name and initials, Title, Edition, Publisher, Year.

 

1. Subhashis Banerjee, Lecture Notes in Computer Science, 2011

2. Python Programming: An Introduction to Computer Science by John Zelle. or suitable language reference depending on the language used for instruction (Python/SML/OCaml/MATLAB/Haskell/etc.)

3. How to Solve it by Computer, by R.J. Dromey, Prentice-Hall India EEE Series.

 

 

 

19.

Resources required for the course (itemized & student access requirements, if any)

 

19.1

Software

Interpreters for Python, OCaml, MATLAB etc

19.2

Hardware

Computer terminals for all students

19.3

Teaching aides (videos, etc.)

    

19.4

Laboratory

Computer Services Centre/First Year teaching lab

19.5

Equipment

    

19.6

Classroom infrastructure

Classroom of appropriate size

19.7

Site visits

None

 

20.

Design content of the course (Percent of student time with examples, if possible)

 

20.1

Design-type problems

20%

20.2

Open-ended problems

    

20.3

Project-type activity

    

20.4

Open-ended laboratory work

    

20.5

Others (please specify)

    

 

 

 

 

 

Date:      (Signature of the Head of the Department)