Computer Science
CALENDAR  |  NEWS  |  PEOPLE  |  A-Z  |  HOME
 
Teaching wiki
Computer Science
Program description
Academics
People
Activities
Beyond St. Olaf
Direct links
Why CS at St. Olaf?
CS Talks
Courses
CS Advising Information
Internships

Computer Science Program
Department of Mathematics, Statistics, and Computer Science
Old Music Hall
St. Olaf College
Northfield, MN 55057-1098
(507) 646-3113
(507) 646-3116 FAX
cs@stolaf.edu

Richard Brown, Director
cs-director@stolaf.edu

Donna Brakke,
Academic Administrative Assistant
brakke@stolaf.edu


 

Spotlight on CSA, Spring 2005: Exciting CS that makes a difference

Summary

The Spring CSA project to build a web portfolio manager will benefit St. Olaf students carrying out individualized majors through the Center for Integrative Studies, and ultimately others users as well. This project is substantial yet manageable for a team of CSA students using the popular "Extreme Programming" style of software development. The portfolio manager project will integrate the standard subjects studied in CSA, including Java language, graphics user interfaces (GUIs), networked applications, databases with SQL and XML language, as well as CSA's software development tools. CSA is appropriate for advanced students and those with only the SD prerequisite; supports added for the Spring offering include expanded lab and online text materials and presence of an experienced teaching assistant so that both beginning and advanced students get the help they need.

The project for the Spring 2005 offering of CS 284, Client-Server Applications (CSA) will build an "web portfolio manager." Web portfolios are web sites that represent a body of work, just as an artist's portfolio would present a collection of that artist's work. Web portfolios have become more and more popular, not only among artists such as painters or theater technicians, but also for professionals such as teachers (presenting such items as lesson plans, course curricula, and examples of their students' assignments).

At St. Olaf, making a web portfolio is increasingly seen as a learning tool. In particular, all students with individually arranged majors through the Center for Integrative Studies (CIS) must create a web portfolio for his/her CIS major. These portfolios not only shows a student's accomplishments, but also constructing the portfolio is a learning experience in itself. For example, making a web link in such a portfolio might represent a significant intellectual connection between concepts that aren't obviously related.

The CIS program and its majors will serve as the user community for our CSA web portfolio manager project. Our portfolio manager software will make it easier for CIS students, many of whom have never created a web page before, to get started on their portfolios early in their majors, so they can benefit from the portfolio as a learning tool throughout their individual major programs. The proposed system will make it easier for users to "go public" with their portfolios, and will offer control over what parts to make public; it will also enable portfolio writers to select with whom they will share which parts. Style configuration options will make it easier for portfolio writers to customize and personalize their sites, without having to learn all the technology themselves. And ultimately, the system will provide specific capabilities to support portfolio-based learning, e.g., enhancements related to links that help one focus on the importance of the intellectual connection represented by that link.

Of course, once a web portfolio management system has been created with the needs of CIS students in mind, that same system will be available for other user communities, who share many of the same needs as CIS majors.

How can such a substantial project be tackled in the CSA course? The key is to start small, and keep adding incremental improvements to a working system. We will use the "Extreme Programming" style of software development, which employs such iterative development in short cycles, and also emphasizes team cooperation, simplicity, good communication, and updated computing tools. Everyone in the CSA course will be part of the team, working on the project for most of the semester.

This project will call for CSA students to learn many new things:

  • Java will be the primary programming language for CSA. Java is object-oriented, and similar to C++ in it's syntax, but with strategic simplifications (e.g., no pointers, no memory management worries) that make it much quicker to create a large-scale project of this type. Incidentally, the Java language is highly prominent these days---and having both Java and C++ skills makes an outstanding combination for applications in other disciplines and in the outside world.

  • This project will require considerable Graphics User Interface (GUI) programming, in order to make the system easy and intuitive for CIS students to use. CSA students will learn to program GUIs in Java, which has extensive support for such tasks.

  • We will also study programming with networks, another technology that is easier in Java than in other languages. Our project will use networking to communcate between the user's GUI software and a database for permanent storage, and also for installing new public versions of a portfolio on the web.

  • As the item above indicates, we will use a database system to store portfolio content, configuration options, etc. CSA students will receive an introduction to databases, including the standard language for interacting with databases, known as SQL.

  • Finally, the XML language is ideal for representing a portfolio's structure and content. XML is fully customizable, easily converted to HTML (the language of the web), and well-supported by Java.

Of course, each of these topics could take up a whole course if covered in enough generality. In CSA, the project will focus our exploration. we will introduce each of these areas, learning the essential concepts and developing hands-on abilities in lab, then apply that knowledge and skill to the project.

CSA is designed to make this agenda succeed. We've increased the meeting time to 1.5 hours, three times per week, in order to make sure there's enough time and flexibility for concepts, lab, and project. Similarly, the online supporting text, lab exercises, and preliminary project planning has been expanded considerably since the first offering of CSA last Fall. Plus, the software tools for supporting the project work really do help. For example, we will use an integrated development environment (IDE) called Eclipse, designed to make the whole software development process more convenient, including online reference, testing, software analysis, code sharing, and version control.

CSA has CS 251, Software Design and Implementation (SD)---or equivalently CS 125, Accelerated Principles of Computer Science (CS1+)---as its only prerequisite. Thus, CSA is suitable for those taking their first "core" course in the CS program. However, it also works great for advanced students with many CS courses under their belts as well as those who have only taken the prerequisite: experienced students will proceed through the background material more quickly and get started on the project sooner. SD/CS1+ students will build up their backgrounds at pace that's more comfortable for them, then join the project when they're ready. An experienced teaching assistant (who also co-designed the project) will be available to insure that everyone gets the support they need.

CSA in Spring 2005 includes a lot of fascinating computer science related to modern client-server systems, such as the web. The project will make a real difference, initially for students with individualized majors, and ultimately for many others who will construct web portfolios in the future. CSA is a great course for SD/CS1+ students who want to move on to the next level, and also for advanced students seeking a substantial software project to sink their teeth into. As an alternate-year course, CSA won't be offered again until 2006-07, so consider CS 284 (CSA) for Spring 2005.



       Feedback We'd love to hear from you: inquiries, corrections, broken links, comments, suggestions---whatever! Send e-mail to cs@stolaf.edu.


Previous page St. Olaf Computer Science home page Next page
Description of the CS program
Academics:  courses, advising, major requirements, etc.
Courses
Interesting CS that makes a difference:  CSA, Spring 2005
People involved in the program:  faculty, students, others
Projects, events, etc.
External connections:  internships, jobs, St. Olaf hiring, etc.