SE2811
Software Component Design

This is an old version of this course, from Winter 2013-2014. A newer version is avaliable here.

Day-by day class materials

code
In-class code
slides
Power-point slides
quiz
Quizzes

The code examples are numbered by week and class of week. For example, code/example2_1 is the code example from Week 2, Day 1 (That is, Monday of Week 2).

Catalog Description

This course deals with the design and implementation of software subsystems. The concept of design patterns is introduced and common patterns are applied to the development of software components. Laboratory projects provide an opportunity for teams of students to implement components and to integrate them into complete systems. As a final assignment, students conduct research on software design patterns and present and demonstrate the results of their investigations to the class. (prereq: SE 2030, CS 2852) (3-2-4)

This quarter, we will be practicing teamwork in class (though not in labs). Please ask questions wherever things aren't perfectly clear and don't gossip about other students. Dr. Yoder

Basics

Instructor
Josiah Yoder
lıɐɯə
npǝ˙ǝosɯ@ɹəpoʎ
Office
L344 (Library, 3rd floor)
Office Hours
I will be in my office during the office hours posted on the website, unless otherwise announced. I am also usually in my office during the blank hours on the schedule. You can stop by any time I am in my office If you'd like to confirm that I'll be in, just shoot me an email (making an appointment is easy).
Phone
ƖƐ96 ㄣㄣㄣ ϛ9ㄥ (Google Voice). My Google voice number rings my office, my cell-phone, and my computer, all at the same time. You are welcome to call me when I'm at home except the night before an assignment is due. If I don't answer, I'm probably asleep.
Textbook
Head First Design Patterns, by Freeman and Freeman, et al., O'Reilly, 2004, ISBN-10: 0-596-00712-4

Outcomes

On successful completion of this course, the student will:

  • Define & give examples of each design patterns discussedin class
  • Explain the subtle difference between patterns
  • Select which pattern(s) could be used to improve a particular code example

My Schedule

Time Mon Tue Wed Thu Fri
7:00 Class prep Class prep Class prep Class prep  
8:00 SE2811
S359
SE2811
S359
SE2811
S359
SE2811
S359
 
9:00 Office
Hour
    Web Inf.
Meeting
10:00 Grading Class prep Class prep Class prep Class prep
11:00 SE1021
CC53
SE1021
CC53
SE1021
CC53
SE1021
CC53
12:00 Office
Hour
Office
Hour
Free
hour
1:00 Dept Mtg     Office
Hour
Office
Hour
2:00 Grading Grading Grading   SE1021
Planning
3:00 Grading  
4:00  

Classroom

The heart of this class is the classroom. This is where we work as a team to learn the material. You will find that I do not always understand the material perfectly, so ask good questions to keep me on my toes. I do not expect you to understand the material perfectly either, and I'm going to try to keep you engaged, too.

One of my goals for this quarter is to foster a community of collaborative learners. To accomplish this goal, I'll need your help.

  • Please be willing to display both your knowledge and lack of knowledge about what we are learning.
  • Please treat other student's knowledge level as confidential. Do not talk about what other students know with friends, and expect the same from them.
  • Please treat all students with respect.
  • I will try to do all of this, too. Please help me by providing feedback on how I can better meet these goals.

Grading

Your grade will be allocated according to this chart:

Lab projects 30%
Homework 0%
Quizzes 25%
Exam I 20%
Final Exam 25%
Total 100%

Homework

The official homework assignments will be announced in class. The webpage may or may not be up to date with these assignments

Homework will be turned in, but not graded. I will give feedback to the class based on common problems seen in the homework

Quizzes

Quizzes will be held most weeks and will be announced at least one class in advance. There may be multiple quizzes per week. Quizzes will only be announced in class, not on the webpage. You may not make up a quiz, but I will drop everyone's lowest quiz score.

Labs

There is a 10% late fee for turning in lab reports late. Labs will receive no credit if turned in after the deadline for the following lab. The last lab will receive no credit after Friday of week 10 at 4:30pm.

There is a one-hour grace period for turning in labs. After this time, labs receive the full late penalty.

Only submit labs once, unless you notice a 15 point error (or greater) in your previous submission.

You will only receive credit for working functionality on the labs. In other words, there is no partial credit for non-functional code. This includes both code that does not compile, and code that crashes before demonstrating key functionality.

Please start early and ask me for help if you get stuck.

Exams

You cannot retake an exam to improve your grade. If you need to skip an exam, you should schedule a make-up exam before the missed exam. I reserve the right to decide whether to allow a make-up for an exam.

Attendance

If you choose to attend class, I expect you to participate fully with undivided attention. If you disrupt class for any reason, I reserve the right to ask you to leave. Examples of disruptive behavior include browsing Facebook or allowing your cellphone to ring.

Although there is no grade for attendance, attendance is essential. If you skip class, you will miss quizzes and announcements of upcoming quizzes, and will not learn as much. As a result, your quiz, exam, and project scores will probably be lower.

You are responsible for assignments and announcements made in class. The schedule is subject to change.

If you choose to drop the course, you must notify the registrar. I will not drop the class for you. If you don't come to any of the exams, you will receive an F for the class.

Grade reporting

Please take responsibility for knowing & checking your own grades. I will periodically send you grade summaries (by email or on Blackboard). Please check these for errors.

Academic Honesty

My policies for Academic Honesty were originally written by Dr. Mark Hornick. These policies apply for this class as if I wrote them myself.

Students are expected to observe high standards of professional ethics. These standards include honesty in all matters and giving proper credit to the contributions of others. Cheating is a serious offense. In general cheating includes an attempt to pass off another person's work as one's own or an attempt to gain a grade through deceit or distortion of the truth. Read through your student handbook for MSOE's full definition of Academic Honesty and the repercussions for cheating.

Many labs and assignments must be completed individually, while others may be completed in small groups. If the assignment does not specify otherwise, it is to be conducted individually. Even with individual assignments, you are allowed and encouraged to discuss the assignment with your classmates, but you must do your own work. Discussing an approach to use to solve a problem, for example, is permissible, but examining another student's solution is not acceptable - regardless of whether you have his or her permission. Do not under any circumstances copy a solution from a classmate, either in part or in whole. (Note that, when creating a software program, renaming variables and routines while retaining another student's program logic is still copying - don't do it).

You must acknowledge the original ideas of others unless they are widely known in the field. If you have any doubt, you should acknowledge the idea. If you have questions about any of these standards or what you should do in a particular situation, please see me. Failure to observe these standards will result in penalties ranging from a 0 on an assignment to an F for the course.

Recycling of work (borrowing heavily from previous work, including prose and code design or implementation, often done for a different class) is allowed with certain restrictions. First, you must discuss how you intend to recycle your work with me and gain approval well in advance of the assignment due date. Also, you must cite your prior work.

Dr. Mark Hornick

Academic dishonesty (real or apparent) will be reported at the instructors' discretion to the appropriate institutional office to allow repeated instances to be considered.

Grade Scale

Letter grades will be assigned according to the official MSOE grading scale:

≥93% ≥89% ≥85% ≥81% ≥77% ≥74% ≥70% <70%
A AB B BC C CD D F

I reserve the right to award a higher grade than indicated by this scale if such a grade is appropriate in my opinion.