CAS 1MA3: Computer Based Problem Solving - Fall 2011

Outline

Announcements:

No labs or tutorials until September 12th. 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, bring it to the first tutorial to learn how to install the (free) software you will need. If you want to get started, try installing the Haskell Platform. The first weeks in the tutorials and labs will focus on material from the book, and the lectures will focus on basic problem-solving strategies. The course is currently full, so if you are going to drop the course, please try to drop before the add deadline to give other students the chance to register.

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.

 

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 problems will be structured in such a way that more experienced students will be able to learn something by peeking inside.

 

Textbook

Programming Haskell, Graham Hutton. (Should be in the bookstore.)

Instructor

Christopher Anand, ITB-213, x24895. anandc (circled a) (name of university) (country). Make an appointment by email.

TAs

Jessica Pavlin, ITB-229, pavlinjl (circled a) (name of university) (country).
M Hossain (see Avenue for virtual office hours and contact info)
Curtis D'Alves (see Avenue for contact info, including drop-in times in Thode)


Schedule and Evaluation

  • 30 - 3 midterms in class (Sept 29,Oct 27,Nov 17)
  • 10 - lab work, including oral explanation of strategy and results to TAs and instructor
  • 10 - assignments
  • 10 - avenue quizes
  • 40 - final exam
  • Topics

    Since this is a revised version of the course, some of our plans for topics may change either because some topics take longer than expected, or because your feedback suggests that we change the emphasis of the topics.
  • Problem Solving Strategies
  • Divide and Conquer
  • Tower of Hanoi
  • River Crossing
  • Search
  • Sorting
  • Calculating Derivatives
  • Greedy
  • Finding Shortest Paths
  • Graph Colouring
  • Scheduling
  • Getting to the Bottom of Things (Newtons Method)
  • Binary Numbers and Exploding Rockets
  • The Mind of the Machine
  • Basic Operations
  • One Step at a Time
  • Drawing Pictures the Hard Way (using the machine's language)
  • Drawing Pictures the Easy Way (using an abstract language and translator)
  • Really fun picture drawing, using Gloss.
  • These topics will be interspersed with lectures and activities based on the textbook, Programming Haskell, of which we will cover the first 7 chapters, in order.

    Haskell Resources

    The focus of this course is on problem solving, not programming, but if you are thinking of continuing in Computer Science, learn better when things are more concret, or think you might like programming for itself, here are some resources to get you going:
  • 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