Thinking in C and *nix (CSC 282 2015S) : EBoards

CSC282 2015S, Class 01: Introduction


Overview

Preliminaries

Admin

Attendance

Questions

The origins of the course

Policies and Procedures

Some principles and practices

Sam expects coders to

Thinking in C

Good C programmers ...

Thinking *nix

Example: C from K and R

char *
fun (char *t, char *s)
{
  while (*t++ = *s++);
  return t;
} // fun

Hypotheses

Detour: A C memory problem

How would you diagnose the following program that crashes?

x = malloc (...);
phase1 ();
phase2 ();
free (x);

Observations:

Hypotheses

Exercises: Some simple tasks

Homework

This will appear online some time in the near future (probably over the weekend).

Repository: https://github.com/Grinnell-CSC282/hw1-2015S

  1. Read chapter 1 of Raymond to get a deeper understanding of the *nix Philosophy.

  2. Find good solutions to all of the tasks above. (That is, write a program or command to solve the task.) Put them in a folder with your name in the GitHub repository.

  3. Make a list of *nix tools and utilities that you've found useful (or even that you've just heard of). Try to categorize and add a short description. Add the tools you've discovered to the tools.md file in the repository.