Cse 110 Assignment 8 Answer Key

Welcome to CSE 110 Software Engineering!  We love building great software, and want to help you become great software engineers.

Class Meetings

LECTURE:     Monday-Wednesday-Friday, 10:00-10:50am, WLH 2001  [podcast]
                   Clicker frequency code is "CA"

LAB:             Monday 11:00am-1:00pm, CSE Basement, rooms B250, B260, and B270

      • Extended lab period runs until 2pm (one extra hour), and staff will be available
      • Come any time between 11am and 2pm, regardless of your lab enrollment        

DISCUSSION: Friday Noon-12:50pm, PCYNH 122[same podcast link as above]
Friday  3:00-  3:50pm,WLH2207  [same podcast link as above]

FINAL:        Friday, March 23, 8:00-11:00am (WLH 2001)

OFFICE HOURS: Please see "Team" page for details.

Course Description

The timely construction of a quality software system that meets a customer's needs, is challenging. In this course you will get an introduction to team-based software development and engineering methods, including specification, design, implementation, testing, and process.  The course emphasizes team development, agile methods, software design, and use of tools such as IDE's, version control, and test harnesses.

Course Requirements and Grading

       Grading elements [in percent, subject to change before 1/8, 10am]:
    • meet the professor [1%]
    • discussion board participation [1%]
    • pre-class reading quizzes [6%]
    • clicker participation [5%]
    • quizzes (mostly in class) [15%]
    • labs [7%]
    • project [35%]
    • final [30% - and you must pass final to pass the course (60% score on final)]

  • Meet the Professor [MTP] (by 1/30): Meet with me for a few minutes during the first three weeks of the course.  You can do this alone or with a friend or two in the course.  This can be during lab hours, after class, or at another time.  Before class I'm often busy getting ready for the lecture, so best not then.

  • Discussion Board Participation: Act as a good citizen on the discussion board (Piazza) by asking good questions and/or offering good answers for others.  Make at least three posts during the quarter (the average in the past has been 5).  Your posts must be non-redundant (e.g., answer to your question is not cross-reference to a pre-existing post), non-trivial (e.g., "thanks" is an example of a trivial post), constructive (e.g., helpful), and polite.  Questions to the project MVC Customer Contact will not count.

  • Pre-Class Reading Quizzes:  You are expected to do the reading assigned for each class period, in advance.  (No reading will be assigned on in-class quiz days.)  Before each class, there will be a basic online quiz to check your preparation for class.  We will drop the lowest 4 reading quizzes.  You can take a quiz up to a 1/2 hour before class starts.
  • Clicker Participation: Your clicker grade is the percentage of clicker questions in which you participate.  We will drop 25% of non-participations.  That is, someone who participates in 75% of all the clicker questions will receive 100% credit for clicker participation.  There will be no extra credit [see: wikipedia, youtube].

  • Quizzes:  There will be 4 in-class quizzes and 1 online quiz during the quarter.  The in-class quizzes will be given every other Wednesday starting in week 3, in class.  A quiz may be postponed due to extraordinary circumstances - holiday, technology failures, etc.  You are responsible for attending the quiz no matter what day it is actually offered.  The online quiz is during week 1, and regards the mechanics of the course. Your lowest quiz will be dropped.  The quizzes are in essence a midterm spread out over several weeks.  This gives you a week-by-week measure of how you are learning in the course, avoiding a costly surprise mid-quarter.

  • Labs: There will be several labs throughout the quarter.  Labs are performed in pairs.  Labs are graded pass/fail (100/0), and are checked off by a TA face-to-face in lab.  If you cannot make the lab time, or need more time than 2 hours, you can complete the lab anytime before the end of the last lab hour of the week.  Note that if too many students wait until the last lab hour of the week to get checked off, the TA/Tutor may not have enough time to check everyone off.  Note also that we have extended the lab time to provide more flexibility and contact time with the team.
  • Project:  The project concerns constructing an Android application in two phases (each ending in a milestone) throughout the quarter.  You do not need to have an Android device (but can be bought cheaply, used).  The application will be run (and tested) inside an Android emulator.  Each phase will be worth the same amount.  Grading will be based on your application's run-time behavior, plus other project considerations (e.g., test cases, design, teamwork, etc.).  We will require that some design-based work products be turned in prior to the end of each phase, which is when the code product is due.  The project will start at the beginning of week three, once we have a few key readings, lectures, and labs under our belts.  There will be project deadlines during the 4th, 6th, 8th, and 10th weeks of the quarter.

