SE2030
Data Structures

The syllabus itself has not been updated for online yet. Please see the Online page in the meantime.

Catalog Description

This course provides an introduction to the software engineering tools and practices - a look at typical approaches software engineers use to create applications in practice. Topics include requirements analysis, high-level design, detail-level design, UML modeling, code generation, basic unit testing, application building, continuous integration, and revision management. Laboratory assignments provide an opportunity for students to develop an understanding of these tools and how they are used in actual practice. (prereq: none) (coreq: CS 2852) (2-2-3)2 lecture hours
2 lab hours
3 credits

(From the catalog)

Basics

Instructor
Josiah Yoder
lıɐɯə
npǝ˙ǝosɯ@ɹəpoʎ
Office
L341 (Library, 3rd floor)
Office Hours
See below
 
Office Hours
In Microsoft Teams!
Phone
ƖƐ96 ᔭᔭᔭ ϛ9ㄥ Google Voice; rings my office and computer at the same time.
Text
There is no required text for this course. Please see the schedule for suggested online readings.

Outcomes

On successful completion of this course, the student will be able to:

  • Create UML class, state, and sequence diagrams using a CASE tool
  • Transform requirements documented as use cases into UML design models
  • Generate source code from UML design models, and synchronize subsequent changes
  • Create simple unit tests and execute them in a standard test framework
  • Maintain source code and related design documents in a revision control system
  • Create a deployable software package using an automated build tool
  • Create an installable software package using an automated build tool

These are the official course outcomes from the catalog

My Schedule (Office Hours)

For cancellation notices, please see My main schedule page

Time Mon Tue Wed Thu Fri
8:00       SE2030
 
9:00 SE2030 SE2030
10:00 SE3030
Office
Hour
SE3030
Office
Hour
Office
Hour
11:00     Senate
12:00   SE2030 SE2030
SE2030  
1:00 Dept Mtg    
2:00 Office
Hour
Advising
Planning
3:00   Office
Hour
4:00  

Class

While I don't mind if you have to skip a class, class attendence is essential so you can learn what material I expect you to know, what HW and quizzes there will be, etc.

In class, I expect you to focus completely on class material. Instead of checking your email or browsing facebook, participate in the class activities and take notes of what you are learning.

This quarter, if you have your laptop open in class, send me your notes at the end of the hour by email. Otherwise, please keep your laptop closed unless we are using it for a class exercise.

If it becomes necessary to consider dropping the class, I am happy to give you advice, but I want you to make the final decision (with the help of your academic advisor). So if you stop coming class, I will not drop you, but instead give you whatever grade you have at the end of the quarter, even if it is an F.

Homework

Labs

This quarter, we are learning the foundations of programming. To ensure that you master this material, labs are individual, unless marked in the lab handout.

Lab attendence is required. This is a key time for learning together. Please contact me in advance if you expect you may need to be absent.

Labs may be turned in electronically or on paper. See the lab checklist for when the lab is due and how it should be submitted. In every uploaded file, include your name, date, and the assignment name.

This quarter, assignments must be turned in on time to be considered for credit, except in documented extreme circumustances.

Untested code is buggy. I find that if your code doesn't compile or hardly runs, that there are many other errors in it. To get more than half credit for a lab, it should compile and run when I test it (or you demo it). If it does not compile & run, please fix the lab and submit it later, or drop a feature or two to get it running again (often the best option).

For every day that goes by beyond the original deadline, it gets much harder to catch up on a lab. As a result, after the deadline, you can receive partial credit for a lab, up to 10% off per day.

All assignments must be turned in by 4:30pm on Friday of Week 10 so that we can wrap things up and I can turn the grades in on time. This is especially imporant this year as Week 10 is the last full week before grades are due.

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

Learning Assessment

This quarter, we will use the following to measure your learning:

Participation 5%
Lab projects 30% 40% 45%
Quiz and Half Exams 40% 35%
Final Exam 30% 25% 15%
Total 100%

