Buffardi - Graduate SE (Proposal)
The following proposal is for developing materials for a software engineering course within a graduate computer science program.
The existing graduate-level software engineering course will be redesigned to immerse students in the open source community. The course materials designed will include in-class active learning activities as well as assignments for students to contribute to existing open source projects, including both Humanitarian FOSS (Gnome MouseTrap) and Localized FOSS (BossyUI) Course syllabus and materials will be maintained as free and open source.
The course materials will be first implemented at California State University, Chico for CSCI 630 Software Engineering in the Spring 2016 term. The course syllabus (as shown in its GitHub repository is:
In an advanced study of software engineering, students will refine skills including version control, software testing, and evaluating software quality using modern technologies. Students will collaborate in a distributed software development environment and establish online portfolios by contributing to open source projects and interacting with popular software engineering communities.
Target Student Audience
CSCI 630 is a required course for a Masters in Computer Science. It requires completion of an undergraduate software engineering. Expected enrollment is 25-35.
Students are expected to have mature programming experience and embrace being "productively lost" learning new tools and technologies as self-starters.
Learning activities developed for this proposal will include instructions for students as well as grading rubrics for instructors. Materials will be posted to both the course website (hosted on github.com/ChicoState/ ) as well as on the foss2serve wiki. Some existing materials (particularly those on Git) will be updated and/or synthesized for accelerated pace.
Example learning activities include:
- Reviewing git basics (Update) - students review and practice basics of version control including how to add/remove files, make commits, branch, and revert changes. This activity will synthesize existing git learning activities in an accelerated pace as a "review" to re-familiarize them with git fundamentals.
- Version control and collaboration (Update) - students collaborate using a online (GitHub) repository and learn how to fork, make a local clone, push new commits, as well as make and review pull requests
- Exploring FOSS projects (Update) - students explore the principles of FOSS by examining the technologies used, scope, age, activity, and communication methods for existing FOSS projects.
- Periodic blog (Update) - students will use a blog to keep (at least) weekly logs of their activities, often with brief summaries and occasional reflection and discussion of their contributions to a semester-long project working on FOSS
- Finding and Providing Help - students walk through creating accounts, finding help, and contributing to software development communities for problem solving using StackOverflow
- Unit testing basics (New) - student learn the principles and fundamentals of writing unit tests with cxxUnit (for C++)
- Evaluating testing with code coverage (New) - students learn how to interpret different categories of "coverage" as well as their implications for confidence and quality
- Measuring Coverage (Update) - students install, run, and interpret results of automated tools to calculate code coverage (using gcov)
- Interpreting software metrics (New) - students review the purpose and calculation of common software metrics including: (non-commented) lines of code, cohesion & coupling, and cyclomatic complexity
While students will contribute to FOSS projects, some in-class assignments and instructor feedback will not be public for FERPA compliance.
Evaluation will include comparing pre- and post-term surveys and will compare students' experiences between HFOSS, traditional FOSS, and Localized FOSS projects. I have already established initial research on Localized FOSS -- collaborations between students and local software development professionals -- and have published (see Localized open source collaboration in software engineering education) and am continuing research on undergraduates' experiences. Evaluation of this course will build upon previous research as well as continue in future offerings of the course.
Survey instruments will also be provided on foss2serve. Initial survey instruments were developed and published in the aformentioned paper and will be adapted for the application of a graduate-level course.
During the Spring 2016 term (late January - May 2016), the course material will be developed and released via Chico State's GitHub organization.
Evaluation and research will target computer science education conferences, including SIGCSE Symposium or CCSC (Southwestern or Northwestern regions), during the 2016-2017 academic year.
Revisions and follow-up implementations (with accompanying research) will continue Spring 2017.
Stipend for materials development, Spring 2016: $2000
(Upon publication) Conference registration and travel: $1000