Version 2019-Spring-1.0, Revised 27 January 2019
3 credits
Lecture: 3 hours/week
Project management including planning, progress measurement, estimation, and risk assessment. Functional and non-functional requirements. Software licenses, contracts and intellectual property.
Dr. Karl R. Wurst
See http://cs.worcester.edu/kwurst/ for contact information and schedule.
Section | Day/Time | Room |
---|---|---|
01 | MW 8:00-9:15am | ST 107 |
http://www.phdcomics.com/comics.php?f=1583
Of course, not everything is in the syllabus, but many things are.
If you have a question, please check the syllabus first, and then ask if you can't find the answer.
Clean Code: A Handbook of Agile Software Craftsmanship Robert C. Martin Prentice Hall, 2009 ISBN-13: 9780132350884 Website |
|
Scrum: A Breathtakingly Brief and Agile Introduction Chris Sims and Hillary Louise Johnson Dymaxicon, 2012 ISBN-13: 9781937965044 Available as a $0.99 Kindle book Read the whole text online here |
|
Version Control by Example |
In addition to the textbook, to successfully complete this course you will need:
- Laptop Computer: You will need a laptop computer that you can bring to class sessions and can use at home. The brand and operating system (Windows, Mac OS X, Linux) is unimportant – the software we will be using runs on all major operating systems and can be downloaded for free. It is expected that you will download and install required software as needed over the course of the semester.
- Internet Access: You will need Internet access for access to:
- Blackboard - All course materials will be posted on Blackboard.
- WSU Gmail – You must check your WSU Gmail account on a regular basis. Announcements will be sent here.
- Tutorials and articles – I will suggest, and you will research on your own, tutorials and articles for you to learn new technologies and techniques we need.
- Other tools and sites as needed...
- CS 443 Software Quality Assurance and Testing
- CS 448 Software Development Capstone
- Your professional career
This is a three-credit course. You should expect to spend, on average, 9 hours per week on this class.
You will spend 3 hours per week in class. In addition, you should expect to spend, on average, at least 6 hours per week during the semester outside of class. (See Definition of the Credit Hour)
Federal regulation defines a credit hour as an amount of work represented in intended learning outcomes and verified by evidence of student achievement that is an institutional established equivalence that reasonably approximates not less than –
- One hour of classroom or direct faculty instruction and a minimum of two hours of out of class student work each week for approximately fifteen weeks for one semester or trimester hour of credit, or ten to twelve weeks for one quarter hour of credit, or the equivalent amount of work over a different amount of time; or
- At least an equivalent amount of work as required in paragraph (1) of this definition for other academic activities as established by the institution including laboratory work, internships, practica, studio work, and other academic work leading to the award of credit hours.
---New England Association of Schools and Colleges, Commission on Institutions of Higher Education, Policy on Credits and Degrees
- CS 343 Software Construction, Design and Architecture
- CM 110 Public Speaking
- UR 230 Technology, Public Policy and Urban Society
This course has a prerequisite of CS 343 – Software Construction, Design and Architecture. We will be looking at the process of planning and developing a large software project in a team, and so I expect you to have experience in developing software and working with others. You will be bringing your experiences in these situations, both good and bad, to our discussions of software process management, and your experiences will lead you to a better understanding of why such processes are needed.
CS 343 required EN 252 – Technical Writing. You should be able to write professionally. You should be able to write professional-quality reports, memos and documentation.
This course has a prerequisite of CM 110 – Public Speaking. You should be able to structure and give a professional-quality presentation.
This course has a prerequisite of UR 230 – Technology, Public Policy and Urban Society. I expect that you understand the concept of intellectual property, including copyright and licensing. We will be reading and comparing software licenses, and determining what effect a software license has on how we can use third-party code, why it is important to license our own code and documentation, and what to consider when choosing a license for our own work.
If you are missing any of this background, you should not take this course.
Upon successful completion of this course, students will be able to:
- Elicit, organize, prioritize, and validate functional and non-functional requirements using a variety of techniques, and negotiate among different stakeholders in order to agree on a set of requirements
- Draft and evaluate basic software licenses, contracts, and intellectual property agreements, while recognizing the necessity of involving legal expertise
- Develop a comprehensive project plan, measure project progress and productivity, estimate costs, manage risk and change for a significant development effort
- Apply management techniques to projects that follow agile methodologies, as well as methodologies involve larger-scale iterations or releases
- Apply analysis techniques such as needs analysis, goal analysis, and use case analysis
This course does not fulfill any LASC Content Area requirements, but contributes to the following Overarching Outcomes of LASC:
- Demonstrate effective oral and written communication.
- Employ quantitative and qualitative reasoning.
- Apply skills in critical thinking.
- Apply skills in information literacy.
- Understand the roles of science and technology in our modern world.
- Understand how scholars in various disciplines approach problems and construct knowledge.
- Display socially responsible behavior and act as socially responsible agents in the world.
- Make connections across courses and disciplines.
This course addresses the following outcomes of the Computer Science Major:
Upon successful completion of the Major in Computer Science, students will be able to:
- Analyze a problem, develop/design multiple solutions and evaluate and document the solutions based on the requirements. (Emphasis)
- Communicate effectively both in written and oral form. (Emphasis)
- Identify professional and ethical considerations, and apply ethical reasoning to technological solutions to problems. (Emphasis)
- Demonstrate an understanding of and appreciation for the importance of negotiation, effective work habits, leadership, and good communication with teammates and stakeholders. (Emphasis)
- Learn new models, techniques, and technologies as they emerge and appreciate the necessity of such continuing professional development. (Emphasis)
- Version control
- Collaboration tools
- Project management
- Software process models
- Software testing
- Software licensing
- Documentation standards
- Software maintenance
- Team management
- Code review
This class will not be a traditional “lecture” class, and will incorporate some teaching methods that may be unfamiliar to you.
Rather than lecturing about the course content, you and your classmates will "discover" the content for yourselves through small-group work.
The group work will be a very structured style called Process Oriented Guided Inquiry Learning (POGIL). Through investigation of models of the concepts and answering questions that guide the team toward understanding of the models, your team will learn both the content and team process skills. In your POGIL groups each group member will have a specific role to play during the activity, and roles will be rotated so that everyone will get to experience a variety of process skills.
For more information on POGIL, see https://pogil.org/about-pogil/what-is-pogil.
I want everyone receiving a passing grade in this course to be, at least, minimally competent in the course learning outcomes and for that to be reflected in your course grade. Traditional grading schemes do a poor job of indicating competency.
As an example, imagine a course with two major learning outcomes: X and Y. It is widely considered that a course grade of C indicates that a student is minimally competent in achieving the course outcomes. However, if the student were to receive a grade of 100 for outcome X, and a grade of 40 for outcome Y, the student would still have a 70 (C-) average for the course. Yet the student is clearly not competent in outcome Y.
Therefore the grading in this course will be handled in a different manner:
- All assignments will be graded on a Meets Specification / Does Not Yet Meet Specification basis, based on whether the student work meets the instructor-supplied specification.
- A minimum collection of assignments, indicating competency in the course learning outcomes, must be completed in a Meets Specification manner to earn a passing course grade (D).
- Higher passing grades (A, B, C) can be earned by completing more assignments and/or assignments that show higher-level thinking and learning skills.
- All assignments in this course will be graded exclusively on a Meets Specification / Does Not Yet Meet Specification basis.
- For each assignment, you will be given a detailed specification explaining what is required for the work to be marked Meets Specification.
- Failing to meet any part of the specification will result in the work being marked Does Not Yet Meet Specification.
- There will be no partial credit given.
- If you are unclear on what the specification requires, it is your responsibility to ask me for clarification.
- It will be possible to revise and resubmit a limited number of assignments with Does Not Yet Meet Specification grades (see Revision and Resubmission of Work below).
Your grade for the course will be determined by which assignments and/or how many assignments you complete in an Meets Specification manner.
Assignment | Earn Base Grade A |
Earn Base Grade B |
Earn BaseGrade C |
Earn Base Grade D |
---|---|---|---|---|
Attendance and Participation (out of 25) | 24 | 23 | 22 | 21 |
Assignments (out of n assignments, where n ≈ 8) — Base Assignment — Intermediate "Add-On" — Advanced "Add-On" |
n int( n / 2 ) int( n / 4 ) |
n int( n / 4 ) 1 |
n 1 |
n - 1 |
Exam Grade Average (3 exams) | > 50% | > 50% | > 50% | ≤ 50% |
- Failing to meet the all the requirements for a particular letter grade will result in not earning that grade. For example, even if you complete all other requirements for a B grade, but fail to submit an Advanced Add-On that meets specification, you will earn a C grade.
- Failing to meet the all the requirements for earning a D grade will result in a failing grade for the course.
- You will have a minus modifier applied to your base grade if the average of your exam grades is 65% or lower.
- You will have a plus modifier applied to your base grade if the average of your exam grades is 85% or higher.
- Each unused token remaining at the end of the semester can be used to increase the exam average by 2 percentage points.
Note:
- WSU has no A+ grade.
Since there will be no lecture during class, it is particularly important that you attend class sessions and participate in developing the material and concepts with your group. Simply being present is not enough to really learn the material - you need to play your part.
During class time you are expected to participate in your group, to play your assigned role, and to contribute to your groups's notes.
You will be using your computer within your group activities. You should only be using your computer for the classwork. You should not be checking sites that are unrelated to the course, or messaging friends. If I see that you are doing other things on your computer and not participating in your group, I will warn you. If I have to warn you a second time during that class, you will lose your participation points for that class.
The assignments will give you a chance to apply the material to larger tasks. The assignments will vary in what you will be asked to do - programming projects, written assignments, analysis, etc.
Every assignment will have a base assignment portion that must be completed for the assignment to be considered "Meets Specification". This will generally involve developing tests, determining suitable test inputs, and/or determining suitable test paths.
- Anyone working to earn a grade of C or higher must submit "Meets Specification" work for all Base Assignments.
- Anyone working to earn a grade of D or higher must submit "Meets Specification" work for all but one of the Base Assignments.
A more complete specification for an "Meets Specification" (passing) Base Assignment will be given during with each assignment.
Each assignment will also have an Intermediate Add-On portion can be completed for anyone working for a course grade of C or higher. This will involve deeper understanding of the material or additional tasks.
- Differing numbers of Intermediate "Add-Ons" are required for different passing grades of C or higher. See the table under Course Grade Determination.
A more complete specification for "Meets Specification" (passing) Intermediate "Add-Ons" will be given during with each assignment.
Each assignment will also have an Advanced Add-On portion can be completed for anyone working for a course grade of B or higher. This will involve even deeper understanding of the material or additional tasks.
- Differing numbers of Advanced "Add-Ons" are required for different passing grades of B or higher. See the table under Course Grade Determination.
A more complete specification for "Meets Specification" (passing) Advanced "Add-Ons" will be given during with each assignment.
There will be three exams, one of which will be a non-comprehensive final exam.
- Exam 1 is scheduled to be given during class on the 25th of February 2019.
- Exam 2 is tentively scheduled to be given during class on the 1st of April 2019.
- Exam 3 will be given during the scheduled final exam period: 10 May 2019 — 8:30-11:30am
All work will be submitted electronically through a variety of tools. The due date and time will be given on the assignment. The submission date and time will be determined by the submission timestamp of the tool used.
Please do not submit assignments to me via email. It is difficult for me to keep track of them and I often fail to remember that they are in my mailbox when it comes time to grade the assignment.
Late work will not be accepted. (See Tokens below.)
If you receive a Does Not Yet Meet Specification on any portion of an Assignment (Base, Intermediate Add-On, or Advanced Add-On) you may revise and resubmit the assignment one time only without the use of a token.
- You must have submitted the original assignment on time, (or one day late with the use of a token.)
- You must submit your revision within one week from the date when the "Not Acceptable" grade and comments were posted in My Grades. (You may use a token to submit the revision one day late.)
- You may ask me for clarification of the assignment, or of the comments I made on your submission.
- You may ask me to look at your revised solution to see if it addresses my comments.
- If you address all the comments in an acceptable fashion, your grade will be converted to Meets Specification.
- You must let me know by email when you resubmit the assignment, so that I know to regrade it.
Each student will be able to earn up to 5 tokens over the course of the semeester. These tokens will be earned by completing simple set-up and housekeeping tasks for the course.
Each token can be used to:
- replace a single missed class session (up to a maximum of 3 missed class sessions)
- turn in an assignment late by 24 hours
- turn in a second blog entry in an a single week
- revise and resubmit an assignment that was judged "Does Note Meet Specification. Any work to be revised and resubmitted must have been submitted by the original due date.
- Each unused token remaining at the end of the semester can be used to increase the exam average by 2 percentage points.
- Unused tokens will be kept track of in the Blackboard My Grades area.
- Tokens will not be automatically applied. You must explicitly tell me by email when you want to use a token, and for which assignment..
If you are struggling with the material or a project please see me as soon as possible. Often a few minutes of individual attention is all that is needed to get you back on track.
By all means, try to work out the material on your own, but ask for help when you cannot do that in a reasonable amount of time. The longer you wait to ask for help, the harder it will be to catch up.
Asking for help or coming to see me during office hours is not bothering or annoying me. I am here to help you understand the material and be successful in the course.
You may contact me by email (Karl.Wurst@worcester.edu), telephone (+1-508-929-8728), or see me in my office. My office hours are listed on the schedule on my web page (http://cs.worcester.edu/kwurst/) or you may make an appointment for a mutually convenient time.
If you email me, please include “[CS-348]” in the subject line, so that my email program can correctly file your email and ensure that your message does not get buried in my general mailbox.
If you email me from an account other than your Worcester State email, please be sure that your name appears somewhere in the email, so that I know who I am communicating with.
http://www.phdcomics.com/comics.php?f=1795
You may expect that I will get back to you within 24 hours of your email or phone call (with the exception of weekends and holidays), although you will likely hear from me much sooner.
All students are expected to adhere to the policies as outlined in the University's Student Code of Conduct (http://www.worcester.edu/CodeofConduct/).
- Contribute to a class atmosphere conducive to learning for everyone by asking/answering questions, participating in class discussions. Don't just lurk!
- Seek help when necessary.
- Start assignments as soon as they are posted. Do not wait until the due date to seek help/to do the assignments.
- Make use of the academic success center (see below).
- Expect to spend at least 9 hours of work per week on classwork.
- Each student is responsible for the contents of the textbook readings, handouts, and homework assignments.
Worcester State University is committed to providing reasonable academic accommodations for all students with disabilities. If you have a disability and are concerned about the format or requirements of this course, please meet with me to discuss ways to ensure full participation. Students must be registered with Student Accessibility Services in order to receive academic accommodations. Student Accessibility Services is located in the Administration Building, Room 131, and can be reached by phone (508/929-8733 or email (sas@worcester.edu). Please notify me if you need this syllabus in an alternative format.
Tutoring Services are offered through the Academic Success Center (ASC). The ASC is located on the first floor of the Administration building, A-130. Tutoring services are provided to students FREE of charge. Students seeking academic assistance should visit the center as soon as possible or contact the Tutoring Coordinator at 508-929-8139
The Math Center provides free assistance to students in Mathematics. It is located on the first floor of the Sullivan Academic Building, S143.
The writing center provides free assistance to students in the areas of research and writing. It is located on the third floor of the Sullivan Academic Building, S306. To schedule an appointment, please call 508-929-8112 or email the Center at writingcenter@worcester.edu. To find out more information about the Writing Center including the Center's hours and the Center's Online Writing Lab, visit their website at http://www2.worcester.edu/WritingCenter/.
Worcester State Library has access to many articles through online databases including J-STOR. In addition many articles and book chapters are available to students through Inter-Library Loan (ILL). With a little planning, ILL expands your ability to get credible information sources about topics you pursue in your course work. Finally WSU students are free to use many of the library resources within the consortium. Given all of these resources it is extremely unlikely that you should have to pay for access to individual articles. Please work with the reference librarians to find the appropriate way to access materials you need. You have already paid for these resources through your fees—please make use of them.
Each student is responsible for the contents of the readings, discussions, class materials, textbook and handouts.
You should familiarize yourself with Worcester State College's Academic Honesty policy. The policy outlines what constitutes academic dishonesty, what sanctions may be imposed and the procedure for appealing a decision. The complete Academic Honesty Policy appears in: http://www.worcester.edu/CodeofConduct/
If you have a serious problem that prevents you from finishing an assignment on time, contact me and we'll come up with a solution.
This course is heavily influenced by ongoing discussions with Dr. Stoney Jackson of Western New England University beginning during the Fall 2014 semester (with 64 commuting hours in his car, lunches, attending his CS-390 class, and more.) It is also based on materials from the FOSS2Serve/Teaching Open Source/POSSE community.
It is my policy to securely dispose of student work one calendar year after grades have been submitted for a course.
The following course schedule is subject to change.
- 23 January 2019 - First day of class
- 18 February 2019 - No Class - President's Day
- 27 February 2019 - No Class - I will be at a conference
- 11 March 2019 - No Class - Spring Break
- 13 March 2019 - No Class - Spring Break
- 15 April 2019 - No Class - Patriot's Day
- 6 May 2019 - Last day of class
- 10 May 2019 - Final Exam Period - 8:30-11:30am
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA