| Assignments | Contact Info |

Advanced Software Engineering II
23553 - CSC 3981N - 0

Copyright © 2002, 2005 -- 2008, 2012 Herbert J. Bernstein and other parties. All rights reserved.

This web page is http://www.bernstein-plus-sons.com/.dowling/CSC3982F12/CSC3982_Syllabus.html


Syllabus

Term: Spring 2013

Instructor:

Office Hours:

Note that, in general, Dr. Bernstein will be at the Brookhaven campus on Tuesday, Thursday and Friday afternoons and at the Oakdale Campus on Wednesday afternoons. If at all possible, please use email to schedule meetings in advance to avoid conflicts with other students and other obligations of the instructor.

For more information see http://www.bernstein-plus-sons.com/.dowling/HJB_Contact_Info.html.

Course Information:

CSC 3982N - Advanced Software Engineering II

A one-year, project-oriented course intended primarily for juniors and seniors in the Computer Science major and for others with solid programming skills and knowledge of data structures. Topics covered include: software requirements analysis, specification, design, implementation, integration testing, life-cycle documentation; project management; and effective oral communication. Students, under the guidance of the instructor, engage in several large, team-based software development projects through the year. Students are expected to be proficient in object-oriented software design and in at least one modern programming language before taking this course. CSC 3981N and CSC 3982N form a two-semester course sequence and must be taken in the same academic year to count for credit towards the Computer Science major. Prerequisites: CSC 2025A or permission of the instructor.

3.000 Credit Hours

OnLine Course 28 Jan 2013 -- 13 May 2013

Course Objectives

The primary objective of these courses is to train CS majors with skills in programming to become information technology professionals able to undertake complex development projects in a modern distributed computing environment.

Student Learning Outcomes

Course Outline

The approach is that of a "Lyceum", in which all involved learn together through discussions. The following outline shows some of the major topics to be covered, but is not intended to imply sequential ordering. Of necessity, many threads of the course will overlap throughout the year, and students will assume increasing responsibility for self-directed and collaborative discovery and presentation of topics. If there are not sufficient students in the class to form a workable team, or even if there are, we will try to involve people from putside the class.

Required Texts

Texts required for both semesters:

Additional texts required for the second semeter:

Required Materials

Attendance

This is an online class. In general the major risk in taking an online course is in failing to make steady progress through the semester. In the case of softare engineering, failure to make steady progress is a guarantee of failure. Therefore, all students are required both to demonstrate their progress with on-line quizzes and assignments and to attend at least one online meeting every 2 weeks with the instructor to discuss the work they are doing for this class. Students are encouraged to schedule these online meetings in groups via Skype, but they may meet the requirement with individual Skype meetings or by on-site meetings during office hours.

Students who fail to maintain regular contact with the instructor prior to the midterm will get a midterm warning and be advised to withdraw from the course. p>

Grading Policy:

As noted above students will be given weekly quizzes. The weekly quizzes are open-web, open-book, open-notes quizzes, but that won't work in your favor if you don't do the reading.

Every student will be required to maintain a contemporaneous hardbound notebook recording all significant activities related to this course. The notebook should record the major topics discussed, questions about the subject matter of the course and the answers when they are found. You will find a good notebook very helpful in taking the final, but, more importantly, the process of reading and taking detailed notes on what you are reading will help you to learn the material.

In addition to the notebook, you will need an on-line blog and website for this course, both to act as a supplement to the hardbound notebook and to provide a path for the submission of assignments. You may not submit programs as attachments to email. They are not likely to get past the instructor's spam filer. Instead, you should post programs to your web site and send the URL to the instructor.

You are required to do a project to add to your permanent portfolio to complete this course. See the new Dowling College Computer Science Portfolios policy. The portfolio project for this course if to post a significant original project related to the student's track (CS, SE, IS or IT). The individual effort of each student must involve some programming, but each student may make their major effort in whatever project tasks best suit their skills. The project you do for the second semester may be an extension to the project for the first semester or may be something totally unrelated, but it must be a substantial additional effort over what was done in the first semester.

You should think terms of a project you would like to show to a prospective employer or graduate school. Your name will be on it, and everybody in the world will be able to see it and try it. Your skills will be on display for everybody to see. Do a good job.

Because of the nature of software engineering, one cannot complete the course without maintaining current notes in your blog and in your notebook. There is no way to make up a failure to maintain a current notebook except by taking the course all over again.

By the end of the course, all students will be expected to display effective problem analysis and programming skills. No project will be considered complete until all students involved show a complete grasp of the tools needed to design and implement the project. All students will be expected to learn how to work with a variety of programming languages and software tools and to be able to work unaided to find, read and understand documentation for packages they have never used before, and then to install and use such packages.

Some students may not have an adequate preparation in programming to undertake the homework assignments and the course project. Many texts are oriented towards java, and java is fast becoming a major production tool. However, many projects require programming in other languages. It is important that students be able to adapt to other languages.