CS19001/CS19002 Programming and Data Structures Lab Autumn/Spring Semester. Introduction. Abhijit Das. January 4, 2015

Similar documents
CS11001/CS11002 Programming and Data Structures Autumn/Spring Semesters. Introduction

CS11002 Programming and Data Structures Spring Introduction

Programming and Data Structure Laboratory (CS13002)

Parallel Programming Pre-Assignment. Setting up the Software Environment

CS 2400 Laboratory Assignment #1: Exercises in Compilation and the UNIX Programming Environment (100 pts.)

COMP1917: Computing 1 1. Introduction

Lab 1 Introduction to UNIX and C

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011

Introduction to Linux. Fundamentals of Computer Science

Exercise 1: Basic Tools

1. The Mac Environment in Sierra Hall 1242

COMP1917: Computing 1 1. Introduction

Laboratory 1 Semester 1 11/12

1. Introduction. Course Web Site. COMP1917: Computing 1. Textbook. Occupational Health and Safety (OHS)

Tutorial 1: Unix Basics

1. The Mac Environment in SIE 1222

EL2310 Scientific Programming

Intermediate Programming, Spring Misha Kazhdan

EL2310 Scientific Programming

CMPT 300. Operating Systems. Brief Intro to UNIX and C

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry

CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C

CMPUT 201: Practical Programming Methodology. Guohui Lin Department of Computing Science University of Alberta September 2018

Lab 1 Introduction to UNIX and C

Course Information and Introduction

Introduction: The Unix shell and C programming

Using the Unix system. UNIX Introduction

CSE Linux VM. For Microsoft Windows. Based on opensuse Leap 42.2

Practical Session 0 Introduction to Linux

Introduction to Algorithms and Programming I Lab. Exercises #1 Solution

Temple University Computer Science Programming Under the Linux Operating System January 2017

AMS 200: Working on Linux/Unix Machines

gcc hello.c a.out Hello, world gcc -o hello hello.c hello Hello, world

Swami Ramanand Teerth Marathwada University, Nanded

27-Sep CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation. Faculty of Computer Science, Dalhousie University

Parallel Programming Pre-Assignment. Setting up the Software Environment

Hrs Hrs Hrs Hrs Hrs Marks Marks Marks Marks Marks

CPS109 Lab 1. i. To become familiar with the Ryerson Computer Science laboratory environment.

EECS2031 Software Tools

SU2017. LAB 1 (May 4/9) Introduction to C, Function Declaration vs. Definition, Basic I/O (scanf/printf, getchar/putchar)

Brief Linux Presentation. July 10th, 2006 Elan Borenstein

Systems Programming and Computer Architecture ( ) Exercise Session 01 Data Lab

Warm-up sheet: Programming in C

CSC111 Computer Science II

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Your Instructor. CSE Content. Notes. Notes. Notes. Summer May 4, 2010

Lecture 1. A. Sahu and S. V. Rao. Indian Institute of Technology Guwahati

Problem Solving and 'C' Programming

Problem Solving and 'C' Programming

We first learn one useful option of gcc. Copy the following C source file to your

System Programming. Introduction to Unix

CMSC 104 Lecture 2 by S Lupoli adapted by C Grasso

Organization of a computer

EKT332 COMPUTER NETWORK

Linux/Cygwin Practice Computer Architecture

CHOICE BASED CREDIT SYSTEM (With effect from )

Problem Set 1: Unix Commands 1

CS 211 Programming I for Engineers

Kadi Sarva Vishwavidyalaya, Gandhinagar

Partha Sarathi Mandal

Getting Started With UNIX Lab Exercises

PDS Lab Section 16 Autumn Tutorial 1. Unix Commands pwd The pwd command displays the full pathname of the current directory.

Introduction to the UNIX command line

Compiling C/C++ programs

Getting started with UNIX/Linux for G51PRG and G51CSA

Introduction to Linux

Chapter 1 An Introduction to C++, Unix, SSH and Komodo Edit

Lab 1 1 Due Wed., 2 Sept. 2015

Course Title: C Programming Full Marks: Course no: CSC110 Pass Marks: Nature of course: Theory + Lab Credit hours: 3

Unit 10. Linux Operating System

Basic Unix Commands. CGS 3460, Lecture 6 Jan 23, 2006 Zhen Yang

C Language Part 1 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

Practical Computing-II. Programming in the Linux Environment. 0. An Introduction. B.W.Gore. March 20, 2015

Lab 3a Using the vi editor

COL100 Lab 9. I semester Week 9, To be able to write C programs involving functions and recursion.

Helsinki 19 Jan Practical course in genome bioinformatics DAY 0

Introduction to Supercomputing

