SE1021
Software Development II

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

Day-by day class materials

code
In-class code
slides
Power-point slides
Final
Final Study Guide

Both slides & code are numbered by week and class of week. For example, code/example1_3 is the code example from Week 1, Day 3 (That is, Friday of Week 1).

Catalog Description

Students design, document and implement software classes and incorporate these classes into larger software applications. Topics covered include abstraction, encapsulation, declaring and implementing abstract data types, interfaces, inheritance, polymorphism, and simple event-driven programming. (prereq: SE-1011) (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
Introduction to Programming with Java: A Problem Solving Approach, 2nd Ed., by Dean and Dean, McGraw-Hill, 2014, ISBN: 978-0-07-337606-6

Outcomes

On successful completion of this course, the student will:

  • Explain the rationale for object-oriented design and programming
  • Translate UML class and sequence diagrams into Java code
  • Apply composition, inheritance, and interfaces
  • Distinguish between extending a class (inheritance) and implementing an interface
  • Define polymorphism
  • Design and implement simple Java classes and packages
  • Document the implementation of small software systems
  • Make appropriate use of exception handling
  • Use classes from the Java standard library to read and write files on disk
  • Use the Java API specification (javadoc) to determine correct use of standard library classes

(Acknowledgement: These outcomes are from Dr. Taylor's site)

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 default grade will be allocated according to this chart:

Lab projects 25%
Homework 5%
Quizzes 10%
Exam I 20%
Exam II 20%
Final Exam 20%
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

I will grade the HW as satisfactory/unsatisfactory. Please don't test the line between the two. Unsatisfactory HW will receive a score of 0, satisfactory HW will receive a grade of 100

After the first exam and before the second, you may choose to stop turning in homework, if you notify me in writing (e.g. email). I recommend you only take advantage of this offer if your exam grade is high -- the final tends to be lower. If you choose this option, your grade scale will be:

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

Quizzes

Quizzes will be held most weeks and will be announced at least one class in advance. 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.

Turning in a *.iml file (or any file not containing your work) instead of the *.java file does not count as a submission at all. Look at the file you send and make sure it actually contains your work.

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

Don't copy other student's code. Even if you don't mean it, it deceives me and compromises my ability to trust what you say about anything. There are many ways to copy code. Even looking at another person's screen and typing what you remember seeing is copying code. If you find yourself typing what you have seen on another person's screen, stop looking at their screen, and start the problem from scratch with a totally different approach.

It is not OK to have a copy of another student's code at any time or in any form. (Remembering someone's code is also a copy.)

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.