With this being an online course, participation in synchronous activites will be harder than usual. This component of your grade will be made up of whether you are watching the videos in class and attending the synchronous lecture and lab activities on Teams. It also could be influenced by whether you are prepared with questions at the start of our Teams discussions. (If you have a documented reason to not attend these, please contact me in advance.)

I will drop your lowest three participation scores. (Watching videos on-time and attending lectures will be counted as separate events.)

I sometimes make mistakes in tallying points. If you become aware of an error in grading, please send me an email, and I will fix it and reply by email.

If the error goes beyond tallying points, discussing things in person in a Microsoft Teams video chat is a great way to start to resolve an issue. I may ask you to send me an email if I think the case you are asking about requires careful consideration.

Please maintain your own records of your grades and check them against whatever summaries I send to you.

Quizzes & Exams

Quizzes will be announced in class at least one day in advance. They will usually be on Lab day.

Because of the difficulty of preparing fair and accurate tests, you cannot retake a quiz or exam if you miss it or do worse than you hoped. I will drop your lowest quiz score, so one 0 should not be a problem. If you need to skip an exam or half-exam, you should schedule a make-up exam before the missed exam. I don't always give make-up exams, even if students ask in advance.

You must have a passing grade on the exams to pass the class.

Grade Scale

I use the official MSOE grading scale:

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

In final grading, I may award a grade higher than the grade scale if I feel it is more accurate than what the "raw numbers" produce.

Integrity

Your integrity is your most valuable academic possession, significantly more valuable than passing a class or getting a high GPA.

Academic integrity is essentially truthfulness — ensuring that if it appears you have done or know something, you have.

It is possible to accidentally give the impression that work is yours. If something like this happens to you, please let me know as early as possible. It is better if you point it out than if I find it.

Be on the watch for violations of academic integrity, including:

  • Receiving code from another student not on your team, even by looking at it.
  • Giving code to another student not on your team, even by showing them.
  • Looking at another student's work during a quiz or exam.
  • Copying source code -- even a single method call -- from an online resource.
  • Contacting any other human or chat-bot while working exams and quizzes

Read MSOE's Policy on Student Integrity for more details.

When coding, you are encouraged to discuss strategies, but the implementations should be independent. Even discussing the details is not a good idea if it goes too far. If you want to show code, start up an independent program rather than showing an assignment — and use a different application than the assignment at hand to demonstrate the concept you wish to share.

Because of the importance of maintaining academic integrity, I will report apparent academic dishonesty to the Vice President of Academic Affairs. If this occurs, you will get a copy of the report.

Free Student Support Services

MSOE provides free services to all students that can help you to perform at your best and make your life much easier.

For free advice on note taking, exam study, time management, sleep strategies, or help navigating a difficult personal situation, head on over to the Wellness center at K250 to connect with your student support advisor (go through the basketball courts on the 2nd floor of the Kern Center). For more information on the Wellness Center, you can visit their website at msoe.edu/wellness, contact them at wellness@msoe.edu, or call 414-277-7590.

For free one-on-one tutoring, study sessions, group tutoring, writing assistance, and Study Spaces, head to RCAS on the 2nd floor of the Library Building (at the back of same floor where you enter the Library Proper). For more information on RCAS Tutoring you can visit their website at msoe.edu/tutoring-services, contact them at rcastutoring@msoe.edu or call 414-277-7274. You can also schedule tutoring at rcastutoring.com.

If you're not sure where to start, ask me (your instructor) or head to Wellness in K250.

Student Accessibility Services (SAS) / Mental Health

For students with documented disabilities, chronic medication conditions and mental health concerns, MSOE provides services to make reasonable accommodations and resources available. If you are a student who requires or anticipates the need for accommodations, please contact the Wellness Center Office at 414-277-7590, by email at wellness@msoe.edu, or in person at K230 to discuss appropriate accommodations, eligibility requirement or setting up a counseling session.

Fine Print

1In rare cases, I may need to reschedule an office hour. I will, if at all possible, announce this in class a day or more in advance.