McGill University School of Computer Science COMP-206A Introduction to Software Systems

Size: px
Start display at page:

Download "McGill University School of Computer Science COMP-206A Introduction to Software Systems"

Transcription

1 McGill University School of Computer Science COMP-206A Introduction to Software Systems Final Exam Wednesday, December 8, 2004 at 9:00 in GYM Instructor: Joseph Vybihal Associate Examiner: Prof. Ratzer Student Name: Student ID: Instructions No notebooks, calculators or textbooks permitted in this exam. Language translation dictionaries are permitted. You are permitted to write your answers in either English or French. Attempt all questions. Parts marks are given for all questions. Show your work and do not leave a question empty. Write all answers in the exam booklet provided. Grading Section Grade Your Mark Question 1 15 Question 2 15 Question 3 15 Question 4 10 Question 5 10 Question 6 10 Question 7 15 Question Total 100 % Instructor: Joseph Vybihal Page 1 of 9

2 Question 1: String Manipulation in C You are a C programmer jealous of Perl s string manipulation functions. You want to create your own string manipulation functions but you d also like to one-up your features as compared to Perl s. To do this you want your functions to be accessible from the Unix command-line prompt. You also want your program to manipulate either strings or text files. To do this, the program s interface will be through the Unix command-line and it will have the following syntax: $ substitution expression switch argument Where: substitution is the name of your C program (i.e. the a.out file name) expression is a quoted simple regular expression switch is either S or F. S signifies that the argument will be a quoted string. F signifies that argument will be a file name To simplify this problem a little assume that quoted arguments from the command line are read in as a unit into a single cell of the argv array. To simplify the problem a little more assume that legal regular expressions are limited to the following syntax: /search/replace/. There is no g for global nor i for ignore case. The search argument is what we are looking for and it will be replaced by the replace argument. Only the first occurrence of the match is replaced. The program is case sensitive. The only valid search code is /d which is interpreted as /d+. For example: $ substitution /bob/mary/ S this is an example for bob this is an example for mary $ substitution /bob/mary/ F letter.txt Dear mary, bla bla bla Notice in either case the substitution program displays the replaced data. Note: The program should do error checking if the arguments at the command-line are wrong. The program should do file existence error checking as well. The program has a special case syntax where the user can enter: $ substitution H That displays the syntax of the command-line invocation, it then terminates. Instructor: Joseph Vybihal Page 2 of 9

3 Question 2: PERL Programming with Regular Expressions Write a Perl program that opens a file called FILENAME.TXT and reads in each line of the file one by one. It then outputs the file with a line number at the beginning of each line and converts every long date into a short date. Note that the line number should be four digits, e.g. line 64 should look like You should get something like: 0001 Dear Mom, 0002 School is great! 0003 Can t wait to get home for the holidays. Etc A long date is considered to be something like: January 1, A short date is considered to be: 1 Jan 04. The months can be anything from January to December while the days and years are assumed to be correct (i.e. for example, you do not need to verify that the number of days obeys rules like months have at most 31 days). The program outputs the converted FILENAME.TXT into another file called CONVERTED.TXT. There is no interface to a CGI file. Question 3: HTML, CGI and PERL This question asks you to write an advanced login script. You must provide the HTML and CGI code for the web page. The web page will call a PERL script to validate the login (you must provide this code as well). If the user name and password match the user sees WELCOME otherwise it returns the user to the login page. The HTML page is called LOGIN.HTML. The PERL source file is called LOGIN.PL. The login page has two text boxes: one for the user name and one for the password. The password input field does not show the text entered by the user. The page also has a checkbox called ENCRYPTION. When checked the PERL program assumes that the password text file is encrypted using a Caesar cipher. A Caesar cipher is a simple cipher that shifts the characters by a fixed number. In our case this will be the integer number 2. For example: DOG = FQI, ZAP = BCR. The password text file is called PASSWORD.TXT. The web page must have a gray background with blue writing. At the top is a heading saying WELCOME. At the bottom of the page are links to HOTMAIL and MCGILL s main web site with text indicating this (you can make up these links if you do not know them). Centered in the middle of the screen is your CGI interface. The McGill logo (logo.gif) is displayed beside the WELCOME message. Instructor: Joseph Vybihal Page 3 of 9

4 Question 4: Profiling and Timing Look at the following program: 1. #include <stdio.h> 2. #include <stdlib.h> 3. #include <ctype.h> 4. #define WORDLEN #define WORDMAX char words[wordmax]{wordlen+1]; 7. int get_word(char *str) { 8. int ch, I =0; 9. do { 10. ch = getchar(); 11. } while ((ch!= EOF) &&!isalpha(ch)); 12. if (ch == EOF) return 1; 13. while (ch!= EOF && isalpha(ch) && I<WORDLEN) { 14. str[i++] = tolower(ch); 15. ch = getchar(); 16. } 17. str[i] = \0 ; 18. return I; 19. } 20. int compare(char *s1, char *s2) { 21. while ((*s1!= \0 ) && (*s1 == *s2)) { 22. s1++; s2++; } 23. if (*s1 == *s2) return 0; 24. if (*s1 > *s2) return 1; 25. return 1; 26. } 27. int main (void) { 28. int max = 0, length, I, j, total; 29. for(i=0; I<WORDMAX; I++) { 30. length = get_word(words[i]); 31. if (length == -1) break; 32. max = (length > max)? length : max; } 33. total = I; 34. for (I=0; I<tital-1; I++) { 35. if (words[i][0]!= \0 ) { 36. for (j=i+1; j<total; j++) { 37. if (compare(words[i],words[j]) == 0) 38. words[j][0] = \0 ; 39. }}} 40. for(i=total-1; I>=0; I--) { 41. if (words[i][0]!= \0 ) 42. printf( %s\n,words[i]); } 43. printf( %d\n, total); 44. printf( %d\n, max); 45. return EXIT_SUCCESS; } Answer the following questions: 1. What does this program do? Where is this program slow and why? 2. Suggest locations where you would put your own timing code to verify the slow areas in the above code. Also provide actual example code. Instructor: Joseph Vybihal Page 4 of 9

