======================================================================== I need to prepare the next 3-hour TP session in which you will actually make some modifications to a piece of free software. I want to make it fun and interesting for you, but not too hard; hence I need to get an idea of your level of experience. Please try to give the answer you think is most reasonable to EVERY question. This questionnaire is ANONYMOUS. ======================================================================== What are `CVS' and `SVN'? [ ] Programming languages [ ] Text editors [ ] Revision control systems [ ] Licenses [ ] Operating systems [ ] Compilers [ ] Online chat systems [ ] Old computers What do you know about compilers? [ ] I know what 'frontends' and 'backends' are [ ] I can at least understand a finite-state automaton [ ] I can at least understand a context-free grammar [ ] I can at least understand an attributed grammar [ ] I can write a recursive descent parser, by hand [ ] I can make a parser using an automatic tool like Yacc, Bison, Coco, Antlr, Happy, or something similar [ ] I've written at least one simple interpreter, without the frontend [ ] I've written at least one simple interpreter [ ] I've written at least one simple compiler [ ] I don't know what 'automaton' or 'grammar' means Among the following ones, which is the programming language you feel strongest at? [ ] C [ ] C++ [ ] Java [ ] ML [ ] Pascal [ ] Perl [ ] Python Which programming language would you like to use for the TP? [ ] C [ ] C++ [ ] Java [ ] Lisp (the task would be made easier in this case) [ ] ML [ ] Pascal [ ] Perl [ ] Python Think you are logged in at a typical GNU/Linux (or other Unix-like) system, and you have a text file README in your home directory, containing only the text "toto", with no final newline. What's the output of the sh command sort ~/README | grep foo ? [ ] The output is empty [ ] A 'broken pipe' error message [ ] toto [ ] foo On the same system, what's the output of for i in `seq 1 100`; do echo $i; done ? [ ] The sequence of natural numbers from 1 to 100, one per line [ ] The sequence of natural numbers from 1 to 100, all on the same line [ ] One hundred lines containing the text "$i" [ ] An error message On the same system, what's the output of for i in `seq 1 100`; do $i; done ? (there is no "echo" this time) [ ] One error message [ ] One hundred error messages On the same system, what's the output of X=10; echo $(( $X + $X )) ? [ ] "$(( 10 + 10 ))" [ ] "$(( $X + $X ))" [ ] "20" [ ] An error message On my system ls -l gives the output total 8 -r-x------ 1 luca luca 7431 Nov 6 23:14 not-readable What's the meaning of "-r-x------"? [ ] It's the file name [ ] It's a description of file permissions [ ] It's the beginning of the file contents [ ] It's the file license gets() is a C library function, taking a single parameter P of type char*; it copies an arbitrarily long string written on the terminal by the user into memory, starting at the address P. Why is it a *bad* idea to use gets()? [ ] It has exponential time complexity in the worst case [ ] It has exponential space complexity in the worst case [ ] It's encumbered by a software patent [ ] It causes buffer overflows [ ] scanf() is easier to use and does the same job [ ] It's non-standard The following snippet of C code is compiled by a typical compiler into machine code running on typical (modern) hardware: #define N 20000 char a[N][N]; void f(void){ int i, j; for(i = 0; i < N; i++) for(j = 0; j < N; j++) a[i][j] = 'x'; } void g(void){ int i, j; for(i = 0; i < N; i++) for(j = 0; j < N; j++) a[j][i] = 'x'; } Do you think that f() and g() have very different running times? [ ] Yes, one of the functions is much faster than the other one [ ] No, they take the same time to complete or there is only a very small difference Why? ____________________________________________________________ ________________________________________________________________ Linux (Linux is the *kernel*, not the whole operating system) is written in C. How long do you think its source code is? Try to make a realistic estimation. [ ] between 1,000 and 10,000 lines [ ] between 10,000 and 100,000 lines [ ] between 100,000 and 1,000,000 lines [ ] between 1,000,000 and 10,000,000 lines [ ] between 10,000,000 and 100,000,000 lines GCC is also written in C. How long do you think its source code is? Try to make a realistic estimation. [ ] between 1,000 and 10,000 lines [ ] between 10,000 and 100,000 lines [ ] between 100,000 and 1,000,000 lines [ ] between 1,000,000 and 10,000,000 lines [ ] between 10,000,000 and 100,000,000 lines How long is the largest program written by *you*? Try to make a realistic estimation if you don't remember: [ ] less than 1,000 lines [ ] between 1,000 and 10,000 lines [ ] between 10,000 and 100,000 lines [ ] between 100,000 and 1,000,000 lines [ ] between 1,000,000 and 10,000,000 lines [ ] between 10,000,000 and 100,000,000 lines [ ] more than 100,000,000 lines