pete > courses > CS 315 Fall 26 > Assignment 0
Assignment 0
Due 2:00pm Thursday, 17 Sep 26. (But will not be collected or graded.)
Linux
All coursework will be done on Linux.
If you have an ARM-based Mac, you will use a machine called weathertop for this purpose, accessible via ssh. Instructions for doing so are here.
If you have an x86 machine (either Windows or Mac), you can use the above option, or you can install Linux within a virtual machine on your own computer. This has the advantage of letting you use a graphical environment for Linux, whereas the the first option is command-line only. Instructions for installing a virtual machine are here.
If you have a Mac and you don’t know whether it’s ARM or x86, open a Terminal and run "uname -m". If the output is arm64, you’ve got an ARM Mac.
I’m assuming all of you have at least been exposed to Linux, so I’m not going to introduce it formally. I will, however, discuss the commands I use the first time I use them. Plus, I’ve written some guidance here. You are also entirely welcome to use the Internet and to ask me (either in person or by email).
C
Our primary programming language will be C. As mentioned in class, I have created a bunch of little C programs that demonstrate how the programming constructs you already know (eg, variable declarations, if-statements, for-loops) look in that language. In order of roughly increasing complexity, you might want to review them:
- variables.c
- if.c
- for.c
- while.c
- func.c
- struct.c
- array.c
- array-for.c
- multi-dimensional-array-with-constants.c
- pointer.c
- dereference.c
- malloc.c
- pointers-and-arrays.c
- array-addresses.c
- change-param-pointer.c
- struct-param-pointer.c
- command-line-args.c
Git
Coursework will be submitted via git (but not github, the distinction of which will become apparent soon). I will discuss git in class, but you can also check out the (free, online) git book, which is the best reference available.
VPN
If you are living off-campus (or expect to work from off-campus) you will need the VPN running to access the git situation we will set up. Instructions here.
Partnerships
Decide, at least for the first assignment, whether you will work alone or with someone else.
If with someone else, you may either find your own partner or have me assign one. At the end of class on Thursday, I will get a list of everyone who wants to work with somebody else but does not yet have a partner and, at the beginning of that afternoon’s lab session, I will assign groups out of that set.