Syllabus

Basic Information

 Course: 
 MSAN 501 Computational Intensive
 Dates: 
 Wednesday, August 1, 2012 to Tuesday, August 7, 2012
 Times: 
 Weekdays 10:00am – 5:00pm
 Location: 
 USF Presidio Building

See the following sections for additional details.

Course Description

This course is part of the month-long intensive in three intensive "boot camps"  (computational, applied math, and economics), and the first course you take as part of the Masters in Analytics (MSAN) program. This course is meant as either a refresher or an intense introduction to the key programming background needed by entering MSAN students. The primary topics are programming with Python and R, and the use of databases. As this is a very short, intense week, students will alternate between lecture and lab. During the lab, students will implement or extend the material from the preceding lecture.

Course Location

USF Presidio Building

This course will be held at the USF Presidio Building, which is where all of the courses for the MSAN program will be held. The building is at the corner of Old Mason Street and Crissy Field Avenue, right across from Crissy Field. The official address is:

USF Presidio Building
920 Mason Street
Golden Gate National Recreation Area
San Francisco, CA 94129

See the map at http://goo.gl/maps/EhmGz for public transportation and parking options on the Presido campus. (See http://www.usfca.edu/directions/parking/ for parking and http://www.usfca.edu/directions/transportation/ for public transportation options to main campus.)

Students must bring their own personal laptops to class for the lab sessions.

Instructor

Professor Sophie Engle
sjengle@cs.usfca.edu

Office Hours:
USF Presidio Building
Weekdays 5:00pm – 6:00pm*
or by appointment

*These office hours are only valid for the duration of the course.

Suggested Reading

The following book is highly suggested for students unfamiliar with R:

Art of R Programming
by Norman Matloff
Publisher: No Starch Press
ISBN: 1593273843

It is currently freely available through USF and Safari Books Online for students. (The availability of these online books changes over time.) If you like the book, you can also get a print or ebook version from Amazon or directly from the publisher.

Additional suggested reading resources will be posted on the Resources page.

Learning Outcomes

After successful completion of this course, students will be able to perform the following:

  • Create basic programs in both Python and R using functions and control structures.
  • Load data files and perform simple filtering and processing operations on data in both Python and R.
  • Use data structures such as lists, dictionaries, and classes in Python.
  • Use data structures such as vectors, matrices, lists, and data frames in R.
  • Create relational tables using SQL.
  • Understand basic SQL statements, including INSERT, UPDATE, DELETE, SELECT, and different types of JOIN operations.

    Lecture Topics

    The following are the approximate set of topics that will be covered each day. Please keep in mind this list may change at any time. Check the website for the exact topics covered each day.

    Day 1 – Python Programming, Part 1

    • Expressions, statements, and variables
    • Variables and functions
    • Conditionals and iteration
    • Strings and indexing

    Day 2 - Python Programming, Part 2

    • Lists and list comprehension
    • Tuples and mutability
    • Dictionaries

    Day 3 - Python Programming, Part 3

    • Exceptions and debugging
    • Reading and writing files
    • Classes, methods, and inheritance

    Day 4 - Databases and SQL

    • Introduction to relational databases
    • Basic SQL statements, including INSERT, UPDATE, DELETE, and SELECT
    • Different types of JOIN operations

    Day 5 - Introduction to R

    • Variables, functions, and control structures
    • Data types, including vectors, matrices, lists, and data frames
    • Reading and writing files
    • Filtering data

    Class Format

    This course will meet weekdays between 10:00am – 5:00pm and will start on time. We will alternate between lecture and labs, both which will occur in the same room. A lab session is NOT a break! Students that are familiar with the material are encouraged to help others during the lab sessions.

    Students must bring their own personal laptops to class for the lab sessions.

    Attendance is mandatory, except in cases of verifiable medical emergency (e.g. an ER visit with accompanying documentation). An unexcused absence will result in a FAIL grade for the course.

    Assignments

    Labs are designed to be interactive. When stuck, students should feel free to ask the instructor or other students for help. During lab, there will be a mix of interactive quizzes and programming homework assigned. Any assignments that are not completed during lab are due at 11:59pm the same day. Late assignments will not be accepted.

    There will also be a single project assigned on Friday, which will be due the following Monday. The project must be done individually, but students may use the mailing list or email the instructor for help if stuck. 

    Grading

    Grading is based upon the successful completion of the course labs and project. The course is graded on a PASS/FAIL basis. Students must receive a PASS in the boot camp to continue in the MSAN program. 

    Your grade will be calculated according to the following scale:

    50% Programming Homework
    30% Interactive Quizzes
    20% Final Project

    To receive a PASS in this course, students must attend all lectures and labs (except in cases of verifiable medical emergency) and receive a 75% overall grade. To do well in the boot camp, students should attend and engage in all lectures and labs, and ask for help if confused or stuck. Communication will be key to doing well.

    Missing class, falling below a 75% overall grade, or cheating on assignments will result in a FAIL grade for the course. All students are expected to uphold the Academic Honor Code (pdf), available in the Fogcutter Student Handbook.