First: Join the Slack Channel : http://bit.ly/2KI1BJh
- This course will provide in-depth coverage of software engineering. The concepts presented are applicable to all types of software systems. Additionally, the course will develop the student's skills of interpersonal communication, team collaboration, project management, requirements analysis and research. After successfully completing this course, you will be able to apply fundamental software engineering concepts including analyzing, specifying, and designing large-scale systems; system implementation, testing and deployment.
- Graduate students enrolled in the course will be perform additional literature review and semester project work.
- The syllabus and the course schedule will evolve based on student progress. We will never alter the syllabus for assignments in the past or percentage of the grade. Topics may be changed and assignments substituted as necessary. Please make sure you are looking at the current version of the syllabus from Canvas at all times. Any changes will be announced in class as well.
- Prerequisite Courses CS2050, CS3380
"Git Back ... git .git ... git pull to where you once git forked ..."
-- The Beatles
- Use this cheat sheet. You will need it. CHEAT SHEET
- Git and Github are TEAM oriented software engineering technologies. Teamwork is now organic to computing, programming, developing, designing, and making the New David Hasselhoff Album.
My nephew, Sean McGuire (excellently named kid), is a backup quarterback for the Winnipeg Blue Bombers, after starting for 4 years at Western Illinois University. This has no bearing on the course our your grade, but I do love me some Blue Bombers banter in class to keep the mood light.
- This course is project based. Your assignments will involve the routine submission of working code on GitHub.
- You will not be able to learn the material if you are not in class. Office hours exist to help you work past obstacles that emerge after class, not repeat material presented in class. Be present. Participate.
- The first few weeks we will work through tooling issues with you, after that we expect you have learned how to use the slack channel and Google Each other.
- SLACK: Join. Participate. HELP EACH OTHER. Software Engineering is a team sport. Or an orchestra. The Tubas are not competing against the Drum Corps. They may be competing against the Trombones, but lets keep that off the field. JOIN SLACK CHANNEL NOW: http://bit.ly/2KI1BJh
##Topics
- Overview of Software / Systems engineering and Development Life-cycle
- Project Management: Collaborative Development, Software Economics, Resource
- Version Control Systems
- Requirements Analysis: Eliciting and Modeling Requirements and Systems specifications
- Software / System Architectures and Types of Software
- Object Oriented Design, Database and Data Services Integration
- System and Machine Interfaces
- Human Interfaces, Graphical User-interface Design, MVC
- Project Management and Collaboration Tools
- Software Development Methods: Traditional, Iterative, and Agile
- Software / System Testing and Security
- Teaching Assistant For all technical questions, grade questions or questions regarding the class, first, make sure you have read the syllabus. Your second point of contact are the Teaching Assistant (TA) for this class. They will raise any issues to Goggins if they are unable to answer your questions. The TA's for this course are:
- Caleb calebheinzman@mail.missouri.edu Caleb's office hours will be announced by the end of the first week. Office Hours for TA's are in 239 Naka Hall (The TA Office).
- Instructor
- Dr. Sean P. Goggins Email: goggins@missouri.eduPhone: 215-948-2729 Office: 113 Naka Hall Office Hours: 1pm – 2pm, Tuesday or by appointment.
Tuesday and Thursday 2:00 – 3:15 PM LEFEVRE HALL 106
- CS 2050CS 3380
- Access to a non-Windows Operating System: There are many anomalies associated with Microsoft Windows based computers, even with its implementation of Ubuntu Linux that students find time consuming to resolve. These issues make Windows based computers a significant disadvantage in this course because the Faculty and TA simply do not have time to help troubleshoot these kinds of difficulties. If you have a Windows based computer as your primary operating system please find another way. To the extent possible, we will try to help identify resources, to help.
- Work will be completed in a GitHub Repository you are assigned for the course or submitted via Canvas.
- Group Work
- Feedback will be given as comments, issues and other forms of instructor contributions to your GitHub Repository
- GitHub Repository Baseline Structure will be provided for Group Projects
- Technology
- You will need to identify a deployment environment:
- Unix based Amazon EC2 Server
- Postgres SQL as the Database Option 1
- MongoDB as the Database Option 2
- Flask : A Python Web Framework.
- Python 3
- Python Unit Testing Framework
It is expected that students are proficient with performing basic web-based and Engineering Library http://mulibraries.missouri.edu/engineering/ searches for information. Throughout the semester, students will be assigned reading from the IEEE Computer Society's Software Engineering Body of Knowledge:
- Short summaries of lecture topics may also be provided in place of the SWEBOK chapters.
- Additionally, IEEE, ACM and other open source papers providing thorough coverage of Software Engineering and the state of best practices will be assigned reading throughout the semester.
- Sommerville, Ian. Software Engineering. Ninth or Tenth Edition. Addison-Wesley, 2010. ISBN: 0-137-03515-2
- Fowler, Martin. UML Distilled. Third Edition: A Brief Guide to the Standard Object Modeling Language. Boston, MA: Addison-Wesley, 2004. ISBN: 0-321-19368-7
- Liebowitz, Jay, William Agresti and G. Reza Djavanshir. Communicating As IT Professionals. Upper Saddle River, NY: Pearson Prentice Hall, 2006. ISBN: 0-13-146828-6
- Students will write technical documents (proposals, designs, documentation, executive summaries and project reports) to convey complex technical concepts to a variety of audiences.
- Students will be able to analyze, interpret and describe the process of software engineering with respect to both large and small information systems, software systems, software development life cycles
- Students will be introduced to the preparation of a detailed problem definition incorporating needs analysis, market assessment, and scope and feasibility analysis for a desirable solution.
- Students will be encouraged to use a variety of tools in order to complete a project, managing the development, creating the design, and developing a solution.
- Students will demonstrate the ability to function effectively on a team.
- Students will work with a team of peers to analyze problems associated with a software solution, identify and define the requirements documents and models needed to determine possible solutions for the problem, and determine software and user-interface design.
- Students will refine presentation skills to prepare for the capstone sequence resulting in professional presentations.
- Students will be familiar with object oriented analysis and design issues using Unified Modeling Language (UML).
- Students will learn of ethical and professional issues related to software engineering
Grades will be +/- for both Undergraduates and Graduate Students. Per assignment breakdowns are here:
(Letter Grade : %) A+ : 97 > A : 93 – 96 A- : 90 – 92 B+ : 87 – 89 B : 83 – 96 B- : 80 – 82 C+ : 77 – 79 C : 73 – 76 C- : 70 – 72 D+ : 67 – 69 D : 63 – 66 D- : 60 – 62 F : < 60
(Letter Grade : %) A+ : 97 > A : 93 – 96 A- : 90 – 92 B+ : 87 – 89 B : 83 – 96 B- : 80 – 82 C+ : 77 – 79 C : 73 – 76 C- : 70 – 72 F : < 70
Assignments | Percentage of Grade |
---|---|
1. GitHub Assignment | 4% |
2. Resume Submission | 1% |
3. Project 1: Requirements Focus (individual) | 5% |
4. Project 2: Design Focus (team) | 5% |
5. Project 3: Testing Focus (individual) | 5% |
6. Project 4: Deployment Focus (team) | 5% |
7. Project 5: User Experience Focus (team) | 5% |
8. Project 6: Systems Integration Focus (team) | 5% |
9. Individual Requirements Analysis for Semester Project | 5% |
10. Semester Project Team Requirements Document | 5% |
11. Team Sprint 1 | 5% |
12. Team Sprint 2 | 10% |
13. Team Sprint 3 | 10% |
14. Team Sprint 4 | 10% |
15. Final Exam | 10% |
16. Classroom Participation | 10% |
Mastery of these topics is achieved through execution of the software engineering process. The course material and exercise sequences are designed to build a foundation upon which to successfully participate in a team-oriented software engineering project.
There will be periodic short quizzes in this course. These will be announced in class during the session before each quiz. It is expected that you are current on your lecture notes, readings and assignments from the week prior to each quiz. There will be no more than five quizzes throughout the semester. If you are not present for a quiz you will not get credit.
Each exercise and lecture topic builds upon the concepts and lessons of the previous days and weeks, and therefore they are each critical to the progression of the class. The solution to each exercise will be provided and/or discussed after its due date. For this reason, no late Exercises will be accepted. All exercises are designed and intended to be an individual effort, collaborative implementation or copying will result in a zero (0) on the exercise for all students involved. During lecture times, participation exercises and quizzes will be administered. These serve two purposes: to gauge the comprehension of the class regarding the recent lecture topics and concepts, and to survey lecture participation. These participation events cannot be made up when missed, resulting in a zero (0) grade.
Exceptions will be made to the above policies for only the following conditions: a) illness that is documented by a medical professional; b) pre-absence email notification to the instructor regarding illness, family related matters, career related matters. WARNING: information technology related problems/failures/challenges are not appropriate excuses for late work. As a student in a senior-level Computer Science course, it is expected that you are capable of mitigating the risks associated with technology!
Learning is the act of acquiring new, or modifying and reinforcing, existing knowledge, behaviors, skills, values, or preferences and may involve synthesizing different types of information. The ability to learn is possessed by humans, animals and some machines. Progress over time tends to follow learning curves. Learning is not compulsory; it is contextual. It does not happen all at once, but builds upon and is shaped by what we already know. To that end, learning may be viewed as a process, rather than a collection of factual and procedural knowledge. Learning produces changes in the organism and the changes produced are relatively permanent.
Psychology, 2nd edition. pg. 264. By Schacter, Gilbert, and Wegner (2009, 2011). Worth Publishers.
As a learner (aka student) in a senior-level Computer Science course, _ it is expected that you are capable of problem solving, Internet-based research, and constructing your own creative solutions _ to problems presented by the course. You must be a motivated, self-sufficient learner; applying your own creativity and problem solving skills to the work assigned as part of this class. The teaching assistants assigned to the course are strictly available to help you work through conceptual learning of the course material, not resolve your technology challenges or simply tell you the answers. It is imperative that you engage your mind and thought processes during your work in this course, else-wise you are depriving yourself the opportunity to grow as a learner.
Students taking Software Engineering for graduate credit (CS 7320) will complete all the same work as the undergraduate students. Additionally, graduate students will be assigned further reading assignments related to position papers and emerging research in the field of Software Engineering. You will compose papers (or presentations) that are either multi-article compare and contrast reviews or single article critiques. These writings will be counted as part of the 35% course grade that is allocated to Writing Assignments. Furthermore, graduate students will complete extra design and development related to the semester group project.
- _Academic integrity is fundamental to the activities and principles of a university.
- All members of the academic community must be confident that each person's work has been responsibly and honorably acquired, developed, and presented. Any effort to gain an advantage not given to all students is dishonest whether or not the effort is successful.
- The academic community regards breaches of the academic integrity rules as extremely serious matters.
- Sanctions for such a breach may include academic sanctions from the instructor, including failing the course for any violation, to disciplinary sanctions ranging from probation to expulsion.
- When in doubt about plagiarism, paraphrasing, quoting, collaboration, or any other form of cheating, consult the course instructor._
Students with Disabilities:
- If you anticipate barriers related to the format or requirements of this course, if you have emergency medical information to share with me, or if you need to make arrangements in case the building must be evacuated, please let me know as soon as possible.
- If disability related accommodations are necessary (for example, a note taker, extended time on exams, captioning), please register with the Disability Center http://disabilitycenter.missouri.edu, S5 Memorial Union, 573-882-4696, and then notify me of your eligibility for reasonable accommodations. For other MU resources for persons with disabilities, click on Disability Resources on the MU homepage.
- _The University community welcomes intellectual diversity and respects student rights. Students who have questions or concerns regarding the atmosphere in this class (including respect for diverse opinions) may contact
- the Departmental Chair or Divisional Director;
- the Director of the_ Office of Students Rights and Responsibilities _(http://osrr.missouri.edu/);
- or the_ MU Equity Office _(http://equity.missouri.edu/),
- or by email at equity@missouri.edu.
- All students will have the opportunity to submit an anonymous evaluation of the instructor(s) at the end of the course._
- University of Missouri System Executive Order No. 38 lays out principles regarding the sanctity of classroom discussions at the university. The policy is described fully in Section 200.015 of the Collected Rules and Regulations. _ In this class, students are not allowed to make audio or video recordings of course activity unless specifically granted permission by Dr. Goggins _. However, the redistribution of audio or video recordings of statements or comments from the course to individuals who are not students in the course is prohibited without the express permission of the faculty member and of any students who are recorded. Students found to have violated this policy are subject to discipline in accordance with provisions of Section 200.020 of the Collected Rules and Regulations of the University of Missouri pertaining to student conduct matters.