Unix/Linux Basics. Cpt S 223, Fall 2007 Copyright: Washington State University

Getting Started with UNIX

CS Fundamentals of Programming II Fall Very Basic UNIX

CSC 112 Lab 1: Introduction to Unix and C++ Fall 2009

Unit 13. Linux Operating System Debugging Programs

CSC116: Introduction to Computing - Java

3/13/2012. ESc101: Introduction to Computers and Programming Languages

CIS* Programming

CS CS Tutorial 2 2 Winter 2018

INF322 Operating Systems

Programming. Data Structure

EECS Software Tools. Lab 2 Tutorial: Introduction to UNIX/Linux. Tilemachos Pechlivanoglou

Programming and Data Structure

Introduction to Unix - Lab Exercise 0

Data Structures Tannenbaum

CS133 C Programming. Instructor: Jialiang Lu Office: Information Center 703

Linux Tutorial. Ken-ichi Nomura. 3 rd Magics Materials Software Workshop. Gaithersburg Marriott Washingtonian Center November 11-13, 2018

EECS2031 Winter Software Tools. Assignment 1 (15%): Shell Programming

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

Getting started with Hugs on Linux

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4

B.Sc. Final B.SC. PART-III PAPER I COMPUTER ORGANIZATION II

CS 112: Intro to Comp Prog

Transcription:

Title page CS19001/CS19002 Programming and Data Structures Lab Autumn/Spring Semester Introduction Abhijit Das Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur January 4, 2015

Syllabus Syllabus Introduction to digital computers Basic programming constructs Variables and simple data types Assignments Input/output Conditions and branching Loops and iteration Iterative searching and sorting algorithms Advanced programming constructs Functions and recursion Recursive sorting algorithms Arrays and strings Structures Pointers and dynamic memory allocation

Syllabus Syllabus (contd.) Performance analysis of programs Data structures Abstract data types Ordered lists Stacks and queues Programming language: C

References On C Textbooks and references Use any standard textbook on ANSI C Do not use books written for specific C compilers (Turbo C, gcc) 1 Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Prentice Hall of India. 2 E. Balaguruswamy, Programming in ANSI C, Tata McGraw-Hill. 3 Byron Gottfried, Schaum s Outline of Programming with C, McGraw-Hill. 4 P. Dey and M. Ghosh, Programming in C, Oxford University Press.

References On data structures Textbooks and references 5 Seymour Lipschutz, Data Structures, Schaum s Outlines Series, Tata McGraw-Hill. 6 Ellis Horowitz, Satraj Sahni and Susan Anderson-Freed, Fundamentals of Data Structures in C, W. H. Freeman and Company. 7 R. G. Dromey, How to Solve it by Computer, Prentice-Hall of India. 8 http://cse.iitkgp.ac.in/ pds/notes/

Lab schedule Tentative schedule for the laboratory Lab test 1: February beginning Syllabus: Iterative programming (including simple functions) Lab Test 2: April beginning Syllabus: Programming without dynamic memory management Tentative marks distribution Lab Test 1: 25 Lab Test 2: 25 Weekly Assignments: 50

Contacts Contacts Instructor Abhijit Das, CSE-123, 82350 abhij@cse.iitkgp.ernet.in http://cse.iitkgp.ac.in/ abhij/ Course web-page http://cse.iitkgp.ac.in/ pds/ http://cse.iitkgp.ac.in/ pds/notes/ Lab web-page http://cse.iitkgp.ac.in/ abhij/course/lab/pds/spring15/

Structure of a C program How to write C programs Skeleton of a C program Include header files Declare global variables, constants and function prototypes Function bodies There must be a main function in any C program.

Structure of a C program An example A complete example #include <stdio.h> #define PI_4_BY_3 4.1887902048 double radius = 10; double spherevol ( double r ) { return PI_4_BY_3 * r * r * r; } main () { double area; area = spherevol(radius); printf("radius = %lf, volume = %lf.\n", radius, area); }

Some simple C programs The traditional starter The traditional starter #include <stdio.h> main () { printf("hello, world!\n"); } This program takes no input, but outputs the string Hello, world! in a line.

Some simple C programs The short-circuit program The short-circuit program #include <stdio.h> main () { int n; } scanf("%d",&n); printf("%d\n",n); This program accepts an integer as input and outputs the same integer.

Some simple C programs The square finder The square finder #include <stdio.h> main () { int n; } scanf("%d",&n); printf("%d\n",n*n); This program takes an integer n as input and outputs the square n 2 of n.

Some simple C programs A faulty reciprocal finder A faulty reciprocal finder #include <stdio.h> main () { int n; } scanf("%d",&n); printf("%d\n",1/n); The division 1/n is of integers (quotient). The format %d is for printing integers.

