Slowly spreading my tentacles throughout Michigan State

I'm now listed on the Gene Expression in Disease and Development page, as well as on the CompSci faculty page, MicroMolecularGenetics faculty page, QuantBio page, and SysBio page.

It was quite a shock to log into the CompSci cluster at MSU and see my group set as "faculty". As a sysadmin, I've always thought of faculty as people that don't really use UNIX much; am I become them? shudder ;)

I've also formally put forward two classes, for my first year of teaching (starting fall '08). The first one is probably of more general interest:

Introduction to Database-Backed Web Development (CSE 291)

Spring 2009

80 min lecture / 2 hr lab

Prerequisites: CSE 232.  Knowledge of Python is suggested but not required.

The goal of this course is to introduce students to the theory and
practice of database-backed Web site development. By the end of the
course, students will have implemented a simple but complete
interactive "Web 2.0" multiuser Web site in Python with
asynchronous JavaScript (AJAX) features and an SQL database.
Students will learn basic HTML, CSS, SQL, and JavaScript, while
gaining an understanding of client-server programming, software
architecture considerations, automated tests, and basic software
carpentry (version control, source code management, and tools for

Graded work: weekly programming assignment and two short papers.

Justification: database-backed Web development exposes students to
a plethora of modern (and immediately relevant) technologies.
Actually implementing a simple Web site will introduce students to
modern network programming, client-server architecture, and
software architecture design and deployment considerations -- all
practical skills with deep underpinnings in computer science.  I'm
hoping to foster an increased awareness of effective programming
tactics and skills with this course, as well as exposing them to a
variety of technologies and theoretical considerations.

Additional topics, if they can be worked in: usability
consideration; statelessness; REST; scalability; OS/network stack;
OS process/thread/event handling; the Semantic Web; remote APIs and
RPC; trust networks; and social engineering.

I plan to use Quixote and ExtJS for this course: the former because it is simple to grok, and the latter because I like what I've seen of it.

The second course is more research-y:

Open Problems in Bioinformatics (CSE 491)

Fall 2008

One 80 minute lecture, one 80 minute discussion.

Prerequisites: graduate standing in science or engineering.
(There's no way to make an effective prereq list.)

This course will introduce biologists to computational
considerations, and computational scientists to biological
considerations, in the context of modern biological "grand
challenges".  Likely topics include genome-scale annotation,
comparative and regulatory genomics, metagenomics, large-scale
analysis of experimental data, phylogeny, gene and protein
interaction networks, and machine learning techniques.  The
intention is to cross-fertilize interests and expertise, as well as
expose students to considerations in large-scale data analysis and
scientific intference.

The course will be graded on attendance and participation, as well
as a short presentation as part of a group.

Additional potential topics: genome-scale alignments; RNAi/ncRNA;
gene finding; assembly issues; whole-genome phylogenetics; protein
structure; databases, data integration, and data warehousing.

Neither of these courses overlaps much with anything else offered at MSU (or anywhere else, AFAIK).



Legacy Comments

Posted by Brett on 2007-09-27 at 18:24.

I wish I had a class that taught me proper testing methodology; never
did throughout my entire masters degree and the handful of courses I
have taken for my Ph.D or as an undergrad while getting my philosophy
degree.  Heck, I had an instance where my regression tests ended up
being used by the entire class to test compliance of their compilers.
Now the real trick is whether you can also get them to use a VCS, even
if it  a distributed one and only on their machine.  =)    Cheers to
Professor Brown (or Dr. Brown, or Titus, or C. or whatever you will
have your students call you) for teaching stuff that is helpful not
just for the real world but for simply trying to get your homework

Posted by Titus Brown on 2007-10-01 at 14:25.

Thanks for the positive comments, Brett -- I'll probably have to go by
Dr. Brown to the undergrads, that seems to the general rule.  I'd
prefer to go by Titus -- Dr. Brown is my father, not me! -- but we'll
see.    Incidentally, using either a central svn repository or a
distributed VCS (not sure which) will be a **requirement** for the
course...    --titus

Posted by Titus Brown on 2007-10-01 at 14:35.

One quick note: these two courses have been accepted by the CSE dept
and will be posted as CSE 291 and CSE 891.  In order to cross-list
with other depts and fulfill grad student requirements, I changed the
891 course to have one lecture by me followed by 2x 40 minute
presentations by students...    --titus

Comments !