5 Question 5: GNU Profiling The importance of profiling becomes evident when creating critical software that is called often or is processing large amounts of data. One way to optimize your program is to look at the gprof profile, to identify functions for optimization. Below is the gprof profile generated from a fairly large program. By looking at it, how can you optimize this program and why? called/total parents index %time self descendents called+self name index called/total children <spontaneous> [1] main [1] /1 FFT3D [2] /128 my_image_write [4] /1 shuff_wedge [5] /1 contrast_handler [6] /1 gamma_correction [7] /1 find_scalar [8] /1 composite_multi [9] /74719 malloc [21] /1 histogram [26] /1 read_image [31] /128 sprintf [44] /395 fprintf [30] /33050 free [29] /1 main [1] [2] FFT3D [2] / FFT [3] /74719 malloc [21] /33050 free [29] /3 Powerof2 [70] / FFT3D [2] [3] FFT [3] /128 main [1] [4] my_image_write [4] /128 write_image [10] /128 free_image [28] /74719 malloc [21] /1 main [1] Instructor: Joseph Vybihal Page 5 of 9

6 [5] shuff_wedge [5] /395 fprintf [30] /1 main [1] [6] contrast_handler [6] /1 main [1] [7] gamma_correction [7] /1 main [1] [8] find_scalar [8] /395 fprintf [30] /1 main [1] [9] composite_multi [9] /12606 random [52] /1 srandomdev [54] /128 my_image_write [4] [10] write_image [10] /32768 fwrite [12] /130 fopen [24] /130 fclose [33] /395 fprintf [30] Instructor: Joseph Vybihal Page 6 of 9

7 Question 6: Debugging and Logic Error Answer the following questions about GDB: Assume a programmer wants to write a C program that strips all the blank spaces from the end of an array. It does this by putting a NULL character after the last nonblank character in the array. It is assumed that the array already stores a string, but there may be a number of blanks before the NULL. Below is this programmer s code. Note it is basically correct but there is more than one error in the code: 1. void strip (char *string) { 2. char *cp = string; 3. while (cp!= \0 ) 4. cp++; 5. do { 6. cp--; 7. } while ((cp > string) && (*cp == )); 8. if (*cp!= \0 ) 9. (cp+1) = \0 ; 10. else 11. string = \0 ; 12. } Now answer the following: 1. Identify the errors by studying the code and suggest corrections. 2. How would the program run with those errors present? Give a short description of the execution of the program given each error. 3. Assume you were this programmer and you were unable to identify the errors on your own so you decided to use gdb to help you. Give a line-by-line commandline example of how you would have used gdb to isolate where the errors where and what information lead to you determining the problem and solution. To do this start from the Unix prompt showing what command you would have used to compile the program, the command used to invoke gdb and then each gdb command with comments on the right-hand side describing why you entered each command. Instructor: Joseph Vybihal Page 7 of 9

8 Question 7: The Make Program A student has the following programming practises: There is always one.h file and one.c file (of the same name) in a module. For example, a module called mod would have mod.h and mod.c ; The corresponding.h file is always included in the.c file. The file will also include any other module it needs plus the standard C includes (e.g. <stdio.h>, etc.). The.h files may include other.h files. This student is currently writing, for her assignment, a program of 4 modules: m1, m2, m3 and main. She would like to name her executable ass3. Here are the include directives found in the four.h files: #include "m2.h" #include "m3.h" #include "m3.h" #include "m1.h" #include m2.h #include "m1.h" #include "m3.h" m1.h m2.h m3.h main.h In the meantime, this student does not use any tool to manage program compilation. The output of ls l is as follows: total 8 -rw student 734 Nov 17 10:02 m1.c -rw student 203 Nov 2 11:39 m1.h -rw student 2823 Nov 17 10:03 m1.o -rw student 425 Nov 16 20:21 m2.c -rw student 220 Nov 2 11:39 m2.h -rw student 2213 Nov 13 12:24 m2.o -rw student 323 Nov 16 22:38 m3.c -rw student 212 Nov 8 11:39 m3.h -rw student 2533 Nov 16 22:40 m3.o -rw student 3213 Nov 17 12:27 main.c -rw student 243 Nov 8 11:39 main.h -rw student Nov 10 11:39 main.o -rwx student Nov 10 11:39 ass3* From the above information, answer the following questions: 1. Write C pre-processor directives to insure that a header file is not included twice. 2. The student decides to use the make tool to facilitate project management. Write a makefile for her that gives an executable of her program when make is issued. The makefile must always work in the optimal way (i.e. compiles only the files that require compilation) 3. Now the student does a make with her makefile. What will be the output of ls l after this make? Giving only the filenames and times would suffice. (Current time is assumed to be Nov 17 14:00) 4. Adjust the make file so that it backs up all the source files to a backup directory before compilation. Instructor: Joseph Vybihal Page 8 of 9

