This page contains advice from students to students for
Senior Project.
In fall 2019 the following question was asked on the final exam:
What advice do you offer future students (your advice will be posted on the
web for future students)?
The answers exactly as the students wrote them are as follows.
Time management is the key to succeeding in this course. Set aside time to
learn how to engineer (3 credit hours) then set aside more time to engineer
your senior project. Do not neglect either aspect of this course.
Respect your group members by making sure they follow the schedule the
group decided on. We are all adults, so we should all take responsibility for
our commitments. Don't be afraid to call someone out because they will probably
appreciate it.
Do not try to work during lectures. You will neither learn nor produce good
work. Respect the guests and do your future self a favor by taking notes during
the time allotted because most guest slides are not posted.
Just keep working. Don't worry about if your partners are doing any work or
nothing could get done.
Don't be afraid to ask your sponsor for help, they are professionals for a
reason.
Don't go to office-hours empty handed, you can't get much help if you
haven't even started.
You think that you have a lot of time with about 12 weeks but this time
goes by fast. Plan everything early on and work with your team and start
developing early and have a MVP that you can show Dr. Christensen so that he can
give advice. Don't procrastinate. Team and Project Matter. Don't pick a project
that you do not know anything about pick something that you are familiar with.
And if you do not get along with a person don't pick that team.
Make sure you use the resources at your company. Odds are someone at that
company is doing the same thing and you can ask for help with your project.
Do not sell yourself short. Do not go for the bare minimum. Show them that
you can do more and go above and beyond.
Start project early and update documents often.
Keep good communication with Dr. Christensen and the company you will do
work for.
Listen during the company talks, especially for specific eye-catching
phrases.
Make sure to have routing meetings with your group and company to make sure
the project is on track and suiting the expectations of your company.
Good planning will lead to a good project. By doing so you can avoid errors
that will cost you a lot of time.
If you don't like your teammates, even if you love your project try to move
to a project where you are more comfortable. You might get the short end of the
stick in the lottery, but you have to complete your project satisfactorily at
the end of the day. Do what you must.
You get what you put in. If you want to take it easy this semester, its ok.
Just pick an easy project. It's just a class. However, if you really want to
challenge yourself, be prepared to put in the effort. It will be worth it.
It's unfortunate but project management is more than just getting work
done. This means using your interpersonal skills to make everyone want to work
on the project. It feels better knowing you all share a common goal in good
faith.
Be sure to communicate with your company on a regular basis and show them
the product so you can get constant feedback. Know the strengths and weaknesses
of your team - not all members will be proactive so be ready to assign them
work so they will put in effort as well.
Write code that can be read by others, comment, and provide documentation
if time permits. Don't copy and paste a function 10 times in the same program -
generalize it and put it in another file to be used by the whole program.
There is a lot of paperwork in the class. Do not let it take away too much
project time. Engineers, not bureaucrats, and Christensen knows this.
Present to the company at least two times, preferably three. Incorporate
feedback if it is not a large-scale change to requirements.
If you make changes to your code during a demo or other meeting, commit to
a new branch and test because you will likely forget.
Go to lunch with your group after every class if possible, and do your
status report there.
Take good notes for guest lectures. Not just what the company says or does,
but also any memorable quotes that a speaker might say. (Take note if Dr.
Christensen is jotting his own notes).
Try to get teamwork issues sorted as soon as possible. The longer you wait
the more likely some part of the project fails.
Know what to prioritize. A working prototype for a demo is probably more
important than perfecting the test plan document early on.
Meet with Dr. Christensen often if you need advice or if you are unsure if
what you have for the project is enough.
Watch Professor C. if he is writing notes so should you.
Look at past exams look for patterns in questions.
If you can pick your group before your project this will help nothing worse
than having teammates that don't do work.
Get whatever data you need from the company as soon as possible (preferably
the first week). This way you can start implementing immediately.
If the technology stack is not a constraint, use one that you've worked on
in the past or choose a stack that is easy to use.
Start implementing no later than week 2. Some projects are hard to
implement so you better start coding sooner rather than later. You don't want
to start when all your other projects are due.
Manage your time well and efficiently, don't get bogged down.
At times you will be frustrated and want to quit; power through and keep
going.
It is essential the project you pick is a manageable one and one with
people you know and worked with in the past.
Do any internship or coop you can get in your field. The experience will
benefit you more than you expect.
Try to get a full night's rest. You can get 8 hours of work when exhausted
done in 2 when well rested.
Schedule everything and stick to that schedule as much as possible. You
will find you have more free time when you have planned your time properly.
Develop and solidify a team meeting minimum once a week. Make sure in these
meetings you effectively communicate goals each member wants to achieve, and
before ending the meeting make sure there is one unified goal/vision for the
next week's work. Ensure all members are heard and included.
Start all documents ASAP. This will enable you to have enough time to clear
up confusion, make modifications and most likely get the deliverable done right
and on time. Deadlines matter.
Make a project plan within the first week you are assigned your project.
Even if your plan deviates from the original, it will be clear what goal your
team is trying to achieve. Ensure that you allow planned time for research as
your project may be new to you or some of your members.
Pay attention to and review the lecture slides when making your
documentation, not just for what to do, but why. If you put effort into them,
they make the project easier.
Try applying the agile methodology to your project group. If at the end of
every week or two you don't have functioning software, something might be
wrong.
Don't hesitate to ask or consult the company for technical help. They are
probably familiar with the language(s), practices, development tools, etc. that
you need. They don't expect you to already know the answer and they understand
you're a student; you'll get a lot more done a lot faster and a lot better by
asking for help early.
Communicate, communicate, communicate. While going through your project
continue to communicate constantly. Even one week of no communication could be
a major setback.
Make sure you are specific when you first meet with your company. Get all
the details and info on the first go around so you don't miss anything of fall
behind.
Have fun with your project. This is what most people taking this call will
be doing for the rest of their lives so enjoy what you are doing and it will
show in the product.
Pick a project that interest you and make sure you meet with your team.
Know the schedule of your team members so you know when to meet.
This class to help you get a sense of how industry world. So, make sure you
ask many questions.
Take time to think about the workload you will have from your other
classes, and if that will be compatible with the projected workload of the
project sign-up for.
Create and maintain good lines of communication with your team. Whether it
be email or messaging app, ensure you and your teammates are always able to
communicate in a timely manner.
Mett as a team, if possible, to conduct document review prior to
submission. This will allow you as a team to stay on the same page regarding
the various documents you have to submit, and it will also enable team members
who might not be as good as other in writing documentation to learn more.
As a computer engineering student I would highly recommend taking software
engineering as one of your elective choices as most classes will benefit from
such a decision. I know it could have helped me in senior project.
As a student you should take algorithms the year at which you plan on
getting/sending out job offers as it will be highly beneficial as many
companies will ask you these algorithms based questions.
As a student you should try and continuously practice your coding
throughout your entire career here at USF. Although it may seem beneficial to
get these classes out of the way early in your career here at USF you could
potentially forget some key concepts. Never forget your training and stay on
top of it!
Teamwork if very important. It will make your entire class run smoothly.
Make sure to meet with your team each week. Give each updates on the process of
each other's work (this will help if any changes need to be made throughout the
project).
Start early! Although it may seem like you have a lot of time for the
project, starting early will give you time do to the project right.
Attend every class! There is a lot of useful information to be gained that
can be applied to your project. Plus, you can get a good understanding of how
the work world is like from the guest lectures.
Meet often with the company; this can't be said enough. The only real way
to get a meaningful work experience is to spend time with the company reps.
This will expose you to all the aspects of the company. Although the project is
your focus, there is much more to experience, like the work environment or
examples of teamwork and collaboration.
Take extensive notes of the guest lectures; it is not enough to get a
general idea because lectures may have topics in common. The questions are
direct quotes.
Do not procrastinate: This class has many requirements on top of completing
your solution. Don't waster the time you have at the beginning. Time is a
critical constraint that you can't get back.
Pay attention to the lecture about teamwork. These methods could be new to
you but are tested and proven in the work environment.
Talk with the professor. Just go to his office hours or send him a 3-minute
email. It is much easier then complaining about something that you don't
understand (because he will take the time to explain it to you). Even last
minute advice helps too.
If the ethics or morale of your team negatively affects you (1) talk to
your professor (2) you do not need to physically meet with the. Remote meetings
work as well.
If you have to ask yourself "who is leading the group." It's you. Take a
few hours to organize things. Take initiative.
Do a little bit each day. We all have classes and it all piles up at the
end of the semester. Doing 25 minutes of research every other day for a week
gets a lot done.
"Anything worth doing is worth 'half-assing'" If you find yourself
paralyzed by the fear of your own goals for the project, know that you don't
have to do all of them. Requirements can be changed and revised. In the end
what's important is to have something done, because you learn from each
experience. That project that you think you didn't do all you could was
valuable to your experience moving forward.
It is very important to have a strong starting foundation. Yes, the
requirement document is frustrating and the background research is annoying,
but doing all this work early on saves a lot of stress later on in the
projects.
Get started working on a prototype early, even when developing
requirements.
Don't always depend on other to do the work they're given perfectly. Always
have a backup and backup plan.
Update your company at least once a week to ensure progress is being made
and you get any help you need.
You get out of the class equally to what you put into it.
Take advantage of the guidance of the actual working
engineers/professionals that present.
If you have a hard project focus on learning new things sort looks good on
your resume, and if you have an easy project focus on cementing what you
already know so it looks good on your resume.
Try to get as detailed requirements from a company during the first week as
it is possible. That will encourage them to think it over and make the changes
to them at the beginning instead of developing stage.
Get to know your group partners code writing skills beginning for a proper
team management, and work distribution.
Use shared cloud documents for requirements and test cases so each member
has access to the most recent one during the developing stage.
Start your project early and keep working on it consistently.
Stay in touch with your customer and provide status updates weekly.
Don't be reluctant to disclose project difficulties with your customer,
talking with them can give insight into your problem and expose solutions for
it.
Ask lots of questions, truly understand constraint.
Communicate well with your teammates don't dismiss them.
Take lots of guest speaker notes.
Be realistic with what goals you can and cannot do and tell your company
but first discuss with Dr. Christensen.
Dr. Christensen senior design course slides and readings are on the
website. Students should familiarize with material before lectures.
When taking notes, consider to take nots for the course as well as for the
future. Materials, discipline and structure will be used in the engineering
career field. In other words, be detailed and take good notes.
Get to know Dr. Christensen, he is very intelligent and has a lot of advice
to help students. Dr. Christensen is a very good person for networking with, so
another plus.
Make sure your teammates understand the concepts behind the documents you
will be working on. If a required section of a document seems out of place, it
is likely because you are misunderstanding it.
If you are working on software, make sure you use version control resources
and repositories. Every member of your team should be able to access the most
up-to-date code at any given time.
When you are giving feedback to another group, make sure to be honest and
provide detail. Your feedback will help tremendously because they probably
didn't have the opportunity to present their project to many people.
Manage your time. I know it sounds cliché but during senior project you get
a lot of tasks that are due on a weekly basis. Try to set time aside to work on
these tasks. This helps to have everything well documented and being prepared.
This will carry on when you are in a real world environment where deadlines
must be met.
Seek advice or help. There are times when you don't know which direction to
turn and you have come to a standstill on your project. If that is ever the
case, go talk to Dr. Christensen. He is available and is willing to help you
get back on track.
Go to class. Senior project has a lot of great guest lectures that come and
talk about their company and give advice about how to succeed and what
companies look for in individuals. It is also a great way to network and
possibly land a future interview.
Understand how important nailing your requirements and specifications are
(even if you update them and you will!)
Be concise
Ask for help (From Dr. Christensen)
Do your research (other similar projects, tool documentation, etc.)
Be quick to set a meeting schedule (weekly or bi-weekly) with your group
members to recap and plan the next goals (good time to do your status report).
Pay attention and take concise notes on the guest lectures. They have
industry experience and crucial insight on how to successfully work in teams
now, and in the future.
Make sure you thoroughly review the projects of each company before you
make a choice. Try to understand your skills and if it is suitable for that
project.
Try to get along with your teammates. Even if you feel that you are more
knowledgeable than them, don't dismiss their ideas or possible solutions. They
are more knowledgeable than you think and you can actually learn a thing or two
from them.
The prototype demo is extremely important. Make sure you start your project
with the demo in mind. You want to try to fully implement most of your
requirements. Make sure you rehearse and practice the demo before the actual
demo.
Communicate with the company regularly and explain any problems you have
run into. The company can offer solutions or work with you to adapt the scope
of the project.
Start work on your solution right away and schedule specific days and times
where you will only focus on the project. This will prevent you from getting
overwhelmed with work later in the semester.
Make sure your design is realistic for the small amount of time you will
have to implement it. Understand the many features that are necessary to
fulfill most of the requirements and focus on those.
Have the first meeting with your team. By the second or third day of class,
I think there is a purpose to choose your company on your first day. It's to
not just say you chose a company, it's to really give you a good head start and
the way to start is to have a good meeting that you express your strengths,
your work ethics, your schedules, and your decisions that will help you guys
start working as a team.
If you notice by the third week your team members are leaving you out or
being rude and not taking any of your input, tell Dr. Christensen. If you don't
you will regret it in the end because your team may not respect you or leave
you out or even force all the work on you.
Follow the lecture slides, they really help for the deliverables and to
study for the exam. And the readings are useful for the design process and team
building.
Delegate each individual's responsibilities early and often so that all
team members are as productive as possible throughout the entire process. This
also provides and effective means for the group to hold each other, and itself
as a whole, accountable.
Meet as a team outside of class often. I'd personally recommend at least
once a week. Communication is better face-to-face and the help you can offer
each other is invaluable. Plus, many of the tasks you will face are not
possible to work on outside of group meetings.
Listen carefully to Dr. Christensen and take careful notes. He is very
particular and expects you to be the same, but you will honestly grow for it.
The companies you will report to will appreciate and expect the same level of
preciseness Dr. Christensen expects. There's a reason for it