CIS 350 Course Overview (Spring 2014)

Course Objectives

You know how to write a "program". But how do you create a software "product" as part of a team, with customers that have expectations of functionality and quality? This course introduces students to various tools (source control, automated build systems, programming environments, test automation, etc.) and processes (design, implementation, testing, and maintenance) that are used by professionals in the field of software engineering.

Topics will include: software development lifecycle; agile and test-driven development; source control and continuous integration; requirements analysis; object-oriented design and testability; Android application development; software testing; refactoring; and software quality metrics.

Students should be proficient in Java and have completed CIS 121.


Class Meeting Times

Mon/Weds 4:30-6:00pm, Levine 101 (Wu & Chen Auditorium)

Back to Top


There will be no required textbook for this course. There will be numerous assigned readings over the course of the semester, but they will be made available to you via Canvas.

Back to Top


Note that these are only guidelines, but final course grades will likely be based on the following:

  • Midterm exam (15%)
    • This is tentatively scheduled for Weds March 19.
    • The exam will be open-book and open-notes, but you cannot use electronic devices.
  • Final exam (25%)
    • This is scheduled by the university registrar; the tentative date is Thurs May 8.
    • The exam will be open-book and open-notes, but you cannot use electronic devices.
    • The exam will be comprehensive, but will focus on material covered after the midterm.
  • Homework assignments (35%)
    • There will be 5-6 short assignments (2-3 weeks each) related to the major themes of the course.
  • Group project (25%)
    • You will work in groups of 3-4 in a semester-long project to develop software for a member of the Penn community
The assignment of weighted averages to letter grades will likely be as follows:
over 98 A+
93-98 A
90-93 A-
87-90 B+
83-87 B
80-83 B-
77-80 C+
73-77 C
70-73 C-
50-70 D
under 50 F
Note that this may change slightly after grading of the project and final exam is completed.


Credit for work will be recorded only as reported by the TA in the Gradebook in Canvas. It is your responsibility to make sure that your work has been properly recorded in the Gradebook.

Make sure you notify the TA of any problems regarding missing records or incorrectly entered scores; the grade entries in Canvas will be considered permanent one week subsequent to their posting.

Our TAs will be responsible for adjudicating problems related to grading; the instructor will only be involved as a possible court of last appeal in case there is some truly difficult decision to make (i.e., in most cases, I will not be willing to second guess the TAs' decisions). To submit a request to the TA for a regrade of an assignment, email the TA stating the nature of the problem and the remedy you desire. You must submit this adjustment request within one week of the return of the material in question. The TAs will not consider any requests for grade adjustments that are submitted later than this one week grace period.

Back to Top

Academic Integrity

All work submitted for this class is expected to be your own, unless otherwise noted in the assignment instructions. If you are caught submitting work that is completely copied from some other source, or that has been prepared by somebody other than you, you will face severe discipline by the university.

Homework assignments are to be completed individually unless explicitly stated. You may talk to fellow classmates regarding the assignment and share ideas on Piazza, but keep in mind what is appropriate and inappropriate about your collaboration:


  • Person A doesn't understand what exactly the problem is asking, e.g. writing actual code vs. pseudocode. He discusses this with Person B to arrive at one or the other.
  • Person A does not understand a particular concept. Person B explains the concept using an example, other than one asked on the homework.


  • A attempts half the problem, and B attempts the other half. A and B copy the solutions to half the assignment that the other person wrote.
  • Together, A and B work out each homework problem on chalk/white board; then they separately copy down their work and turn it in.
  • Person A completed a programming assignment and just before turning it in, he deleted his program - oh no!!!. In desperation, he asks Person B if he can turn in a copy of her program.
  • Person A happens to be in the lab working on the assignment and notices that Person B is working on the same assignment. Person A is having trouble compiling his program, and asks Person B to fix the problem for him. Sounds safe, right? It's not.

Note: When in doubt always ask the instructor or TA first, to avoid any potential collabration that can lead to academic dishonesty.

You can further read Penn's Code of Academic Integrity page on this subject matter.

Back to Top

Homework turn-in procedure

You will turn-in all homework assignments using Canvas.

You may submit multiple times, but only the last submission will be graded.

Submissions after the deadline are subject to a 10% per day penalty, up to seven days, after which the submission will not be accepted.

Back to Top