Skip to content

Commit

Permalink
Initial input
Browse files Browse the repository at this point in the history
  • Loading branch information
laboon committed Sep 2, 2016
1 parent b6ce05d commit a986197
Show file tree
Hide file tree
Showing 4 changed files with 202 additions and 0 deletions.
77 changes: 77 additions & 0 deletions capstone-outline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
## Course Information

**Taught by:** Bill Laboon ([email protected])

**Room**: A221 Langley

**Time**: Fridays 1:00 - 1:50 (internship and research), 1:00 - 2:50 (project and project studio)

**Professor's Office Hours:** A221 Langley
* Wednesday 1:30-4:30 PM
* or by appointment.

_NOTE: For those of you heading to Project Studio, you will also be meeting with representatives from the company with whom you are working (NetApp or General Dynamics). This may or may not be at the same time as the capstone class!_

Attendance during presentations is **REQUIRED**. If you will miss a class, it must be cleared with me first unless it is an emergency. In the event of an emergency, let me know as soon as possible.

All students will give a presentation and submit an 8-12 page paper on their internship or project, as well as give a 5-10 minute presentation on what they have done. This presentation will be given during a week that there is not a tech talk.

In general, the classes will rotate between tech talks from industry and

Project students will also need to submit other assignment

## Project Students

Details on Assignments:

Proposal Paper (Due 23 Sep 2016) -
This should include:
* A brief description of the project you are working on
* A prioritized listing of user stories to be implemented
* A broad outline of the design of the software
* Architecture?
* Language?
* Supported systems?
* Testing?
* A UML diagram would be nice, but not strictly necessary
* Note that this subject to change as the semester continues!
* 5 - 8 pages

Additionally, a "walking skeleton" version of the software should be completed at this point.

Sprint Retrospective Notes:

These are personal updates which will be emailed to me at the end of each sprint (every two weeks). These should answer the following questions:

1. What is your opinion of the work done by *you* over the last sprint (pluses, minuses)?
2. What is your opinion of the work done by *your group* over the last sprint (pluses, minuses)?
3. Is there anything you would like to modify going forward?

Final Project Presentation (Due 9 Dec 2016)-
* A five to ten-minute demo of the software you developed
* Include features and technical decisions
* Especially discuss trade-offs made

Final Project Paper
* An 8 to 12 page paper discussing:
* Challenges developing the software
* Features added
* Prioritization
* Defects found and fixed
* Design (modifications from initial design?)
* Trade-offs made
* Environment (how did you meet? communicate? discuss? assign work? etc.)

## Details on Project Development:

The goal of this course is to develop a project, from start to finish, using modern software engineering tools and techniques. The final project should be _well-written, well-tested, and well-documented_.

Unless dictated otherwise by the customer, work should be done using git and GitHub or GitLab. Work should be done in a private repository, and I should be added as a collaborator (username is "laboon" on both sites). Please sign up for a student developer pack (which includes free private repositories, along with other free software) here: https://education.github.com/pack

Unless dictated otherwise by the customer, the project will be developed using the Agile/Scrum software design methodology. We will discuss this more in class. One of the key tenets is that there is always some "working" version of the software, even if it does not include all of the features. This means that at any point, you should have a working version of the software to show customers (and professors)!

We will consider each class meeting the end of each sprint. During this time, we will spend some time doing a retrospective in your groups - meeting for twenty minutes or so, in-person, to determine what went well with the last sprint and what could go better. You will also come up with a plan for the next sprint. Professor Laboon will be available at the end of each lecture to discuss the path forward with each group.

Since student schedules are often hard to reconcile, I recommend you use a chat application such as Slack or HipChat to stay in touch with each other, even when you cannot meet in person.

As this is a capstone course, you are expected to be self-motivated and independent. This may mean learning a new language, framework, architecture, etc. Professional software engineers are often expected to learn these things independently, and you should be prepared to do so as well. If you are unfamiliar with where to find training materials or information for a particular subject, you may discuss it with Professor Laboon, but the onus is entirely on you to learn anything additional you need to know to complete the project.
46 changes: 46 additions & 0 deletions deliverables/FinalPaper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# CS CAPSTONE
Fall Semester 2016

## DUE DATE: 9 DECEMBER 2016

## FINAL PAPER

