15-110

Principles of Computing


Course Description

This is a brand new course! The old 15-110 was an introduction to programming in Java for students who have no prior programming experience.  The new couse uses Python but is not just a programming couse. It is primarily a course on computational thinking that uses Python. This course is about abstractions (mental models) and automation of those abstractions (using computers to solve problems). We will discuss efficiency and correctness. Student will write programs and learn about simplicity, usability, modifiability, and maintianability.

This course serves as a pre-requisite for 15-121, 15-122, and 15-251.


Environment

The course uses computers running Mac OS, Linux, and PCs running Windows (XP, Vista, Winodws7).

If you are planning to use your own computer (desktop or laptop) you need to download and install the following:


Text

The recommended textbook is Exploring Python by T. Budd (Mc Graw Hill, ISBN: 978-0-07-352337-8 ).


Class Structure

15-110 meets three times a week: Tue & Thus (lectures) for 70 minutes and Fridays (recitations) for 50 minutes.  Attendance to lectures and recitations is mandatory  Each student will have a computer to use during recitation time. Quizzes and exams may be written or on-line. The quizzes, labs, and exams will be worth 80% of your final grade.

The dates for the quizzes will be announced during lectures and will NOT be posted on the website for the class!


Final Exam

At the end of the semester, every student will take a closed-book, closed-notes, written final exam. The final exam is worth 20% of your final grade. The exam will be given during the week of final exams in December. Sample exam questions and the questions to be used will be ditributed later on during the semester.


Labs and Exams Submission

Labs and Exams will be submitted electronically. The method used to submit assignments will be demonstrated during the first week of class. Although you may work in small groups, each student must submit his/her own program and the code may not be a copy of others’ code.  You may share ideas and help – but you must write your own code and your assignment MUST be SUBSTANTIALLY different from all others.