Week 01 Tutorial Sample Answers
-
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.
-
Get to know your tutor - How long have they been at UNSW College? What are they
studying? How can you get in contact with them?
Answered in tute.
-
Do you have any questions about the course so far? e.g. course website,
structure, assessments
See the course outline for details.
-
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.
-
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 DPST1091 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.
-
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, e.g.:
- Take a jar of peanut butter.
- Remove the lid from the jar by unscrewing it, and place it on the table next to you.
- Carefully open the bag of bread, without damaging the bread inside, and remove two slices of bread.
- Place the bread on the table next to you, lying flat.
- Take a butterknife, hold it by the handle, and put it into the jar of peanut butter.
- 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.
-
What is an operating system and what operating system are we going to use in this course?
What are the differences between graphical user interfaces and the command line? When might one be better than the other?
An operating system (OS) is a series of computer programs (software) that runs on your computer.
Its main function is to manage the running of the computer (keeping things like your mouse and keyboard accessible and keeping hardware drivers up to date) as well as providing an interface for programs to run.
For us in DPST1091, we'll be accessing some of the capability of the operating system when we ask our computer to run our programs.
Common operating systems are Microsoft Windows, Apple OSX and many versions of UNIX/Linux.
In terms of interaction, most operating systems can either use a GUI (Graphical User Interface), which allows us to interact mostly with a mouse/touchpad and visual elements, or a command line terminal, which allows access purely via text.
A GUI is usually much more user friendly, especially for users unfamiliar with computers.
A command line can, for expert users, be much more efficient than a GUI.
-
Help your tutor to 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; }
Discuss the code inside the
main
function block: in between the braces{}
should be indented to help humans understand that indented code is inside a set of brackets.White space is required between C language keywords. For instance you can't have
intmain
without any space in between.Statements are placed on separate lines. Additional blanks lines can be inserted to enhance readability.
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.
How would you compile this program?
dcc -o face face0.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; }