9 Question 8: Source Management with RCS You are the team leader for a new project being proposed by the organization you are working for. You will be in charge of yourself and four other programmers. The organization is preparing a Specification Document and they have assigned to you the portion of the document referring to how the software will be optimally developed using RCS. Besides the four programmers who will need to access the software as writers of code, you will access the software as someone who will build the initial framework for each module of the program as well as test the code developed by your programmers and demo the program to management. In addition, management will want to have access to only the executable versions of the program for independent distribution of working versions of the program. The software under development is for an outside client. This client will have a contact person who will work closely with you providing you will internal company procedures and officiating at demos of the program. This individual will want to be able to see but not edit the developing code. This individual would also like to be able to get executable versions of the program for their own testing purposes. They would like to be able to do this independently. The following additional criteria are important to you: the code is managed in a secure environment, maintaining all versions of the program in recoverable form, want to insure that a single program is not undergoing multiple simultaneous revisions, and you want to see a log of all the changes in the file. Outline what you would suggest, with examples, should be put into this specification document. I am not asking you to write a paragraph but outline in bullet form what you would do. Instructor: Joseph Vybihal Page 9 of 9

THE UNIVERSITY OF WESTERN ONTARIO. COMPUTER SCIENCE 211a FINAL EXAMINATION 17 DECEMBER HOURS

THE UNIVERSITY OF WESTERN ONTARIO. COMPUTER SCIENCE 211a FINAL EXAMINATION 17 DECEMBER HOURS Computer Science 211a Final Examination 17 December 2002 Page 1 of 17 THE UNIVERSITY OF WESTERN ONTARIO LONDON CANADA COMPUTER SCIENCE 211a FINAL EXAMINATION 17 DECEMBER 2002 3 HOURS NAME: STUDENT NUMBER:

More information

Final Exam 1 /12 2 /12 3 /10 4 /7 5 /4 6 /10 7 /8 8 /9 9 /8 10 /11 11 /8 12 /10 13 /9 14 /13 15 /10 16 /10 17 /12. Faculty of Computer Science

Final Exam 1 /12 2 /12 3 /10 4 /7 5 /4 6 /10 7 /8 8 /9 9 /8 10 /11 11 /8 12 /10 13 /9 14 /13 15 /10 16 /10 17 /12. Faculty of Computer Science Faculty of Computer Science Page 1 of 21 Final Exam Term: Fall 2018 (Sep4-Dec4) Student ID Information Last name: First name: Student ID #: CS.Dal.Ca userid: Course ID: CSCI 2132 Course Title: Instructor:

More information

McGill University School of Computer Science COMP-202A Introduction to Computing 1

McGill University School of Computer Science COMP-202A Introduction to Computing 1 McGill University School of Computer Science COMP-202A Introduction to Computing 1 Midterm Exam Thursday, October 26, 2006, 18:00-20:00 (6:00 8:00 PM) Instructors: Mathieu Petitpas, Shah Asaduzzaman, Sherif

More information

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

CMPT 300. Operating Systems. Brief Intro to UNIX and C CMPT 300 Operating Systems Brief Intro to UNIX and C Outline Welcome Review Questions UNIX basics and Vi editor Using SSH to remote access Lab2(4214) Compiling a C Program Makefile Basic C/C++ programming

More information

Lecture 12 CSE July Today we ll cover the things that you still don t know that you need to know in order to do the assignment.

Lecture 12 CSE July Today we ll cover the things that you still don t know that you need to know in order to do the assignment. Lecture 12 CSE 110 20 July 1992 Today we ll cover the things that you still don t know that you need to know in order to do the assignment. 1 The NULL Pointer For each pointer type, there is one special

More information

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

CMPUT 201: Practical Programming Methodology. Guohui Lin Department of Computing Science University of Alberta September 2018 CMPUT 201: Practical Programming Methodology Guohui Lin guohui@ualberta.ca Department of Computing Science University of Alberta September 2018 Lecture 1: Course Outline Agenda: Course calendar description

More information

CSC209H Lecture 3. Dan Zingaro. January 21, 2015

CSC209H Lecture 3. Dan Zingaro. January 21, 2015 CSC209H Lecture 3 Dan Zingaro January 21, 2015 Streams (King 22.1) Stream: source of input or destination for output We access a stream through a file pointer (FILE *) Three streams are available without

More information

CSE 303 Winter 2008 Midterm Key