This final paper is required for all students in the Capstone, including internship (CS 1900) students.

## FORMATTING REQUIREMENTS

The paper must be 8 - 12 pages in length, using a relatively standard font and point size (e.g., 12-point Times New Roman or Computer Modern). Judicious use of charts, graphs, and/or illustrations is acceptable. Margins should be of standard size.

Please ensure that your name as well as the name of the project you worked on is listed, along with your faculty advisor (whoever signed your Faculty Learning Agreement, or your research advisor).

This is an individual project, even though you may have worked on a project with a group.

## DETAILS

The final paper should describe what you did for the capstone, and how you did it. This will obviously vary dramatically based on if you did a research project, a Project Studio project, an internship, etc. Thus, it is difficult to give a broad-enough description of what is required for all of these. Consider the following as a list of possible topics to discuss, not as a checklist.

1. What programming language did you use? Why?
2. Were there things about the choice of language you liked? Disliked?
3. What frameworks did you use?
4. How did you handle clarifying requirements?
5. What technical problems did you face?
6. How did you ensure quality code?
7. What kind of testing did you do?
8. What was the development process like?
9. How did you communicate with other developers/testers/customers/etc?
10. Did you have non-technical problems that you had to face?
11. What were the biggest challenges you faced during the capstone?
12. Were you able to take what you learned during the capstone and apply it to classes? Conversely, were you able to use what you learned in class for the capstone project?
13. How did you design the software you were writing?
14. Did you present the project to customers? How did you plan for it?
15. What was day-to-day life like?
16. Did you have a mentor? What did they teach you?
17. What was the worst part of the capstone project?
18. How did you deal with ambiguity in requirements or direction?
19. Did you learn any interesting skills during the capstone project?

In general, what I would like to see is a good understanding of what you did, and what you learned, doing the work for the capstone. If you worked on anything sensitive (e.g., for a government contractor or private data for a company), you do not need to refer to it in your write-up. If there is any doubt, you may wish to show your manager the paper so that they may review it.

## Other

Please feel free to email me at [email protected] or come to office hours to discuss any problems you have.
67 changes: 67 additions & 0 deletions syllabus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
Fall 2016 Syllabus

2 SEP 2016 - Introduction (Mr. Laboon, Dr. Znati)

9 SEP 2016 - Discussion of Agile/Scrum Process
* Sprint 1 Begins

16 SEP 2016
* Presentations (Internship Students)
* Software Engineering basics (Project Students)

23 SEP 2016
* Presentations (Internship Students)
* Introduction to Retrospectives
* Sprint 2 Begins
* Proposal Paper due for Project Students

30 SEP 2016
* TECH TALK: TeleTracking
* Software Engineering Topic (Project Students)

7 OCT 2016
* TECH TALK: PNC
* Software Engineering Topic (Project Students)
* Sprint 3 Begins

14 OCT 2016
* TECH TALK: BNY Mellon
* Presentations (Internship Students)
* Software Engineering Topic (Project Students)

21 OCT 2016
* Presentations (Internship Students)
* Software Engineering Topic (Project Students)

* Sprint 4 Begins
* Midpoint Summary Due for Project Students

28 OCT 2016
* TECH TALK: Google
* Software Engineering Topic (Project Students)

4 NOV 2016
* Presentations (Internship Students)
* Software Engineering Topic (Project Students)
* Sprint 5 Begins

11 NOV 2016
* TECH TALK: Think Through Math
* Software Engineering Topic (Project Students)

18 NOV 2016
* Presentations (Internship Students)
* Software Engineering Topic (Project Students)

* Sprint 6 Begins

25 NOV 2016 - NO CLASS! THANKSGIVING BREAK

2 DEC 2016
* Tech Talk: NetApp
* Discussion on Final Presentation / Paper
* Sprint 6 Ends

9 DEC 2016
* Project Presentations
* Final paper due for ALL students
12 changes: 12 additions & 0 deletions talk_schedule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
9/30/2016 - TeleTracking - Chris Johnson

10/07/2016 - PNC - J.P. Mayberry

10/14/2016 - BNY Mellon - Alison Parkhill

10/28/2016 - Google - Jess Daluz

11/11/2016 - Think Through Math - Jim Wrubel

12/2/2016 - NetApp - Chuck Heinle

0 comments on commit a986197

Please sign in to comment.