CSSE 120 – Introduction to Software Development (Robotics section)
Syllabus
What you will learn
- What software development is
- Best practices for software development
- Including working in teams
- How to implement your ideas in a
programming language
- In two programming languages: Python and C
How to succeed
- Understand the homework (just “doing” it is not enough).
- Attend class.
- Immerse yourself in the two projects (one in Python, one in C). Be a world-class teammate.
- Prepare for each exam. Just 30 minutes is sometimes enough.
- Obey the Honesty Policy (see below).
- Work efficiently — get help quickly when you get stuck or are confused.
- In class, ask questions of your instructor, the student assistants, and reliable classmates.
- Visit the students assistants in the CSSE lab Moench D-219, Sundays through Thursdays, 7 p.m. to 9 p.m.
- Consider doing your homework here routinely! That way, you can get instant answers to your questions.
- If the assistant in D-219 is busy, you can also go to the CSSE 120 assistant in Moench F-217. But the D-219 assistant will be more familiar with your assignments.
- Email csse120-staff AT rose-hulman.edu (replace AT with @) with questions.
- This email is read (and answered) by several people. You'll usually get a fast reply.
- Make an appointment to meet with me (David Mutchler), or just stop by my office: Moench F-204. Email: mutchler AT rose-hulman.edu. Phone: 812-877-8426.
Assessment Plan (how you earn your grade)
For the first 7 weeks of the course, you implement in the programming language Python; for the last 3 weeks,
the programming language C.
To compute your grade in the course:
- Rule 1: To pass the course, you must:
- Complete and get a score of at least 70% on EVERY homework assignment and EVERY quiz.
- You may redo any homework or quiz until you obtain a passing score on it.
- Attend almost all of the classes and do the in-class exercises.
- Do NOT come to class if you are sick.
Instead, email me so that I can suggest how you can make up the
missing work most efficiently.
- If you have a good reason to miss a class (e.g. your best friend's wedding),
alert me, preferably in advance, and be prepared to make up the work done in class.
- If you have two unexcused absences, you MUST schedule a meeting with me at that point to discuss whether you should continue the course.
- Rule 2: Assuming you succeed per Rule 1, first compute your score in each of the following categories:
| Category | Weight in overall average |
| Exams |
Paper-and-pencil portion |
in Python |
7 |
| in C |
3 |
| On-the-computer portion |
in Python |
28 |
| in C |
12 |
|
Three-week team project in Python
|
40 |
|
One-week individual project in C
|
10 |
Since there are six categories, that gives you six scores.
Compute both W, the weighted average of those six scores, and S, the smallest of those six scores.
Your course grade is then the smaller of W and (S + 10).
An admittedly unusual assessment plan,
but designed to help you succeed on all the key aspects of this course.
Academic Integrity
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.”
- For homework and quizzes: Getting help and working with others is encouraged for these assignments. Just follow these three rules:
- Attempt the problem yourself first (or with your partner in a pair exercise).
It is NEVER right to begin by copying someone else's solution.
- Make a sincere effort to understand the concepts behind the problem on which you are getting help.
- Give due attribution, by putting within a comment, directly above whatever function you are working on,
either the tag GOT_HELP or the tag NEED_HELP,
along with the name of the person who helped you.
Use the GOT_HELP tag when the help cleared up your questions,
and the NEED_HELP tag when you don't completely understand the solution that you are turning in.
Those tags will help us know what concepts to help you with. Spell them exactly as above, since we may semi-automate the search for them.
- For your two major projects (one in Python, one in C):
These will involve some division of labor, but only in ways that enhance your learning.
We'll explain the special rules for these when we assign them.
- For exams:
These are to be done INDIVIDUALLY, with NO COMMUNICATION with anyone other than my assistants and me.
I understand the pressures that students face. You'll find that I am extremely flexible in helping you out of a jam,
but cheating hurts you in the long run and penalties are stiff even in the short run.
If you are tempted to cheat, don't; instead, come talk to me.
Can I turn assignments in late?
Within reason, yes, but only if on or before the assignment is due, you email me a short note saying when you expect to turn in the assignment.
And if you miss that second due date (that you chose yourself),
you must immediately make an appointment to see me in my office.
If you fall behind, it is very hard to catch up.
Don't abuse this policy.