CSC 490: Senior Project

A printable PDF is available.

COURSE TITLE:Senior Project
PREREQUISITES: CSC 340 and senior standing, or permission of instructor

FOR WHOM PLANNED: Required capstone course computer science majors.
Office: Petty 166
Office Hours: Tues/Thurs 2:00 - 4:00
Phone: 336-256-1033


CATALOG DESCRIPTION: Application of classroom knowledge and skills in computer science to solve real-world problems and to develop research and development skills.

COURSE OBJECTIVES: Students in the Senior Project course will:

  1. develop openness to new ideas in computer science, develop the ability to draw reasonable inferences from observations and learn to formulate and solve new computer science problems using analytical and problem-solving skills;
  2. develop the ability to synthesize and integrate information and ideas, develop the ability to think creatively, develop the ability to think holistically and develop the ability to distinguish between facts and opinion;
  3. develop the ability to work individually and as part of a team, develop a commitment to accurate work, develop management skills, improve speaking and writing skills, improve the ability to follow directions, instructions and plans, and improve the ability to organize and use time effectively;
  4. develop a commitment to personal achievement, the ability to work skillfully, informed understanding of the role of science and technology, a lifelong love of learning, and cultivate a sense of responsibility for one's own behavior and improve self-esteem/self confidence.

STUDENT LEARNING OUTCOMES: Upon successful completion of this course students will be able to

  1. (Knowledge, Comprehension) identify project/research problems; understand information and grasp meaning; translate knowledge into new context; use information, methods, concepts, and theories of fundamental topics in computer science in new situations;
  2. (Application and Evaluation) apply computer science principles and practices to a real-world problem; demonstrate in-depth knowledge in the area of the project they have undertaken; solve problems using required knowledge and skills; implement and test solutions/algorithms;
  3. (Analysis) identify potential solutions/algorithms for the project problem; see patterns and modularize the problem, recognize hidden meanings and identify components, show proficiency in software engineering principles;
  4. (Synthesis) create new ideas using the old ones; generalize from given facts in the project they undertake, relate knowledge from several areas in systematic scientific approach, predict and draw conclusions relevant to the project they undertake;
  5. (Team Work) show evidence (group collaboration, regular meetings, email communications, significant knowledge and skills contributions, etc.) of working productively as an individual and in a team on a project that produces a significant software product;
  6. (Communications) show evidence of competency in oral and written communications skills through oral presentations (project presentation, department seminar or conferences), technical reports and/or published research papers in conferences and/or journals;
  7. (Lifelong Learning) use modern techniques, skills and tools necessary for computer science practices relevant to the project they undertake; use techniques in recent research papers to solve problems.

TEACHING METHODS AND ASSIGNMENTS FOR ACHIEVING LEARNING OUTCOMES: This class will meet twice per week for 75 minutes each meeting -- some class time will be traditional lectures, reviewing concepts and tools that are useful for the senior project, but most class time will be used for guided discussion, student presentations, and some team meetings.

Students are expected to choose an appropriate project/research topic in consultation with the instructor, and do a short presentation that "pitches" the idea to the instructor and the class. While there is some flexibility in project selection, students should keep in mind the "capstone" nature of this class. Students must develop projects that demonstrate that they have a working knowledge of basic and advanced concepts in computer science and also demonstrate a reasonable knowledge of recent developments in computer science. Each project should include non-trivial software development that has been approved by the instructor.

With an approved project, students will proceed through a standard sequence of software development stages, beginning with a requirements analysis and specification, and concluding with a final evaluation. A full list of the 5 project stages is given in the "TOPICAL OUTLINE/CALENDAR" section. At the end of each stage, each team must produce a written report giving stage-specific documentation and describing the work performed, problems encountered, and decisions made. For team projects, the report must include a meeting log and breakdown of tasks by team member. One week before the completion of each stage, there will be a presentation from each project that previews the progress and results in that phase, for in-class discussion and suggestions for refinement in the following week. For these intermediate stage presentations, team members will rotate through as "presenter" for the team, and each student must make at least two intermediate-stage presentations (for a 3-person team this means that there will have to be multiple presentations on the same stage).

The final deliverables for the project are: a technical report that includes a self-contained one page summary, suitable for putting on a web page, a display poster, and an oral presentation. For projects that aim to develop a usable software system, the technical report must include a "user's manual" that describes the system to an end-user. In the case of a group project, each member of the group must present the entire project, highlighting their individual contributions toward the project's success, and a short summary of each individual's contributions should be included in the final report as well.

EVALUATION AND GRADING: Students work on a single project throughout the duration of this course, and their course grade is calculated based on the grades for individual aspects and milestones. The project will be graded for content, correctness, quality of presentation (oral and written reports), team work (in case of group project), and the demonstration of the student's knowledge in the computer science field.

Proposal 5 points
Presentations 1-4 (must do 2 at 5 points each) 10 points
Progress Report 1 (Requirements/Specification) 10 points
Progress Report 2 (Planning and Analysis) 10 points
Progress Report 3 (System/Research Design) 10 points
Progress Report 4 (Implementation and Testing) 10 points
Final Deliverables:
          Final Presentation 10 points
          Technical Report (including final source code) 30 points
          Project Poster 5 points

ETS Exam: You must take the ETS exam (a standardized test of undergraduate-level computer science knowledge) to pass this course. However the scores that you receive for ETS will not affect your grade in this course. The Department of Computer Science will pay the fee for ETS exam, which will be given on Thursday, March 26.

REQUIRED TEXTS/READING/REFERENCES: Readings and references are project-specific, and will be determined by project groups, with approval of the instructor.


See PDF version.

ACADEMIC INTEGRITY POLICY: Students are required to sign the Academic Integrity Pledge on any work they do. The pledge is the statement "I have abided by the UNCG Academic Integrity Policy on this assignment." For information on the UNCG Academic Integrity Policy, see

Students are encouraged and expected to work in teams, but individual responsibilities should be planned and documented throughout the phases of the project.

Students will be making extensive use of external references for their project, and should be vigilant in maintaining high standards with regard to attribution and avoidance of plagiarism. If there are questions about how to deal with any such matters, the student should discuss the matter with the instructor to make sure there are no misunderstandings.

ATTENDANCE POLICY: Attendance is vital for this class, since discussions and regular oral presentations and progress reports will have a strong impact on the ability to complete the project. You may be dropped from the course for missing more than two meetings.

FINAL EXAMINATION: There will be no final examination in this class. Final project reports are due on the last day of class before finals week.


Laptop/Cellphone Policy: Laptops can be both a benefit and a distraction in a classroom. While many students benefit from taking notes using a laptop, or having access to outside class-related resources during class, other students cannot resist the temptation of checking e-mail, chatting, or even playing games during class time. This class has a strict "no non-class related use" rule for laptops -- if you are found violating this policy, then your in-class laptop privileges will be taken away. Cellphones are a distraction for everyone, and should be turned off during class. If there is a special situation where you need to have your phone on for a particular day, please let the instructor know the situation before class.

Late Policy and Makeup Exams: Late work will not be accepted. Make arrangements with the instructor to turn in work early if you will not be in class on the due date.

ADA STATEMENT: UNCG seeks to comply fully with the Americans with Disabilities Act (ADA). Students requesting accommodations based on a disability must be registered with the Office of Disability Services located in 215 Elliott University Center: (336) 334-5440.