Programming and CS - Getting Started
We are developing bootcamps on the most important topics and skills that are used throughout our courses. These can be used by incoming undergraduate students to get a head start, incoming graduate students to review, or current students to refresh/remediate.
Programming Bootcamps
Python
Getting started with Python and this bootcamp.
- Follow along this tutorial -
- Work on solving these problems - https://www.hackerrank.com/domains/python
- Get Python installed on your computer -
- If you are a current or incoming ISU student, or an ISU alumni, sign up for the ISU CS Mattermost, go there to get help.
C
Algorithms and Data Structures
Data Structures
Algorithms
Using Linux, CS Systems
Reading
To begin with, read through - Linux Tutorial
System Setup
Next, you need to have a Linux system that you can use.
ISU CS Account
If you are a student in a CS course at ISU you will be given an account on the CS linux systems (see CS Accounts and CS Lab Computers).
Linux on Your Computer
You can also download and install VirtualBox on your computer, download a Linux install image (e.g., Ubuntu Linux), and then install Linux into your virtual box.
Mac OS X
You can also use a Mac OS X computer - most (but not all) commands are the same on Linux and Mac OS X. On Mac OS X, to get to the terminal you click on Finder, then Applications, then Utilities, then Terminal.
Try it Out
Once you have your Linux system to try out, open up the terminal (also called the shell, or command prompt), and you are ready to try out some commands. Note that all commands in Linux are case-sensitive.
System Information, Part 1
The following are some commands to print information about the system.
- uptime - how long since last system reboot
- df - information about disk free space
- whomi - which user is currently logged in on the terminal
- hostname - what computer are you currently running commands on
- pwd - which directory are you inside of
- clear - clear the terminal screen
Here is an example session from running on the CS server using all of these commands.
cs299@cs:~> uptime 09:00:45 up 56 days, 19:35, 3 users, load average: 0.32, 0.31, 0.32 cs299@cs:~> df -h Filesystem Size Used Avail Use% Mounted on /dev/root 1016G 229G 778G 23% / devtmpfs 498G 0 498G 0% /dev tmpfs 32M 2.3M 30M 8% /run tmpfs 498G 8.0K 498G 1% /dev/shm cgroup_root 8.0M 0 8.0M 0% /sys/fs/cgroup /dev/sda2 127G 22G 105G 17% /usr /dev/sda3 127G 8.3G 118G 7% /var /dev/sda4 64G 13G 51G 20% /tmp /dev/sda5 10T 2.8T 7.2T 28% /u1 /dev/sda6 4.0T 685G 3.3T 18% /net /dev/sda7 18T 6.9T 11T 40% /store cs299@cs:~> whoami cs299 cs299@cs:~> hostname cs.indstate.edu cs299@cs:~> pwd /u1/class/cs299
Files and Directories, Part 1
With the terminal you can create, copy, move, and delete files and directories. The following are the most important commands to do this.
- cd - change directory
- mkdir - make a new directory
- ls - list directory contents
- cp - copy files
- rm - remove files (be careful, there is no recycle bin or trash - once you delete, it's gone)
- rmdir - remove directory
- nano - simple text editor
And here is a transcript of the use of these commands on the CS server.
cs299@cs:~> pwd /u1/class/cs299 cs299@cs:~> mkdir new-dir1 cs299@cs:~> mkdir new-dir2 cs299@cs:~> nano hello.txt cs299@cs:~> ls bin/ hello.txt new-dir1/ new-dir2/ proto/ cs299@cs:~> cp hello.txt new-dir1 cs299@cs:~> cp hello.txt new-dir2/hello2.txt cs299@cs:~> ls new-dir1 hello.txt cs299@cs:~> ls new-dir2 hello2.txt cs299@cs:~> mv new-dir2 new-dir3 cs299@cs:~> ls bin/ hello.txt new-dir1/ new-dir3/ proto/ cs299@cs:~> rm hello.txt cs299@cs:~> ls bin/ new-dir1/ new-dir3/ proto/ cs299@cs:~> rmdir new-dir3 rmdir: failed to remove 'new-dir3': Directory not empty cs299@cs:~> rm new-dir3/hello2.txt cs299@cs:~> rmdir new-dir3 cs299@cs:~> ls bin/ new-dir1/ proto/