EECS 448, Spring 2018
Lectures | Monday, Wednesday, Friday 8:00am - 8:50pm, LEEP2 2415 |
Labs | Section 1: Monday 3:00pm - 4:50pm, Eaton 1005D Section 2: Thursday 12:30am - 2:20pm, Eaton 1005D Section 3: Friday 3:30pm - 5:20pm, Eaton 1005D |
Instructor |
Prof. Alex Bardas Office: 2040 Eaton Hall Office Hours: Wednesday 9:30am - 11:30am, and by email appointment : alexbardas
ku
edu
|
Teaching Assistant | Kurt Slagle Office: 3025 Eaton Hall Office Hours: Tuesday 11am - 1pm, Thursday 11am - 12:30pm, and by email appointment : k287s129
ku
edu
|
If you experience any problems with lab equipment or your EECS account, contact the Engineering Technical Support Center immediately. Please be polite and as detailed as possible: Ticket Form
Check the "Syllabus" section on a regular basis since its content is subject to change throughout the semester.
This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products. The laboratory covers CASE tools, configuration control tools, UML diagrams, integrated development environments, and project specific components.
EECS 268 and Upper Level Eligibility
Roger S. Pressman, Software Engineering - A Practitioner's Approach, 8th edition, McGraw-Hill 2015. ISBN-13: 978-0-07-802212-8
This course has the following goals:
See the KU Registrar for important dates involving adding, drops, and refund information.
Course-Related Questions: You will be free to develop on any platform and in any language you want, but you are responsible for learning new languages or features. The TA will help with labs, but cannot provide support for all possible languages and platforms.
Development Environment: You are required to maintain source control via GitHub. For most work, you may choose any language or platform you wish for assignments, but you must provide a GitHub depot of your source code.
Attendance: Attendance will be taken randomly throughout the semester. Three unexcused absences or three zeros on lab assignments will result in a failing grade for this course.
Announcements: You are responsible for all announcements we make in class, such as information about exams, projects, changes in the syllabus, etc.
Cheating and Plagiarism will not be tolerated and will be treated severely whenever found. Unless an assignment explicitly states otherwise, all work submitted for credit must be the student's own and is subject to the provisions of the University of Kansas policies. Sharing your work or copying is cheating, and submitting a work that is not all yours is also considered cheating. Any cheating will result in an F for the course for all parties involved. Reports of such detected academic misconduct will also be made to your major department, school/college, and university, which oftentimes will result in more serious sanctions. Students should review the university policy on Academic conduct. "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 these values are not respected. Academic misconduct at KU is defined in the University Senate Rules and Regulations." -- KU Student Affairs
Important! Many coding problems have may have solutions online, copying these solutions is not only detrimental to your education, it is plagiarism, which is a violation of the KU academic code.
From Section 2.6.1 of the University Senate Rules and Regulations: Academic misconduct by a student shall include, but not be limited to, disruption of classes; threatening an instructor or fellow student in an academic setting, giving or receiving of unauthorized aid on examinations or in the preparation of notebooks, themes, reports or other assignments; knowingly misrepresenting the source of any academic work; unauthorized change of grades; unauthorized use of University approvals or forging of signatures; falsification of research results, plagiarizing of another’s work; violation of regulations or ethical codes for the treatment of human and animal subjects; or otherwise acting dishonestly in research.
Citing Sources: If you use any code, such as a library or existing codebase, you must cite it. Not doing so is considered plagiarism and is considered cheating. If you add to an existing work, if your own code, you must make this know in your documentation.
Points Distribution.
Labs | 20% |
Exams | 30% |
Projects and related assignments | 45% |
Quizzes and class participation | 5% |
A | 90% + |
A- | 88% - 89% |
B+ | 86% - 87% |
B | 80% - 85% |
B- | 78% - 79% |
C+ | 76% - 77% |
C | 70% - 75% |
C- | 68% - 69% |
D+ | 66% - 67% |
D | 60% - 65% |
D- | 50% - 59% |
F | 0% - 49% |
Compiling Requirement: All code must compile. Any code that does not compile will not be graded, and hence receive zero credit. You must develop good coding practices to ensure that your code is always in a working state.
Labs: The purpose of the labs is to give you an opportunity to explore different topics, tools, or skill sets that will be useful when it comes to developing your projects. Your lab grade will be based on your attendance, participation, and completion of lab assignments.
Late Policy: All late work will receive a 20% per calendar day penalty. Whether it's a second late or a day late, whether it's a team project or a solo assignment. No exceptions. In case a solution will be made available by the instructor, late submissions will no longer be accepted.
Appeals: Should you wish to appeal a grade that you have received on a laboratory assignment, exam, or anything else, you must do so within one week of receiving the graded item. In the case of items such as exams which are handed back in class, you will have one week from the day they were handed back in class, regardless of whether you were in class that day. For the midterm and the final exam, you will have one week from the day class grades are posted to appeal.
Projects: All projects are team based. You will be given lots of freedom in projects with respect to language and platform, but warning: Not the TA nor the instructor will play the role of technical support for your team on your projects. When you pick a language or platform you and your team are responsible for learning how to debug and solve problems in that language or on that platform. Each project is a large amount of work that every member must contribute to equally. More details will be provided as projects are assigned.
Grade Responsibilities: This course uses Blackboard mainly for storing and displaying the grades. When explicitly directed by the instructor or TA, Blackboard may be used for uploading assignments. All written exams are graded by the professor and handed back in class. If you have not received a grade you were expecting it is your responsibility to email your TA and the professor no later than 10 days past the due date of the grade in question.
The Academic Achievement & Access Center (AAAC) coordinates academic accommodations and services for all eligible KU students with disabilities. If you have a disability for which you wish to request accommodations and have not contacted the AAAC, please do so as soon as possible. They are located in 22 Strong Hall and can be reached at 785-864-4064 (V/TTY). More information can be found on the Student Access Services website. Please contact the instructor privately in regard to your needs in this course.
The instructor, Alexandru G. Bardas, considers this classroom (lectures and labs) to be a place where you will be treated with respect as a human being - regardless of gender, race, ethnicity, national origin, religious affiliation, sexual orientation, gender identity, political beliefs, age, or ability. Additionally, diversity of thought is appreciated and encouraged, provided you can agree to disagree. Activities within the University of Kansas community, including this course, are governed by the Code of Student Rights and Responsibilities. It is the instructor's expectation that ALL students experience this classroom as a safe environment.
Concealed Carry. Individuals who choose to carry concealed handguns are solely responsible to do so in a safe and secure manner in strict conformity with state and federal laws and KU weapons policy. Safety measures outlined in the KU weapons policy specify that a concealed handgun:
Some of the course materials are adapted from previous versions of the class taught by Dr. Fengjun Li and Dr. John Gibbons. All lectures and course materials carry a copyright of Alexandru G. Bardas and/or other authors. Pursuant to the University of Kansas’ Policy on Commercial Note-Taking Ventures, commercial note-taking is not permitted in EECS448 - Software Engineering I (Spring 2018). Lecture notes and course materials may be taken for personal use, for the purpose of mastering the course material, and may not be sold to any person or entity in any form. Any student engaged in or contributing to the commercial exchange of notes or course materials will be subject to discipline, including academic misconduct charges, in accordance with University policy. Please note: note-taking provided by a student volunteer for a student with a disability, as a reasonable accommodation under the ADA, is not the same as commercial note-taking and is not covered under this policy.
NOTE: Schedules are tentative and subject to change.
Updated on a regular basis. Use your KU Online ID (all numeric is not correct) and password to access the slides and other materials.
Week 1 |
No Lab | January 17 | Overview Deadline for forming project teams: Friday, January 26 |
slides |
January 19 | Introduction to Software Engineering Reading materials:
|
slides | ||
Week 2 |
Lab 1 | January 22 | Software Processes Overview Reading materials:
|
slides |
January 24 | Process Models: Prescriptive vs. Agile Philosophies Reading materials: |
|||
January 26 | Prescriptive Models Reading materials:
|
|||
Week 3 |
Project Teams Project 1 Lab 2 |
January 29 | Project 1 Overview Reading materials:
|
slides |
January 31 | Process Models: Agile Models Reading materials:
|
slides | ||
February 2 | Agile: XP, SCRUM, DSDM, AUP | |||
Week 4 |
Lab used for team meetings | February 5 | Requirements Analysis Reading materials:
|
slides |
February 7 | Requirements Analysis: SRS Reading materials: |
|||
February 9 | Requirements Modeling: Scenario-Based Reading materials:
|
slides | ||
Week 5 |
Proj.1 Presentations EECS MySQL Lab 3 |
February 12 | Requirements Modeling: Scenario-Based (continued) Project 1: team and self evaluations are available on Blackboard (under Assignments); deadline: Friday, February 16, at midnight |
|
February 14 | Project 1 presentations - part 1 Project 1 GitHub repositories |
schedule | ||
February 16 | Project 1 presentations - part 2 Project 1 GitHub repositories |
|||
Week 6 |
Project 2 Lab 4 |
February 19 | Project 2 Overview | slides |
February 21 | Requirements Modeling: Domain Models | slides | ||
February 23 | Requirements Modeling: Class-Based and UML Class Modeling
Reading materials:
|
slides | ||
Week 7 |
Lab used for team meetings | February 26 | Requirements Modeling: Behavior-Based Reading materials:
|
slides |
February 28 | Project Management Concepts Reading materials:
|
js-slides, pdf-slides | ||
March 2 | No lecture, No Friday-lab session (2018 Engineering Expo) | |||
Week 8 |
Proj.2 Presentations Lab 5 |
March 5 | Review for the Midterm Exam Project 2: Evaluations (code base, team, and self) are available on Blackboard; deadline: Friday, March 9, at midnight |
slides |
March 7 | Project 2 presentations - part 1 Project 2 GitHub repositories |
schedule | ||
March 9 | Project 2 presentations - part 2 Project 2 GitHub repositories |
|||
Week 9 |
Project 3 No Lab |
March 12 | Midterm Exam | |
March 14 | Project 3 Overview (deadline: April 8th) | slides | ||
March 16 | Design Engineering Reading materials:
|
slides | ||
Week 10 |
Spring Break | No lectures, no lab | ||
Week 11 |
Midterm Exam Midterm Answer Key Lab used for team meetings |
March 26 | Architectural Design Reading materials:
|
slides |
March 28 | Architectural Design (continued) Reading materials: |
|||
March 30 | Design Modeling: Component-Level Design Reading materials: |
slides | ||
Week 12 |
Lab 6 | April 2 | Design Modeling: Component-Level Design (continued) |
slides |
April 4 | Design Modeling: User Interface Design Design Modeling: Pattern-Based Design Reading materials:
|
slides slides |
||
April 6 | Web & MobileApp Design Reading materials:
|
slides | ||
Week 13 |
Proj.3 Presentations Project 4 Lab 7 |
April 9 | Project 3 presentations - part 1 Important! If you are using slides, please send them to us after your presentation. Project 3: team and self evaluations are available on Blackboard (under Assignments); deadline: Friday, April 13, at midnight |
schedule |
April 11 | Project 3 presentations - part 2 Important! If you are using slides, please send them to us after your presentation. |
schedule | ||
April 13 | Project 4 Overview, Extra-credit Submission Details | slides | ||
Week 14 |
Lab used for team meetings | April 16 | Software Quality & Metrics: Quality Factors, Metrics Reading materials:
|
slides |
April 18 | Software Testing Concepts Reading materials:
|
slides | ||
April 20 | Software Testing Approaches Reading materials:
|
slides | ||
Week 15 |
Lab used for team meetings | April 23 | Review for Final Exam Final Exam EECS 448 – New Material (pdf format) Final Exam EECS 448 – New Material (docx format) |
slides |
April 25 | Final Exam Q&A | slides | ||
April 27 | Final Exam | |||
Week 16 |
No Lab Final Exam w/ Answers Final Presentations |
April 30 | Final exam discussion and remaining deadlines | slides |
May 2 | Advice and Q&A for Final Presentation (Project4) | slides | ||
May 4 | Stop day (No lecture or labs) | |||
Week 17 |
Finals Week | May 8 | Final presentations (Project 4) Tuesday, May 8, 7:30 - 10:00 a.m. in LEEP2 2415 |
schedule final presentations |
You can earn an extra 10% on your final grade by identifying, reading,
and summarizing 10 IEEE, ACM, and/or USENIX conference or journal articles.
Other societies may also be accepted, please contact directly the
instructor about this matter.
Partial credit will also be awarded for less than 10 articles.
Requirements:
Update!
Submission details: Summaries should be saved in one file (.pdf or .txt format)
and uploaded via Blackboard (link will be available towards the end of the semester).
Number the articles and for each article, state its title, author(s), publishing venue, publication year, and a link to the article
(can be a direct link to the article or a link to the article's entry in the society's digital library e.g., an IEEE Xplore link
-- see the recommended file template for an example).
yourLastName-448-ec.pdf
or yourLastName-448-ec.txt
(Don't submit .doc, .docx, .odt, or any other file formats; ONLY .pdf or .txt are accepted)Thursday, May 3 at midnight (11:59pm CDT)
The instructor may also post some articles marked with *
among the reading materials on the
Course Schedule.
These articles can be used towards earning extra credit even if they are older than 10 years
(this is the only exception to the "not older than 10 years" requirement).
Note! If you are not sure whether an article is appropriate for earning extra credit,
write a few lines about why you think the article is related to the material covered in class
and feel free to contact the instructor.
Note! You can access IEEE and ACM articles for free if you are connected to KU's network
(e.g., wireless JAYHAWK network).
Other societies such as USENIX may have all materials available for free from any network.
Important! Besides the instructor's and the TA's assessments, your summaries will be ran through software applications (Blackboard's SafeAssign and one other application) for identifying plagiarism. Read the articles, write your own summaries, and you will be rewarded.
There will be two written exams in this course: midterm and final exam. The midterm will take place tentatively around the middle of the semester while the final exam will tentatively be scheduled in the last two weeks of class. If you take exams with the Academic Achievement & Access Center (more details in the syllabus), please email them at least 2 weeks in advance.
Week | Week of | Topic(s) | Notes |
---|---|---|---|
1 | 1/15 | Introduction | No lab |
2 | 1/22 | Topic 1: Software processes (process models), version control | Lab 1: git |
3 | 1/29 | Topic 1: Process Models (agile development), Project 1 overview | Lab 2: GitHub |
4 | 2/5 | Topic 2: Requirement Modeling (requirements analysis, scenario-based) | Lab session used for team meetings. Project 1 deadline: 2/12 |
5 | 2/12 | Project 1 presentations, Topic 2: Requirement Modeling (UML) | Lab 3 |
6 | 2/19 | Topic 2: Requirement Modeling (domain models, class-based), Project 2 overview | Lab 4 |
7 | 2/26 | Topic 3: Requirements Modeling (behavior-based), Project Management Concepts | Lab session used for team meetings. Project 2 deadline: 3/5 |
8 | 3/5 | Review for the midterm exam, Project 2 presentations | Lab 5 |
9 | 3/12 | Midterm, Project 3 overview, Topic 4: Design Modeling Concepts | No lab |
10 | 3/19 | Spring break | No lectures, no lab |
11 | 3/26 | Topic 4: Design Modeling (architectural design, component-level design) | Lab session used for team meetings. |
12 | 4/2 | Topic 4: Design Modeling (user interface, design patterns, web & mobileApp) | Lab 6 and lab session used for team meetings. Project 3 deadline: 4/8 |
13 | 4/9 | Project 3 presentations, Project 4 overview | Lab 7 |
14 | 4/16 | Topic 5: Software Quality & Metrics (quality factors, software metrics) Topic 6: Software Testing, final exam review |
Lab session used for team meetings. |
15 | 4/23 | Final exam week: review, Q&A, and final exam (Friday) | Lab session used for team meetings. Project 4 deadline: 4/29 |
16 | 4/30 | Project 4 presentations, stop day (no lecture on Friday) |
Project 4 presentations start. No lab |
17 | 5/7 | Finals Week | Remaining presentations during final exam time: Tuesday, May 8, 7:30 - 10:00 a.m. in LEEP2 2415 |