ECS 40. Introduction to Software Development and Object-Oriented Programming.
| Winter 2012 | CRNs: 30780, 30781 and 30782. |
| Lectures: | MWF 1100-1150. 1003 Giedt. |
| Discussions: | F 1310-1400, 290 Hickey; M 1510-1600, 1060 Bainer; F 1510-1600 108 Hoagland. |
| Instructor: |
Hao Chen. Office hours: F 1200-1400. 2211 Watershed.
|
| TAs: |
Armen Khodaverdian: M 0900-1100; Ryan Stevens: Th 1400-1600. 53 Kemper. |
| Communication: |
If you have a technical or non-personal question, send it to the discussion forum at SmartSite.
If you have a personal, non-technical issue, send an email to
ecs40ATcancer.cs.ucdavis.edu
whose subject line starts with ecs40. Do NOT send email to our personal email addresses, as they are automatically filtered out.
|
Schedule (subject to change)
| Week | Date | Topic | Reading |
Notes |
| 1 | January 09 |
From C to C++ |
§1-5 |
|
| January 11 |
Classes |
§6 |
|
| January 13 |
|
| 2 | January 16 |
MLKs Day |
|
| January 18 |
Constructors |
§7 |
|
| January 20 |
Operator overloading |
§8 |
|
| 3 | January 23 |
|
| January 25 |
|
| January 27 |
Inheritance |
§14 |
|
| 4 | January 30 |
|
| February 01 |
Polymorphism |
§15 |
|
| February 03 |
|
| 5 | February 06 |
|
| February 08 |
Pointers |
§10 |
|
| February 10 |
Midterm |
|
| 6 | February 13 |
I/O |
§12 |
|
| February 15 |
Exception handling |
§18 |
|
| February 17 |
Midterm (Cont.) |
|
| 7 | February 20 |
Presidents Day |
|
| February 22 |
Exception handling |
§18 |
|
| February 24 |
Templates |
§16 |
|
| 8 | February 27 |
Hashtables |
§17.2 |
|
| February 29 |
|
| March 02 |
Recursion |
§13 |
|
| 9 | March 05 |
Linked lists |
§17.1 |
|
| March 07 |
|
| March 09 |
Trees |
§17.4 |
|
| 10 | March 12 |
|
| March 14 |
|
| March 16 |
Big-O notation |
§19.3 |
|
| 11 | March 19 |
Secure programming |
|
|
Description
Elements of program design, style, documentation, and
efficiency. Methods for debugging and verification. Principles and use of object-oriented programming in C++. Basic
data structures and their use.
Textbooks
Grading
Grading scheme is subject to revision.
- Rules of engagement.
The zeroth homework tests if you understand and agree to the rules of engagement. If you fail to turn it in on time, you automatically fail this class.
- Programming homework: 35%.
- Students shall work individually. You are welcome to share ideas and test cases; however, you shall never share any portion of your program. For your admonition and entertainment, here are confessions of previous plagiarizers.
- A gradebot receives your program, grades your program, and shows your ranking in the class in real time. The gradebot runs your program on a set of test cases and compares its output to that of our reference program.
-
We will disclose neither the test cases nor the source of our reference program, even after the deadline.
- Exams (midterm and final): 60%.
All exams are cumulative and are
open print-materials. You may bring any non-electronic books or notes. However, you
shall not use any electronic device (including --- but not limited to --- computers and cell phones, but electronic watches are fine) or share materials during the exams.
- Class and forum participation: 5%.
- Responsibility credit: 10%.
I expect you to take responsibility for your achievements and mistakes. Therefore, do not make unreasonable demands, a.k.a. whining. If you do, you will not only get no favorable treatment but also lose this credit completely. Here are some examples of whine:
- Demand exceptions or favors at the expense of fairness to the rest of the class.
- Refuse to take responsibility for your mistake (e.g., failure to read specifications or follow instructions) but blame it on others (your classmates, the instructor, or the TA).
- Demand the rule for an assignment be changed to overlook your mistake after the assignment has been graded.
However, you are encouraged to ask questions and to provide feedback on my teaching, e.g.:
- Ask me to clarify specifications or policies.
- Identify mistakes in my lectures, specifications, code examples, or grading.
- Suggest how my teaching can be improved.
Requirements
- Reading: Read the chapters before class. I will not read
the textbook to you during class. Rather, I will help you better
understand certain materials in the textbook. However, all the
chapters covered in the above schedule, even if not discussed in
class, may be tested.
- Class participation: You are required to participate actively in
discussions in the class and in the forum. All the materials
discussed, even if they are not in the textbook, may be tested. You shall read the forum and your email at least once in any 12 hour period (including weekends and holidays), as I may post important announcements about this class.
Policies
- Late work: We accept late work only:
- in exceptional circumstances, such as your fatal injury by automobile accidents, plane crashes, lightning strikes, roadside IEDs, snipers, the terminator, or dinner with Dr. Hannibal Lector, and
- when you ask and receive our permission before the deadline.
- Practice exams: We train creative computer scientists and engineers, not rote geeks. Therefore, we give no practice exam, and we don't "prepare" for exams. All the materials discussed in the class are fair game for the exams.
- Regrade request: If you believe that your homework or exam has been graded incorrectly, you may request regrade only within one week of the returned work, except the final exam.
- Integrity: All students shall understand University policies on academic honesty.
Cheating on assignments or exams will be subject to cruel and unusual
punishments. We will check programming assignments for plagiarism
both manually and using automated tools.
Feedback
I always welcome any feedback on what I could be doing better.
You are also welcome to send me feedback anonymously.
<ecs40ATcancer.cs.ucdavis.edu>
Last modified January 27, 2012.