CSC 340: Software Engineering: 3 hours
Description
Students learn about the details of leading software engineering methodologies and how to implement the associated techniques. Prerequisite: (CSC 121 or ITSC 121) and CSC 150.
Goals for CSC 340 are:
- Learn the fundamentals of software engineering
- Learn the fundamentals of Agile
- Practice the aspects of Agile and SE on a real campus project
- Work on a team
Course outcomes for CSC 340 are:
- Upon completion of CSC 340, students will understand:
- the techniques associated with current software engineering techniques (specifically Agile)
- how to practice such techniques
- the issues associated with communicating with a customer
- how to write quality artifacts for a project and present them
- how to refine their work
Program outcomes for CSC 340 are:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (Computing student learning outcome 1)
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program\x92s discipline. (Computing student learning outcome 2)
- Communicate effectively in a variety of professional contexts. (Computing student learning outcome 3)
- Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles. (Computing student learning outcome 4)
- Function effectively as a member or leader of a team engaged in activities appropriate to the program\x92s discipline. (Computing student learning outcome 5)
- Learn new areas of technology. (Computing student learning outcome 6)
- Apply computer science theory and software development fundamentals to produce computing-based solutions. (Computer Science student learning outcome 1)
- Support the delivery, use, and management of information systems within an information systems environment. (Computing and Information Systems student learning outcome 1)
- Apply security principles and practices to maintain operations in the presence of risks and threats. (Cyber Security student learning outcome 1)
Integration
- Self learning at the introductory level by requiring students to learn at least one aspect of Agile programming on their own and use it during the semester.
- Note taking at the application level by requiring students to take quality notes from meetings and grading those notes
- Technical writing at the application level by quality artifacts and documentation to be in a final form
- Team work at the application level by
- requiring most (if not all) project work to be done in teams. Switching team members during the semester should be considered
- having the roles in the team chance throughout the semester
- Professional at the application level by requiring students to treat all team meetings in a professional context and preparing their work to be at the professional level instead of homework level.
- Security at the application level by requiring all work on software to include a section on the security issues
- Ethics at the application level by
- requiring all work on software to include a section on ethical issues
- covering cases of software failure and the ethics associated with that
- Verbal communication at the application level by requiring each team to make at least two presentations to the class.
Details
- Professor: Dr. Cathy Bareiss
- Office SB 031
- Class Time: TR 9:30-10:20
- Lab Time: R : 2:00-4:50
- Class Location: S 030
- Lab Location: S 030
- Textbook: Membership in ACM
Course Content
Policies
Assignments
- The majority of the assignments will be the group work. Grades will be given throughout the semester and there will be a combination of a group grade and individual grade
Grades
- Project work is worth 60% of the final grade, with the group grade being 30% and individual grades being 30%
- Exams are worth 40% with the cumulative final being weighted twice a normal exam
- If the need arises for additional homework, these number may be adapted
- Grade scale
- 93% <= average <= 100% → A
- 90% <= average < 93% → A-
- 87% <= average < 90% → B+
- 83% <= average < 87% → B
- 80% <= average < 83% → B-
- 77% <= average < 80% → C+
- 73% <= average < 77% → C
- 70% <= average < 73% → C-
- 67% <= average < 70% → D+
- 63% <= average < 67% → D
- 60% <= average < 63% → D-
- 0% <= average < 60% → F
Tentative Schedule
Tuesday |
Thursday |
Thursday: Lab |
8/17: |
8/19: Topic: Course, overview of S.E. Lesson for flipped classroom: Introduction to Agile Software Development course in SkillSoft |
8/19: Introduction of project and setting up teams and starting the work |
8/24: Discussion of Introduction Where should we be doing next? |
8/26: |
8/26: |
8/31: |
9/2: |
9/2: |
9/7: |
9/9: |
9/9: |
9/14: |
9/16: |
9/16: |
9/21: |
9/23: Pair programming and individual contracts |
9/23: |
9/28: Service Day |
9/30: review and 2 presentations |
9/30: CCSC:MW |
10/5: Exam 1 |
10/7: fall break |
10/7: Fall Break |
10/12: final presentations and decision matrices |
10/14: |
10/14: |
10/19: |
10/21: |
10/21: |
10/26: |
10/28: |
10/28: |
11/2: |
11/4: tasks assigned Database items |
11/4: |
11/9: Backlogs current Testing Overview |
11/11: Software metrics Creating interface designs |
11/11: |
11/16: Testing 1 & 2 Testing 3 & 4 |
11/18: Risks Dealing with Users |
11/18: |
11/23: PHP Trelio |
11/25: Thanksgiving Break |
11/25: Thanksgiving Break |
11/30: HTML guidelines Accessibility |
12/2: Rolling out software |
12/2: Project presentations |
12/7: Final Exam week |
12/9: Final Exam: 8:00-10:00 |
12/9:Final Exam week |
Things learned
- What is agile?
- A software engineering methodology
- Based on team work
- Incremental process for developing software
- Adjustable based on
- Users feedback
- Situational changes
- Discovery of roadblocks
- Characterize by sprints which are short term efforts always resulting in working software
- The twelve principles of agile (https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/)
- The four core values of agile are:
- individuals and interactions over processes and tools;
- working software over comprehensive documentation;
- customer collaboration over contract negotiation; and.
- responding to change over following a plan.
- How one "does" Agile (and/or its components)
- A backlog which is a list of tasks to be performed
- A sprint is composed of:
- A meeting to determine the tasks of that sprint and assigning them to team members
- "Regular" scrum meetings (daily in the real world)
- short (often less than 15 minutes) and often done standing to ensure it is short
- 3 questions answered by each team member: What has been done since the last scrum meeting; What needs to be done by the next scrum meeting, What are any real/potential roadblocks to getting the work done.
- A review which is where the team presents the working software developed during the spring
- A retrospective meeting where the team reflects on its agile techniques (not the product)
- The makeup of an agile team
- Roles should be easily swapped to anyone on the team (few if any irreplaceable members)
- User/product owner is essential to the team. However, there was limited experience of this on our project
- The components of a backlog
- A list of prioritize tasks whose priority can change
- Who is responsible for what
- Additional software engineering techniques
- pair programming
- the four L's for a retrospective
- code review
- reading ER diagrams
- UML diagrams, specifically: use cases, sequence, activity
- decision matrix
- Pert and Gantt charts
- User interface characteristics
Campus Integrity Policy
The student handbook (p. 156) states: Any act of deceit, falsehood or stealing by unethically copying or using someone elses work in an academic situation is strictly prohibited.
- A student found guilty of plagiarism or cheating will receive an F(zero) for that particular paper, assignment or exam. Should this occur, the professor will have an interview with the student and will submit a written report of the incident to the academic dean.
- If a second offense should occur, the student will be asked to appear before the professor, the academic dean and the vice president for student development.
The student should realize that at this point continuation in a course and even his/her academic career may be in jeopardy. In the event of a recommendation for dismissal, the matter shall be referred to the Student Development Committee.
Covid Policy
Everyone should follow the current Bethel University covid policy. See:
https://www.betheluniversity.edu/intheknow for details
Services
The Americans with Disabilities Act (ADA) is a law which provides civil rights protection for people with disabilities. Bethel University, in compliance with equal access laws, requests that students with disabilities seeking to acquire accommodations make an appointment with the Center for Academic SuccessDisability Services. It is located in the Miller-Moore Academic Center, 033. You may also phone 574-807-7460 or email
rachel.kennedy@betheluniversity.com.edu for an appointment.
DEI Statement
During this particularly difficult time, this statement momentarily underscores and deepens what is expressed in the Lifestyle Covenant regarding the dignity of all humans. The statement will remain in all Bethel Faculty syllabi until spring 2023 and then be remanded back to the Faculty. Bethel University respects the dignity of all Gods image-bearers, and stands against racism, prejudice, and discrimination. Because Christ calls us to love our neighbor as ourselves, Christian discipleship includes pursuing the good of those who suffer injustice due to their color, race, or ethnicity. Therefore, we aim to continually transform our classrooms into safe and hospitable spaces where we listen to one another with mercy, learn from and value each other with tenacity, and commit to pursuing justice for the most vulnerable in our community.
Education Majors:
Please use the link below to review all appropriate standards.
Standards