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 = ?

  • What is Computational Thinking?
  • Condors???
  • ...revolutionary impact on scientific research and discovery...
  • 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

  • 30 - 3 midterms during class time (Sept 26, Oct 24, Nov 14)
  • 10 - lab short assignments (*)
  • 10 - drop-in centre assignments (*)
  • 5 - avenue quiz completion by (whether answers are correct or rongw) (*)
  • 5 - surprize quizes in class or lab
  • 5 - group presentations in tutorial (one of Gamification, Big Data, Human Brain versus Silicon Brain)
  • 5 - pair gloss competition
  • 30 - final exam
  • ? - bonus problems, as requried to keep trouble makers quiet
  • 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.

  • Problem Solving Strategies
  • Divide and Conquer
  • Tower of Hanoi - defining a language to capture
  • Searching in a list
  • Sorting a list
  • Calculating Derivatives
  • Greedy
  • Finding Shortest Paths
  • Artificial Intelligence
  • the good (support vector machines, optimization)
  • the bad (expert systems)
  • the ugly (neural networks)
  • Modelling the Natural World
  • weather
  • predators and prey
  • epidemics
  • Creating a Better World
  • digital image and sound
  • ray tracing
  • Gloss
  • Gamification
  • Big Data
  • Us and Them
  • How a computer works (architecture of a Central Processing Unit)
  • How a brain works
  • Translating an idea into a computer program
  • what is the problem?
  • design a solution
  • program it
  • compile it
  • 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