Some simple C programs The correct reciprocal finder The correct reciprocal finder #include <stdio.h> main () { int n; } scanf("%d",&n); printf("%f\n",1.0/n);

PDS laboratory Log in Getting started Switch on your monitor. Switch on your PC. Allow the machine to boot. Wait until the log in prompt comes. Supply your log-in and password: Login: s<pcno> Password: s<pcno> Here s is your section (a for 1, b for 2, and so on) <PCNo> is the number of your PC. This opens your window manager (usually GNOME) with icons, the side panel, and so on. You are now ready to start your work.

PDS laboratory Edit, compile and run Getting started Click on the terminal icon to open a shell (command prompt). Edit your program (new or already existing) by an editor. gedit myprog.c & kate myprog.c & emacs myprog.c & Write your program in the editor and save it. Go to the shell and compile your program: cc myprog.c If compilation is successful, an executable called a.out will be created. Run your program:./a.out Continue your edit-compile-debug-run-debug cycle.

PDS laboratory Shut down Getting started Close all the windows you opened. Log out from your window manager. This leaves you again in the log-in console. Select the item to shut down the machine. Wait until the machine completely shuts down. Switch off your monitor.

PDS laboratory Using a text editor Using a text editor Use a text editor you are comfortable with (gedit/kate/emacs). Run the editor as: gedit myprog.c & Type in your program in the text area Navigate with mouse and cursor keys Save your file before closing the editor. File -> Save Click the save button (disk) File -> Save as (to another file) Save your file once in every 10 minutes.

PDS laboratory Using gvim Using gvim gvim is another powerful text editor. Run gvim as: gvim myprog.c Hit Insert before you start typing matter You will exit the insert mode if you hit Insert when you are already in the insert mode Hit Esc to exit insert mode When in doubt, it is safe to hit Esc several times to come back to view mode Navigate with mouse and cursor keys You need to save the file by clicking on the appropriate icon (disk). Save your file once in every 10 minutes.

PDS laboratory A practice program A practice program #include <stdio.h> #include <string.h> char name[100]; int i; main () { printf("hello, may I know your full name? "); scanf("%s",name); printf("welcome %s.\n",name); printf("your name printed backward is : "); for (i=strlen(name)-1; i>=0; --i) printf("%c",name[i]); printf("\n"); }

PDS laboratory A corrected version A practice program (corrected) #include <stdio.h> #include <string.h> char name[100]; int i; main () { printf("hello, may I know your full name? "); fgets(name,100,stdin); name[strlen(name)-1] = \0 ; printf("welcome %s.\n",name); printf("your name printed backward is : "); for (i=strlen(name)-1; i>=0; --i) printf("%c",name[i]); printf("\n"); }

PDS laboratory Using a web browser Using a web browser Open a web browser: firefox or chrome. Set the proxy: 10.3.100.207:8080 Bypass proxy for local machines. Type in a URL (web address) in the location field http://cse.iitkgp.ac.in/ pds/ http://cse.iitkgp.ac.in/ pds/notes/ http://cse.iitkgp.ac.in/ abhij/ http://cse.iitkgp.ac.in/ abhij/course/lab/pds/spring15/ http://cse.iitkgp.ac.in/ wbcm/

PDS laboratory Assignments and submissions Assignments and submissions Click the link on the day s assignment. If your assignment is a PDF file, save it to your machine. Use okular or evince or acroread in order to view PDF files. okular newassgn.pdf & We will use an online submission server to receive your lab assignments. http://cse.iitkgp.cse.in/ wbcm/

PDS laboratory What to submit Files for submission: Your identity In your C program write your name, roll number and PC number as comments: /************************************ * Name : Your name * * Roll Number : Your roll number * * PC Number : Number of your PC * * Assignment : Assignment number * * Exercise : Exercise number * ************************************/ Write your program here /***** End of program *****/

PDS laboratory What to submit About the submission server Submit only your C source code(s). The assignment specifies how many C programs you have to submit. Some assignments may ask you to submit additional output files. Read the assignment to know the output formats. The submission server sets a deadline for each assignment. You cannot submit after the deadline. It is absolutely mandatory to submit in time. The submission server displays the local clock. You may submit an assignment (within the deadline) as many times as you want. Only the last submission stays in the server. All earlier submissions are deleted.

PDS laboratory Some useful Unix commands Some useful Unix commands Create a directory: mkdir progs Go to a new directory: cd progs/ Go to the parent directory: cd../ List all files in a directory: ls -lf View a file: cat filename Copy a file to another: cp file1.c file2.c Copy a file to a directory: cp file1.c progs/file3.c Move a file to another: mv file1.c file2.c Move a file to a directory: mv file1.c progs/file3.c Delete a file: rm filename