CSCI 462 Software Engineering Practicum - This course provides hands-on experience in the practice of group-based software development. Student teams utilize development tools and techniques to implement software solutions to moderately complex problems. This project-based component provides a framework in which students gain both understanding and insight into the application of software engineering principles.
DATA 495 Data Science Capstone - A capstone course for the application of knowledge discovery and data mining tools and techniques to large data repositories or data streams. This project based course provides students with a framework in which students gain both understanding and insight into the application of knowledge discovery tools and principles on data within the student’s cognate area. This course is intended only for data science majors.
CSCI 462 - Senior standing, COMM 104, C- or better in: CSCI 362
DATA 495 - DATA 210
DATA 495 Co-requisites - CSCI 470, and MATH 441.
Professor: Dr. Paul Anderson
Office: 313 Harbor Walk East (but I’m in my lab most of the time)
Office Hours: Monday, Wednesday, Friday from 9:30 to 10:30 AM.
Office Hour Policy: Drop by anytime. I’ll let you know if I can’t talk, but most of the time I can.
MWF: 10:30-11:20 AM in Harbor Walk East 302
MWF: 12:30-1:20 PM in Harbor Walk East 302
- Gain in-depth experience from learning to participate in and successfully contribute to a team programming project using the Scrum agile methodology.
- Produce a short video that describes and promotes their project and the experience.
- Present orally reports of project progress, which includes Daily Scrums and midterm/final presentations.
- Produce a detailed SRS document.
- Describe the ethical issues associated with software development and re-use with a focus on intellectual property issues.
The course is an integrative capstone course that synthesizes and contrasts the following core objectives of the DATA major:
- investigate, visualize, speculate, and invent using computing and computational thinking;
- synthesize innovative software applications and algorithms combining statistics, mathematics, computer science, data mining, artificial intelligence, databases, and a domain area; and
- explore the potential of computational thinking and its influence on society.
GitHub Production and Evidence - 50% (25% before midterm and 25% after midterm given as a lump sum at the end)
Scrum Master Performance (specifically communication with company, instructor, team) - 20%
Midterm Presentation - 10%
Final Presentation - 10%
2-3 minute slick video - 10%
A: 90-100; B: 80-89; C: 70-79; D: 65-69; F: <65. Plusses and minuses will be used at the discretion of the instructor.
Submitted work requires Analysis, Evaluation, and Creation of ideas, concepts, and materials into various deliverables (e.g., see revised Bloom’s Taxonomy (http://www.nwlink.com/~donclark/hrd/bloom.html) and reference below).
The grade of A is for work that involves high-quality achievement in all three Bloom areas.
The grade of B is for work that involves high-quality achievement in at least two Bloom areas, and mediumlevel achievement in the other.
The grade of C is for work that involves high-quality achievement in at least one Bloom area, and mediumlevel achievement in the others.
The grade of F is for work that does not meet above criteria.
Reference: Errol Thompson, Andrew Luxton-Reilly, Jacqueline L. Whalley, Minjie Hu, and Phil Robbins. 2008. Bloom’s taxonomy for CS assessment. In Proceedings of the tenth conference on Australasian computing education
- Volume 78 (ACE ‘08), Simon Hamilton and Margaret Hamilton (Eds.), Vol. 78. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 155-161.
Semester Long Project: This courses revolves around a semester long project. All of your learning and therefore grades center on this one task. As such, this course does not operate like a standard lecture course. In fact, apart from some short discussions at the beginning of some classes, there will be no lectures. It is a team project, but wherever possible, you will be graded individually. Your success in this course depends on your ability to work well with team members inside and outside of class. Course time will not be used to teach you new technology as this will be specific to your project. This course tries to mimic a real-world software/date development team. You can picture yourself as junior developers or data scientists because at this point, well, you are (assuming you pass this course :). You can picture me as your instructor/CTO. Most of the in class time is needed to execute the standup portion of Agile development leaving almost no time for introducing new material. Good thing you’ve had approximately 4 years of new material getting you ready for this course. I will be available digitally and during office hours, and because I like all things nerdy, I will happily try to help with whatever technology your project demands. But you and your team are ultimately responsible for the success of your project.
Industry Partners/Representatives: Each team will work with an industry partner on a real project of importance to their company. Each company will provide feedback on your performance that will not be used in your grade in any direct way, but it will be used to corroborate my own observations.
Instructor Role: The instructor of this course acts as the overseeing chief technology officer for all the projects, helps represent and interact with the client (industry partner), and resolve project impediments.
Scrum Master: Each team has a scrum master who rotates off of that role after about a month. So, each team member will have the opportunity to be scrum master for about a month. As scrum master, you manage the project (project and release backlogs/user-stories, and burndown chart/velocity/timeline-to-finish), make sure all team members are progressing, work with the instructor to resolve impediments, set release dates, sprints, and moderate Daily Scrums.
Other Roles: Other roles on the team include the Developer, Tester, DevOps roles. Because we will have small teams, all of these roles will probably not be exclusive to one person. (Scrum masters will still have to code, developers will have to test, etc)
“Daily” Scrums: Each week during class, we will do our Daily Scrums. Based on your performance that week, you will get a graded progress report. If you miss a class, you lose 33% of your progress report grade. If you are more than 5 minutes late to class, you lose 16% of your grade. Progress reports will be given out weekly before the midterm presentation. After the midterm, your final scrum/work performance grade will be assigned at the end of the semester.
Communication with the company: Each week your scrum master must initiate at least one professional communication with the company via e-mail. These emails MUST be professional (Random internet link about emails). The instructor (email@example.com) must be CC-ed on every e-mail with the company. The must begin with CofC Industry Capstone in the subject line followed by a colon and then the real title (e.g., CofC Industry Capstone: Question about the database). If they are not professional, not only will I make you resend it with an apology, and you’ll get a 0 for that week’s email grade. At the end of the semester, you must perform a formal project handoff to the company that includes any code, artifacts, and documentation. You will receive an incomplete as your final grade until this is done.
GitHub and Grading: After the teams and projects are selected, I will setup a private repository for each of the teams. Each week, I will grade these GitHub repos in addition to the standups. If something is not in the GitHub repo or shown during the standup, it doesn’t exist in terms of grading. Therefore, I suggest you use GitHub issues, projects, Wiki, etc as much as possible. You can use other tools like Slack and Trello, but that will not count for your grade unless you copy those interactions into GitHub somehow, which is duplication of effort in my opinion, and I would avoid it. You should be able to have a nice easy life if you stick to e-mails and GitHub for grading purposes. Most companies will be using Slack, which I personally use and love, but that communication won’t be graded.
Presentations: Presentations can NOT be missed and can NOT be made up.
Final Deliverables: The final documentation for the project includes a detailed software requirements specification template. Also, you must create a slick 2-3 minute video that documents and shows off your project/experience.
Schedule: Here is our schedule. You should check back regularly as this can change.
Honor Code: Lying, cheating, attempted cheating, and plagiarism are violations of our Honor Code that, when identified, are investigated. Each instance is examined to determine the degree of deception involved.
Incidents where the professor believes the student’s actions are clearly related more to ignorance, miscommunication, or uncertainty, can be addressed by consultation with the student. We will craft a written resolution designed to help prevent the student from repeating the error in the future. The resolution, submitted by form and signed by both the professor and the student, is forwarded to the Dean of Students and remains on file.
Cases of suspected academic dishonesty will be reported directly to the Dean of Students. A student found responsible for academic dishonesty will receive a XF in the course, indicating failure of the course due to academic dishonesty. This grade will appear on the student’s transcript for two years after which the student may petition for the X to be expunged. The student may also be placed on disciplinary probation, suspended (temporary removal) or expelled (permanent removal) from the College by the Honor Board.
It is important for students to remember that unauthorized collaboration–working together without permission– is a form of cheating. Unless a professor specifies that students can work together on an assignment and/or test, no collaboration is permitted. Other forms of cheating include possessing or using an unauthorized study aid (such as a PDA), copying from another’s exam, fabricating data, and giving unauthorized assistance.
Remember, research conducted and/or papers written for other classes cannot be used in whole or in part for any assignment in this class without obtaining prior permission from the professor.
Students can find a complete version of the Honor Code and all related processes in the Student Handbook at http://www.cofc.edu/studentaffairs/general_info/studenthandbook.html.
- You are expected to participate in class with questions and invited discussion.
- You are expected to attend all classes. The grade ‘WA’ will be given for excessive (>= 3) absences. If you miss class, you must get an absence memo from the Associate Dean of Students Office (http://studentaffairs.cofc.edu/general_info/absence/) ; also, you are responsible for announcements made in class, assignment due dates, etc.
- In summary, you should contribute positively to the classroom learning experience, and respect your classmates right to learn (see College of Charleston Student Handbook (http://studentaffairs.cofc.edu/honorsystem/ studenthandbook/index.php) , section on Classroom Code of Conduct (p. 58)).
Late Policy: No late days will be allowed without an excuse. This course is an upper level course, and it will move very fast. Falling behind on assignments will make it difficult to achieve the learning outcomes of this course.
Disability Accommodations Any student who feels he or she may need an accommodation based on the impact of a disability should contact me individually to discuss your specific needs. Also, please contact the College of Charleston, Center for Disability Services http://www.cofc.edu/~cds/ for additional help.