CSE 303 Winter 2008 Midterm Key CSE 303 Winter 2008 Midterm Key 1. [2 points] Give a Unix command line that will list all (and only) files that end with.h in the current working directory. Full credit: ls *.h Extra credit: ls a *.h (although

More information

SPRING 2017 CSCI 304 LAB1 (Due on Feb-14, 11:59:59pm)

SPRING 2017 CSCI 304 LAB1 (Due on Feb-14, 11:59:59pm) SPRING 2017 CSCI 304 LAB1 (Due on Feb-14, 11:59:59pm) Objectives: Debugger Standard I/O Arithmetic statements IF/Switch structures Looping structures File I/O Strings Pointers Functions Structures Important

More information

Grading. December 2009 Sample Final Examination INSTRUCTIONS: This is a CLOSED BOOK examination. You are permitted TRANSLATION dictionaries ONLY.

Grading. December 2009 Sample Final Examination INSTRUCTIONS: This is a CLOSED BOOK examination. You are permitted TRANSLATION dictionaries ONLY. December 2009 Sample ination Introduction to Computer Systems December 15, 2009 at 9:00 12:00 Examiner: Joseph Vybihal Assoc Examiner: Michael Langer Student Name: McGill ID: INSTRUCTIONS: This is a CLOSED

More information

FALL 2017 CSCI 304 LAB1 (Due on Sep-19, 11:59:59pm)

FALL 2017 CSCI 304 LAB1 (Due on Sep-19, 11:59:59pm) FALL 2017 CSCI 304 LAB1 (Due on Sep-19, 11:59:59pm) Objectives: Debugger Standard I/O Arithmetic statements Conditional structures Looping structures File I/O Strings Pointers Functions Structures Important

More information

Software Development With Emacs: The Edit-Compile-Debug Cycle

Software Development With Emacs: The Edit-Compile-Debug Cycle Software Development With Emacs: The Edit-Compile-Debug Cycle Luis Fernandes Department of Electrical and Computer Engineering Ryerson Polytechnic University August 8, 2017 The Emacs editor permits the

More information

The make Utility in Unix SEEM

The make Utility in Unix SEEM The make Utility in Unix SEEM 3460 1 Recall the reverse Module reverse.h 1 /* reverse.h */ 2 3 void reverse (char before[], char after[]); 4 /* Declare but do not define this function */ SEEM 3460 2 Recall

More information

ESC101N: Fundamentals of Computing End-sem st semester

ESC101N: Fundamentals of Computing End-sem st semester ESC101N: Fundamentals of Computing End-sem 2010-11 1st semester Instructor: Arnab Bhattacharya 8:00-11:00am, 15th November, 2010 Instructions 1. Please write your name, roll number and section below. 2.

More information

Project 5 Handling Bit Arrays and Pointers in C

Project 5 Handling Bit Arrays and Pointers in C CS 255 Project 5 Handling Bit Arrays and Pointers in C Due: Thursday, Apr. 30 by 8:00am. No late submissions! Assignment: This homework is adapted from the CS450 Assignment #1 that Prof. Mandelberg uses

More information

Lecture 07 Debugging Programs with GDB

Lecture 07 Debugging Programs with GDB Lecture 07 Debugging Programs with GDB In this lecture What is debugging Most Common Type of errors Process of debugging Examples Further readings Exercises What is Debugging Debugging is the process of

More information

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is

More information

The make Utility in Unix SEEM

The make Utility in Unix SEEM The make Utility in Unix SEEM 3460 1 Recall the reverse Module reverse.h 1 /* reverse.h */ 2 3 void reverse (char *before, char *after); 4 /* Declare but do not define this function */ SEEM 3460 2 Recall

More information

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

SU2017. LAB 1 (May 4/9) Introduction to C, Function Declaration vs. Definition, Basic I/O (scanf/printf, getchar/putchar) SU2017. LAB 1 (May 4/9) Introduction to C, Function Declaration vs. Definition, Basic I/O (scanf/printf, getchar/putchar) 1 Problem A 1.1 Specification Write an ANSI-C program that reads input from the

More information

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES OF OPERATING SYSTEMS PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)

More information

School of Computer Science Introduction to Algorithms and Programming Winter Midterm Examination # 1 Wednesday, February 11, 2015

School of Computer Science Introduction to Algorithms and Programming Winter Midterm Examination # 1 Wednesday, February 11, 2015 Page 1 of 8 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2015 Midterm Examination # 1 Wednesday, February 11, 2015 Marking Exemplar Duration of examination: 75

More information

Lecture 7: file I/O, more Unix

Lecture 7: file I/O, more Unix CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 7: file

More information

Student Number: Computer Science 211b Final Examination. 28 April hours

Student Number: Computer Science 211b Final Examination. 28 April hours Computer Science 211b Final Examination 28 April 2006 3 hours Student Number: Surname: Given name: Instructions/Notes: The examination has 40 questions on 15 pages, and a total of 150 marks. Put all answers

More information

Programming Tips for CS758/858

Programming Tips for CS758/858 Programming Tips for CS758/858 January 28, 2016 1 Introduction The programming assignments for CS758/858 will all be done in C. If you are not very familiar with the C programming language we recommend

More information

Creating a Shell or Command Interperter Program CSCI411 Lab

Creating a Shell or Command Interperter Program CSCI411 Lab Creating a Shell or Command Interperter Program CSCI411 Lab Adapted from Linux Kernel Projects by Gary Nutt and Operating Systems by Tannenbaum Exercise Goal: You will learn how to write a LINUX shell

More information

United States Naval Academy Electrical and Computer Engineering Department EC310-6 Week Midterm Spring AY2017

United States Naval Academy Electrical and Computer Engineering Department EC310-6 Week Midterm Spring AY2017 United States Naval Academy Electrical and Computer Engineering Department EC310-6 Week Midterm Spring AY2017 1. Do a page check: you should have 8 pages including this cover sheet. 2. You have 50 minutes

More information

Programming in C in a UNIX environment

Programming in C in a UNIX environment Programming in C in a UNIX environment Software Development Lifecycle Understand the requirements Develop the algorithm/approach Write the code Debug the code Test the code Iterate until you get it right

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

Lecture 03 Bits, Bytes and Data Types

Lecture 03 Bits, Bytes and Data Types Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics

More information

ECE264 Spring 2013 Exam 1, February 14, 2013

ECE264 Spring 2013 Exam 1, February 14, 2013 ECE264 Spring 2013 Exam 1, February 14, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.

More information

CSCE C. Lab 10 - File I/O. Dr. Chris Bourke

