This page contains advice from student from Spring 2007 for
Senior Project.
In Spring 2007 the following question was asked on the mini-exam:
What advice you would give to students in this class in the next
semester? Make a list of things the students 1) should do and 2)
should not do. I will create an actual list to give to the students
next semester from the answers you give here.
The answers follow.
"Should do" items:
Come to class
Choose a project you are interested in
Meet with your team and your company EARLY
Be on time when meeting company
Ask Dr. Christensen questions if you do not understand something about the
design process or even your project (he has much knowledge about many things).
Do your best to stay on track of your plan.
If you don't know something do not just read about it, play with it and
figure it out as you go.
UPDATE DOCUMENTATION
Always have a working project
Ask questions and try to network, but don't be weird about it.
Broaden your knowledge on your subject, even if you don't think it will help
in your specific project, it will.
Buy a laptop
Always go to class when is needed. Even though this class does not require
much of class attending, lectures and speaker are very useful.
Keep in touch with Dr. Christensen via email or visiting his office hours.
Personally I found this to be very helpful because he is always trying to help
in any way he can. When developing a "oyr" specification, design, or anything
he a very useful tool.
Work ahead on your project.
Go to every meeting there is with the company that you are developing the
project with. You always learn something new from every visit.
The student should start the project early in order to avoid rushing at the
end of the semester.
Meet with the company as soon as possible.
Have good communications with your team members and be all in the same page.
Do lots of research in your area of the project.
Split the project into parts so it can be done faster.
Good project management.
Meet once a week.
See Dr. Christensen when help is needed.
Create a timeline for the project.
Meet the intermediate the little goals along the way to meet the final goal
in the end
Stay on top of everything from day one, don't let yourself get behind.
Clearly have the company define what will be included in the scope of the
project and if there are more things that can be added at the end as a bonus
then do so, but meet initial requirements first.
Start early!! This was the advice given to us at the beginning of the
semester but so few groups payed attention. We were one of the lucky that did
in fact start early and were much better off for it. I watched other groups
floundering because they waited too long to start.
Work as a team. We suffered from the "division of labor" problem a bit,
where we were each working on our own individual part without seeing the big
picture. It ended up working o.k. for us because we had a clear plan but I can
certainly see how we could have improved (especially in terms of design and
debugging) had there been more collaboration.
Test, test, test! We had a clear testing plan and that is the only thing
that saved us from a couple nasty bugs. From my talks with other groups,
testing does not seem to be a priority but if you get in your demo and your
program crashes you are toast.
Start early and clearly realize what you have to do
Meet with professor about what he clearly wants for deliverables
Ask a lot of question even
Go to class listen to speakers
Start coding early
Schedule much more time than you think you will need for this class. There
is no way that you will be able to get your project done if you expect to only
spend two hours a week on it.
Think of this class as a second job.
Meet with your tam members regularly.
Keep all paperwork up to date. It takes a lot longer than you think it
will.
Listen to clients
Ask questions
Start on projects early
Take notes and follow guidelines
Start coding right away
Conceptualize the project before starting coding.
Get started early
Work together, communicate well
Follow requirements and specifications, but don't be afraid to change if
necessary
Be prepared for prototype demo and final presentation/demo
Be active in keeping checkpoints with each other
Give yourselves your own deadlines
Present drafts to Christensen before assignment is due
Be diligent in keeping paperwork up to date
Start early
Dress respectably
Communicate well with your project company
Start as early as possible (same advise we got)
"baby steps" try to partition your project as much as possible into
functional and non-functional components that have been tested and verified
Create a lot of tests to verify the functionality of each component. Called
scaffolding in the book.
Start early - while this may seem obvious, no matter how "easy" a project
may seem, something will always come up to "throw a wrench in the gears"
Keep an open mind - while some people may say offensive things, look past
their personal comments and focus on the objective things.
Have specific times to meet every week about project
Spend time doing solid design that allows for individuals to work on their
own time
Communicate
Have regular group meetings to discuss status
Have checklists set in beginning so everyone knows what they are responsible
for
Immediately in beginning of semester start researching how your group will
accomplish the goal
Ask as many questions as possible to people who will know the answers:
faculty, project company
Have professor Christensen check your work before the due date
To prepare ahead
Before signing up, the students should discuss with the advisors the
academic load they will carry along with Senior Project. Not doing so may
result in a hands-on experience on how does it feel to see the project falling
behind and rescheduling (like chapter 2 of the book suggests) is not an option.
I believe that with a balanced academic load, the final project would be
properly tested and overall better.
Listen to the advice from Dr. Christensen on the very first day of classes
and get your project group and meet with him to discuss what are the pit-falls
to avoid. More important apply the advice.
Find out or decide what language, technology, or environment will be used
for the project and learn as soon as possible. There are plenty of tutorials
online. It is extremely helpful that at least one team member has experience
with it.
On the first couple of weeks, designate somebody in the group to be the
"manager" and that individual should keep an eye on upcoming deadlines and
demand completed work from team members on a timely fashion.
Meet with Dr. Christensen before turning in due documents. He will point
out things to be changed and it is better to fix them before.
Keep your company's contact informed of the status of the project at least
weekly.
Do your best to have things ready at least a week before due.
When having a demo, set it u p and try it before and at the same location
where the demo is schedule. What worked at home the night before will probably
not work in front of Dr. Christensen and it feels bad. (Really bad.)
Show up on time for guest speaker's presentation.
An advice I would give to the next semester students is they should
understand that they are not far from the real professional job, and they are
almost no students no more. The grade doesn't mean much; meaning there are
more important things than the grade. They should learn to work in teams, be
more flexible about their schedules, and understand that they are important no
matter how much contribution they give, every opinion could be a key to solve a
problem. They should learn how to design good algorithms, have a conceptual
contract, manage intellectual team work. The project may seem quite complex at
the beginning, but after understanding it, it will fell apart. The most
important thing to remember is to understand the problem. At last, students
must reserve enough time for the testing part, many surprises may happen.
Another thing I want to mention is the choice of the project. The students
should not jump into a project that requires some kind of skills which they do
not have and choose the project based on the name of the company. Do not let
driving distances become an issue; make sure to choose a good schedule that you
would stick with. Do not over or under estimate the driving time to meet with
your teammates.
"Should not do" items:
Skip class
Not meet with company
Do not have open line of communication with company
Have the same documentation as when you started (it should always be
improved up until the last day.
Don't ask questions when you have guest lectures (you are only hurting
yourself)
Not always have a working project
Do not dress like you are going to gym class
Ask Christensen for help unless you've done your research first.
Bicker or argue with those about you, it does not impress or help.
Be afraid to call and communicate with your company.
Wait until the end of semester to start working on the project.
Not keeping contact with the company they are working for.
Not keeping contact with Dr. Christensen
Giving all the work to the other students in the group.
Don't start the project at the last minute and start coding early.
Do not get angry with your partners.
Do not wait till the date before to turn things in
Do no wait to start your project half way through the semester.
Don't get overwhelmed, have the mentality that you can finish on time.
Do not fall out of communication with your company. Without mentioning
names, I know one group that was essentially lost because they had very little
communication with their company.
Skip class
Fall asleep during speakers
Get fussy with Dr. Christensen or your company: BE NICE
Don't wait. Do as much as you can as soon as you can.
Don't waste time thinking about what you are going to do. Just start something and get it working.
Don't be late for a guest lecture.
Don't dress inappropriately for your speeches or for a guest lecture.
Wait a month before starting
Not come to class
Ask the client TOO many questions
Not contact the clients early
Procrastinate. Anything.
Not follow up with team members
Not set deadlines
Think "oh, you'll get it done." Get it done, period.
Not keep in touch with your company
Skip class
Wait until end of semester
Start late
Overestimate the functionality of several different components when joined
together.
Forget about assignment dates. (They come fast at the end of the semester.)
Work by yourself (yourself meaning the team working by itself) - part of the
development process is design - you will not have a very good design unless you
are in constant communication with your company.
Wait until late to do everything
Try to force meetings in two days from now as it often conflicts
And I stress "Wait until the last minute!"
Assume that group members will get their parts done
Develop unrealistic time frames for due dates
Change requirements at the last minute
Ignore all the above
Think that because all parts of the project are finished. The job is done.
Integration of components is when all bugs come out.