CS 1JC3: Introduction to Computational Thinking - Fall 2013
Outline
Announcements:
Tutorials start September 9th!!!!!!!!!!!
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
Inquiry into ideas and methods of computer science (CS), the science underlying our computational universe. Topics include what computers can and cannot do, the Internet and search engines, artificial i\
ntelligence, computer-controlled devices, and sustainability in computing.
Computers + Thinking = ?
Calendar Description
Inquiry into ideas and methods of computer science (CS), the science underlying our computational universe. Topics include what computers can and cannot do, the Internet and search engines, artificial intelligence, computer-controlled devices, and sustainability in computing.
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. anandc (circled a) (name of university) (country), ETB 111. I will be available for at least half an hour after MDCL classes 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: Mon 3:30 BSB Basement135, Tues 4:30 MDCL/1110, Thurs 3:30 MDCL/1110
Tutorials: BSB/249, check your schedule, but it will be Monday or Wednesday.
Drop-In Centre: ETB first-floor, open most of the time, specific hours to be announced on Avenue.
TAs
Margaree Peacock (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)
Chris Feher (see Avenue for contact info, including ETB drop-in centre schedule)
Micaela Estabillo (see Avenue for contact info, including ETB drop-in centre schedule)
Yuriy Toporovskyy (see Avenue for contact info, including ETB drop-in centre schedule)
Schedule and Evaluation
Contact Margaree or Dr Anand if you get sick or have another conflict with any exam or assignment.
(*) It is easy for first-year students to get behind without realizing it. For this reason, all assignments will be marked on the spot and you will be asked to explain aspects of your answers to make sure you understand them. We will also try to get the midterms back to you quickly.
Topics
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, which 1JC3 is replacing,
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