CSCE C. Lab 10 - File I/O. Dr. Chris Bourke CSCE 155 - C Lab 10 - File I/O Dr. Chris Bourke Prior to Lab Before attending this lab: 1. Read and familiarize yourself with this handout. 2. Review the following free textbook resources: http://en.wikibooks.org/wiki/c_programming/file_io

More information

CSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community

CSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community CSCI-43 Exam Review February, 01 Presented by the RIT Computer Science Community http://csc.cs.rit.edu C Preprocessor 1. Consider the following program: 1 # include 3 # ifdef WINDOWS 4 # include

More information

#include <stdio.h> int main() { char s[] = Hsjodi, *p; for (p = s + 5; p >= s; p--) --*p; puts(s); return 0;

#include <stdio.h> int main() { char s[] = Hsjodi, *p; for (p = s + 5; p >= s; p--) --*p; puts(s); return 0; 1. Short answer questions: (a) Compare the typical contents of a module s header file to the contents of a module s implementation file. Which of these files defines the interface between a module and

More information

Midterm Examination - Answers October 25, 2012 In Class Instructor: Joseph Vybihal

Midterm Examination - Answers October 25, 2012 In Class Instructor: Joseph Vybihal McGill University School of Computer Science Introduction to Computer Systems Midterm Examination - Answers October 25, 2012 In Class Instructor: Joseph Vybihal Student Name: Student ID: Instructions No

More information

Fundamentals of Programming Session 8

Fundamentals of Programming Session 8 Fundamentals of Programming Session 8 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2013 These slides have been created using Deitel s slides Sharif University of Technology Outlines

More information

1. The Mac Environment in Sierra Hall 1242

1. The Mac Environment in Sierra Hall 1242 Wednesday, August 26, 2015 Lab Notes Topics for today The Mac Environment C (and Unix) Notes on C Part 1 Program 1 1. The Mac Environment in Sierra Hall 1242 a. Turning on the Mac If the Mac is in sleep

More information

ECE264 Spring 2014 Exam 2, March 11, 2014

ECE264 Spring 2014 Exam 2, March 11, 2014 ECE264 Spring 2014 Exam 2, March 11, 2014 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.

More information

Unit 6 Files. putchar(ch); ch = getc (fp); //Reads single character from file and advances position to next character

Unit 6 Files. putchar(ch); ch = getc (fp); //Reads single character from file and advances position to next character 1. What is File management? In real life, we want to store data permanently so that later on we can retrieve it and reuse it. A file is a collection of bytes stored on a secondary storage device like hard

More information

Signature: ECE 551 Midterm Exam

Signature: ECE 551 Midterm Exam Name: ECE 551 Midterm Exam NetID: There are 7 questions, with the point values as shown below. You have 75 minutes with a total of 75 points. Pace yourself accordingly. This exam must be individual work.

More information

MARKS: Q1 /20 /15 /15 /15 / 5 /30 TOTAL: /100

MARKS: Q1 /20 /15 /15 /15 / 5 /30 TOTAL: /100 FINAL EXAMINATION INTRODUCTION TO ALGORITHMS AND PROGRAMMING II 03-60-141-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Winter 2014 Last Name: First Name: Student

More information

M.CS201 Programming language

M.CS201 Programming language Power Engineering School M.CS201 Programming language Lecture 9 Lecturer: Prof. Dr. T.Uranchimeg Agenda The char Data Type Using Character Variables Printing extended ASCII characters Arrays of Characters

More information

Personal SE. Functions, Arrays, Strings & Command Line Arguments

Personal SE. Functions, Arrays, Strings & Command Line Arguments Personal SE Functions, Arrays, Strings & Command Line Arguments Functions in C Syntax like Java methods but w/o public, abstract, etc. As in Java, all arguments (well, most arguments) are passed by value.

More information

C programming basics T3-1 -

C programming basics T3-1 - C programming basics T3-1 - Outline 1. Introduction 2. Basic concepts 3. Functions 4. Data types 5. Control structures 6. Arrays and pointers 7. File management T3-2 - 3.1: Introduction T3-3 - Review of

More information

Dalhousie University CSCI 2132 Software Development Winter 2018 Midterm Examination II March 12 15:37-16:24

Dalhousie University CSCI 2132 Software Development Winter 2018 Midterm Examination II March 12 15:37-16:24 Dalhousie University CSCI 2132 Software Development Winter 2018 Midterm Examination II March 12 15:37-16:24 Student Name: Student ID Number: FCS Username (CSID): Signature: Please Note: These solutions

More information

Floating-point lab deadline moved until Wednesday Today: characters, strings, scanf Characters, strings, scanf questions clicker questions

Floating-point lab deadline moved until Wednesday Today: characters, strings, scanf Characters, strings, scanf questions clicker questions Announcements Thursday Extras: CS Commons on Thursdays @ 4:00 pm but none next week No office hours next week Monday or Tuesday Reflections: when to use if/switch statements for/while statements Floating-point

More information

Darshan Institute of Engineering & Technology for Diploma Studies Unit 6

Darshan Institute of Engineering & Technology for Diploma Studies Unit 6 1. What is File management? In real life, we want to store data permanently so that later on we can retrieve it and reuse it. A file is a collection of bytes stored on a secondary storage device like hard

More information

CSE 303 Midterm Exam

CSE 303 Midterm Exam CSE 303 Midterm Exam October 29, 2008 Name Sample Solution The exam is closed book, except that you may have a single page of hand written notes for reference. If you don t remember the details of how

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017)

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017) UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall 2017 Programming Assignment 1 (updated 9/16/2017) Introduction The purpose of this programming assignment is to give you