UCSD E-Mail and Piazza Forum Requirement

Occasionally we may need to contact you regarding your homework or some pressing matter.  We may use e-mail or Piazza.  When we use e-mail, we will use your official UCSD e-mail address, as registered in TritonLink.  You are responsible for reading course-related e-mails sent to your UCSD account in a timely manner.

We also post important announcements to the Winter 2018 CSE 110 Piazza Forums.  You are responsible for keeping yourself subscribed to these forums so that you automatically receive forum posts as an e-mail.  Note that there is a mobile client for Piazza.  Assignments, lecture slides, etc. will be posted to the course's CSE Moodle [link, on csemoodle3.ucsd.edu].  You are responsible for all the content there.

In short, although I will often make announcements at the beginning of class for important matters, I don't have time to announce every significant course event.

Please see the Team page tab for additional information about communicating with the CSE 110 staff.

Textbooks, iClickers, Moodle and other Resources

We will be using iClickers fairly extensively in the classroom, and they are a graded element of the course.  The bookstore has these in stock.  If you have an older iclicker, that's OK.  You don't need the newer model.

CSE Moodle (csemoodle3.ucsd.edu) will maintain the weekly calendar of activities and the resources that go with them, including project resources.  It also hosts online quizzes and grades.  We will not always post on Piazza when something is added there, as many additions are regular (e.g., reading quizzes, lecture slides).

All of the required texts and most of the recommended texts are available online (on campus or via the UCSD VPN), up to only 20 readers at a time (so buy the books!).  You should buy the first two required texts (HFSD and HFDP); these will be great references in the future, as well.  The acronym tags listed in front of the readings below will be used to assign readings, which are required to be completed before class.  From time to time we may also assign a web resource or video to watch.

NOTE:Page numbers may vary between paper and digital versions.  Unless otherwise indicated, page numbers are from the paper edition.  Please use Chapter and Section names to disambiguate as necessary.

Mandatory Class Texts

[HFSD] Dan Pilone, Russell Miles: Head First Software Development, O'Reilly Media, 2007 [online]

[HFDP] Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates: Head First Design Patterns, O'Reilly Media, 2004 [online]

Recommended Class Texts

[AND] Dawn Griffiths and David Griffiths.  Head First Android Development, 2nd Edition, O'Reilly Media, 2017.[online]

[JIAN] Benjamin Evans and David Flanagan: Java in a Nutshell, sixth edition, O'Reilly, 2014 [online] (this is a great reference book, but if you have another, that's OK)

David Flanagan: Java Examples in a Nutshell, third edition, O'Reilly Media, 2004 [online]

Y. Daniel Liang, Intro to Java Programming, Comprehensive Version (10th Edition), 2014.  (any Java textbook is fine)

The Ethical Software Engineer and Academic Integrity

Software engineers are trusted with the lives and livelihoods of the users of the software they develop.  Paying customers (clients, product owners) also depend on the software engineers for their livelihoods.  Consequently, great (and ethical) software engineers hold themselves to the highest standards of conduct.  They do their own work, they know where every line of code came from and document it, speak up when there is a problem, and do not allow the release of code that may jeopardize the lives or livelihoods of users or clients.  It's not just good for business in the long term, it's the moral and ethical thing to do.  Software engineers who do not uphold these standards will be passed over for promotions, lose their jobs, and not be able to get good references from previous employers or colleagues.  Short-term or selfish thinking leads to long-term losses to all parties.  In short, take the high road, you'll never regret it.

