Effective design requires identifying the “right” problem to solve, building components that meet that problem’s needs, and integrating components into a single solution system. As problems become more challenging, solid design, follow through, and teamwork skills become necessary to developing a solution. Every computer scientist and computer engineer who wants to work on big problems must have these skills.
After this course, you will be able to:
- analyze a complex computing problem and identify solutions using computing principles,
- design, implement, and evaluate a computing-based solution to meet a given set of requirements,
- apply computer science theory and software development fundamentals to produce computing-based solutions,
- collaborate effectively as a member of a team,
- recognize professional responsibilities, both legal and ethical, and make informed judgements in computing practice, and
- communicate
You will work in groups of 4-5 people to complete a significant engineering design project. Every project requires complete implementation, documentation, evaluation, and demonstration of a computing system design. The focus is not only on the final product but also on design methodology, management process, and teamwork. At the end of the semester, each group will make a public presentation describing and demonstrating their work.
Why I Teach this Course
This course offers you a unique learning experience. The TA and I are always especially excited to teach this course, and here is why:
- You finally get to combine everything that you have learned throughout your entire undergraduate curriculum. This not only includes the computer science skills you have gained, but also the professional, cultural, and communication skills that you have developed.
- This is an opportunity for you to try to solve a problem that matters to you. This course gives you a lot of freedom and choice in your semester-long project. This course can be the first step towards moving to the career of your choice.
- Building a system from start to finish is fun and rewarding. Students often tell me that this was the greatest experience of their entire college career.
- Working on teams can be messy, but it’s worth it. It is amazing what you can accomplish together, so much more than on your own. Working on real problems with real people has its challenges, but it is also very rewarding when you successfully complete your goals.
- Every semester is different, every team is different, every solution is different. There is always something new to learn and innovate.
- Smaller class sizes and weekly meetings allow you to connect with your classmates and your instructor.
Course Information
The course syllabus is posted on Howdy.
Course Description
Senior Capstone Design is a project-based course to develop system integration skills for solving real-world problems in computer science; a significant team software project that integrates advanced concepts across computer science specializations; projects require design, implementation, documentation and demonstration, as well as design methodology, management process and teamwork.
Credits: 3 (1 Lecture Hour, 6 Lab Hours)
Special Designation: C (oral communication)
As per university requirements: 1) at least 35% of your grade will involve written or oral communications, 2) 70% of that 35% is based on individual (not group) writing or speaking, 3) at least 1250 words are individually written, 4) feedback is provided to you to allow for revision of some amount of documents or slides, 5) you have at least 5 minutes of individual public speaking. To receive C credit for this course, you must pass the C component.
Prerequisites: Senior classification, CSCE 315, CSCE 411, and two additional CSCE tracked courses.
Learning Outcomes
To prepare you for engineering practice with a major design experience based on the knowledge and skills acquired in earlier course work and incorporating engineering standards and realistic constraints that include most of the following considerations: economic; environmental; sustainability; manufacturability; ethical; health and safety; social; and political.
It is expected that successful participation in the course will allow you to demonstrate:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgements in computing practice based on legal and ethical principles.
- Collaborate effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
We will cover many topics including:
- Designing engineering problems
- Using project management tools: Gantt, Trello, Github
- Undergoing ethics training: CITI, IRB
- Writing project motivation and identifying needs
- Conducting a literature review
- Designing and communicating a user interface
- Designing and running a user study
- Analyzing and interpreting data
- Communicating and summarizing results
- Developing professional writing skills and writing technical reports
Textbooks and/or Resource Materials
Required:
- Design of Everyday Things. Don Norman. (Basic Books 2013). Available free online at TAMU Libraries.
Recommended:
- The Five Dysfunctions of a Team: a Leadership Fable. Patrick M. Lencioni. (Jossey-Bass, 2002). Available free online at TAMU Libraries.
- Technical material from the literature, manufacturers’ data sheets and user manuals.
ABET Accreditation
This course is evaluated every year through the ABET (Accreditation Board for Engineering and Technology) accreditation process. ABET accreditation provides assurance that a college or university program meets the quality standards of the profession for which that program prepares graduates. Your degree is a significant achievement and perhaps the largest investment you will make toward your future. The quality of education you receive makes a big difference in your career success.
ABET accreditation:
- Verifies that your educational experience meets the global standard for technical education in your profession.
- Enhances your employment opportunities—multinational corporations require graduation from an accredited program.
- Supports your entry to a technical profession through licensure, registration and certification—all of which often require graduation from an ABET-accredited program as a minimum qualification.
- Establishes your eligibility for many federal student loans, grants, and/or scholarships.
- Paves the way for you to work globally, because ABET accreditation is recognized worldwide through international agreements, and many other countries’ national accrediting systems are based on the ABET model.
In order for the department of Computer Science & Engineering to keep their accreditation, the students must demonstrate their abilities in each of the above expected outcomes of this class. Each of those skills will be evaluated by external industrial affiliate members during your final presentation.