More information

C introduction: part 1

C introduction: part 1 What is C? C is a compiled language that gives the programmer maximum control and efficiency 1. 1 https://computer.howstuffworks.com/c1.htm 2 / 26 3 / 26 Outline Basic file structure Main function Compilation

More information

CSE 5A Introduction to Programming I (C) Homework 4

CSE 5A Introduction to Programming I (C) Homework 4 CSE 5A Introduction to Programming I (C) Homework 4 Read Chapter 7 Due: Friday, October 26 by 6:00pm All programming assignments must be done INDIVIDUALLY by all members of the class. Start early to ensure

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

File I/O. Arash Rafiey. November 7, 2017

File I/O. Arash Rafiey. November 7, 2017 November 7, 2017 Files File is a place on disk where a group of related data is stored. Files File is a place on disk where a group of related data is stored. C provides various functions to handle files

More information

CGS 3460 Summer 07 Midterm Exam

CGS 3460 Summer 07 Midterm Exam Short Answer 3 Points Each 1. What would the unix command gcc somefile.c -o someotherfile.exe do? 2. Name two basic data types in C. 3. A pointer data type holds what piece of information? 4. This key

More information

Assignment Number 8 Lab Assignment Due Date: Wednesday, October 31, 2018 CS 1057 C Programming - Fall 2018

Assignment Number 8 Lab Assignment Due Date: Wednesday, October 31, 2018 CS 1057 C Programming - Fall 2018 Assignment Number 8 Lab Assignment Due Date: Wednesday, October 31, 2018 CS 1057 C Programming - Fall 2018 Purpose: create a batch program use a version control system to obtain data (git) read and process

More information

Recitation 2/18/2012

Recitation 2/18/2012 15-213 Recitation 2/18/2012 Announcements Buflab due tomorrow Cachelab out tomorrow Any questions? Outline Cachelab preview Useful C functions for cachelab Cachelab Part 1: you have to create a cache simulator

More information

mith College Computer Science CSC231 Bash Labs Week #10, 11, 12 Spring 2017 Introduction to C Dominique Thiébaut

mith College Computer Science CSC231 Bash Labs Week #10, 11, 12 Spring 2017 Introduction to C Dominique Thiébaut mith College CSC231 Bash Labs Week #10, 11, 12 Spring 2017 Introduction to C Dominique Thiébaut dthiebaut@smith.edu Learning C in 4 Hours! D. Thiebaut Dennis Ritchie 1969 to 1973 AT&T Bell Labs Close to

More information

Answer all questions. Write your answers only in the space provided. Full marks = 50

Answer all questions. Write your answers only in the space provided. Full marks = 50 Answer all questions. Write your answers only in the space provided. Full marks = 50 1. Answer the following: [2+3+2+1=8 marks] a) What are the minimum and maximum numbers that can be represented in 10-bit

More information

CS 470 Operating Systems Spring 2013 Shell Project

CS 470 Operating Systems Spring 2013 Shell Project CS 470 Operating Systems Spring 2013 Shell Project 40 points Out: January 11, 2013 Due: January 25, 2012 (Friday) The purpose of this project is provide experience with process manipulation and signal

More information

ECE264 Fall 2013 Exam 1, September 24, 2013

ECE264 Fall 2013 Exam 1, September 24, 2013 ECE264 Fall 2013 Exam 1, September 24, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.

More information

1. The Mac Environment in SIE 1222

1. The Mac Environment in SIE 1222 Friday, September 1, 2017 Lab Notes Topics for today The Mac Environment C (and Unix) Notes on C Part 1 Program 1 1. The Mac Environment in SIE 1222 a. Turning on the Mac If the Mac is in sleep mode you

More information

Lab Exam 1 D [1 mark] Give an example of a sample input which would make the function

Lab Exam 1 D [1 mark] Give an example of a sample input which would make the function Grade: / 20 Lab Exam 1 D500 1. [1 mark] Give an example of a sample input which would make the function scanf( "%f", &f ) return 0? Answer: Anything that is not a floating point number such as 4.567 or

More information

NYU SCPS X Section 1 Unix Tools. Fall 2004 Handout 5

NYU SCPS X Section 1 Unix Tools. Fall 2004 Handout 5 Fall 2004 Handout 5 Time a program: pp. 69, 92 1 /* This program is looper.c. It takes a long time to do nothing. */ 2 #include 3 #include 4 5 void f(void); 6 void g(void); 7 8 int

More information

CS 3113 Introduction to Operating Systems Midterm October 11, 2018

CS 3113 Introduction to Operating Systems Midterm October 11, 2018 General instructions: CS 3113 Introduction to Operating Systems Midterm October 11, 2018 Please wait to open this exam booklet until you are told to do so. This examination booklet has 10 pages. You also

More information

CS 3113 Introduction to Operating Systems Midterm October 11, 2018

CS 3113 Introduction to Operating Systems Midterm October 11, 2018 General instructions: CS 3113 Introduction to Operating Systems Midterm October 11, 2018 Please wait to open this exam booklet until you are told to do so. This examination booklet has 10 pages. You also

More information

Vi & Shell Scripting

Vi & Shell Scripting Vi & Shell Scripting Comp-206 : Introduction to Week 3 Joseph Vybihal Computer Science McGill University Announcements Sina Meraji's office hours Trottier 3rd floor open area Tuesday 1:30 2:30 PM Thursday