It is in this framework -- the framework of the ethical software engineer -- that you should understand and practice UCSD's principles and rules of Academic Integrity.  These are not arbitrary rules.  These are the principles on which our identities as engineers are founded.  There is no higher honor than to know that those around you feel they can count on you.  Be worthy of that trust.  It's not easy, it takes discipline and effort.  Here, forthwith, is the Academic Integrity statement.

You are to do your own work in this course.  Each student is responsible for knowing and abiding by UCSD's policies on Academic Dishonesty and on Student Conduct. Any student violating UCSD's UCSD Academic Integrity Policy will be reported to the Academic Integrity Office for administrative processing, and may result in suspension or dismissal from UCSD, as well an an academic sanction that could result in failing the course (e.g., a grade of zero (0) on a compromised assignment).  Committing acts that violate the UCSD Student Conduct Code that result in course disruption will be referred to the Office of Student Conduct, and could result in suspension or dismissal.

As a clarification of the UCSD Academic Integrity Policy as it applies to the work in this course, note the following:

  • No student shall provide their assignments, in part or in total, to any other student in current or future classes of this course. No student shall procure or accept assignments from any other student from current or prior classes of this course.

  • You alone can possess and use your clicker.  If you are found possessing someone else's clicker in lecture, or your clicker is found in possession of someone else during lecture, both of you will be in violation of the academic integrity policy.

  • All programming code and documentation submitted for evaluation or existing inside the student's computer accounts must be the student's original work or material specifically authorized by the instructor. The course accounts are authorized for course work only.

  • Collaborating with other students to develop, complete or correct course work is limited to activities explicitly authorized by the Instructor. Use of other student's course work, in part or in total, to develop, complete or correct course work is unauthorized. However, students may freely discuss their work with others.

  • Each student must retain intermediate work as proof that submitted work is his or her own. A student may be asked to provide these intermediate copies as evidence that the submitted work is the student's.

  • With regard to the above rules, it is understood that project teams will be sharing code among themselves (but not to other teams) to complete their projects.

  • With regard to the above rules, it is acceptable to search the internet to solve programming problems of the "how to" and bug type.  You are responsible for not violating copyright laws when taking code solutions that are found on the internet.  If you cannot ascertain that copying is permitted, you cannot copy the code, but must, at worst, fashion your own solution based on the solution you have found.  You must document the source of any code that is used in part or whole (at the source of use, including a URL), just as you document your sources in an English paper or essay.

  • With regard to the above rules, it is acceptable to use pre-existing third-party libraries (i.e., jar files), as long as they have a license that permits such use.  You are responsible for not violating said licenses.  If there is no license, use is prohibited. You must document (in your project code) the use of third-party libraries, including a URL that points to the source of the library.

Welcome to CSE 110 Software Engineering!  We love building great software, and want to help you become great software engineers.

Class Meetings

LECTURE:     Monday-Wednesday-Friday, 10:00-10:50am, PCYNH 109  [lecture podcast]

LAB:             Monday 11:00am-1:00pm, CSE Basement, rooms B250, B260, and B270
(extended lab period is 11am-2pm (one extra hour), and staff will be available)

DISCUSSION: Wednesday 4:00-4:50pm, HSS 1330    [discussion podcast]
Wednesday 5:00-5:50pm, Center 214   

FINAL:        Monday, June 12, 8:00-11:00am (Peterson 108)

Course Description

The construction of good software systems is challenging. In this course you will get an introduction to software development and engineering methods, including specification, design, implementation, testing, and process.  There is an emphasis on team development, agile methods, and use of tools such as IDE's, version control, and test harnesses.

