Inf 111 / CSE 121: Software Tools and Methods

Fall Quarter 2011
 
Lecture Discussion 1 Discussion 2 Lab 1 Lab 2 Lab 3
ICS 174
T Th, 8:00 - 9:20 am
ICS 180
M 8:00 - 8:50 am
ICS 180
M 9:00 - 9:50 am
ICS 189
M 11:00 - 11:50 am
ICS 192
M 12:00 - 12:50 pm
ICS 192
M 1:00 - 1:50 pm

Instructor:

Susan Elliott Sim

Email:

Image of Susan's email
To ensure a response to your email, please include "Inf111" or "CSE121" in the subject line and send your email from a UCI account.

IM:

benevolentprof on YIM and gtalk

Office hours:

T Th 9:30am - 10:30am
Other times by appointment
DBH 5226

Teaching Assistant:

Tiago Proenca
tproenca@ics.uci.edu

Web site: http://www.ics.uci.edu/~ses/teaching/inf111/
EEE MessageBoard:

https://eee.uci.edu/toolbox/messageboard/m11611/
You can post questions and comments about this class to the EEE MessageBoard.

Description - Textbooks - Topic List - Grading - Policies


Description

Catalog description:
Concepts and techniques of constructing software in a systematic fashion,including detailed design techniques, specifications, programming methods, quality-inducing procedures, development tools, team techniques, testing, estimation, and performance improvement. Laboratory work involves exercises to illustrate important concepts, methods, and tools. Prerequisites: Informatics 43 or ICS 52 or CSE90 with a grade of C or better.

Description of this installment of 111:
This course will cover a variety of software tools and methods that are widely used in industry with the aim of increasing students' skills and flexibility as software engineers. There will be an emphasis on iterative and incremental software process models such as Agile. Students will gain experience with techniques and practices including testing, version control, UML modeling, and design patterns.


Textbooks

Required Textbooks:
1. van Vliet, Hans. Software Engineering: Principles and Practice. 2nd edition. Addison-Wesley, 2000.
2. Larman, Craig. Applying UML and Patterns, Third Edition. Prentice Hall PTR, 2005.
3. Brooks, Frederick P. The Mythical Man-Month. Anniversary edition. Addison-Wesley, 1995.


Topic List

B = Brooks, L = Larman, V = van Vliet. Schedule is subject to change.

  Topic Readings Evaluations
Week 1 Course Overview
- Introduction
Unified Modeling Language (UML)
- Modeling - Perspectives in Modeling - Domain Models - Class Diagrams
- Tools: Rational Software Developers Workbench
Microsoft
L1.9, 10, 13, 14, 15, 16, 26

Lecture Slides

 
Week 2
Design Patterns
- Singleton - Observer - Façade - Strategy
Orders of Ignorance
L26, V3
See EEE Dropbox for readings on Singleton, Façade, Observer, and Strategy
 
Lecture Slides
Podcast of Tuesday lecture [Large] [iPod/iPhone] [Small]
Podcast of Thursday lecture [Large] [iPod/iPhone] [Small]
Homework 1 during Laboratory session
Week 3
No class on Tuesday
Configuration Management
V4

Lecture Slides

Homework 1 due
Homework 2 in lab
Week 4 Nature of Software Development
- "No Silver Bullet"
- Software Technology
B16 available on EEE Dropbox
V3, 14.3, 15 available on EEE Dropbox
 
Lecture Slides
Podcast of Thursday lecture [Large] [iPod/iPhone] [Small]

Homework 2 due
Homework 3- take home only, no laboratory session
Week 5 Software Development Process Models
- Process models - Plan-based models - Iterative models
- Agile Software Process

L3
The Rules and Practices of Extreme Programming
What is Scrum?
 
Lecture Slides
Podcast of Thursday lecture [Large] [iPod/iPhone] [Small]
Homework 3 due
Homework 4 during Laboratory session
Week 6 No lecture on Tuesday- Susan away Midterm test
No lab
Week 7 UML (continued)
- Use Cases - Use Case Diagrams - Sequence Diagrams

L6, 28, 29
Lecture Slides
Podcast of Thursday lecture [Large] [iPod/iPhone] [Small]
Homework 4 due
Homework 5 during Laboratory session
Week 8 Testing
- Types of testing - Acceptance testing - Unit testing
Tools: JUnit
V13
Lecture Slides
Podcast of Tuesday lecture [Large] [iPod/iPhone] [Small]
Podcast of Thursday lecture [Large] [iPod/iPhone] [Small]
Homework 5 due
No lab this week
Week 9 No class on Thursday, Thanksgiving
Programming Practices
- Coding Conventions - Code Reading - Reverse Engineering
Java Code Conventions
Slides from Coding dojo
Homework 6 during Laboratory session Homework 7 Coding dojo on Monday, November 21 8-11am in DBH5011
Week 10 Software Design
Software Industry
  Homework 6 due


Grading and Evaluations

Grading.
Assignments 60% (equally weighted, best 6/7)
Midterm Test 15%
Final Examination 25%

Assignments.
There will be seven graded assignments, worth a total of 60% of your grade. You will receive credit for the best six out of seven, so you may miss one lab without penalty. Each assignment will have an in-class portion and a take-home portion. The in-class portion will be graded during the laboratory session on Mondays. To receive credit, you must attend the section in which you are enrolled. The take-home portion is due electronically on Thursday of the follow week.
 
Homework 1  Class_DVDStore.emx   SelfCheckOut.zip
Homework 2
Homework 3
Homework 4
Homework 5 Template
Homework 6  LunarLanderHW6.zip   testing.zip

Policies Concerning Assignments. Assignments must be turned in electronically using Checkmate. Assignments are due at the at the time and date on stated on the assignment handout. No late assignments are accepted. Assignments will require use of software tools, some of which are available only in the ICS labs.

Midterm Test.
There will be one term test worth 15% of your final grade. The test will be held on Thursday, November 3 during the regular lecture period.  

Final Examination.
The final examination worth 25% of your final grade and is scheduled for Tuesday, December 6, 8-10am.

Policies Concerning Exams. The final exam will be cumulative. Exams will include all kinds of questions, including multiple choice, essay, and drawing diagrams. Bring your UCI student ID card (for Access students: other government-issued photo ID) to the exam. Do not bring electronic devices, such as laptops or cell phones. Make-up exams will be offered only for documented medical reasons.


General Policies

Adding and Dropping. Last day to add, drop, or change sections is the Friday of the second week of class. New students will not be accepted after this date.

Cheating. The UCI academic honesty policy applies. Consequences of cheating in this class: A letter in your UCI file, and the course grade is lowered, possibly to F. Material that is copied from books or Web pages needs to be quoted and the source must be given.

Disabilities. If you need an accommodation because of a disability, please contact the instructor and the Disability Services Center as soon as possible.



Susan Elliott Sim