Class Introduction: COP4610 Recitation 8/27/2010
Class Introduction: COP4610 Recitation 8/27/2010
Class Introduction: COP4610 Recitation 8/27/2010
COP4610 Recitation
8/27/2010
A lot to go over today
TAs
Survey
Recitation and blackboard websites
Syllabus
History of Linux
Project 1
C and /proc
Useful tools
The TAs
Sarah Diesburg
Lead TA, lecturer, grader
Office hours W 12:30-1:30pm, F 3:30-4:30pm
Office location LOV 105-A
Alejandro Cabrera
Grader
Office hours M W 9:00am-10:00am
Office location LOV 105-E
Email us at cop4610t@cs.fsu.edu
Experience Survey
Please fill out and turn in today or Monday
Ill better know how to assist you
Websites
http://www.cs.fsu.edu/~cop4610t/
Also linked off the main class website
Blackboard website on http://campus.fsu.edu
Discussion board
Syllabus Review
Projects: Partners
Projects will be completed in pairs
Choose a partner and send me an email
(cop4610t@cs.fsu.edu) with
The name and email address of your partner
Your FSU card # and made up 4 digit pin (for door
access to OS computer lab)
You need only submit one project per group
Projects: Deliverables
Source code (*.c, *.h files)
README
Makefile
Project Report
Projects: Grading
70% coding, 30% documentation
Even if you can't get a project to compile, be
sure to provide good documentation. You can
still get 30% of the points!
Projects: Error Policy
Document known errors/bugs.
There's a bigger penalty if I find an error in your
program that you did not.
Document what you did not complete in a
program, if a required feature is missing.
It'll be easier to grade.
Projects: Slack Policy
Each student has three days to use to extend
project deadlines.
Example: A project is due Monday. You turn it in
Wednesday. Two slack days are used, no penalty is
incurred. On the next project, it's due on a Tuesday,
you turn it in Wednesday- you're now out of slack
days.
Once you're out of slack days, you lose 10 points
per day a project is late.
A project that is more than three days late gets a
0.
A Note on Projects
Start projects when they're assigned.
They're often trickier than they look.
Might be a bonus for turning a project in early!
Ask questions early.
If you're asking questions, be it to yourself or to others,
you're thinking about the project. This will make it easier
to complete them correctly and on time.
Write small programs to test your program or C
language features you don't understand.
What does execv(ls, -l) do?
Good Coding Style
You'll often have to go back to your program, read through
your logic, and update it to fix errors.
This is MUCH easier if you incorporate good coding style
and practices from the start of a project.
Compare:
Implementing a Shell
Project 1
Implement a shell interface that behaves like
the shell bash.
Due in 3 weeks
September 17, 2010, 11:59:59pm
Project specification is on website, as well as
test suite and grading sheet
Shell: What is it?
The Shell is an interpreter for a simple
programming language.
If you type a command it recognizes, it performs
that command.
How does a Shell recognize a command?
A Shell may also be run via a file.
If the Shell can understand this file, a Shell
script, it will execute all the commands in that
file.
Shells You May Have Seen Before
sh The first Shell produced. Came with the
first Unix.
csh The C-shell,
ksh The Korn shell
tcsh The Tenex C-shell. (used on linprog)
bash The Bourne Again Shell (most Linux)
DOS/cmd The Windows Shell.
Shell Preparation
Ill help prepare you first by reviewing basic C
functions and coding tools
Get very familiar with these, pick a partner, set up
project environment, try to start project
Next week I will go over shell basics, step-by-
step
Programming with the C Standard
Library
Standardized ways to:
Open/close files
Read input
Write output
Manipulate/compare strings
Convert strings into numbers and vice-versa
Allocate/deallocate memory
Sort input (quickly) using a predicate function
Search through input (quickly) using a predicate
function
Much, much more...
Opening and Closing Files
FILE *fopen(const char *file_name, const char *flags)
void fclose(FILE *file)