Course Requirements and Grading

  • Grading elements [in percent, subject to change before 4/3]:
    • meet with the professor [1%]
    • pre-class reading quizzes [4%]
    • clicker participation [5%]
    • quizzes (mostly in class) [10%]
    • labs [10%]
    • project [35%]
    • final [35% - and you must pass final to pass the course (60% score on final)]

  • Meet with the Professor (by 4/24): You must come and meet with me for a few minutes during the first three weeks of the course.  You can do this alone or with a friend in the course.  This can be during lab hours, after class, or at another time.  Before class I'm often busy getting ready for the lecture, so best not then.

  • Pre-Class Reading Quizzes:  You are expected to do the reading assigned for each class period, in advance.  (No reading will be assigned on in-class quiz days.)  Before each class, there will be a simple online quiz to check your preparation for class.  We will drop the lowest 3 reading quizzes.  You can take a quiz up to a 1/2 hour before class starts.
  • Clicker Participation: Your clicker grade is the proportion of the number of clicker questions in which you participate.  We will drop 25% of non-participations.  That is, someone who participates in 75% of all the clicker questions will receive 100% credit for clicker participation.  There will be no extra credit [see: wikipedia, youtube].

  • Quizzes:  There will be 5 in-class quizzes and 1 online quiz during the quarter.  The in-class quizzes will be given every second Wednesday (even-numbered weeks in Moodle), in class.  A quiz may be postponed due to extraordinary circumstances - holiday, technology failures, etc.  You are responsible for attending the quiz no matter what day it is actually offered.  The online quiz is during week 1, and regards the mechanics of the course. Your lowest two quizzes will be dropped.  The quizzes are in essence a midterm spread out over several weeks.  This gives you a week-by-week measure of how you are learning in the course, avoiding a costly surprise mid-quarter.

  • Labs: There will be several labs throughout the quarter.  Labs are performed in pairs.  Labs are graded pass/fail (100/0), and are checked off by a TA face-to-face in lab.  If you cannot make the lab time, or need more time than 2 hours, you can complete the lab anytime before the end of the last lab hour of the week.  Note that if too many students wait until the last lab hour of the week to get checked off, the TA/Tutor may not have enough time to check everyone off.  Note also that we have extended the lab time to provide more flexibility and contact time with the team.
  • Project:  The project concerns constructing an Android application in two phases (each ending in a milestone) throughout the quarter.  You do not need to have an Android device (but can be bought used cheaply).  The application will be run (and tested) inside an Android emulator.  Each phase will be worth the same amount.  Grading will be based on your application's run-time behavior, plus other project considerations (e.g., test cases, design, teamwork, etc.).  We will require that some design-based work products be turned in prior to the end of each phase, which is when the code product is due.  The project will start a couple weeks into the quarter, once we have a few key readings, lectures, and labs under our belts.

UCSD E-Mail and Piazza Forum Requirement

Occasionally we may need to contact you regarding your homework or some pressing matter.  We may use e-mail, and when we do, we will use your official UCSD e-mail address, as registered in TritonLink.  You are responsible for reading course-related e-mails sent to your UCSD account in a timely manner.

We also post important announcements to the Spring 2017 CSE 110 Piazza Forums.  Your should keep yourself subscribed to these forums so that you automatically receive forum posts as an e-mail.  Note that there is a mobile client for Piazza.  Assignments, lecture slides, etc. will be posted to the Spring 2017 CSE 110 Moodle [link, on csemoodle3.ucsd.edu].  You are responsible for all the content there.

Please see the Team page tab for additional information about communicating with the CSE 110 staff.

Textbooks, iClickers, Moodle and other Resources

We will be using iClickers fairly extensively in the classroom, and they are a graded element of the course.  The bookstore has these in stock.  If you have an older iclicker, that's OK.  You don't need the newer model.

CSE Moodle (csemoodle3.ucsd.edu) will maintain the weekly calendar of activities and the resources that go with them, including project resources.  It also hosts online quizzes and grades.  We will not always post on Piazza when something is added there, as many additions are regular (e.g., reading quizzes, lecture slides).

