CAS 1MA3: Computer Based Problem Solving - Fall 2012
Outline
Announcements:
We have received ethics approval to conduct six experiments in tablet-based, interactive learning
as part of 1MA3 this year.
I would like to thank the undergrads who developed the apps for this: Wenqiang Chen, Adrian Dominico, David Elsonbaty, and Rhett Amin, and I'm sure they would like to thank Curtis D'Alves for all his help, and all of the Outreach volunteers who laid the foundation for these experiments, and provided their feedback on the apps.
What this means to you, is that you get to be the first people to benefit from these apps, and you will get to see an experiment from the other end of the microscope.
You will also get a bonus just for showing up, even if you do not opt in to the experiment. Details of how this will work, including how your information, including whether you choose to participate will be posted on Avenue.
Labs and tutorials start September 10th. Labs and tutorials will cover the same material, and it is important that you are registered in, and attend,
a tutorial before a lab if you want to see material in the right order. If you have a laptop you plan to use for homework, we will have drop-in sessions in the drop-in centre where you can get help installing the (free) software you
will need.
If you want to get started, try installing the Haskell Platform, following the instructions for your operating system.
We will be mixing up presentation styles, including slides, discussions, problem solving in small and large groups, and even games whose connection to the course will be deliberately obscure.
If you have a conflict with any part of the course, or have your lab before your tutorial, please try to get it changed, and if that is not possible, talk to the instructor or a TA, and we will figure something out.
Calendar Description
A first course in computer science, focusing on the practice of problem solving, in the context of interesting software applications. Problem formulation, problem decomposition, procedural formulation of problem solution.
Anti-Objective
This is not a course about learning to use specific software or programming languages. You will have to learn some aspects of the language Haskell, but the topics have been chosen for their relevance to problem solving, not to getting a job programming Haskell.
Course Objective
This is a course for people who want to know what Computer Science is about,
either for general interest, or because they plan to do a degree or minor in CS.
No previous experience is required, but some problems will be structured in such a way that more experienced students will be able to learn something by peeking inside.
Textbook
Haskell: the Craft of Functional Programming, Simon Thompson. (Third edition recommended, but any edition will be ok.)
Instructor
Christopher Anand, ITB-213, x24895. anandc (circled a) (name of university) (country). I will be available for at least half an hour after class in the Atrium (on the north/Tim Horton side of the building). If that does not work, we can find another time via Avenue or email.
Lectures: MDCL/1105, 2:30, Tues, Thurs, Fri.
Labs/Tutorials: BSB/249, check your schedule, but it will be Monday or Tuesday.
TAs
Kevin Browne (grad TA, see Avenue for contact info, including ETB drop-in centre schedule)
Ashton Rankin (see Avenue for contact info, including ETB drop-in centre schedule)
Curtis D'Alves (see Avenue for contact info, including ETB drop-in centre schedule)
Wenqiang Chen (see Avenue for contact info, including ETB drop-in centre schedule)
Schedule and Evaluation
Contact Kevin or Dr Anand if you get sick or have another conflict with any exam or assignment.
Topics
Last year we didn't get to finish all the topics we wanted to,
so I am dropping a few, but I hope we will get to see a few more examples.
Remember, though, that with a few exceptions, the examples do not matter.
We are trying to teach you the basic process of problem solving with computers,
and the ways we analyse both problems and solutions.
The basic idea is simple: how much information is there, and how many steps are there to go through.
The Divide and Conquer approach is a recipe to follow which almost gives you the solution.
We will work hard on really understanding this in the first half of the course.
In the second half, we will get a close-up view of how computers solve problems
translating your big problem-solving strategy down into a small set of simple operations which are repeated as often as we required (potentially trillions of times to make a picture)
and which, fortunately, happen real fast.
Whatever your program of study, I hope you will see connections with problems you will face.
But you are welcome to talk to me or Kevin during office hours about your reason for wanting to
know about computer science, and we may be able to turn it into a new example we use in class.
Last year, several students told me that they really appreciated this aspect of the course.
To be fair, I also had some upper-year students from other departments say 1MA3
was a lot of work for them, because it was so different.
But evidently it was worth the effort, because, in the end, they did very well on the final exam.
Haskell Resources
The focus of this course is on problem solving, not programming, but our experience is that it is very hard to know if you
are doing things right unless you either have a personal tutor sitting beside you at all times, or actually write functions
which you can test.
If you have a personal tutor, or, even better, a genie in a bottle, then you are all set.
Otherwise, we recommend trying Haskell on-line or setting it up on your computer so that you can test what you know:
Web-based interactive tutorial.
Haskell Platform, the best way to download a compiler.
Tutorials, News, etc.
Library Reference
Gloss picturing tools.
ACADEMIC INTEGRITY
You are expected to exhibit honesty and use ethical behaviour in all aspects of the learning
process. Academic credentials you earn are rooted in principles of honesty and academic
integrity.
Academic dishonesty is to knowingly act or fail to act in a way that results or could result in
unearned academic credit or advantage. This behaviour can result in serious consequences, e.g.
the grade of zero on an assignment, loss of credit with a notation on the transcript (notation
reads: "Grade of F assigned for academic dishonesty"), and/or suspension or expulsion from the
university.
It is your responsibility to understand what constitutes academic dishonesty. For information on
the various types of academic dishonesty please refer to the Academic Integrity Policy, located at
http://www.mcmaster.ca/academicintegrity.
The following illustrates only three forms of academic dishonesty:
1. Plagiarism, e.g. the submission of work that is not one's own or for which other
credit has been obtained.
2. Improper collaboration in group work.
3. Copying or using unauthorized aids in tests and examinations.
If in doubt, ask the instructor how this applies to your work.
TURNITIN.COM
In this course we reserve the right to use a web-based service (Turnitin.com) to reveal plagiarism.
Students will be expected to submit their work electronically to Turnitin.com and in hard copy so
that it can be checked for academic dishonesty. Students who do not wish to submit their work
to Turnitin.com must still submit a copy to the instructor. No penalty will be assigned to a
student who does not submit work to Turnitin.com. All submitted work is subject to normal
verification that standards of academic integrity have been upheld (e.g., on-line search, etc.). To
see the Turnitin.com Policy, please go to www.mcmaster.ca/academicintegrity
Personal Information
In this course we will be using subversion, email and other on-line discussion fora. Students should be aware that, when they access the electronic
components of this course, private information such as first and last names, user names for the
McMaster e-mail accounts, and program affiliation may become apparent to all other students in
the same course. The available information is dependent on the technology used. Continuation
in this course will be deemed consent to this disclosure. If you have any questions or concerns
about such disclosure please discuss this with the course instructor.
Possible Changes
The instructor and university reserve the right to modify elements of the
course during the term. The university may change the dates and deadlines
for any or all courses in extreme circumstances. If either type of
modification becomes necessary, reasonable notice and communication with the
students will be given with explanation and the opportunity to comment on
changes. It is the responsibility of the student to check their McMaster
email and course websites weekly during the term and to note any changes.xsxs