Lecture Schedule
We have five weeks to cover a number of challenging subjects. The following schedule is subject to change.
- Week 1: Beginning C: Variables (int, double, char), Boolean expressions, Control (if, while, for), Functions.
- Week 2: Moderate C: Functions, Testing, Arrays, Strings, Dynamic Memory
- Week 3: Advanced C: Dynamic Memory, Structs, Data structures (Midterm: Wednesday 14th)
- Week 4: Advanced C / Beginning Python: Lists, Classes
- Week 5: Advanced Topics: Higher order functions, algorithms, etc… Dependent on class interests. (Final Exam: Friday 30th)
Evaluation
Your grade in this course will be computed according to the following formula:
- 10% lab exercises
- 40% homework (shorter assignments: 3% of the homework percentage)
- 20% midterm examination
- 30% final examination
Homework
There will be two weekly homework assignments: a short assignment handed out on Wednesday and due on Friday at the beginning of class, and a longer one handed out on Friday and due on Wednesday at the beginning of class. In the homework assignments you will be required to solve a programming problem(s) related to the topics covered in class so far.
Late work will not be accepted. Our time frame is compressed and you must keep up. Exceptions to this policy will be granted only in the case of extraordinary circumstances.
NOTE: Homework assigned and due dates are subject to change with notice.
Labs
There will be five lab sessions to complement the class lectures. Attendance to the lab sessions is mandatory, and you will be expected to show your results of an exercise at the end of the lab for a grade.
Exams
For the midterm exam (Wednesday August 14th, 2013), you will be given an hour to complete the exam in class. This will be a closed book exame. And, of course, you will not be allowed to talk with your classmates during the exam.
For the final exam (Friday August 30th, 2013), you will be given an hour to complete the exam in class. And, again, you will not be allowed to talk with your classmates during the exam.
The exams are not intended to test your ability to memorize C/Python syntax, learn algorithms by heart, or remembering exactly how a certain data structure is crafted. Rather, the goal of the exam is to test that you understand all the material seen in class and that you know how to apply all that knowledge to construct a working program.
Textbooks
There are two recommended texts for C. They are both useful but not required. For Python we will use primarily online resources.
These books are available for purchase from the
Seminary Co-op Bookstore
Your are not strictly required to purchase the books, as the lecture notes should be enough to get you past the homework and the exam. However, we strongly recommend that you buy the books if you intend to continue working with C, as it can be
an invaluable reference (plus the source of many interesting exercises during the course itself).
Academic Honesty
As the world of computer programming becomes ever vaster and the
Internet becomes ever more populated with ripe fruits to copy and
paste, your personal ethics are absolutely essential in maintaining the
worth and integrity of your education. Remember that an honest
failure is of infinitely greater value than a dishonest success.
I can't amplify this enough.
College-wide honesty guidelines are
here. The college's policies are always the last word, if there
is any uncertainty.
The following rules of thumb summarize honesty as it pertains to this course:
- Do not copy anyone's work.
- Do not allow your work to be copied by anyone.
- Do not submit work identical to another student's.
- Document all collaboration.
- Credit your sources.
To expand on the second rule, sharing completed or partially completed
work in advance of its deadline in any way, including posting to the
Internet, is expressly forbidden.
When it is time to do the actual coding, writing, etc., do
your own work.
Your work.
Dishonest behavior will result in serious consequences.