Lecture and section information
CS 4220/CS 5223/MATH 4260, Spring 2015
Lecture time: MWF 2:30-3:20
Lecture location: Gates G01
Staff and office hours
Prof: David Bindel
425 Gates Hall
TA: Brandon Benton
4 credits. Introduction to the fundamentals of numerical linear algebra: direct and iterative methods for linear systems, eigenvalue problems, singular value decomposition. In the second half of the course, the above are used to build iterative methods for nonlinear systems and for multivariate optimization. Strong emphasis is placed on understanding the advantages, disadvantages, and limits of applicability for all the covered techniques. Computer programming is required to test the theoretical concepts throughout the course.
Linear algebra at the level of MATH 2210 or 2940 or equivalent and a CS 1 course in any language. We will assume you remember your calculus and can pick up MATLAB. Recommended but not essential: one additional mathematics course numbered 3000 or above. This course can be taken before or after CS 4210/MATH 4250.
We will cover roughly chapters 1-9.
Some linear algebra references:
- Meyer, Matrix Analysis and Applied Linear Algebra
- Lay, Linear Algebra and its Applications
- Strang, Linear Algebra and its Applications
- Strang’s excellent online course is here
Some MATLAB references:
- Moler, Numerical Computing with MATLAB
- Van Loan and Fan, Insight Through Computing: A Matlab Introduction to Computational Science and Engineering
- Pratap, Getting Started with MATLAB 7
- Gilat, MATLAB: An Introduction with Applications
- Hanselman and Littlefield, Mastering MATLAB7
- Or pick a favorite from the many available
Readings from the course text will be listed on the course page before class. You are responsible for reading before lecture.
There will usually be weekly homeworks, which are due in class on Monday. These problems will involve a mix of short answers, plots, and computations done in MATLAB. Homework should be typed and submitted as PDF files on CMS. After they are graded, homework scores will be posted to CMS. Regrade requests must be submitted within one week of receiving the graded homework.
Some weeks, instead of homework, there will be small programming projects in which you will apply the methods to practical problems. These projects may be done individually or in groups of two (encouraged). Projects will go through the following stages:
- Project released
- Initial submission by CMS
- Peer reviewers assigned
- Brief peer reviews submitted by CMS
- Final submission in response to reviews
Project grades will involve roughly 40% of the points for initial submission, 10% of the points for reviews, and 50% of points for the final submission. Reviews that are abusive or obviously incomplete will receive no credit.
Your implementations must be done in the MATLAB environment, and they must run on the machines in the CSUGlab.
There will be one midterm and one final exam:
- Midterm: Weds, Mar 4 (estimated)
- Final exam: Thurs, May 14 at 7:00 PM in Malott Hall 251
All three exams are closed book, but you may bring one letter-sized piece of paper with writing on both sides.
Your final grade in CS 3220 will be computed from grades on the assignments and exams using the following weights:
- Homework: 4% times 8 homeworks (lowest grade is dropped)
- Projects: 6% times 3 projects
- Midterm: 25%
- Final: 25%
Late work policy
Homework is due by 11:59 on the due date. Resubmissions up to the deadline are safe, but late submissions are not accepted. The lowest homework grade will be dropped in computing your final score.
Projects are due at 11:59 on the initial due date. Projects that are not submitted on time for peer review may still be submitted for the final deadline; however, they will receive a 10% grade penalty and will not receive the benefit of a review. Peer reviews and the final (post-review) version must be submitted on time.
An assignment is an academic document, like a journal article. When you turn it in, you are claiming everything in it is your original work, unless you cite a source for it.
You are welcome to discuss homework and projects among yourselves in general terms. However, you should not look at code or writeups from other students, or allow other students to see your code or writeup, even if the general solution was worked out together. Unless we explicitly allow it on an assignment, we will not credit code or writeups that are shared between students (or teams, in the case of projects).
If you get an idea from a classmate, the TA, a book or other published source, or elsewhere, please provide an appropriate citation. This is not only critical to maintaining academic integrity, but it is also an important way for you to give credit to those who have helped you out. When in doubt, cite! Code or writeups with appropriate citations will never be considered a violation of academic integrity in this class (though you will not receive credit for code or writeups that were shared when you should have done them yourself).
We expect academic integrity from everyone. School is stressful, and you may feel pressure from your coursework or other factors, but that is no reason for dishonesty! If you feel you can’t complete the work on the own, come talk to the professor, the TA, or your advisor, and we can help you figure out what to do.
For more information, see Cornell’s Code of Academic Integrity.
In the event of a major campus emergency, course requirements, deadlines, and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Any such announcements will be posted to the course home page.