09/09/2014 First lecture 12:20-1:10pm in Engineering
Building Room 304
development requires skills beyond just programming.
Additional development strategies and tools aid in managing and
testing software, especially when developing complex multi-threaded
applications. Further, large projects require teams of
developers with a range of different skills and backgrounds.
This course covers both design and testing methodologies,
especially for multi-threaded programs, as well as software tools
that assist in the development process. The course will
introduce students to software engineering basics using a
combination of lectures, practical lab work and assignments, and
large team-based software projects. At the end of the course
student will be familiar with: 1) software processes, 2) software
design and testing methodologies, 3) common software development
tools, 4) C and C++ programming, and 5) multi-threaded application
development. Below is an outline of the major course topics.
- Software Processes
- Software Lifecycle Models
- Formal Methods
- Object-oriented Design
- Top-Down Bottom-Up Development
- Software Testing
- Black-Box White-Box Testing
- Unit Testing
- Test Case Development
- Common Development Tools
- Unix Scripting
- Version Control
- Build Utilities
- Threads and Fork
- Deadlock, Semaphores and Barriers
A pdf version of the
syllabus for the course is available here.
The prerequisites for the course are either ECE 242 (Data
Structures and Algorithms) or CMPSCI
187 (Programming with Data Structures). There is no
required textbook for the course. All material on tests and projects will be
covered in the class.
The class will
consist of two lectures on MWF from 12:20-1:10pm in Engineering
Building I room 304. Room 307 is also reserved for this
class on Monday from 12:20pm- 2:15pm, Tuesday from 10am-11am,
and Friday from 11:15am-1:10pm. We might hold class in the lab
on some Mondays and Fridays. The other times are available
for group work on projects.
Course grades will be
determined based on the following breakdown:
- 5 Assignments:
- 2 Group
- 2 Exams: 35%
Please note that all projects and assignments are due by midnight
(11:59pm) on the due date. A penalty of 20% will be assessed
each day an assignment is late, starting with the day the
assignment is due if it is turned in after 12:20pm.
Academic Honesty Policy
submitted must be your own (or your groups)
- Exams are closed-book and no outside help is allowed. Any cheating on an exam
will result in an F for the course.
- You may discuss general
aspects of assignments and projects with other students.
However, any written work (or your group's work) must be your
own. Copying is not allowed, and collaboration so close that it looks like copying is not
allowed. (In general, if I get two identical submissions I will
accept neither of them (i.e., both get F's) and I will report
this action to the Academic Honesty Board.) Please contact me if
you have any questions. A good practice is to divide your
work into an "ideas phase" where you collaborate and a "writeup
phase" where you work alone -- enter the writeup phase with
notes, but not written solutions.
- If you make use of a printed or on-line source for
assignments, other than specific course materials such as the
textbook or web site, please cite it in your writeup. Note that
copying a solution from the web is cheating, and is easier for
us to detect than you might think.
- If you have any questions ask me or consult the University Academic Honesty Policy.