Course Details

Course EECS 448 - Software Engineering, Fall 2013
Meeting Location 3152 LEA
Meeting Times MWF 11:00-11:50 am
Lab Sessions M 12:00-1:50 pm, W 9:00-10:50 am, and F 12:00-1:50 pm
Credits 4
Instructor Prof. Fengjun Li
Email fli <at> ku.edu
Office 2032 Eaton and 239 Nichols
Phone 785-864-7707
Office Hours Fridays 10-11am and by appointment
TA Meenakshi Mishra ( mmishra <at> ku.edu)
TA Office Hours 3013 Eaton on Mondays and Fridays 2:00-3:00 pm

Course Prerequisites

Formal: (EECS 268 ) and (Upper-level eligibility).

Informal: You need to understand object-oriented programming. If you have questions regarding the prerequisites, please contact the instructor.

Course Description

This course covers the software engineering methods and tools used for systematic development of software products. At the theoretical level, it first outlines the problems encountered in large software systems and their life cycle. It then concentrates on techniques for requirements analysis, software property specification, design, implementation of software, testing, and documentation associated with all these aspects of software development. At the practical level, the class first introduces you to the language and other implementation context for the semester project, and then introduces the elements of a software engineer's toolbox: editors, source code control, debuggers, software manufacturing, documentation, testing, and various command-line tools.

An important emphasis of this class is on aspects of projects which do not arise in the context of typical university course software assignments. One fundamental challenge of this course is to give the student an initial experience of what writing software professionally is like, and most importantly, how writing software in a professional setting is different from writing it in most university courses. The fundamental challenge is one of scale in several dimensions, including: software size, project duration, and group size.

A detailed list of lecture by lecture contents, assignments, and due dates (subject to change as semester evolves) is available on the course schedule.

Textbooks and Reading Material

Roger S. Pressman, Software Engineering – A Practitioner’s Approach, 7th edition, McGraw-Hill 2009. ISBN-13: 978-0073375977.

Student Learning Outcomes

By the end of this course, students will be able to:

Course Structure and Grading

The course will consist of one midterm, a final, quizzes, class participation, and several homework assignments and a semester-long course project that contribute the the final grade in the following proportions (subject to change):

30% Course Project
30% Exam
15% Assignments
15% Labs
10% Class Participation and Quizzes

The final letter grade will be based on the final percentage as follows:

A <= 90% < B <= 80% < C <= 70% < D <= 60% < F

KU Regulations describes the grade point interpretation of letter grades. See KU Policy: Grades and Grade Point Average for more information.

Request for grade review will be considered no later than two weeks after notification of grade.

Assignments: The instructor will assign homework assignments on a periodic basis for topics associated with the class assignments. These homeworks require the students to write, program, or perform other basic research. The content and due dates of these assignments will be decided over the course of the semester. If you cannot attend a lecture, contact other students to see if any assignments have been made and consult the syllabus.

Course Project: The course project requires that students execute knowledge obtained from the class into a hands-on design project. It is a semester-long project and team work is requred. The project deliverables will include three reports throughout the design and developing process, and a demo at the end of the semester. Project materials including codes are required to be properly archived (missing or inadequate archive will hurt the overall project grade by 10%). See the Projects page for more details about how to work on team projects.

Class Participation: To do well in this course, students must take active and regular roles in discussion and demonstrate comprehension of the reading and lecture themes. Students are required to do the assigned reading before class. This will be closely monitored by the instructor, thereby making a student's ability to demonstrate their comprehension of papers essential to a receiving a passing grade.

Weekly Course Schedule

See the course schedule. Note that the schedule is subject to change as the semester evolves.

Lab Sessions

The laboratory sessions are designed to introduce you too representative examples in each of the major categories of tools and techniques that play important roles in the professional life of a software engineer. The initial few labs concentrate on topics that are likely to be required or helpful in the class project, while later labs introduce tools and techniques that are commonly used by practicing software engineers, but which are less likely to play a role in the project. The class schedule specifies when each lab will meet in a given semester and the Labs page gives a brief description and a link to each lab's materials.

Policies and Regulations

Assignment Lateness Policy: Homework and project deadlines will be hard. Late homework will be accepted with a 10% reduction in grade for each day they are late by, up to a maximum of 4 days. However, once a homework assignment is discussed in class or the solution is posted, submissions will no longer be accepted. Students with legitimate reasons who contact the professor before the deadline may apply for an extension.

Attendance Policy: The instructor will not take any formal attendance for class meetings. However, as stated above, a portion of the grade is based on class participation, which includes pop quizzes. Additionally, exam material includes anything in the readings, slides, and topics discussed in class. Students missing class should consult classmates on missed material. The university policy on excused absences will be observed (see University Senate Rules and Regulations, Article 2.1.4). The students are responsible for discussing makeup exams if they miss exams due to excused absence. The instructor will choose a mutually agreed date and time for the makeup exam. Late submission of homework assignments due to excused absences is not subject to the policies on late assignments.

Academic Integrity Policy: Academic integrity is a central value in higher education. It rests on two principles: first, that academic work is represented truthfully as to its source and its accuracy; and second, that academic results are obtained by fair and authorized means. Academic misconduct occurs when either of these principles is violated. See University Senate Rules and Regulations Article 2.6.1 for more information. The instructor expects honesty in the completion of test and assignments. Students are explicitly forbidden to copy anything off the Internet (e.g., source code, text) for the purposes of completing an assignment or the final project. Also, students are forbidden from discussing or collaborating on any assignment except were explicitly allowed in writing by the instructor. The instructor has a zero tolerance policy for violations of academic integrity such as plagiarism and illegal collaboration. It is very important for the students to use their best possible judgement in meeting this policy. Any offense of this policy will result in the 'F' grade and the student will be referred to the appropriate University bodies for possible further action.

Statement for students with disabilities: The KU Office of Disability Resources (DR) coordinates accommodations and services for all eligible students with disabilities. Students who have a disability and wish to request accommodations should register with KUDR at 785.864.2620 as soon as possible. If the student fails to make arrangement before the exam, we may not be able to accomodate last-minute requests.