Draft 0.1

About the Bioinformatics Curriculum

Semester One

Semester one does not include a programming course; instead, the focus of this semester is getting students use to computing using the command-line and Internet.

The Unix I class allows for the introduction of numerous topics: programs (commands) and the role of options and arguments; reading documentation in the form of manual pages; the concept of variables (via environment variables); directories, files and hierarchical file systems; I/O (the standard input, output and error streams); regular expressions (using shell meta-characters); computer security (passwords, directory and file permissions, PATH setup); text processing (vim or emacs, ispell); general layout of process; inter-process communications (signals); searching using commands such as find and grep; and object-oriented methodology,

The Internet I class teaches students about the basic operations of the Internet (including an overview of the more popular Internet protocols). It prepares students to be effective users of email and usenet; searching the web (google -- allows introduction to regular expressions and boolean expressions); transferring files to/from a server (secure ftp); remote system access (secure shell); creation of webpages (xhtml, css); basic webserver functionality (http and https); the role of client-side processing (javascript); server-side processing (ssi and cgi).

Semester Two

The Unix II class introduces the student to structure programming using the bash script programming language. Regular expressions using egrep. Introduction to the sed and awk script programming languages.

Bash supports functions (functions are pseudo-commands). Bash supports arrays which allows for an introduction to data structures and algorithms (sorting and searching).

The Internet II class covers website design with an emphasis on end-user usability (introduction to human factors, GUI (forms), navigation) and website maintenance. Introduction to XML and the other X-technologies.

The sections of Unix II/Internet II are synchronized such that students use bash to gain an introduction to CGI programming and template-based websites.

Semester Three

Students learn the C programming language in its entirety (pointers, structures, unions, bit-fields) including the Standard C Library (prinf, file I/O).

While learning about C, the student takes their first software engineering class. This class introduces the software development life cycle and various development methodologies. The student learns about the UML notational language in this course.

The third semester Unix class teaches students about software control systems and the system build process. Basic Unix and webserver (Apache) system administration is learned. The student continues working with bash doing both system and web programming.

...To Be Completed

Summary
   Unix I -> Unix II -> C -> C++

   Command-line usage transitions into bash which
   transitions into C which transitions into C++.

Author: G.D.Thurman [gdt@deru.com]
Created: 01 April 2003