Building on Fundamentals of Web Programming, this hands-on minicourse will teach the basics of data structures and data analytics. During this course, you will build systems for managing, manipulating, and analyzing data. By the end of the course you will be able to reason effectively about designs for and potential capabilities of databases and data analytic applications. The prerequisite for this course is Fundamentals of Web Programming (FWP) or knowledge of Javascript programming.
There will be about 40 hours of work writing code outside of class.
Hany Farid is a tenured professor in the Computer Science department, and the recipient of an NSF CAREER award, a Sloan Fellowship, and a Guggenheim Fellowship, for his research in image analysis and computer vision. Farid has been teaching introductory computer science at Dartmouth for the past decade.
Devin Balkcom is a tenured professor in the Computer Science department, and the recipient of an NSF CAREER award for his research work in robotics. Balkcom developed the current version of Dartmouth CS 1 in 2011, and also teaches intermediate software design and senior software projects courses. Recently, Balkcom and Professor Tom Cormen developed the algorithms tutorials for Khan Academy.
Farid office hours: by appointment, Sudikoff 159
Angela.Zhu.17
Office hours:
Location: 101H (Feldberg Conference Room).
We will use Piazza, an online collaborative help forum. Please sign up for Piazza through Canvas and respond to the post titled Introductions.
Assignments will be scored on a 20-point scale, but the default score for satisfactory work will be 10 points, reflecting satisfactory work that accomplishes the main objectives of the assignment. A score of 11, 12, or 13 might be awarded for work that is particularly impressive, and goes far beyond the stated basic requirements. We will typically suggest a few challenge questions or ways to extend the assignment, and you may simply extend the assignment in a way that you find interesting. Style and design of your code will be a significant factor in assignment grades. Scores below 10 reflect work that does not meet the objectives of the assignment completely.
All programming will be done in the web-based development environment Cloud 9. Start with our tutorial for setting up Cloud9.
We will use Google Chrome; please download a recent version, and use it for all web browsing and development in this course.
Honor Code: You may work on short programming assignments individually or in groups. Programs that you turn in, however, should be created, typed, documented, and output generated, yourself. For the programming assignments, you may consult freely with instructors and classmates during the phase of designing solutions, but you should then work individually when creating your programs—typing, documenting, and generating output.
During the debugging stage you may discuss your problems with others in the class, but you should not copy code to fix bugs. To do otherwise is a violation of the Academic Honor Principle. If you work with a classmate on any assignment, you should tell us who you worked with in a comment at the beginning of your program.