Software Design Architecture Comparison

(Difference between revisions)
Jump to: navigation, search
(added research that I did into various communities to appendix)
(added pre-req's and learning obj's)
Line 6: Line 6:
 
|'''Overview''' || Students will research existing software design documents and resources for both projects and then write a report detailing their differences and helpfulness to various levels of developers.
 
|'''Overview''' || Students will research existing software design documents and resources for both projects and then write a report detailing their differences and helpfulness to various levels of developers.
 
|-  
 
|-  
|'''Prerequisite Knowledge''' ||  
+
|'''Prerequisite Knowledge''' || Students should have:
* A CS1 course (Introduction to Programming) is highly recommended.  
+
* Taken a CS1 course (Introduction to Programming).  
* The students should have already learned syntax and the basics of a programming language.
+
** Already learned syntax and the basics of a programming language.
 +
** Already learned  simple data structures.
 +
* Rudimentary software design knowledge
 +
** Could be delivered along-with this activity
 +
** Ex: Design Patterns knowledge
 
|-
 
|-
|'''Learning Objectives''' || What should the student be able to do after completing completed this activity?.
+
|'''Learning Objectives''' || Upon completion, students should:
 +
* Understand how thoughtful software design is encouraged, or not, in open source communities.
 +
* Be able to give examples of software design artifacts, and how to go about finding them.
 +
* Realize what they consider good software design, and be able to back it up with reason.
 +
* Realize why software design is important, and how it will effect them in their future careers.
 
|}
 
|}
  

Revision as of 17:53, 4 February 2016

Title Software Design and Architecture Comparison (Eclipse vs Openstack)
Overview Students will research existing software design documents and resources for both projects and then write a report detailing their differences and helpfulness to various levels of developers.
Prerequisite Knowledge Students should have:
  • Taken a CS1 course (Introduction to Programming).
    • Already learned syntax and the basics of a programming language.
    • Already learned simple data structures.
  • Rudimentary software design knowledge
    • Could be delivered along-with this activity
    • Ex: Design Patterns knowledge
Learning Objectives Upon completion, students should:
  • Understand how thoughtful software design is encouraged, or not, in open source communities.
  • Be able to give examples of software design artifacts, and how to go about finding them.
  • Realize what they consider good software design, and be able to back it up with reason.
  • Realize why software design is important, and how it will effect them in their future careers.

Background:

Is there background reading material?

Are there other activities the student should have done first?

What is the rational for this activity?

Include helpful hints to faculty here.


Background reading:


Directions:

What should the student do?


Deliverables:

What will the student hand in?


Assessment:

How will the activity be graded?

How will learning will be measured?

Include sample assessment questions/rubrics.

Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
The purpose of the project
Why the project is open source

Comments:

What should the instructor know before using this activity?

What are some likely difficulties that an instructor may encounter using this activity?


Additional Information:

ACM Knowledge Area/Knowledge Unit What ACM Computing Curricula 2013 knowledge area and units does this activity cover? ACM_Body_of_Knowledge
ACM Topic What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf
Level of Difficulty Is this activity easy, medium or challenging?
Estimated Time to Completion How long should it take for the student to complete the activity?
Materials/Environment What does the student need? Internet access, IRC client, Git Hub account, LINUX machine, etc.?
Author Nick Yeates
Source Is there another activity on which this activity is based? If so, please provide a link to the original resource.
License Creative Commons CC-BY

Suggestions for Open Source Community:

Suggestions for an open source community member who is working in conjunction with the instructor.



This work is licensed under a Creative Commons Attribution 4.0 International License


Appendix

Note: Can be removed later, or kept as a resource to teaches looking into other communities.

Software design - Potential communities to look into:

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox