Jun 152017

OER Logo
The Worcester State University Library has called for proposals for Open Educational Resources Initiative (OERI) mini-grants to support Fall 2017 courses to the use of Open Educational Resources.

I have submitted a proposal to support the use of OER in CS 343 Software Construction, Design, and Architecture. This is the first required course in our Software Development Concentration in the Computer Science Major, and is taken by students in the concentration in the Fall of their Junior year.

Rather than repeat material from my mini-grant proposal, I’m just going to reproduce my submission here. Whether I receive the mini-grant or not, I will still be doing this with my course, and I will blog about it here as I work on it.

Course Number

CS 343

Course Title

Software Construction, Design, and Architecture

What type of course is this?

Check Box Noun project 10759Required course in the major
Elective course in the major

Number of Students

Please estimate the enrollment of the course, either using data from previous semesters (average or aggregate), exact enrollment from the last time the course was taught, or, if proposing a new course, an estimate of anticipated enrollment.

Currently 33 registered for Fall 2017. (Another 5-10 are likely when transfer students register.)

(There were 26 students in the last offering in Fall 2016.)

(This course is a first-semester junior-year course required of all Software Development Concentration students in the CS Major, offered every Fall semester.)

Current Textbook(s) or Anticipated Textbook(s) that will be replaced

If more than one, please list all

Flexible, Reliable Software: Using Patterns and Agile Development, Henrik B. Christensen, CRC Press, 2010 (was used in Fall 2016)

Clean Code: A Handbook of Agile Craftsmanship, Robert C. Martin, Prentice Hall, 2008 (I will likely require this book for Fall 2017 in addition to any OER materials – although if I can find equivalent OER material, I will not require it. This book will be used in all 4 courses of the Software Development Concentration – CS 343, CS 348, CS 443, CS 448.)

New Cost of Current Textbook(s) or Anticipated Textbook(s)

Please list the current price on Amazon for a new version

Christensen – $79.49

Martin – $36.59

Used Cost of Current Textbook(s) or Anticipated Textbook(s)

Please list the current price on Amazon for a used version

Christensen – $51.30

Martin – $29.99

What are your goals regarding this initiative? What are your intended outcomes for your students’ learning?

I am redesigning this course from scratch and there is no single textbook that covers the range of material that I want to include in this course.

My plan is for this course to cover the design of software systems, as represented by design patterns and software architectures. The students will design software systems, and construct some of them from those designs, in some cases using available software frameworks. The unifying theme for these three design topics (design patterns, software architectures, and software frameworks) will be the concept of modeling these designs using the Unified Modeling Language (UML) as a representation.

To implement this plan, I will need to find resources covering four areas:

  1. Learning the most commonly used diagrams in the UML and learning to use a modeling tool to create the models and diagrams.
  2. Learning about the most commonly used design patterns, and to what types of problems they should be applied.
  3. Learning about a number of commonly used software architectures, to what types of problems they should be applied, and how to design with them.
  4. Learning about a number of commonly used software frameworks that correspond to some of the architectures, and how to implement a design/system with them.

By using OER materials for:

  1. The UML – I will be able to pick and choose which diagrams we cover, and to what level of detail. Students will not need a textbook that is larger than needed. In addition, we will have access to instructions for using the most recent version of the modeling tool, and students will not have to translate from a different tool that might be used in a textbook.
  2. Design Patterns – I will be able to pick and choose which patterns we cover, and to what level of detail. Students will not need a textbook that is larger than needed. In addition, I will be able to find more relevant examples of the design patterns for the students.
  3. Software Architectures – I will be able to pick and choose which architectures we cover, and to what level of detail. Students will not need a textbook that is larger than needed. In addition, I will be able to find more relevant examples of the architectures for the students.
  4. Software Frameworks – I will be able to pick and choose which frameworks we cover, and to what level of detail. Software frameworks are not typically covered in textbooks. In addition, we will be able to use the most up-to-date versions of appropriate frameworks, which change quite frequently.

Finally, it will be easier to have the course materials reflect the current state of software design for future semesters, as a textbook would go out of date quickly and not be updated as frequently.

Please give a brief description of the plan for which you seek support. This might include how you will go about identifying or creating resources to replace the materials used in your course, how students will access the assigned content (e.g., via laptop, mobile device or smartphone), how you will make your educational resources openly available, etc.

