Prerequisites CS 20; CS 40 (or CS 26); CS 60 (or CS 22); and CS 130A.
Admission Undergraduate Non-CS Majors (except EE & CE & Creative Studies (CS emphasis) who meet the prerequisite (CMPSC 130A)) must PETITION through the CS Department to register in CS 130B. This course is not open to CS Pre-Majors. You could receive an automatic F if you are supposed to petition to enroll in CS 130B, but did not petition. Note: Petitions to register in this course by CS Pre-Majors are always denied.
* * * * * * Please send a one line e-mail message to sgk@cs.ucsb.edu . * * * * * * The one line should list in the following order your name, permanent number, and userid followed by @cs (or if you do not have a CS account, send me your complete e-mail address). We will use this address to e-mail you information about the course and your grades. SEND THIS INFO BY THUR APRIL 1st.Assignments There will be two written homeworks and two programming assignments.Turn in all your written assignments at the 130B Turnin Box located in 2108 Engineering I. The written assignments will be due on (Thurs) April 15th and (Tues) May 18th.
The Programming assignments will be due on Thursday April 22 and Tuesday June 1. To turn in your program use the TURNIN, instructions for which are available on the course web page. Use the command turnin prog1@cs130b LIST for porgramming project 1, where LIST is the list of all your files, i.e., your makefile, all your .C and .H files. W For project 2, use the commans turnin prog2@cs130b LIST. In addition, you must submit a listing of your program, and any plots or sample input/output using the dropbox for CS 130B. The code for the Programming Assignment must compile and execute on the machines in the CSIL Lab. The code must be in G++ or C++. JAVA IS NOT ALLOWED. JAVA IS NOT ALLOWED. JAVA IS NOT ALLOWED. In the past, students have used C++ on their PCs, and then transfer their code to the CSIL machines. This process is acceptable, however, it is your responsibility to ensure that the code works flawlessly on CSIL machines. So make sure that you leave some time to debug your code on the CSIL PCs, even if the program works correctly on your home PC. No LATE assignments (homeworks or labs) will be accepted. Please turn in whatever you are able to finish by the due date.
Exams There will be two exams, one on April 29, and one on May 27. (There will be NO final exam.) Both the exams are closed book and notes. However you are allowed to bring one 8.5" by 11" page (you may write on both sides) with notes to the examinations. The exams will be based on all the material covered up to the day of the exam in the lectures and discussion sessions. There will be no makeup exams. There will be no makeup exams. There will be no makeup exams. In the past 25 years there have been very few exceptions to this rule.Campus Learning Assistance Service: 893-3269. CLAS helps students increase their mastery of course material through course-specific tutoring and academic skills development. Check out their tutorial groups and drop-in tutoring schedules posted on their web site: www.clas.ucsb.edu. Sign up for services at their main office, Building 477 9-5 daily.
Counseling & Career Services: (893-4411, www.counseling.ucsb.edu) offers counseling for personal & career concerns, self-help information and connections to off-campus mental health resources.
Disabled Students Program: 893-2668; www.sa.ucsb.edu/dsp DSP provides academic support services to eligible students with temporary and permanent disabilities. Please inform (Prof. Suri) if you require special classroom accommodations due to a disability. You must register with DSP prior to receiving these accommodations.
Grading Policy The weights for the assignments and exams are given below.
Assignment/Exam
2 Written Assignments
2 Programming Projects
2 Exams
TotalPoints
200
200
600
1000Notes
( 100 each )
( 100 each )
( 300 each )
There will be no incompletes, there will be no incompletes, there will be no incompletes, and there will be no incompletes. The Statue of Limitations for any grading is 8 days or the day of the final exam (whichever comes first). I.e., if there is an error in the grading, it must be settled within 8 days of the time the assignment or exam was returned and before the final exam. If you have any questions about the grading, see the TAs (I will provide you with his office hours later on). If you cannot reach an agreement, please see the instructor. Only letter grades will be given, i.e., A+, A, A-, B+, B, B-, C+, C, C-, D+, D, D-, F+, F and F-. If we can prove that two or more students solved together an assignment or part of an assignment, the case will be reported to the appropriate administration officials. You are allowed to study in groups and you may discuss the homeworks problems with other people in order to fully understand the problems you are being asked to solve in the homeworks; however, you may not SOLVE the assignment or any part of the assignment or the exams in groups, and you may not ask anyone how to solve any particular problem or subproblem in a homework assignments. If we can prove that two or more students solved together an assignment (exam or project) or part of an assignment (exam or project), the case will be reported to the appropriate administration officials. -->
Introduction Analysis of algorithms: correctness, time and space Solving Recurrences. Designing Efficient Algorithms Greedy Algorithms (Coin changing, Activity Selection, Huffman Coding, Shortest Paths, Min Spanning Trees). [4-5 lectures] Divide and Conquer (Multiplying Long Numbers, Strassen's Matrix Multiplication, Quicksort Algorithm, Selection, Convex Hulls) [4-5 lectures] Dynamic Programming (Matrix Chain Product, Longest Common Subsequence, Knapsack, Optimal triangulation) (4-5 lectures] Misc. (various topics depending on remaining time)
[CLR] Corman, T., Leiserson, C. E., and Rivest, R. L., "Introduction to Algorithms," McGraw Hill, 1990. QA76.6 / .C662 / 1990
[HS] Horowitz, E., Sahni, S. , and Rajasekaran, S., "Fundamental of Computer Algorithms in C++," Computer Science Press, (1997).
[KR] Kernigham, B. W. and D. Ritchie, "The C Programming Language," Prentice Hall, 1978. QA 76.73 / C15 / K47
[S] Sedgewick, R. "Algorithms," Addison-Wesley 1983.
[Sa] Sahni, S., "Data Structures, Algorithms and Applications in C++," WCB McGraw-Hill, 1998 (TEXTBOOK).
[St] Stroustrup, B., "The C++ Programming Language, 2nd Edition," Addison-Wesley, Menlo Park, CA (1991). (QA76 / 73 / C15 S79)
[K] Knuth, D. E., "Sorting and Searching: The Art of Computer Programming," Addison-Wesley, Menlo Park, CA (1973). QA 76.6 / K64 / v.3