EN47/COMP10-04 - Fall 2008
Lectures: T 3:00-4:15 - Halligan Hall 106
Labs: Th 3:00-4:15 - Halligan Hall 116
Instructor: Alexandre R.J. François
(alex@cs.tufts.edu)
Office: Halligan Hall E011
Office hours: T+Th 2:00-3:00pm
TA: Huy V. Ngu
E-mail: Huy.Ngu (at) tufts.edu
Office hours: M 3:00-4:00pm + T 2:00-3:00pm, by appointment only
Location: Halligan Hall 118 or 116
Note: starting with the Spring 2009 session, this course becomes EN47/COMP9 [description] [website]
Laura Costello presents Sudoku project at NEUCS (posted 4/18)
Laura Costello presented a poster titled Learning Programming and Teamwork with Sudoku at the First New England Undergraduate Computing Symposium on Saturday April 18, 2009.
[pdf]
This half-credit course is a fast-paced introduction to the basics of programming (C++ is the language of choice) and the basics of computer science for students with minimal or NO background in computer programming, except EN 1 or EN2 where applicable. The weekly programming assignments build upon previous ones, employ important computer science algorithms, and lead to the construction of a real-life application. We will use the Linux platform for all programming assignments.
Prerequisites: A sincere interest in learning about computer science. No prior programming experience is needed.
Optional textbook: "Starting Out with C++", 5th Edition (formerly "Alternate Version"), by Tony Gaddis, Judy Walters, and Godfrey Muganda. Published by Addison Wesley. ISBN 0-321-38348-6.
Homeworks will be assigned but not graded.
All lab assignments are expected to be completed by their due date. All assignments turned in more than one week after their due dates will receive a zero grade. If they are turned in within one week of their due date, they will be penalized at 10% per day. Failure to turn in ANY of the labs will result in an F in the class. All labs will be turned in electronically.
An individual or team term project will conclude the semester. Each student/team will design and implement a solution to a challenging computational problem, and present and demonstrate their work in the last week of class. Performance evaluation of the project component will include algorithm design, coding, documentation and presentation.
No exams!
Although classroom attendance is not mandatory, it is highly recommended. Please note that you are responsible for all material covered in class and lab. If you have to miss class, please check with the instructor, TA, or fellow students to figure out what you missed.
If you have an issue with the grade you received on your lab, please consult the TA. For quizzes, please consult the instructor.
100-90% = A, 90-80% = B, 80-70% = C, 70-60% = D, <60% = F.
Do:
Ask questions of the Professor and TA
Talk to other students about ideas and approaches
Get ideas from books and online sources
Always cite the source of the ideas you use in your assignments
Do not:
Share code with other students
Use ideas or code from other sources without referencing them
Presenting someone else's ideas or work as your own is a violation of academic integrity, is absolutely unacceptable, and may result in severe disciplinary action for all parties involved. See the Academic Integrity booklet from the Dean of Students' office.
This course makes extensive use of material developed (and graciously provided) by Soha Assoun.
Always in motion is the future. -- Yoda
Lab 0 - Tuesday September 2:
First contact, course overview
Lecture 1 - Thursday September 4:
Introduction
[pdf]
Lecture 2 - Tuesday September 9:
Problems, algorithms and programs
[pdf]
Lab 1 - Thursday September 11:
Getting started with Linux and Emacs [html]
Lecture 3 - Tuesday September 16:
Controling program flow: conditionals and iteration
[pdf]
September 16:
Last day for AS&E students to add classes
Lab 2 - Thursday September 18:
Areas of many gardens
[html]
Lab 1 due at 11:59pm
Lecture 4 - Tuesday September 23:
Functions and symbolic constants
[pdf]
Lab 3 - Thursday September 25:
Areas under line segments
[html]
Lab 2 due at 11:59pm
Lecture 5 - Tuesday September 30:
Variables and functions
[pdf]
Lab 4 - Thursday October 2:
Areas of irregularly-shaped quadrilaterals
[html]
Lab 3 due at 11:59pm
Lecture 6 - Tuesday October 7:
Arrays and data structures
[pdf]
October 7:
Last day for AS&E students (except first-year undergraduates) to drop courses without record of enrollment
Last day for all undergraduates (including first-years) to select pass/fail option
Lab 5 - Thursday October 9:
Area of an n-sided polygon
[html]
Lab 4 due at 11:59pm
Lecture 7 - Tuesday October 14:
Linear search and bubble sort
[pdf]
October 14:
Last Date for AS&E students to make up incomplete grades from Spring 2008
Lab 6 - Thursday October 16:
Bubble sort and linear search
[html]
Lab 5 due at 11:59pm
Lecture 8 - Tuesday October 21:
Recursion
[pdf]
Lab 7 - Thursday October 23:
Merge sort and binary search
[html]
Lab 6 due at 11:59pm
Lecture 9 - Tuesday October 28:
Review, project
[pdf]
Project - Thursday October 30:
Sudoku analysis and code setup
[html]
[pdf]
Lab 7 due at 11:59pm
Project - Tuesday November 4:
Project: Sudoku proofs, algorithms, project modules
[pdf]
Project - Thursday November 6:
Project: Proof algorithms, design, documentation
[html]
21 - Tuesday November 11:
Veteran's Day - no class
November 12:
Last date for undergraduate first years to drop courses without record of enrollment
Thursday November 13:
Tufts CS Seminar (2:50-4:00pm Halligan 111)
[announcement]
Project - Tuesday November 18:
Project checkpoint: specifications, algorithms, documentation
Project - Thursday November 20:
Coding, testing, documentation
[html]
Project - Tuesday November 25:
Project testing, documentation, presentation preparation
26 - Thursday November 27:
Thanksgiving - no class
Lecture 13 - Tuesday December 2:
Project presentations
Lab 11 - Thursday December 4:
Project demonstrations / course wrap-up
December 8:
Classes end
Last day for AS&E undergraduates to withdraw from courses and receive a grade of W
Lecture 1: Introduction
[pdf]
Lecture 2: Problems, Algorithms, Programs (and variables and types...)
[pdf]
Lecture 3: Controling program flow: conditionals and iteration
[pdf]
Lecture 4: Functions and symbolic constants
[pdf]
Lecture 5: Variables and functions
[pdf]
Lecture 6: Arrays and data structures
[pdf]
Lecture 7: Linear search and bubble sort
[pdf]
Lecture 8: Recursion
[pdf]
Lecture 9: Review, project
[pdf]
Lab 1: Getting started with Linux and Emacs [html]
Lab 2: Areas of many gardens
[html]
Lab 3: Areas under line segments
[html]
Lab 4: Areas of irregularly-shaped quadrilaterals
[html]
Lab 5: Area of an n-sided polygon
[html]
Lab 6: Bubble sort and linear search
[html]
Lab 7: Merge sort and binary search
[html]
TED: Ideas worth spreading [link]
For example:
birth of the computer,
videogames,
schools and creativity.
Excerpt from Through the Looking Glass (by Lewis Caroll), Chapter VIII:
`You are sad,' the Knight said in an anxious tone: `let me sing you a song to comfort you.'
`Is it very long?' Alice asked, for she had heard a good deal of poetry that day.
`It's long,' said the Knight, `but it's very, very beautiful. Everybody that hears me sing it -- either it brings the tears into their eyes, or else --'
`Or else what?' said Alice, for the Knight had made a sudden pause.
`Or else it doesn't, you know. The name of the song is called "Haddocks' Eyes".'
`Oh, that's the name of the song, is it?' Alice said, trying to feel interested.
`No, you don't understand,' the Knight said, looking a little vexed. `That's what the name is called. The name really is "The Aged Aged Man".'
`Then I ought to have said "That's what the song is called"?' Alice corrected herself.
`No, you oughtn't: that's quite another thing! The song is called "Ways and Means": but that's only what it's called, you know!'
`Well, what is the song, then?' said Alice, who was by this time completely bewildered.
`I was coming to that,' the Knight said. `The song really is "A-sitting On a Gate": and the tune's my own invention.'