CMPS 3350 Software Engineering
Class 83060 Section 30 and Class 83061 Section 31
Instructor and Contact Info
Instructor: Pascual Garcia
Office Hours: Wed and Fri, 5pm - 6pm via Discord and Zoom (links posted on Moodle)
Email: TBD
If you need to meet with me outside of office hours, please do not hesitate to reach out to schedule a meeting time. The instructor can be contacted at anytime via Discord. The instructor will respond as soon as they are able to.
Catalog Description
This course is a general introduction to Software Engineering. The course will cover the specification, development, management, and evolution of complex software systems. Students will learn how to cost-effectively apply the methods and theory from Computer Science to solve difficult problems. The course presents a broad perspective on software and system engineering and surveys a wide spectrum of tools and techniques. Students are required to complete a project as part of a small software engineering team. Students will form groups and choose a software project early in the course, then apply methodologies learned in the course to complete their project. Each week lecture meets for 150 minutes and lab meets for 150 minutes.
Catalog Prerequisites: CMPS 2020 with grade of C- or better
Prerequisites by Topic
Programming skill in high-level language.
Knowledge of data structures and algorithms.
Units and Contact Time
4 semester units, 3 units lecture(150 minutes), 1 unit lab(150 minutes)
Type
Class Information
Moodle Link: https://moodle4.cs.csub.edu/course/view.php?id=176
Location: Antelope Valley Campus
Room: 402 (lecture)/112 (lab)
Course Schedule:
Tuesdays and Thursdays:
7:00pm - 8:15pm (lecture)
8:15pm - 9:30pm (lab)
General Class Structure:
- Attendance for the first lecture and lab is required for class overview.
- Attendance for Lectures and Labs are optional, but strongly encouraged.
- Lectures will be about the topics for that week and relevant material from the textbook.
- Labs will be used to demo assignments for the week and be used as time for groups to work on class project in person.
Contact me if you have any issues with attending lectures/labs. I will try to work with you to the best of my ability.
Course Textbook
TITLE: Essentials of Software Engineering, 5th Edition
AUTHOR: Frank Tsui, Orlando Karam, Barbara Bernal
PUBLISHER: Jones & Bartlett Learning
PRINT ISBN: 9781284228991, 128422891
CSUB BOOKSTORE: Essentials of Software Engineering, 5th Edition
Class Expectation
As a 3000-level course, students are expected to engage in independent learning in this course through reading, case studies, and a project. Critical thinking, independent evaluation and troubleshooting are important traits to have for this profession.
Lectures after the first week will assume that you have completed the reading of the relavent topics for the week. While the lectures will cover conceptes from the textbook, the lecture will primarily focus on exploring examples, concept application, and scenarios to provide a deeper understanding of the concepts. Additionally, materials from other sources may also be brought in during lectures to provide depth of the concepts.
Most labs will be used as time for groups to work in-person on their class project. However, there will be some labs where individual work will be assigned.
Plan to spend an average of 8-12 hours outside of class each week for this course on reading, lab assignments, homework, etc. You could be spending more or less time each week.
Team/Group Assignments
This course will have a mix of both individual and group assignments. Group assignments will be relevant to the class project and will be with the same people throughout the semester. There will be a survey at the end of the semester where your teammates will evaluate everyone's participation in your project. The results from the your teammates survey can affect your grade.
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:
- SE/Software Processes
- SE/Software Project Management
- SE/Requirements Engineering
- SE/Software Construction
- SE/Software Verification and Validation
- SE/Software Evolution
- SE/Software Reliability
ABET Outcome Coverage
The course maps to the following performance indicators for Computer Science (CAC/ABET) or Computer Engineering (EAC/ABET) or Electrical Engineering (EAC/ABET):
-
(CAC PIb2): Produce a solution within specifications.
- Group Project
-
(CAC PIc3): Design the selected solution for a given problem.
- Programming Assignments
- Group Project
-
(CAC PIc4): Implement the designed solution for a given problem.
- Group Project
-
(EAC PIc1): Follow systematic and logical design procedures and define specifications to meet project requirements.
- Group Project
-
(EAC PIc3): Consider alternative designs and choose the optimal solution.
- Programming Assignments
- Group Project
-
(CAC PId1, EAC PId1): Fulfill team duties and share in the work of the team.
- Group Project
-
(CAC PId2, EAC PId2): Listen and communicate with other team members.
- Group Project
-
(CAC PId3, EAC PId3): Research and gather information.
- Group Project
-
(CAC PId4, EAC PId4): Meet deadlines and achieve project goals.
- Group Project
-
(CAC PId5, EAC PId5): Cooperate on reports with reasonable share of duties.
- Group Project
-
(CAC PIf1, EAC PIg1): Write technical reports.
- Group Project
-
(CAC PIf2, EAC PIg2): Prepare deliver oral presentations.
- Group Project
-
(CAC PIi1): Program in a suitable computer language.
- Group Project
-
(CAC PIi3): Utilize problem solving skills and techniques to complete the task.
- Programming Assignments
- Group Project
-
(CAC PIk1): Understand the software/system life-cycle.
- Group Project
-
(CAC PIk2): Write documentation for each phase of the development cycle..
- Group Project
Lecture Topics and Rough Schedule
WEEK |
DATE |
CHAPTER(S) |
TOPIC(S) |
1 |
August 25th - August 29th |
1. Creating a Program |
Solving Problems, Testing, Estimated Effort, Implementation, and Source Control |
2 |
September 1st - September 5th |
2. Building a System |
Characteristics of Building a System, Building a Hypothetical System, and Coordination Efforts. |
3 |
September 8th - September 12th |
3. Engineering of Software |
Examples and Characteristics of Software Failures, Software Engineering, Profession and Ethics, and Principles of Software Engineering. |
4 |
September 15th - September 19th |
4. Traditional Software Process Models |
Software Processes, Traditional Process Models, Modern Process, Entry and Exit Criteria, and Process Assessment Models |
5 |
September 22nd - September 26th |
5. Agile Software Process Models |
What Are Agile Processes, Why Agile Process, and Choosing a Process |
6 |
September 29th - October 3rd |
6. Requirements Engineering |
Requirements Processing, Requirements Elicitation and Gathering, Requirements Analysis, Requirements Definition, Prototyping, and Reviews, and Requirements Specification and Requirements Agreement. |
7 |
October 6th - October 10th |
7. Design: Architecture and Methodology |
Intro to Design, Architectural Design, Detailed Design, and Design Examples. |
8 |
October 13th - October 17th |
8. Design Characteristics and Metrics |
Characterizing Design, Legacy Characterization of Design Attributes, "Good" Design Attributes, OO Design Metrics, and UI Design. |
9 |
October 20th - October 24th |
9. Implementation |
Intro to Implementation, Implementation Practices,Virtualization and Containers, and Developing for the Cloud. |
10 |
October 27th - October 31st |
10. Testing and Quality Assurance |
Intro to Testing and Quality Assurance, Testing, Testing Techniques, When to Stop Testing, Inspections and Reviews, Formal Methods, and Static Analysis. |
11 |
November 3rd - November 7th |
11. Configuration Management, Integration, and Builds |
Software Configuration Management, Policy, Process, Articfacts, Configuration Management Framework, Build and Integration and Build, Tools for Configuration Management, and Managing the Configuration Management Framework. |
12 |
November 10th - November 14th |
12. Software Support Maintenance |
Customer Support, Product Maintenance Updates and Release Cycles, and Change Control |
13 |
November 17th - November 21st |
13. Software Project Management |
Project Management, and Project Management Techniques. |
14 |
November 24th - November 28th |
14. Epilogue and Some Contemporary Issues |
Security, Reverse Engineering and Software Obfuscation, and Software Validation and Verification Mehtodologies and Tools. |
15 |
December 1st - December 5th |
N/A |
Project Presentations |
Attendance
Students are responsible for their own attendence. Although attendance is not required and does not affect your overall grade, it is highly recommended to attend. If you cannot make it to lectures or lab, please try to send a message to the instructor for awareness purposes. Topics covered in lecture and assignments will be listed on Moodle.
Academic Integrity Policy
You may discuss assignments with others in the class. There is also the class text channel on Discord for discussions.
If the assignment is a group assignment, the group can turn in one assignment for the entire group. If the assignment is an individual assignment, each student must turn in their own work in their own words.
No direct copying from any source is allowed.
Refer to the Academic Integrity policy in the campus catalog and class schedule for more details. You can also refer to the Academic Integrity policy at the Office of Student Rights and Responsibilities at https://csub.edu/osrr/
Civility During Discussion
Over the course of the term, there will be classroom discussions on contentious issues, such as the ethics of AI use and certain business practices. Opinions will differ, sometimes drastically, during these discussions. Students are expected to be civil and respectful of one another during these discussions.
Academic Accomodations
To request academic accommodations, please contact the Office of Services for Students with Disabilites (SSD) and email me an accommodations letter from the SSD Office. Policies from the SSD Office relating to accommodations, such as scheduling policies for using their testing center, must also be followed. For more information about the services and policies of the SSD Office, contact their staff by email and/or visit their website at https://www.csub.edu/ssd/
Basic Needs Assistance
if you are experiencing challenges related to basic needs, such as food insecurity, housing insecurity, or other challenges, there are resources available to you.
The campus Food Pantry is open and available to all students, staff, and faculty. Please visit the Food Pantry website for hours and information at https://www.csub.edu/sustainability/foodpantry/. Information about food distributions, CalFresh, and other food resources can be found at https://www.csub.edu/basicneeds/food-security. Information about food assistance at the Antelope Valley campus is at https://www.csub.edu/basicneeds/resources-students-csub-av-campus.
For housing concerns, please contact Jason Watkins, Assistant Director for Basic Needs, at 661-654-3360 or Ashley Scott, the Assistant Director of Housing. You can find more information about housing assistance and contact email addresses at https://www.csub.edu/basicneeds/housing-stability.
More information on basic needs assistance is on the Basic Needs website: https://www.csub.edu/basicneeds.
Health and Well-Being
Sometimes life can be challenging. Whether it be mentally or physcially, work-life balance issues can arise. If you ever need more time to complete work due to any current situations, please le me know so we can discuss the options available. Likewise, if something happens in my life that may affect class meetings, I will notify everyone as soon as possible through the Moodle Announcement Board and/or via the class Discord server.
The CSUB Counseling Center has both regular-hours and after-hours counseling services available. Call 661-653-3366 to connect with their services. After their normal operating hours, you can press 2 at any time to connect to the after-hours service. More information i at https://csub.edu/counselingcenter/.
Technology Assistance and Software
If you need help with technology, such as a loaner laptop and/or hotspot, ITS has programs to provide technologyassistance to students. Go to the following ITS webpage to learn more about their programs: https://its.csub.edu/step.
The CEE/CS Department has academic software subscriptions available to students enrolled in CMPS and ECE courses. This curretnly includes Microsoft, VMware, and Mathematica. Go to the following page for more information: https://www.cs.csub.edu/downloads.php.
CSUB ITS also has many software products available to students through the Virtual Computer Lab (VCL). You will need to use you myCSUB credentials to access VCL. To see the full list of software and to access VCL, go to https://its.csub.edu/VCL.
Grading
Labs/Homework |
30% |
Project Milestones |
40% |
Midterm Project Presentation |
15% |
Final Project Presentation |
15% |
Grade |
Percentage |
A+ |
97% < |
A |
93% - 96% |
A- |
90% - 92% |
B+ |
87% - 89% |
B |
83% - 86% |
B- |
80% - 82% |
C+ |
77% - 79% |
C |
73% - 76% |
C- |
70% - 72% |
D+ |
67% - 69% |
D |
63% - 66% |
D- |
60% - 62% |
F+ |
67% - 69% |
F |
< 66% |
Labs
Lab assignments and due dates will be posted on Moodle. Typically, labs will be due at 11:59pm on Friday, the next week the lab is assigned (about 8-10 days later). Partial credit will be given to incomplete labs. No credit will be given to labs that have no submitions. Labs can be submitted late for full credit if discussed with the instrutor at least 24 hours before the due date.
You may work on labs together. However, labs are considered individual assignment and each student will need to submit their own work.
Most labs will be done in Odin, but some will also be submitted through Moodle. Labs will be graded during my next grading session which will usually be the Saturdays after labs are due.
Do NOT email your submitions to me unless we discuss it before-hand. This is becuase the spam system sometimes silently blocks emails with attachments.
Homework
Homework Assignments and due dates will be posted on Moodle. Partial credit will be given for incomplete assignments. No credit will be given to assignments that have no submissions. Full credit can be given to late submissions if discussed with the instrutor at least 24 hours before the due date.
Assignments must be turned in via Moodle. Do not email your assignments unless we discuss it before-hand. This is becuase the spam system sometimes silently blocks emails with attachments.
Homework may be discussed with others in the class, but each student must turn in their own assignments in their own words. Copying from other students, the internet, previous solutions, the textbook. etc. are all considered violations of the Academic Integrity Policy.
Project
Students will form groups of 3-4 people and choose a software project that they will be working on throughout the semester. Projects will follow software engineering practices and should realistically be big/small enough to have a completed product by the end of the semester. Examples of possible projects will be discussed during lecture.
Each group will require the submission of a brief project proposal describing the end product. The instructor will give their recommendations on modifications so that the project will be appropriately sized for the semester. Each group can submit more than one proposal and the instructor can help decide which would be best to pursue. Instructions on the proposal and due date will be discussed during class.
A technical report about the project will be created and updated throught the semester. Instructions and examples on how to create, write, update a technical report will be given during class and each update will be considered a Lab and/or Homeowork.
There will also be project milestones throughout the semester that will follow the topics disscussed in lecture to help ensure that the project is following software engineering practices and to see what sort of progress has been made. Milestones could include brief reports, technical documentation updates, and Zoom check-ins outside of normal class meeting times. Milestones will be considered Lab and/or Homework assignments.
At the end of the semester, surveys will be given to each student that will ask about the level of participation of each of their team members. The results of the survey could affect individual student overall grade if it is determined that the student did not participate in the project as much as they should have.
Midterm
The Midterm will be a 10-15 minute slideshow presentation on the project so far. The presentation will brief desctiptions of each section of the technical report, any changes to the project, project progress, and project timeline for the rest of the semester. After the presentation, the rest of the class will be able to ask the presenting team any questions they may have. Students will also be required to upload the slides to Moodle.
Detailed instructions and due dates will be discussed during class and posted on Moodle.
Final
The Final will be a 10-15 minute slideshow presentation on the project final product. The Final will follow a very similar structure to the Midterm, with only a few minor changes to the contents of the slideshow. Students will also be required to give a demo of the final product and upload the presentation slides to Moodle.
Detailed instructions and due dates will be discuess during class and posted on Moodle.
Moodle Submission Guidelines
Submissions must be in a standardized document format (e.g., ODT, DOC, DOCX, PDF, PNG, JPEG, etc.). Avoid RTF formats, as it has caused issues in the past. Also, make sure to check your file after it has uploaded, to be sure there were no upload errors.
You may also write your answers in the Moodle Notes section if you can adequately answer them in Moodle's text box.
NOTE: The Moodle text box does not always properly handle metacharacters like < or &. If you have a large number of these characters, it is safer to upload a file rather than use the Moodle text box.
Moodle records the last time you edit the Notes field or upload a file as the submission time for the assignment. You do not need to hit the "Submit" button for me to see your work.
If you have drawn something out by hand, take a picture or use a scanner and upload the image to Moodle. Please keep the file sizes reasonable, but also make sure the image is legible.
If you submit multiple files, please name them in a fashion that indicates what they contain, e.g. hw1_q2_drawing.jpg, hw2_part1.pdf, hw2_part2.pdf, and so on.
If you have any difficulties submitting to Moodle, contact me or Steve Garcia for help. Emailed submissions are not guaranteed to be accepted since my email volume is so high and the spam detection software can silently drop emails.
Prepared By
Pascual Garcia
Latest Update: August 15, 2025