More information

Problem Set 1: Unix Commands 1

Problem Set 1: Unix Commands 1 Problem Set 1: Unix Commands 1 WARNING: IF YOU DO NOT FIND THIS PROBLEM SET TRIVIAL, I WOULD NOT RECOMMEND YOU TAKE THIS OFFERING OF 300 AS YOU DO NOT POSSESS THE REQUISITE BACKGROUND TO PASS THE COURSE.

More information

The University of Nottingham

The University of Nottingham The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 2 MODULE, AUTUMN SEMESTER 2008 2009 C/C++ for Java Programmers Time allowed TWO hours Candidates may complete the front cover of their answer

More information

Programming Assignment 1 (PA1) - Display Bowtie

Programming Assignment 1 (PA1) - Display Bowtie Programming Assignment 1 (PA1) - Display Bowtie Milestone Due: Final Due: Wednesday, April 18 @ 11:59 pm Wednesday, April 25 @ 11:59 pm Example Input Milestone Functions Unit Testing Extra Credit Detailed

More information

Laboratory 1 Semester 1 11/12

Laboratory 1 Semester 1 11/12 CS2106 National University of Singapore School of Computing Laboratory 1 Semester 1 11/12 MATRICULATION NUMBER: In this lab exercise, you will get familiarize with some basic UNIX commands, editing and

More information

In this introduction to UNIX, only the dumb terminal (also known as the command line ) interface is discussed.

In this introduction to UNIX, only the dumb terminal (also known as the command line ) interface is discussed. COE808 Lab1: C programming lab Prelab preparation Before coming to the lab you should: 1. Read the lab. The most recent version can be found at the URL: www.ee.ryerson.ca/~courses/coe808 2. Try to prepare

More information

Numara FootPrints Changelog January 26, 2009

Numara FootPrints Changelog January 26, 2009 Numara FootPrints 9.0.3 Changelog January 26, 2009 Address Book The logo in the Address Book always pointed to the Numara Software URL. Address book fields were missing from a number of features in FootPrints

More information

Unix and C Program Development SEEM

Unix and C Program Development SEEM Unix and C Program Development SEEM 3460 1 Operating Systems A computer system cannot function without an operating system (OS). There are many different operating systems available for PCs, minicomputers,

More information

mith College Computer Science CSC352 Week #7 Spring 2017 Introduction to C Dominique Thiébaut

mith College Computer Science CSC352 Week #7 Spring 2017 Introduction to C Dominique Thiébaut mith College CSC352 Week #7 Spring 2017 Introduction to C Dominique Thiébaut dthiebaut@smith.edu Learning C in 2 Hours D. Thiebaut Dennis Ritchie 1969 to 1973 AT&T Bell Labs Close to Assembly Unix Standard

More information

BLM2031 Structured Programming. Zeyneb KURT

BLM2031 Structured Programming. Zeyneb KURT BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help

More information

A First Book of ANSI C Fourth Edition. Chapter 9 Character Strings

A First Book of ANSI C Fourth Edition. Chapter 9 Character Strings A First Book of ANSI C Fourth Edition Chapter 9 Character Strings Objectives String Fundamentals Library Functions Input Data Validation Formatting Strings (Optional) Case Study: Character and Word Counting

More information

Have examined process Creating program Have developed program Written in C Source code

Have examined process Creating program Have developed program Written in C Source code Preprocessing, Compiling, Assembling, and Linking Introduction In this lesson will examine Architecture of C program Introduce C preprocessor and preprocessor directives How to use preprocessor s directives

More information

Organization of a file

Organization of a file File Handling 1 Storage seen so far All variables stored in memory Problem: the contents of memory are wiped out when the computer is powered off Example: Consider keeping students records 100 students

More information

ECE264 Spring 2013 Final Exam, April 30, 2013

ECE264 Spring 2013 Final Exam, April 30, 2013 ECE264 Spring 2013 Final Exam, April 30, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing

More information

Getting Started. Project 1

Getting Started. Project 1 Getting Started Project 1 Project 1 Implement a shell interface that behaves similarly to a stripped down bash shell Due in 3 weeks September 21, 2015, 11:59:59pm Specification, grading sheet, and test

More information

UNIVERSITY OF WINDSOR Winter 2007 QUIZ # 1 Solution. Examiner:Ritu Chaturvedi Dated : Feb 7 th, Student Name: Student Number:

UNIVERSITY OF WINDSOR Winter 2007 QUIZ # 1 Solution. Examiner:Ritu Chaturvedi Dated : Feb 7 th, Student Name: Student Number: UNIVERSITY OF WINDSOR 60-106-01 Winter 2007 QUIZ # 1 Solution Examiner:Ritu Chaturvedi Dated : Feb 7 th, 2007. Student Name: Student Number: INSTRUCTIONS (Please Read Carefully) No calculators allowed.

More information

Lab Exam 1 D [1 mark] Give an example of a sample input which would make the function

Lab Exam 1 D [1 mark] Give an example of a sample input which would make the function CMPT 127 Spring 2019 Grade: / 20 First name: Last name: Student Number: Lab Exam 1 D400 1. [1 mark] Give an example of a sample input which would make the function scanf( "%f", &f ) return -1? Answer:

More information

CSCI 2132 Final Exam Solutions

CSCI 2132 Final Exam Solutions Faculty of Computer Science 1 CSCI 2132 Final Exam Solutions Term: Fall 2018 (Sep4-Dec4) 1. (12 points) True-false questions. 2 points each. No justification necessary, but it may be helpful if the question

