CMPS-4350 Advanced Software Engineering
Amendment added below
See amendment at bottom of document.
Advanced Software Engineering
CMPS 4350 - Fall 2018

Gordon Griesel
Office: Sci III 337
Office Hours: see my schedule, or make an appointment
Email: gordon@cs.csubak.edu

Course web site: http://www.cs.csubak.edu/~gordon/4350/

Course meets:
MWF 8:00am - 8:50am in Sci III 315 (lecture 82560)
Thurs 7:20am - 9:50am in Sci III 315 (lab 82561)

Course Description:
Continuation of the introductory software engineering course. Methods and tools for the implementation, integration, testing and maintenance of large, complex software systems. Program development and test environments. Group laboratory project. Technical presentation methods and practice. Ethical and social issues in software engineering. Prerequisite: CMPS 3350.

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.

 . github
 . coding style
 . debugging
 . optimization through profiling
 . refactoring
 . multi-threading
 . memory management
 . data compression
 . graphics with shaders
 . prep for coding interview
 . programming competition
 . reading assignments

semester project
----------------
Write a software application that someone needs and will use.
1. web, mobile, or desktop
2. business, game, or utility
3. must use five different languages
4. identify your customer
5. goal is to make your customer happy
6. present your work

Textbooks:
This book is required for the course.
It is available online through Safari.
Purchase of this book is recommended.
   . Essentials of Software Engineering, 4th Edition
   . Print ISBN-13: 978-1-284-10600-8
   . Web ISBN-13: 978-1-284-10607-7

Purchase of this book is required.
   . Cracking the Coding Interview
   . ISBN-13: 978-0984782857
   . ISBN-10: 0984782869

Purchase of this book is required.
   . The Pragmatic Programmer: From Journeyman to Master 1st Edition
   . ISBN-13: 978-0201616224
   . ISBN-10: 020161622X

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   50%

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
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.
Homework:
Homework assignments and due dates will be posted on the course website.
It is not unusual for a lab assignment to be extended into a homework assignment. Missing a lab session can cause a students to be clueless about how to accomplish 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.

Important note:
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.
Midterm exams 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 for the Summer semester. The exact date will be posted.
Late Assignment Policy:
Assignments submitted late are not accepted and receive a score of zero.
Late Arrival Policy:
Arriving late to class will cause a deduction in your overall course grade of 2.5 percent for each occurrence.

Definition of a late arrival:
A late arrival is defined as a student entering the classroom after the class period has started. The class period starts at 8:00.00am.
Examples of being late to class:

1.
The instructor begins his lecture promptly at 10:00am, and you are not
yet in your seat or in the classroom.

2.
The instructor begins his lecture, and while the lecture is in progress,
you enter the room.

3.
The instructor begins his lecture, and while the lecture is in progress,
you enter the room and walk in front of the instructor or pass in front
of any other students.

Your instructor recommends that you plan your mornings to arrive at class 10-minutes early. Then when an unexpected delay happens, you will likely still make it to class on-time.
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-4350 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:

On 9/1/2017 CSUB became a smoke-free and tobacco-free campus!
Please do not smoke, vape, chew, spit in the classrooms or anywhere on campus.
Please do not wear headphones or earbuds in the classroom.
If you have a hearing problem please refer to the accommodations section above.
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 pay attention and ask questions during class time.

Other than those things, please try to enjoy this course.

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.

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, help each other, make decisions together, etc.
This 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 the classroom computers.

Amendments
Late arrivals and class disruption
If you arrive late to class, please do not disturb the class or the 
instructor while a lecture is taking place.

Among other things, walking in front of the instructor while a lecture is
in progress disturbs the class. Please stop and wait for the instructor to 
break and let you find a seat.

The late penalty for this action is up to 2-percent off of total course
grade for each infraction.

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.

Your instructor reserves the right to amend this syllabus during the semester.