COMS 3101: Programming Languages (MATLAB)
Fall 2013
General Information |
Introduction |
Requirements |
Lectures |
Homework |
Final Project |
Grading
General Information
- Instructor: Ilia Vovsha (iv2121 at columbia dot edu)
- Office Hours: Fri 1:00-2:00pm (TA room, Mudd 122A),
Mon 3:00-4:00pm (email to notify) (9/9 - 10/21).
- Lecture: Monday 4:10-6:00pm (9/9 - 10/14).
- Classroom: 224 Pupin Laboratories
- TA: Amit Singh (as4483 at columbia dot edu)
- TA Office Hours: Wed 3:00-5:00pm (TA room, Mudd 122A)
Introduction
Course Description:
MATLAB is a high-level language and interactive environment that allows one to solve
science/engineering problems quickly using built-in functionality.
MATLAB is typically used to perform the following tasks:
- Various mathematical operations, e.g. matrix and vector multiplication.
- Data manipulation and analysis.
- Plotting and visualization.
- Complex mathematical functionality, e.g. optimization.
- Implementing prototypes of algorithms and models.
The goal of this class is to introduce the basic language features and functionality,
and demonstrate how various tasks can be performed efficiently. Only rudimentary
programming experience and mathematical background is required. If you
are an experienced C/C++/Java user, this class is probably too basic for you.
Recommended Text:
Duane Hanselman and Bruce Littlefield, Mastering MATLAB 7, Prentice Hall. ISBN: 0131430181.
The book is available in the library, and the MATLAB documention is quite satisfactory on its own.
But it is a reasonable reference, if you need one.
A more comprehensive (& costly) reference is Mastering MATLAB by the same authors.
Useful Links:
Requirements
- Access to MATLAB (version 7 or higher).
The Cunix machine (cunix.cc.columbia.edu) has MATLAB installed.
To access the machine type 'ssh your_uni@cunix.cc.columbia.edu'
at your terminal/shell/telnet and enter your UNI password.
Alternatively, there are
computer labs on campus where you can use your
CS account to access MATLAB, or you can get a student copy
at no cost under the Engineering School's site licence
here.
- Access to
courseworks for homework and grades.
- No textbook is required, but you are encouraged to consult the references
mentioned above.
- Basic understanding of linear algebra, and some programming experience
is useful, but not required.
Lectures
This is a rough (ordered) list of topics that will be covered in this class:
- Basic functionality (workspace, variables, errors, generic commands).
- Scripts, simple functions.
- Arrays (vectors, matrices).
- Control flow, operators.
- File input/output.
- Cell arrays, character strings.
- Advanced functions.
- Basic plotting.
- Advanced plotting.
- Debugging, time and profile commands.
- Optimization toolbox.
Lecture slides:
Homework
Instructions:
- Due at the beginning of class, 50% penalty if late. You are allowed
to submit ONE homework late (before the next HW is due).
- Place your code and any additional files into a folder, and name it
'youruni_hw#' (e.g. iv2121_hw1).
- Upload the zipped folder to courseworks before the due date (4:00pm on Monday).
- Bring a printout of your code to class.
Problem Sets:
Solutions:
- HW1:   hw1, ehw1b,
ehw1c
- HW2:   hw2a, hw2b,
hw2c
- EHW2:   ehw2b, ehw2c
- HW3:   hw3a, hw3b,
hw3c
- EHW3:   ehw3b, ssort
- HW4:   hw4a, hw4b,
hw4c
- EHW4:   bwt2
Final Project
Instructions:
- The project has two parts. Part 1 (write-up) is due October 14th, 4:10pm (last class).
Part 2 (implementation, updated write-up) is due by October 21st, 11:59pm.
- Late submissions (write-up or implementation) will not be accepted. No exceptions.
- Place your code and any additional files into a folder, and name it
'youruni_project' (e.g. iv2121_project).
- Upload the zipped folder to courseworks before the due date.
- Bring a printout of your write-up to class.
- You will receive an email with your grade and comments. If you submit your project early,
it will be graded earlier.
Project description: project
Grading
Homeworks: (4 x 15% = 60% of grade)
Project: (40% of grade)
Grading Policy: Homeworks are due on Mondays by 4:00pm. Late submissions
will be penalized by 50%. Late projects will not be accepted.