COMP1511 19T2
COMP1511 19T2
  1. Introduce yourselves, get to know your classmates - Why do they want to study computing? What do they want to learn from this course?
    Answered in tute.
  2. Get to know your tutor - How long have they been at UNSW? What are they studying? How can you get in contact with them?
    Answered in tute.
  3. Do you have any questions about the course so far? eg course website, structure, assessments
    See the course outline for details.
  4. Is it OK to ask a really really basic question on the course forum?
    Yes, definitely - that's what the forum is for.

    Ask anonymously if you are shy - but very likely other students want the same questions answered.

  5. I have a brain the size of a planet and been writing C programs since pre-school - do I need to read the course forum?
    Yes - useful information about running of COMP1511 will appear in the course forum - e.g. clarification of assignment specifications.

    If you are on top of the course materials, you should try answering forum questions.

    This will improve your communication skills and often explaining a topic improves your understanding of it too.

  6. How do you make a peanut-butter sandwich?

    How could you break that process into steps?

    How could you break it down clearly enough that a computer could understand it?

    Maybe your tutor could do a live demonstration of following your exact instructions...

    Computers are very literal, and you need to tell them *exactly* what to do, without assuming they know what anything means.

    For example: "take the peanut butter, and put it on the bread" could mean "pick up the jar of peanut butter and put it on top of the bag of bread".

    You need to be very explicit about every step, eg:

    1. Take a jar of peanut butter.
    2. Remove the lid from the jar by unscrewing it, and place it on the table next to you.
    3. Carefully open the bag of bread, without damaging the bread inside, and remove two slices of bread.
    4. Place the bread on the table next to you, lying flat.
    5. Take a butterknife, hold it by the handle, and put it into the jar of peanut butter.
    6. Carefully move the knife through the peanut butter to scoop up approximately a metric teaspoon of peanut butter, and then carefully spread it over one face of the bread, ensuring that the peanut butter is spread evenly and that you don't tear the bread.
    ... and so on.
  7. What is an operating system?

    What operating systems do your classmates run? The tute room? The CSE lab computers?

    What are the differences between each of the various operating systems? What differences are there in their interfaces, and how do you interact with them?

    What are some different ways in which you can interact with a computer?

    What are the differences between graphical user interfaces and the command line? When might one be better than the other?

  8. Discuss the following features of the sample program from lectures:

    // Author: Andrew Taylor (andrewt@unsw.edu.au)
    // Date created: January 2018
    // A very simple C program
    
    #include <stdio.h>
    
    int main(void) {
        printf("I love COMP1511!\n");
    
        return 0;
    }
    
    • the \n
      It outputs a newline at the end of the line, following the character sequence I love COMP1511, starting the next line of output at the beginning of a new line on the terminal window. It is known as the newline escape sequence.
    • Comments: What should go in a comment? What makes a good comment? How do comments improve program style?

      The comment in the example, is a header comment. You should make sure you have a header comment with your name, date and the purpose of your program at the top of every program you write. Comments can also be added throughout your code to make it easier for a human to understand your program.

    • Indenting and whitespace: What is indented in the sample program? Suggest why.
      The code inside the main function block- in between the braces { and } is indented. This is to help humans read the code!

      White space is required between C language keywords. For instance you can't have intmain without any intermediate space. Statements are placed on separate lines. Additional blanks lines can be inserted to enhance readability (ie. between printf and return). The closing brace } in this example is aligned beneath the type declaration (int) for the main function, to clearly denote the end of the function block.

  9. Write a C program, face0.c, that behaves as follows:
    ./face0
    ~ ~
    0 0
     o
     -
    
    
    Sample solution for face0.c
    #include <stdio.h>
    
    int main(void) {
    
        printf("~ ~\n");
        printf("0 0\n");
        printf(" o\n");
        printf(" -\n");
    
        return 0;
    }
    
    
    How would you compile this program?
    dcc -o face face.c
    
    How could we modify it to make a program, face1.c, look like this instead?
    ./face1
    ~ ~
    0 0
     o
    \_/
    
    
    Sample solution for face1.c
    #include <stdio.h>
    
    int main(void) {
    
        printf("~   ~\n");
        printf("0   0\n");
        printf("  o\n");
        printf(" \\_/\n");
    
        return 0;
    }
    
    

    Revision questions

    The remaining tutorial questions are primarily intended for revision - either this week or later in session.

    Your tutor may still choose to cover some of the questions time permitting.