There are literally hundreds of online tutorials and blog posts about the four areas I want the course to cover. There may be some materials in some of the open content and open textbook databases, but I am not having as much luck with those. The difficulty will be determining which of the materials are of high enough quality and at the right level for the students. The bulk of my effort will be put into finding and reviewing the materials. Once the materials have been identified, compiling them into lessons and background reading for assignments will not be too difficult.

As the materials I am looking at are mostly Web resources, the students will most likely be accessing them on their laptops, although access through a mobile device will be possible.

All materials that I produce myself (syllabus, lists of readings and resources, lessons, assignments, project specifications, and tutorials) will be licensed CC-BY-SA (which I have been doing for years) and will be available on the GitHub repository for the course. I will look into which of the OER sites is the most appropriate for posting to as a directory to link to my materials.

What challenges do you anticipate in implementing your goals? (e.g., time constraints, technology barriers, etc.) How do you plan to address those challenges?

The biggest challenge will be having enough time to review the large quantity of web materials. Another challenge will be the fact that I am still designing the course, as I am researching materials.

I plan to address those challenges by adopting a “good-enough” approach and finding something good enough for each topic first, and then when additional time is available, looking for better materials before the topic is covered (or after the course has ended to prepare for the next offering.)

What library or other support will your project require?

I have not spent any significant time investigating library resources, particularly database and ebook offerings. Spending some time with one of the librarians to look at what is available will be helpful.

How do you plan to assess the effectiveness of this initiative? Will you be able to participate in library assessment?

I will blog about my efforts to design the course and select materials. I will survey the students on the materials themselves. I plan to have the students spend time looking for materials themselves and blogging about them as part of the course, in service of our program outcome:

“Learn new models, techniques, and technologies as they emerge and appreciate the necessity of such continuing professional development.”

I will give the students both the Pre-Test and Post-Test that the Library develops to assess the OER Initiative.

Jun 152017

Yesterday was International Weblogger’s Day, and in honor of the day I’m going to make a resolution to post on my blog at least once a week. (Let’s see how well that goes…)

May 252017

I am preparing for a new (for me) course for the Fall 2017 semester: CS 343 Software Construction, Design, and Architecture. My intention is for this to be a course primarily about software design and I want to approach it through design patterns, software architectures, and modern software frameworks. These are all topics that I… Continue Reading New Course Prep: Learning UML

Oct 092014

I wanted to post an update to my post Sabbatical Reading List. To better keep track of my progress with my reading, I’ve started tagging the books on my LibraryThing account in different categories: The current list of all the books on my sabbatical reading list. Books that I have finished reading. Books I am… Continue Reading Sabbatical Reading Update

Sep 082014

Summer is over, and it’s time to really get to work on my Sabbatical project. I did do some work this summer – I’ve read 3 of the books on my Sabbatical Reading List (and added a few more to the list) and I’ve finally de-lurked on the OpenMRS developer mailing list and in some… Continue Reading Sabbatical Restart

Jun 182014

I have been lurking in the OpenMRS project for the last 6 months or so. I have read wiki pages, installed the development environment, cloned the repository and built the code, and listened in on a number of OpenMRS weekly developer meetings. As I begin my sabbatical, I realized that it was time to finally… Continue Reading De-lurking…

Jun 062014

I have begun my reading list for my sabbatical. It includes general software development/software engineering books, as well as books specifically aimed at the next two courses I will be teaching in our Software Development Concentration: CS-348 Software Process Management (Spring 2015) CS-443 Software Quality Assurance and Testing (Fall 2015) Here is my sabbatical reading… Continue Reading Sabbatical Reading List

Jun 062014

I am spending the Fall 2014 semester on sabbatical1. This is the proposal I submitted to request my sabbatical leave: I will use my sabbatical to become more expert in the area of Software Development/Software Engineering. The Computer Science Department recently created a Concentration in Software Development, which has expanded our course offerings in this… Continue Reading Fall 2014 Sabbatical

May 282014

cue Ozzy Osbourne laughter… This blog is coming to you direct from Amtrak Northeast Regional Train 95, where Stoney Jackson and I are on our way to POSSE 2014 at Drexel University in Philadelphia, PA. This is becoming an annual tradition for us. So, why is it called the Coding Train? Because we are spending… Continue Reading All Aboard the Coding Train!

Dec 282013

Now that we have the CS Department’s GitLab server set up, and CS-140 Lab 1 is rewritten and tested using the new server, I’ve started to think about how to automate my interactions with the server. I had already  written some Bash scripts to interact with the Bitbucket server to get student code, convert it… Continue Reading Code Break: GitLab API Part 1 – Creating student accounts