|Meeting time||MWF 3:00 - 3:52 p.m.|
|Meeting place||B 165 (or B 164 lab as appropriate)|
|Professor Xiannong Meng||Dana 212, x. 71214, xmeng at bucknell dot edu|
|Office Hours||See my schedule|
|Or simply stop by my office|
|Textbook||No required textbooks.|
Course website: http://www.eg.bucknell.edu/~cs479/
Course gitlab site: https://gitlab.bucknell.edu/
Course Moodle site: http://moodle.bucknell.edu/course/view.php?id=21170
Students in teams use software engineering methodology to design and implement a semester-long project. Written reports and presentations are required. Prerequisites: CSCI 205 and senior standing in the College of Arts and Sciences.
Students will be able to
- function effectively in a project team (CAC d);
- use knowledge from previous courses in designing, implementing, and evaluating a culminating computing project (CAC b,c);
- organize, write, and deliver technical written document(s) and oral presentation(s) about the project (CAC f).
CAC Student Outcomes Addressed:
- CAC (b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
- CAC (c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- CAC (d) An ability to function effectively on teams to accomplish a common goal
- CAC (f) An ability to communicate effectively with a range of audiences
This is a project based course. You will develop a large piece of software using an Agile software development process which you will learn in class (if you haven't already seen it in other classes.)
The course meets three hours a week with a mix of lectures, collaborative learning activities, customer meetings, and team meetings. When necessary, we may move our meetings to a computer laboratory.
Since this is a W-2 course, students are expected to have substantial amount of writing and presentation.
During the semester (the software development process) we will set a number of milestones (short term goals) for the project that each team needs to meet. These milestones can be in the forms of written papers, presentations, deliverable software components, among others.
The instructor (and other customers) will propose projects for students to work with. Students may propose their own projects. Since we have only one semester to work on the projects, we will need to make a decision on the project in a short period of time, e.g., about two weeks. Teams of students can work on different projects. A student proposed project needs the approval of the instructor.
Follow this link for a detailed description of the project.
Quoting from the university Academic Expectations section of Student Handbook
"Courses at Bucknell that receive one unit of academic credit have a minimum expectation of 12 hours per week of student academic engagement. Student academic engagement includes both the hours of direct faculty instruction (or its equivalent) and the hours spent on out of class student work. Half and quarter unit courses at Bucknell should have proportionate expectations for student engagement."
The ultimate goal of this course is for student teams to design, implement, test, and release a piece of software. Though the final product is important, the process of reaching the goal is equally important.
We will employ an agile software development process. Students are expected to accomplish a number of tasks in producing the software.
- Attendance and articipation: CSCI 479 is a project course. While we will have three meetings per week at the specified hours, we will not have regular lectures. Instead we will discuss various issues and explore technologies needed to complete the product as a class or as a project team. Attendance and participation in all meetings are critical.
- Team assessment: A number of tasks throughout the semester, including the final project, will be completed in teams. Contribution to team work is an essential part of the course. Team work includes design, coding, testing, writing document, technical presentations, and research. To assess how teams are working together, we will use a survey to collect data. The goal of the survey is not necessarily to assign grades for each team member. Rather the survey is used to gauge how the team is doing and to see which areas the team can improve. See this page for details. Peer evalation of individual members will be done using a separate form. See the relevant section.
- Individual proposal: Each student is asked to submit a proposal which contains two major components. The first componenet is your understanding of the project, its functions and its scope. The second component is your argument why you want to pursue this project. You can also propose teammates with whom you'd like to work in the project.
- Project journals: Each student is asked to keep an individual weekly journals. Each journal should contain, as a minimun, the following pieces of information.
The intended reader of the journals is your instructor (you may consider the instructor as your project leader.) The expected length is somewhere between one and two pages (400 to 600 words.) There is a total of 14 weeks during the semester. Each student is required to turn in 10 sets of journals. The journals are to be graded as check, check+, and check-. The instructor will provide written feedback to a subset of the journals. Students are asked to revise this subset of journals based on the feedback.
- a summary of what is taking place in your team project;
- a summary of what you learned (academic or otherwise) during the week and your reflection. The reflection could include what you think the experiences may be useful for you and how you may do it differently in future. Any other reflective thoughs are welcome.
Please check the course Moodle site for resources how to write project journals.
- System architecture and overall design: Student teams will present to the class a system architecture. The overall design should include major components of the system, interaction among the major components, snapshots of screens, user interfaces, and other artifacts to show how the system might work together. A written report and an oral presentation are required. The report is expected 5-7 pages (2,000 to 2,500 words). The presentation is expected to be about 15 minutes. Please follow proper format.
- Project progress reports and presentations: While we will exchange information about the project at each of our meetings, two formal progress reports and presentations are required during the semester (sometimes during the 5th week and the 10th week). The reports are expected to be 3-5 pages (1,200 to 1,500 words) and presentations about 15 minutes each. Each report should include the following.
Please follow proper format.
- Current status of the project
- Team plan for the remaining of the semester
- Any successful stories or difficulties during the past weeks in the semester
- Team reflections
- Product backlog and sprint backlog: Each team will maintain a Product Backlog and a Sprint Backlog. While the format of Product Backlog and Sprint Backlog varies greatly, we will pick a simple, yet effective one to use. Each team need to maintain a product backlog and a sprint backlog in the form of a Google Spreadsheet document which is to be shared among the team members and the instructor. The backlogs should be updated regularly to reflect the product progress and team work.
- Project Website: Each team will maintain a project website to promote their team and product, using Bucknell Blog site or your personal Bucknell site.
- Final project report and presentation: Each team will write a final report and make a final presentation about their project at a designated time. Follow the link for details.
- Individual reflection of Bucknell education experience: Because CSCI 479 is designed to be a culminating experience for students, each student is required to write an individual paper to reflect on their Bucknell education. Contents should include, but not limited to, your experiences as a student at Bucknell, your computer science education, your general education, and your extra-curriculum activities that help you grow intellectually. General length of the paper should be 2,000 to 2,500 words.
This form is used to evaluate individual effort towards team activities. You can also use the Word form to email me directly. Note that the peer evaluation is separate from team assessment.
This rubric will be used to assess your presentations.
This rubric will be used to assess your writings.
The course assessment is based on the following distribution of the grade.
Participation and team assessments 10% Project journals 10% Project artifcats (Product Backlogs, Sprint Backlogs, and Website) 12% System design report and presentation 8% Project progress report and presentations 20% Final project delivery, presentation, and report 30% Individual reflection paper 10% Total 100%
The peer evaluations from team members will then be applied appropriately to the final grade of each individual student.