All of the required texts and most of the recommended texts are available online (on campus or via the UCSD web proxy), up to 20 readers at a time (so buy the books!).  While this number of licenses has been adequate in the past, this quarter the number of students enrolled is quite large.  You should buy the first two required texts (HFSD and HFDP); these will be great references in the future, as well.  The acronym tags listed in front of the readings below will be used to assign readings, which are required to be completed before class.  From time to time we may also assign a web resource or video to watch.

NOTE:Page numbers may vary between paper and digital versions.  Unless otherwise indicated, page numbers are from the paper edition.  Please use Chapter and Section names to disambiguate as necessary.

Mandatory Class Texts

[HFSD] Dan Pilone, Russell Miles: Head First Software Development, O'Reilly Media, 2007 [online]

[HFDP] Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates: Head First Design Patterns, O'Reilly Media, 2004 [online]

Recommended Class Texts

[AND] Dawn Griffiths and David Griffiths.  Head First Android Development, O'Reilly Media, 2015.[online]

[JIAN] Benjamin Evans and David Flanagan: Java in a Nutshell, sixth edition, O'Reilly, 2014 [online] (this is a great reference book, but if you have another, that's OK)

David Flanagan: Java Examples in a Nutshell, third edition, O'Reilly Media, 2004 [online]

Y. Daniel Liang, Absolute Java for Intro to Java Programming, Comprehensive Version (10th Edition), 2014.  (any Java textbook is OK)

Academic Integrity

You are to do your own work in this course.   It is not just a rule, it is a matter of fairness and honor, a core principle of all engineering disciplines.  Each student is responsible for knowing and abiding by UCSD's policies on Academic Dishonesty and on Student Conduct. Any student violating UCSD's UCSD Academic Integrity Policy will be reported to the Academic Integrity Office for administrative processing, and may result in suspension or dismissal from UCSD, as well an an academic sanction that could result in failing the course (e.g., a grade of zero (0) on a compromised assignment).  Committing acts that violate the UCSD Student Conduct Code that result in course disruption will be referred to the Office of Student Conduct, and could result in suspension or dismissal.

As a clarification of the UCSD Academic Integrity Policy as it applies to the work in this course, note the following:

  • No student shall provide their assignments, in part or in total, to any other student in current or future classes of this course. No student shall procure or accept assignments from any other student from current or prior classes of this course.

  • You alone can possess and use your clicker.  If you are found possessing someone else's clicker in lecture, or your clicker is found in possession of someone else during lecture, both of you will be in violation of the academic integrity policy.

  • All programming code and documentation submitted for evaluation or existing inside the student's computer accounts must be the student's original work or material specifically authorized by the instructor. The course accounts are authorized for course work only.

  • Collaborating with other students to develop, complete or correct course work is limited to activities explicitly authorized by the Instructor. Use of other student's course work, in part or in total, to develop, complete or correct course work is unauthorized. However, students may freely discuss their work with others.

  • Each student must retain intermediate work as proof that submitted work is his or her own. A student may be asked to provide these intermediate copies as evidence that the submitted work is the student's.

  • With regard to the above rules, it is understood that project teams will be sharing code among themselves (but not to other teams) to complete their projects.

  • With regard to the above rules, it is acceptable to search the internet to solve programming problems of the "how to" and bug type.  You are responsible for not violating copyright laws when taking code solutions that are found on the internet.  If you cannot ascertain that copying is permitted, you cannot copy the code, but must, at worst, fashion your own solution based on the solution you have found.  You must document the source of any code that is used in part or whole (at the source of use, including a URL), just as you document your sources in an English paper or essay.

  • With regard to the above rules, it is acceptable to use pre-existing third-party libraries (i.e., jar files), as long as they have a license that permits such use.  You are responsible for not violating said licenses.  If there is no license, use is prohibited. You must document (in your project code) the use of third-party libraries, including a URL that points to the source of the library.

0 thoughts on “Cse 110 Assignment 8 Answer Key

Leave a Reply

Your email address will not be published. Required fields are marked *