CS 451

v.20170116 SPRING 2017

CS 551: Software Engineering

Department of Computer and Mathematical Sciences

New Mexico Highlands University

Instructor

Richard Medina, Ph.D.

Office: HSCI 291 505-426-2277 rmedina@nmhu.edu

Office Hours: MTW 2-4pm (or by appointment)

Time and Location

Lecture: Tuesdays, Thursdays: 11:00 - 12:15pm in HSCI 282

Midterm Exam: Thursday, Mar 16 @ 11:00 - 12:15pm in HSCI 282

Required Texts

Beginning Software Engineering by Rod Stephens (2015). ISBN: 978-1-118-96914-4. Wrox Publishers

Additional online and print materials provided by the instructor

About This Course

This course is a study of the concepts and techniques of software engineering. Emphasis will be object-oriented design principles, the integration of systems analysis methodologies into software engineering, and topics such as formal specifications and proof of program correctness.

Desire2Learn ==> https://nmhu.desire2learn.com/d2l/home

Instructor site for updates and schedule ==> http://rmedinahu.github.io/

\pagebreak

Major Topics

  • analysis, design, implementation, testing, and maintenance of software
  • software development tools
  • open source software development
  • process models (predictive and iterative)
  • code repositories, versioning, maintenance
  • application frameworks (e.g., web application frameworks)
  • system architecture
  • design patterns
  • security

Intended Outcomes

  • Background knowledge on software development methodologies
  • Experience with open source software development techniques
  • Experience with tools and techniques for doing system analysis and design
  • Knowledge and skills for writing and managing software documentation
  • Knowledge and skills for debugging software in development and during deployment
  • Knowledge and skills for writing and managing unit tests
  • Experience working with code repositories
  • Experience working in collaborative software development environments

Course Requirements

  1. Regular (daily/weekly) access to NMHU Desire2Learn for this course is expected
  2. Attendance/Participation is expected. For grading purposes, attendance is computed as, total meetings - number of absences / total meetings
  3. Homework Assignments - minimum 1/wk up to midterm week.
  4. Final research/technical paper and presentation.
  5. Midterm Exam (comprehensive)

Grading

  • 10% Attendance
  • 30% Homework Assignments
  • 30% Midterm exam
  • 30% Research/presentation

\pagebreak

Homework Policy

It is expected that deadlines for homework assignments will be honored. Late assignments will always be accepted and assessed. However, point deduction for late assignments will be calculated as follows:

  • less than two days late ==> 10% reduction
  • less than seven days late ==> 30% reduction
  • more than a week late ==> assignment will be assessed but no credit will be given :(

All assignments should be submitted to the appropriate dropbox in the Desire2Learn website for this course or to your github repository (as directed by instructor).

Assigned homework/programming assignments are to be strictly the work of each individual student unless a group assignment is specified.

Policy on Shared Code

Assigned homework/programming assignments are to be strictly the work of each individual student. However, I encourage students to help each other and benefit from collaboration. This DOES NOT mean copying a fellow student’s work and replacing their name with yours. I can spot this practice immediately and will not give credit to any submitted code that follows that pattern.

Resolution:

If you and other students work together on a solution:

a. All parties must indicate in comments (at the top of submitted file) the nature of the collaboration, who was involved, and what was gained by the collaboration.

b. Your assignment cannot be a COPY of your collaborator’s work. I want you to develop your own skills. You will not develop mad skills if you simply copy and paste or worse, save as

c. Take (a) and (b) seriously.

How to collaborate? Discuss ideas, procedures, algorithms, and design in the abstract. The implementation is still up to you.

\pagebreak

How To Turn In Your Assignments

All homework submissions should include the following on the first two lines of your source file as comments:

	<LAST NAME, FIRST NAME> <DATE>
	<HOMEWORK #>

Your source files should be named to include your last name first initial followed by hw assignment number as demonstrated below. DO NOT USE SPACES in file names please!

Example file name:

	medinar-hw1.py

Example python source file:

# Medina, Richard 1-19-2016
# Homework 999
# I worked on the printmessage function with Guido. He showed me a way to format the string.

def printmessage():
    print('Hello. This is a sample program.')

printmessage()

Research or Technical Paper/Presentation

Prior to midterm week, you and the instructor will discuss and agree on a research topic. This topic can be anything related to software engineering. The only stipulation of this topic is that it touches on one aspect of software engineering to some degree of depth. The following are the requirements for the paper and presentation.

Paper

  • 5 - 8 pages in length, single spaced, 12 point font.
  • must include inline citations and bibliography
  • must include a title AND abstract
  • must adhere to APA formatting guidelines

Presentation

  • must be presented to entire class towards the end of the semester
  • 20 minutes (15 talk, 5 questions)

© 2017 - . All rights reserved
Built using Jekyll