CSC 395 – Software Engineering Prof. Matthew Hertz WTC 207D / 888-2436 [email protected].
-
date post
20-Dec-2015 -
Category
Documents
-
view
217 -
download
0
Transcript of CSC 395 – Software Engineering Prof. Matthew Hertz WTC 207D / 888-2436 [email protected].
My Background
Contracted to write software for 2-d FTIRChemIcon 9/1994 – 6/1995
Windows Software DevelopmentMarathon Multimedia 10/1996 – 6/1997
Analyst, Continuous Improvement Team Accenture 6/1997-12/1997
Software Engineer & Firmware DeveloperViA Computers 1/1998 - 8/1999
Contracted to rewrite web-based problem trackerGuardian Info 9/2003 - 1/2005
Objectives Met in CSC395 Design computational solutions
Specify, design, implement, and test a program of at least 1000 lines Design and implement a simple GUI Decompose a problem into logically grouped subprograms Use design tools such as Visio, UML, etc.
Program well Debug a program Document a program Write and use a test plan Maintain a program across entire software lifecycle
Organize data for effective use Use fundamental data structures
Understand the role of computing and the computer professional Present or explain ideas both in writing and verbally Weigh different solutions and explain or argue why one was preferable Learn new technologies on your own Meeting minimum standards for professionalism and decorum Know ethical & legal issues and responsibilities in computing Understand the social impact of computers Work in teams
High-level Objectives
Have fun Learn skills needed for a successful computer
professional Improve via thorough understanding of
software development process
Warning
Class is A LOT OF WORK Is a sort-of capstone for the major One class that focuses on real world Can resemble a “Death March” if not kept up
Cannot do much about the amount of material Very important to learn & understand Skills require practice and repetition
Try keeping things fun & interesting
Expectations of Me
Lectures are prepared and organized Give interesting, thoughtful, & fun problems Be (reasonably) available to answer questions Be honest and forthright
Teaching Style
Value reasoning over an answer Class is about learning processes not facts HIGHLY unlikely will face identical question again Mastery means being able to explain how & why
Class participation is vital Lectures get stale and boring very quickly Need you to talk so I can clear up questions
Adult Learning Methodology
Students read material before class Begin class with opportunity to ask questions Lecture explains key topics & ideas
Too much material to lecture on everything Provides 2nd opportunity to see material Try limiting number of long, boring lectures
When possible, end class with problems Gives you chance to see if you really understand Not really graded, so mistakes are not penalized
Expectations of You
Work hard Conduct yourself as a professional Ask for help whenever you need it
Let me know what you are thinking Will adapt methods if it would help students learn Cannot change before I understand problem
Professional Conduct
Class about how things done in real world Your behavior should reflect real-world focus
Happily, we are looking at tech industry Be aware of what you say and how you act
Teasing and jokes can still cause hurt feelings Some topics always off-limits in workplace Be thoughtful and reasonable
Semester project stresses everyone I do not want to have to act as referee
Attendance
Jobs usually start with 2 weeks vacation Semester is ~½ year, so get 1 week vacation
Can miss up to 3 lectures & 2 group meetings Further unexcused absences result in one-step
grade reduction Missed group meetings also get you “fired”
Attendance is still mandatory If you must miss a class, talk to me ahead of time You are responsible for every class
Deadlines
Companies usually consider on-time bids only Now will just shut webpage down at deadline Cannot submit if 1 week, 1 hour, or 1 second late
Submit work by time it is due Late work will not be accepted But talk to me if you know you cannot make a
deadline
Attack of Real Life
When life happens… May need to get a note from the Dean Be prepared to show documentation Talk to me when you can
Do not let this stop you from talking to me
We will find fair & workable solution
Course Grading
Midterm 25%
Final 30%
Papers 5%
Written Work 5%
Semester Project 35%
Students must receive 50% on semester project & average of midterm score and final score
Midterm given on Mar. 9th
Final covers entire semester Several papers will be due over course of semester Written work includes in-class work, quizzes, & homeworks
Grading Rubric
“A” Know material Few small mistakes
“B” Good understanding of topic Miss a few “boundary cases”
“C” Know idea, fuzzy on details Miss large number of
boundary cases -or- Solution is close, but not
quite correct
“D” Vague on idea, details are a
blur Only solves general case -or- Solution usually incorrect -or- Solution rarely crashes
“F” Started day before its due Solution rarely correct -or- Crashes regularly -or- Code cannot compile
Project Grading
Group gets one grade for semester project Students earn multiplier to compute their project grade Scores for each of these comes from personal observations,
peer evaluations, and meeting reports Details on each of these as we move forward
Group Meeting Attendance 7%
Programmer’s Notebook 16%
Presentation Performances 21%
Meeting Preparation 26%
Work Load 30%
Learning Styles
People have different ways in which they best take in and process information
Important for students to discover what is best for them
Will try presenting material in variety of styles Let me know what works for you Let me know what DOESN’T work for you
Collaboration
Fellow students are excellent resource Different styles of learning yields multiple levels of
understanding Encourages to get together and discuss material Answer any lingering questions each student has Clarify what homework problems require By this point, you should know most people in
class
Collaboration
Work you submit must be done by only you When discussing homework:
Leave conversation with memories only Wait >15 minutes before starting on your own
Should not review others work once it is in progress
When in doubt, ask me first
Textbook
Stephen R. Schach, Object-Oriented & Classical Software Engineering, 7th ed., McGraw-Hill, 2007.
Available at bookstore Will cover most of the textbook
Also using number of handouts & websites Book is most interesting & useful I found
Read it anyway…
Course Website
http://cs.canisius.edu/~hertzm/csc395s07
Contains slides, announcements, other important information
Does not replace actually attending class
For Next Lecture
Read Knuth’s Art of Programming Speech given when he received Turing Award
Think about whether you think CSC should be considered an art or a science Homework for Friday: Write 2 – 3 paragraphs
convincing me of your opinion