CMPS-3350 Software Engineering
Software Engineering
CMPS 3350 - Spring 2019

Gordon Griesel
Office: Sci III 337
Office Hours: see my schedule, or make an appointment
Email: gordon@cs.csub.edu
Course web site: https://www.cs.csub.edu/~gordon/3350/
Class meets:
MWF  11:00am - 11:50am  in Sci III 311 (lecture 32532) 
Thur 10:00am - 12:30pm  in Sci III 311 (lab 32533) 


Course Description
This course introduces the fundamentals of Software Engineering.
From the catalog:
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 day lecture meets for 50 minutes and lab meets for 150 minutes.
Prerequisite: CMPS 2020 with a grade of C- or better.

Lecture Topics and Rough Schedule
The topics below are the general subjects of the course, and will
be introduced and discussed sequentially as the course progresses.
Subjects could be added or removed.
  . Source and Version Control
  . Git and Github
  . The Software Engineering Lifecycle
  . Waterfall, Incremental, etc.
  . Agile Methodology
  . Open Source
  . Requirements Engineering
  . SRS - Software Requirements Specification
  . Design - Architecture and Methodologies
  . MVC - Model, View, Controller
  . Coupling and Cohesion
  . Software Design Specification
  . Programming a Complex Algorithm
  . Implementation Phase of Development
  . Program Debugging
  . Program Optimization
  . Testing and Quality Assurance
  . Testing Techniques
  . Specific Programming Techniques
  . Mobile development
  . Android
  . Android APK Creation
  . Profession and Ethics
  . Job Interview Day
  . Group Project Presentations
  . Project Completion

Textbooks:
Our textbook material will come from the school's Safari website.
These books are provided free by the CSUB Library.
Sections of the following books will be used:
Essentials of Software Engineering, 4th Edition
By: Tsui
Publisher: Jones & Bartlett Learning
Pub. Date: December 5, 2016
Print ISBN-13: 978-1-284-10600-8
Web ISBN-13: 978-1-284-10607-7
Pages in Print Edition: 334
Android Studio 2 Essentials - Second Edition
By: Belaon Cruz Zapata
Publisher: Packt Publishing
Pub. Date: June 28, 2016
Print ISBN-13: 978-1-78646-795-9
Web ISBN-13: 978-1-78646-021-9
Pages in Print Edition: 172
All books above are current and up-to-date. link
Additional book not provided free:
The Mythical Man-Month
Frederick P. Brooks, Jr.
ISBN: 0-201-83595-9
Addison-Wesley

Grading Policy Weekly assignments 50% . labs . homework . quizzes . attendance Exams 25% Project 25% ------------------------ Total 100% Grading scale used during the semester... A 93% A- 90% B+ 87% B 83% B- 80% C+ 77% C 73% C- 70% D+ 67% D 63% D- 60% F 0%

Attendance Class attendance is both recommended and required. Missing a class period can cause a zero score for the following assignment types: - lab assignment - pop quiz - assignment given verbally - hands-on coding assignment - participation exercise - project presentation - others that may not be listed Attendance is taken before class begins. When the "bell rings", you should be in your seat and ready to go. Note: Current time is determined using an Andriod phone which runs about 15-seconds behind the official U.S. time presented on www.time.gov. Plan your time using time.gov and never be late. Attendance scoring: If you miss one class session, no big deal. The second class missed causes a deduction of 1/2 percent to your overall course grade. The count then starts again and every second class missed causes a 0.5% deduction in your grade. If you arrive late to class once, no penalty. The second late arrival causes a deduction of 1 percent to your overall course grade. The count then starts again and every second late arrival causes a 1.0% deduction in your grade. Labs Labs are hands-on assignments designed to be done in the classroom on classroom computers. You may install the necessary components on your own laptop computer, and bring it to class. - Attendance is required for any credit. - Full attendance is required for full credit. Full attendance is defined as coming to class on-time and working throughout the entire lab session. Lab assignments are due by the end of the lab period. A lab assignment could be extended into a homework assignment, but the lab portion is still due during class. Important: Do no arrive late to a lab session and then ask another student to help you with the assignment. This can result in a quick score of zero. Homework Homework assignments and due dates will be posted on the course website. It is common for a lab assignment to be extended into a homework assignment. Sharing of assignment files is not allowed. If you miss a class session, do not ask for or accept the completed or partially-completed assignment files of another student. This will result in a score of zero for all students involved. Instead, ask your instructor how to get caught-up with the class. Quizzes A quiz is a short exam that covers current material from reading, lecture, lab, homework, and project material. Quizzes can be online or written. A quiz can be given at any time during any class session. This is sometimes referred to as a pop-quiz. Exams Exams will be announced in advance. A midterm exam will be given at approximately week 7. The Midterm exam will consist of a minimum of the following: - written exam - hands-on programming exam A final exam will be scheduled during the designated time block. The exact date will be posted. Late Assignment Policy Assignments submitted late are not accepted and receive a score of zero. Time Conflicts Time conflicts are not allowed. Your own personal schedule must allow you to arrive on-time to class, and stay for the entire class period. If you have a time conflict, you must disclose it to the instructor on the first day of class. CMPS-3350 is a hands-on course taught in-person in the classroom by your instructor. This course is in no way an on-line course. In-class assignments are not to be done at some remote location. All exams require your in-class on-time attendance also. Accommodations Students requiring accommodations should speak with the instructor at the start of the course. To make arrangements for accomodations, please contact SSD at the following link: SSD Classroom Behavior Please do not smoke, vape, chew, spit in the classrooms or anywhere on campus. Please do not wear headphones or earbuds in the classroom. Please do not use your cellphone during class time. Please do not walk in front of the instructor while a lecture is in progress. Please do not hold a conversation with another student during a lecture. Your instructor reserves the right to ask a student to remove headphones while in the classroom. Absence from class The student's responsibilities include attending classes. If you miss a class, it is your responsibility to inform Gordon of the reason for the missed class (documentation may be required) and to arrange to make up any missed assignments, exams, quizzes, and class work, to the extent that this is possible. Excusable absences include, but are not limited to: Illness, injury, death of an immediate family member, etc. See a complete list at CSUB Catalog page 64. Recordings Under California Education Code Section 51512, it is illegal for any person, including a student, to use an electronic device to record what is happening in the classroom without the consent of the instructor. It is a felony offense. The instructor for this course does not give consent for recording of any kind. If a disability requires you to record a class session, then please contact SSD so accommodations can be made. Academic Integrity Policy All work done in this course is individual work, unless specified otherwise. Please do not share your work with other students. A portion of the course and your grade is based upon group work. You may work with other classmates, share ideas, and discuss solutions. The group portion of the course will be clearly defined. Refer to the Academic Integrity policy printed in the campus catalog and class schedule. Violations are enforced in accordance with the Department's policy on academic honesty. Compile and build standards for all work Compile flags C++11, C++14, and C++17 are not needed for work in this course. If you need them, please make sure your programs compile on the odin server and on our classroom computers. Your instructor reserves the right to amend this syllabus during the semester.