Also known as the "Syllabus"
Matt Boutell, Assistant Professor of Computer Science and Software Engineering | ||
Email: | boutell@rose-hulman.edu | |
Office phone: | (812) 877-8534 | |
Office address: | Moench F-224 (top floor)MB Crapo ============ ||(Lab F217: extra help here) (Quad) || Res. || Halls Olin169 ========|| | |
Home page: http://www.rose-hulman.edu/~boutell | ||
Office hours: feel free to stop by whenever I'm in the office. You can email first to see if I'm in the office. |
You will receive instructions for installing these free tools via email.
Students who successfully complete this course should be able to:
- Develop software that incorporates the following techniques:
- Inheritance and class hierarchies
- Interfaces
- Polymorphism
- Casting
- Exceptions
- Function objects
- Generics
- Collections
- Event-driven graphical user interfaces
- Exploring and using large-scale API packages such as Java's Swing
- Recursion
- Perform the following steps of the software development cycle effectively:
- Design expressed as UML class diagrams
- Documentation before coding
- Unit and system testing
- Explain the implementation of sequential and linked lists
- Analyze the asymptotic worst, best, and average case run times of simple algorithms including search and sort
- Select basic data structures (e.g., arrays, sequential lists, linked lists, stacks, queues, hash tables and trees) based on the time and space complexity of typical operations.
- Design, specify, and implement a medium-size software product using object-oriented design.
- Verbally communicate technical material in an effective manner.
- Describe the differences between implementations of a given program using a memory-managed language (Java) and a low- level language (C), considering language features such as:
- string representations
- explicit pointers vs. implicit references
- parameter passing
- appropriate applications of each language
- Solve small programming problems in each language described in outcome 8.
Each week will normally include:
Do things that will enhance your (and everyone's) learning, for example:
Try to avoid things that will detract from your learning or that of people around you, for example:
"In engaged learning settings, students are responsible for their own learning; they take charge and are self-regulated. They define learning goals and problems that are meaningful to them; have a big picture of how specific activities relate to those goals; develop standards of excellence; and evaluate how well they have achieved their goals. They have alternative routes or strategies for attaining goals--and some strategies for correcting errors and redirecting themselves when their plans do not work. They know their own strengths and weaknesses and know how to deal with them productively and constructively. Engaged learners are also able to shape and manage change."
Even in the best classes, it is sometimes hard to stay focused for 90 minutes, especially with a laptop in front of you! Laptops are necessary for this class. However, IM and news can draw you in longer than you might have hoped, so that you lose valuable class information.
Research also shows that people are not as good as multitasking as they think they are! (Rubinstein et al., "Executive Control of Cognitive Processes in Task Switching", 2001; http://archives.cnn.com/2001/CAREER/trends/08/05/multitasking.focus/ )
Therefore, I strongly encourage you to turn off communications (IM and email) software and only use other software for things directly related to class. If you choose to use non-class-related software during class, then please sit in the back row. This will prevent your classmates from being distracted by what is on your screen.
Some class info will only be distributed via email. You are responsible for checking for class email daily on Angel. (Hint: this is easily done by having Angel forward your email to another account, as taught during laptop orientation.)
Your grade will be based on your demonstration of the learning outcomes, as measured by:
Citizenship is an integral part of the course. The baseline citizenship grade for someone who comes to class but doesn't interact will be 70%. Asking and answering questions will raise your grade; skipping class and not paying attention while there will lower it.
Furthermore, the in-class time in this course constitutes an important learning experience. After two absences (~7% of the course), you should discuss continuation of the course with your instructor. Subsequent unexcused absences may result in automatic failure of the course, at the instructor's discretion.
All assignments and exams must be turned in on time if you want credit for them. Of course, if serious circumstances keep you from finishing a program on time, please see your instructor in advance.
Your best sources of help, by far, are the instructors and the CSSE 221 assistants.
Don't hesitate to contact them, in person or via email.
There are no dumb questions. It is better to ask, than to assume - assumptions can get you in trouble!
There will also be lab hours in Moench F217. See ascii map above for directions, and schedule below for hours. This lab is also a great place to meet upperclass CSSE students who love this stuff!
Schedule of Assistants:
For this class, collaboration is encouraged, and sometimes required, on assignments. When you collaborate, you must:Failure to properly acknowledge collaboration can be considered cheating.
- Properly credit your collaborators.
- Indicate clearly the extent of the collaboration.
- On homeworks: working out a solution as a group is acceptable collaboration. Each individual is responsible for understanding the entire solution. Once a group solution has been achieved, each collaborator must rework the problem and write up the solution independently. Copying someone else's homework is cheating, not collaboration.
- On individual software development projects: you may discuss programming ideas and concepts with other students. However, copying someone else's code in any form is cheating.
- On pair software development projects: the group will normally turn in a single solution. All members of the group should understand the solution, and are responsible for helping each other do so.
- On the capstone project: there will be some division of labor, so that some members of the group will understand some aspects of the final product better than other members of that group. But all members must participate fully in the process and all members should understand all aspects of the project.
- On quizzes and exams: collaboration is prohibited.
Recall the Institute policy on academic misconduct:
"Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity."The departmental statement on academic honesty has more detailed advice.Dishonesty on homeworks, software development projects, quizzes or exams may result in a lowered course grade or a grade of an F in the course. (Ask me about the minimum penalty for cheating.) More importantly, such dishonesty steals your own self-esteem. So don't cheat.
If you have any questions, please ask.