CSCI 132, Practical Unix Programming

Textbooks
Elements of programming with Perl, Johson
Teach yourself Unix in 24 hours, Taylor

Lectures
Lecture 1: Algorithm, sum of integers, elements of programming: names, initialization, repetition, condition, parameters
Lecture 2: From algorithm to Perl, declaring variables and naming, until and while loops, if else statements
Lecture 3: Example programs: sequence of squares, turning squares into triangles
Lecture 4: Example programs: Pascal triangle
Lecture 5: Being strict, revisiting variable declaration, string, array, hash, and operators
Lecture 6: Using strings, hash, and arrays to score DNA chunks
Lecture 7: Sorting an array
Lecture 8: More loops, for and foreach, force exit a loop
Lecture 9: Nested loops with examples, detecting string overlaps
Lecture 10: UNIX file system, chapter 3 in UNIX book.
Lecture 11: Using ls, Files and permissions, chapters 4, 5 in UNIX book.
Lecture 12: Creating/removing files and directories, aliases, chapter 6 in UNIX book.
Lecture 13: Identifying and viewing files, file, head, tail, cat, more, wc, etc..., pipes and redirections, chapter 7 in UNIX book.
Lecture 14: Sorting files and searching files for patterns, regular expressions, chapter 8 in UNIX book.
Lecture 15: More regular expression, splicing matrices.
Lecture 16: Perl file I/O, open or die and more..., chapter 6 in Perl book.
Lecture 17: Perl matching and substitution with regular expressions.
Lecture 18: Review and introducing QuBi at Hunter.
Lecture 19: Functions, scope, passing parameters, chapter 7 in Perl book.
Lecture 20: Continue with functions, references.
Lecture 21: Netsted data structures, chapter 8
Lecture 22: More practice with references and structures, example of reading biological data into memory, chapter 8

Grading policy
Homework 30%
Test 1 20%
Test 2 20%
Final 30%

Homework
Homework 1 Due 09/12/08 Solution
Homework 2 Due 09/26/08 Solution
Homework 3 Due 10/17/08 Solution
Homework 4 Due 10/31/08 Solution
Homework 5 Due 11/14/08 Solution
Homework 6 Due last class

Learning goals
To learn the basic UNIX operating system commands and write programs in Perl, with motivating examples from Bioinformatics.