| BMI-219 – Scientific Software Development |
Spring Quarter – Mission Bay Campus – March 26 - April 13, 2012 / 2-4pm / Room GH-S261 |
Course Description:
Many scientists and engineers spend much of their lives programming, but only a handful have ever been taught how to do this well. As a result, they spend their time wrestling with software instead of doing research, with little idea how reliable or efficient their programs really are. This course is an intensive introduction to basic software development practices for scientists and engineers. The goal is to provide scientists with the skills needed to create more reliable and maintainable programs while reducing the time spent on programming.Course Objectives:
Create more reliable and maintainable computer programs Demonstrate a reduction in the time spent on programming by 20-25% Demonstrate proficiency in use of software development tools and methodology Course Outline:
Note: This course is configured as an intensive 3-week offering in Block 1 of the UCSF spring quarter "mini-course" curriculum. If you are taking other mini-courses spring quarter, then you should register for the entire quarter of courses as "BMI-219." If you are only taking this course and no other mini-courses during the quarter, then register for this course as "BMI-280."
Week 1: Mon – Lecture: Course introduction; software development tools (Shell basics, version control, defect tracking) Tue – Lecture + Lab: Shell programming; software development tools Wed – Lecture: Data modeling Thu – Lecture: Relational database technology Fri – Lab: Database programming Week 2: Mon – Lecture: Web client data model (XML/XHTML/CSS/DOM) Tue – Lecture: Web client programming (HTTP/Forms/JavaScript) Wed – Lab: Web client software development Thu – Lecture: Web applications (CGI/JavaScript/AJAX) Fri – Lecture + Lab: Regular Expressions; Web application development Week 3: Mon – Lecture + Lab: Web security; Web application development Tue – Lecture: Software development techniques (quality assurance, debugging, optimization) Wed – Lab: Team project development Thu – Lab: Team project development Fri – Lecture: Team project presentations**This course is offered Pass/Fail only. Grades are based on team projects developed during the course.
Other Important Details...
Instructors:Tom Ferrin (TEF - faculty coordinator)
Conrad Huang, Ph.D. (CCH)
Scooter Morris, Ph.D. (JHM)Office hours by appointment.