University of Arizona, Department of Computer Science CSc 436: Software Engineering

CSc 436: Software Engineering, Spring 2007


|Home| Syllabus| Lectures| Projects| Links|



Course Description This course introduces students to the fundamental principles and methodologies of Software Engineering. The principles underlying the techniques used in different phases of software development will be discussed in depth. The emphasis will be on understanding why a particular technique should be used and, equally important, why it should not be used. It is assumed that the student has taken a course on data structures and is proficient in programming in at least one programming language such as C++ or Java. The class project will be carried out in teams of 4-6 students each. Each team will first demonstrate and deliver a prototype version of the software to check if it satisfies the client's (the instructor and the teaching assistant for this class) requirements. The final version of the software that incorporates client's feedback will be due at the end of the semester. Refer to class homepage at http://www.cs.arizona.edu/classes/cs436/spring07/index.html
Prerequisites CSc 335, CSc 342 and CSc 352
Meeting Times and Places: TTR 2:00-3:15, Gould-Simpson 906
Instructor Neelam Gupta 
Office: Gould-Simpson 708
Phone:(520)626-8282
Office Hours: 1pm-2pm on Tuesdays and Thursdays, and also by appointment.
ngupta@cs.arizona.edu
Teaching Assistant Bhavin Mankad 
Office Hours:12:00-1:30pm on Mondays and Wednesdays, in the room Gould-Simpson 710-C, and also by appointment.
bhavinbm@email.arizona.edu
Textbook: Fundamentals of Software Engineering
Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli.
2nd ed.; Prentice Hall, 2002.
Course Topics: Lecture Topics and Schedule
Nature and qualities of software, principles of software engineering, software development process models, project management, software specification techniques, software design, design notation, coupling measurement, software architecture styles, user interface design, structural and functional testing techniques, program analysis for verification, program slicing and its applications to software debugging and maintenance.
Grading: 50% Project (20% for prototype demo and documentation; 30% for Final Demo and documentation)  
25%: Midterm Exam (2pm-3:15pm on Thursday March 1, 2007 in GS 906) 
25%: Final Exam (2pm-4pm on Thursday May 10, 2007 in GS 906)
Policies: Attendance: You are responsible for all the material covered in the class whether you attend the class or not. Regular attendance is strongly recommended.
Exams: Examinations must be taken in the class on the date they are given. A missed exam will result in a score of zero. There will not be any make-up exam unless you have taken permission in advance of the exam.
Academic integrity: If you use any of the existing software tools in your project, they may be used with proper reference of the source. The contributions of each team member to the project work should be reported with each version of the software project. The minimum penalty for any student caught cheating or helping another student cheat on project or exam will be a zero for the project or exam; the maximum penalty will be a failing grade in the course. Also refer to The Univ. of Arizona Code of Academic Integrity.
Use of published work: unless specifically forbidden to do so, you may use material that is publicly available (e.g., in a textbook or a technical journal), provided that appropriate attribution is given. Using material from a textbook, journal, or other such external source without proper attribution is considered to be cheating.