The students in our Capstone Project class, all Seniors, form teams every year in order to design and develop a sophisticated app for an independent customer. This year there were 14 apps developed: web apps, iphone apps, android apps, and desktop apps. The projects vary, from a mobile-accessible database for maintaining geological samples, to mobile apps for monitoring queue lengths at voting stations, to a tablet app for viewing historical maps. You can watch video demonstrations below and get links to the projects' websites. You can also see photos of the students doing live demos.
You are here
Capstone Computing Project
Below are two online forms that you have fill out as they are part of your grade before April 29 @midnight. Note that if you first login to this website you will be able to "Save as Draft" your form so you can come back and finish it later.
First you have to fill out the
- Team Members Assessment form where you tell me what work you, and your teammates, did.
Then you have to fill out the Senior Survey form. These are required by the College of Engineering and our Accreditation agencies for all Seniors. We do it in 492, so all of you should fill it out regardless of when you plan to graduate. There are different questions for each major. Only fill out the one for your major:
Finally, if you haven't already and you graduate in May or Summer, please fill out our Graduation survey.
As you know, your personal contribution to the project can count for up to 100% of your grad. Git keeps track of every single commit you make, and github displays these in nice graphs which you can see by clicking on "Graphs" and then "Contributors", as shown in the images below. By default, these graphs are for the "master" branch, but you can change the chosen branch by going to "Settings" and changing the "Default branch" to whatever you want. Please do this if your main branch is not "master".
The assignments are shown below. Note that these are not commutative. That is, if A tests B, it does not mean that B tests A. Let me know if you need the email addresses of your assigned group.
You should be commiting your code at least once per hour, and at the end of the day. If you only work 1 day (8 hours) per week on this project (really, you should work more than that) you will have at least 12*8 = 96 commits in just these first 3 months.
Some basic rules:
- Never commit something that does not compile or is super broken.
- Commit whenever you "finish a thought": implement the first version of a new page, get that function to read from the database, get that form to show, etc.
- Push every day, at least.
- Pull every morning, at least, unless you really are in the middle of something. Resolve conflicts as soon as possible
See this stack overflow question and this programmers.stackex question for many other people who agree with me, well, rather, I agree with them. But, for this class I additionally require you to commit a lot so you can get comfortable with the process and so we (your team and I) can see your progress.
Those of you new to the class will want to read my Git and Github slides and pointers.
Please let me know which times your group can meet with me, in our every-other-week meetings, by filling out this doodle poll by Thursday, Jan. 16 @midnight. Fill it out with the Team's name.
Try to put in as many spots as possible in case there are conflicts with other groups. If you cannot possibly make any of these times, let me know which times you can make.
I have updated the group membership by assigning the new people to groups and getting rid of those who will not be taking 492 this semester. I am still waiting for some student to reply to my emails so the list is not final.
Contact me ASAP if you don't see your name in the table below or if there is someone in your team who is not taking 492. I have sent you an email with all the emails of the people in your group. Contact any new members and welcom them aboard, give them access to the repo, start working.
On Wednesday, January 22 we will have an invited talk by Matt Hooper from VC3, in our regular room and time: SWGN 2A31 @8:30am.
In this talk I’ll cover some concepts behind software quality, why automation is crucial to software quality, and how to write automated tests (using Visual Studio and Selenium WebDriver as an example).
Why is this important? Imagine this situation: You’ve just built and launched a new system with a team of other people - congratulations! You are feeling great but then you are given your next task: to add new functionality demanded by your users, and as quickly as possible. To make things more stressful/exciting, you’re also told you need to add additional functionality each and every month if your company is to remain competitive. However, if you break existing functionality each time you update the system your users will leave you, your system will be a failure, and you’ll be busy tidying up your resume instead of coding. To overcome this challenge you must figure out a way to prove to yourself and your team that your system works as expected each time someone makes a code change. At the end of this talk you should have a better understanding of how to solve this problem.
Matt is the product architect at VC3 in Columbia, SC for our Enrich Assess, RTI and IEP software for K-12 school districts. He has over 15 years of experience spanning all aspects of the software life cycle. He has a computer science degree from the University of South Carolina and an MBA from the USC Moore School of Business. LinkedIn: http://www.linkedin.com/in/matth