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 collaboration). 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).
cheers,
--titus
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 done!
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 !