en47 - exploring computer science

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

announcements

Labs moved to Halligan 116 (posted 09/11)
Thursday labs will now be held in Halligan 116 (still 3:00-4:15pm)

en47 Mailing list (posted 09/08)
Please subscribe online at: https://www.eecs.tufts.edu/mailman/listinfo/en47 or by sending an email to en47-join (at) cs.tufts.edu
You will then be able to email the list at: en47 (at) cs.tufts.edu

Update lecture/lab days and locations (posted 09/04)
Starting on September 9, lectures will take place on Tuesdays 3:00-4:15pm in Halligan 106, Labs will take place on Thursdays 3:00-4:15pm in Halligan 118.

course description

content

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.

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

Homeworks will be assigned but not graded.

quizzes

There will be a total of 4 quizzes. The lowest grade will be dropped. Missed quizzes will not be re-taken.

labs

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.

exams

No exams!

attendance

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.

grading

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.

class conduct

collaboration and academic integrity

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.

acknowledgements

This course makes extensive use of material developed (and graciously provided) by Soha Assoun.

fall 2008 schedule

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

Lab 6 - Thursday October 16:
Bubble sort and linear search

October 14:
Last Date for AS&E students to make up incomplete grades from Spring 2008

Lecture 8 - Tuesday October 21:
Recursion

Lab 7 - Thursday October 23:
Merge sort and binary search

Lecture 9 - Tuesday October 28:
Classes, revisiting merge sort and computing the convex hull

Lab 8 - Thursday October 30:
Project

Lecture 10 - Tuesday November 4:
Project - Points inside a convex hull

Lecture 10 - Thursday November 6:

21 - Tuesday November 11:
Veteran's Day - no class

November 12:
Last date for undergraduate first years to drop courses without record of enrollment

Lab 9 - Thursday November 13:
Project

Lecture 11 - Tuesday November 18:
Project

Lab 10 - Thursday November 20:
Project

Lecture 12 - Tuesday November 25:
Project

26 - Thursday November 27:
Thanksgiving - no class

Lecture 13 - Tuesday December 2:
Project presentations

Lab 11 - Thursday December 4:
Project demonstrations

December 8:
Classes end
Last day for AS&E undergraduates to withdraw from courses and receive a grade of W

lecture slides

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
Lecture 8: Recursion

lab notes and assignments

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

resources

Names of things (e.g. functions, variables, constants)

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.'
arjf © 2008