Syllabus for CSC 23 - Spring 2005
| Monday, Wednesday and Friday 12:30 - 1:35 |
Sudikoff 115 |
| Tuesday 1:00 -1:50 | Sudikoff 01 |
|
|
||||||||||||||||||||
|
|||||||||||||||||||||
Prof. Stephen Linder |
||
| Office | Sudikoff 216 | ![]() |
| Phone | 603-646-1613 | |
| Office Hours | Tuesday and Wednesday 5:00 - 7:00 PM |
|
The IEEE Computer Society defines software engineering as
|
the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software |
This course explores the software development process with an emphasis on team software development. The course's focus will be on a complex three person team project which requires extensive collaboration, and an adaptive mindset. Each team member will be assigned a different components of the project. The projects are described in the Request for Proposal.
| "It's more important that Java programs be
easy to read than to write."
- Graham Hamilton, |
Develop the confidence, skills and habits necessary to write large computer programs while part of a multi-person team. Become conversant in software engineering paradigms, and be exposed to various public domain tools that make the software development process easier. And finally, enhance skills in self-directed learning, problem solving, and communication.
|
Question: How do you debug your
Java code?
When you write Java code, what
standards do you follow? |
Learning that actively engages students in material is more effective than
listening to monotonous lectures. I am a proponent of active learning, which
flies in the face of traditional passive learning by involving students directly
in the learning process ( I got this line from my former student Josh.) If
you want to read more about this approach read my paper
Facilitating Active Learning.
Not all material required for completion of your programming assignments will be
covered in class. Students are expected to independently read technical
documentation and to search the web for answers to technical questions that
might arise as they work on their projects. You are encouraged to share the
fruits of your research through in-class presentations and use of the class
newsgroup.
In the past students have lamented that assigned projects were too difficult.
Some even went so far as to intimate that the instructor would not be able to
implement the assigned projects. These projects have purposely been designed to
be interesting and engaging; interesting projects are usually challenging. While
having challenging projects might be initially painful, in the long run you will
better understand how to develop software and solve problems.
All students are expected to participate in class discussions and in addition
provide their rationale for answers. Active participation is more important than
always being correct.
At times I will critique your answers to questions or work in the presence of
other students, especially those on your project team. While this may be
uncomfortable for some of you, it is no different than situations that you can
expect to find yourself in when you are in the work place. In doing so, I do not
intend any personal slight: If, at any time, you feel I have made an
inappropriate remark, please talk to me as soon as possible so I can attempt to
rectify the situation.
|
The C
Programming Language (2nd Edition) Amazon.com- Books - $40.00
|
![]() |
|
|
The Java Programming Language (3rd Edition) by Ken Arnold, James Gosling and David Holmes Publisher: Addison-Wesley Pub Co; 3rd edition (June 5, 2000) Amazon.com- Books - $39.99 |
I also like
Thinking in Java (3rd Edition)
by Bruce Eckel
There is an online version of this book that makes the price right.
Students will be evaluated using three metrics grading will consist of three parts
| quizzes | at the beginning of class meeting there will be a quiz on the reading assigned for that day |
| assignments | assignments done by individual students |
| team project | a three (or two) person team software project due the last day of class |
In order to motivate students to keep up with the reading and promote class participation there will be a quiz at the beginning of class on the reading. These quizzes will be short. The quizzes shall be be designed so that they are relatively easy if if you have done the reading.
There will be no make-up quizzes.
There will be weekly assignments at the beginning of the term that are designed to help guide you in the design, implementation and the development process of your final project. These assignments are to be done individually unless otherwise stated in the assignment.
The team project will fully occupy your time during the last half of the term. Each team member is responsible for a single module of multiple module project. The team collectively is responsible for integration. Class will meet in the computer lab, and each software team will meet with the instructor each week for half hour. Your assessment on the team project will be based on you being
Your assessment will be weighted approximately as followed
| quizzes | 20% |
| assignments | 30% |
| team project | 50% |
Extra Credit
Extra credit will also be given to students that help other students during lab, provide answers to questions on the class email list, and otherwise contribute to a positive and supportive learning environment.
Accommodation
Any student with a documented disability needing academic adjustments or accommodations is requested to speak to me by the end of the second week of the term. All discussions will remain confidential, although the Student Disabilities Coordinator may be consulted to verify the documentation of the disability.
Attendance is not required except when working on group projects. Students missing group meetings, in or out of the lab periods, will be penalized. Students missing classes will of course miss out on any credit for class participation.
Students shall be required to participate in team meeting outside of class to complete their group lab project.
While the formation of study groups and collaboration in learning the course material is strongly encouraged, all work should be produced by the individual taking credit for the work, unless the particular assignment indicate otherwise.
C2 23 will have a course mailing list maintained by the instructor. If you do
not receive email from me in the first week please email me.
Students are encouraged to actively participate on the list. I monitor the
list and occasionally give hints or relax requirements for an assignment. You
can only make your life easier by checking your email daily.
Miscellaneous PebblesHomework will be submitted electronically using CVS. Along with your submission you must have
Follow the Coding Standards when ever possible and use Jalopy to format your code. Programs will be also graded on the correctness of the design, proper choice of field, method and class names, proper formatting , and the generation of Javadocs for all public methods. NetBeans includes a wizard to help you write your Javadocs. Other references are
Students are discouraged from writing all code fragments from scratch. Most
things you do in Java follow a pattern that has already been optimized. Unless
the assignment explicitly says you must code something yourself, you are free to
look for resources that help you solve specific problems. However, full credit
for a lab assignment will only be given to students that write a substantial
portion of their program.
You can reuse any code that is on a website directly linked from the course
website or from a link in a faculty email.
You are allowed to use any code fragments or Java class that you find searching
the web, magazines or books, but only if you reference the source of the code
and include the original author in the author list. You are always responsible
for documenting code that you reuse and for being able to explain what it does.
Organization of Teams
Later in the semester the instructor will select three-person teams with the goal of creating diverse teams with a wide breadth of expertise. The projects will be partitioned into three modules and each team member selects a module. You are responsible for integrating your module with your teammate's module to synthesize a final product. See FAQ - Cooperative-Group Problem Solving
In order to obtain access to Sudikoff after hours, and to get into the lab in 001, you will need to have your ID card activated for the appropriate access. To do this, stop by and see Kelly at 101 Sudikoff on a weekday between 8:30am-12:00pm, or 1:00-4:00pm, and bring your Dartmouth ID card. Keep in mind that it may take 24 hours for access to be activated, so please plan ahead!
When you stop by to have your card activated, be sure to tell them you are taking CS 23, so you will get the appropriate access. You will have to fill out and sign a form stating that you understand the various policies about access to the labs in Sudikoff.
We will arrange for you to obtain an account on these machines, if you do not already have one. Please use your Unix account for all programming work in this course.
Please note that the exterior doors of Sudikoff are automatically locked after 6:00pm weekdays, and also every weekend and holiday. In addition, the laboratory doors are locked at all times. You will need your access card to pass through locked doors.
Because COSC 23 involves teamwork, and has a significant workload, the non-recording option is not available for this course.