More information

CSCI 2132 Final Exam Solutions

CSCI 2132 Final Exam Solutions Faculty of Computer Science 1 CSCI 2132 Final Exam Solutions Term: Fall 2018 (Sep4-Dec4) 1. (12 points) True-false questions. 2 points each. No justification necessary, but it may be helpful if the question

More information

CSE 303, Spring 2009 Final Exam Wednesday, June 10, 2009

CSE 303, Spring 2009 Final Exam Wednesday, June 10, 2009 CSE 303, Spring 2009 Final Exam Wednesday, June 10, 2009 Personal Information: Name: Student ID #: You have 110 minutes to complete this exam. You may receive a deduction if you keep working after the

More information

Introduction to Supercomputing

Introduction to Supercomputing Introduction to Supercomputing TMA4280 Introduction to UNIX environment and tools 0.1 Getting started with the environment and the bash shell interpreter Desktop computers are usually operated from a graphical

More information

EKT332 COMPUTER NETWORK

EKT332 COMPUTER NETWORK EKT332 COMPUTER NETWORK LAB 1 INTRODUCTION TO GNU/LINUX OS Lab #1 : Introduction to GNU/Linux OS Objectives 1. Introduction to Linux File System (Red Hat Distribution). 2. Introduction to various packages

More information

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

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011 Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Spring 2011 Outline Using Secure Shell Clients GCC Some Examples Intro to C * * Windows File transfer client:

More information

Computers and Computation. The Modern Computer. The Operating System. The Operating System

Computers and Computation. The Modern Computer. The Operating System. The Operating System The Modern Computer Computers and Computation What is a computer? A machine that manipulates data according to instructions. Despite their apparent complexity, at the lowest level computers perform simple

More information

ECE 264 Exam 2. 6:30-7:30PM, March 9, You must sign here. Otherwise you will receive a 1-point penalty.

ECE 264 Exam 2. 6:30-7:30PM, March 9, You must sign here. Otherwise you will receive a 1-point penalty. ECE 264 Exam 2 6:30-7:30PM, March 9, 2011 I certify that I will not receive nor provide aid to any other student for this exam. Signature: You must sign here. Otherwise you will receive a 1-point penalty.

More information

Programming in C First meeting

Programming in C First meeting Programming in C First meeting 8.9.2016 Tiina Niklander Faculty of Science Department of Computer Science www.cs.helsinki.fi 8.9.2016 1 Course structure Weekly exercise deadline on Wednesday, lectures

More information

Program Organization and Comments

Program Organization and Comments C / C++ PROGRAMMING Program Organization and Comments Copyright 2013 Dan McElroy Programming Organization The layout of a program should be fairly straight forward and simple. Although it may just look

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

CSCI 171 Chapter Outlines

CSCI 171 Chapter Outlines Contents CSCI 171 Chapter 1 Overview... 2 CSCI 171 Chapter 2 Programming Components... 3 CSCI 171 Chapter 3 (Sections 1 4) Selection Structures... 5 CSCI 171 Chapter 3 (Sections 5 & 6) Iteration Structures

More information

Make sure the version number is marked on your scantron sheet. This is Version 1

Make sure the version number is marked on your scantron sheet. This is Version 1 Last Name First Name McGill ID Make sure the version number is marked on your scantron sheet. This is Version 1 McGill University COMP 208 -- Computers in Engineering Mid-Term Examination Tuesday, March

More information

CS113: Lecture 7. Topics: The C Preprocessor. I/O, Streams, Files

CS113: Lecture 7. Topics: The C Preprocessor. I/O, Streams, Files CS113: Lecture 7 Topics: The C Preprocessor I/O, Streams, Files 1 Remember the name: Pre-processor Most commonly used features: #include, #define. Think of the preprocessor as processing the file so as

More information

Sample Examination. Family Name:... Other Names:... Signature:... Student Number:...

Sample Examination. Family Name:... Other Names:... Signature:... Student Number:... Family Name:... Other Names:... Signature:... Student Number:... THE UNIVERSITY OF NEW SOUTH WALES SCHOOL OF COMPUTER SCIENCE AND ENGINEERING Sample Examination COMP1917 Computing 1 EXAM DURATION: 2 HOURS

More information

${Unix_Tools} exercises and solution notes

${Unix_Tools} exercises and solution notes ${Unix_Tools exercises and solution notes Markus Kuhn Computer Science Tripos Part IB The shell Exercise : Write a shell command line that appends :/usr/xr6/man to the end of the environment variable $MANPATH.

More information

Chapter 10: File Input / Output

Chapter 10: File Input / Output C: Chapter10 Page 1 of 6 C Tutorial.......... File input/output Chapter 10: File Input / Output OUTPUT TO A FILE Load and display the file named formout.c for your first example of writing data to a file.

More information

CSC209H1S Day Midterm Solutions Winter 2010

CSC209H1S Day Midterm Solutions Winter 2010 Duration: Aids Allowed: 50 minutes 1-8.5x11 sheet Student Number: Last Name: SOLUTION First Name: Instructor: Karen Reid Do not turn this page until you have received the signal to start. (In the meantime,

More information

today cs3157-fall2002-sklar-lect05 1

today cs3157-fall2002-sklar-lect05 1 today homework #1 due on monday sep 23, 6am some miscellaneous topics: logical operators random numbers character handling functions FILE I/O strings arrays pointers cs3157-fall2002-sklar-lect05 1 logical

More information