DOC PREVIEW
SJSU CS 146 - Syllabus

This preview shows page 1-2 out of 7 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

2003Spring CS 146 DataStructuresand AlgorithmsStudy Guide2003 Spring CS 146 Green sheetPrerequisites: CS 46A and 46B. Calculus II (Math 031) and Discrete Mathematics (Math 042). A full chart for all SJSU CS courses can be found hereProgramming Language: Mastery of Java equivalent to the material in Professor Cay Horstmann’s Computing Concepts with Java Essentials, now in its third edition.(7) Extra Credit2003Spring CS 146 DataStructuresand Algorithms Study GuideProf. Sin-Min LeeTechnical skill is mastery of complexity while creativity is mastery of simplicity. --------------- - Christopher E. Zeeman What we want is to see the student in pursuit of knowledge, and not knowledge in pursuitof the student. ---------------------George Bernard Shaw Teach the young people how to think, not what to think. --------------------- Sidney Sugarman "You have a point there," said Trurl, "We will have to figure some way around that......The main thing, however, is the algorithm.""Any child knows that! What's a beast without an algorithm?"Stanislaw Lem, The Cyberiad2003 Spring CS 146 Green sheetCourse Title: Data structures and Algorithm Design Credits: 3 Instructor: Prof. Sin-Min Lee Office: MH317 Tel. No.: 9245133Office hours: My office hours are Monday 10:20-11:30 am Wednesday 9:00-9:30am, 10:30-11:30am, 3:15-4:15pm Friday 10:20-11:30am I am also available by appointment. I will have extra office hours before each exam.Email: [email protected] E-mailing is a more efficient way of contacting me outside of office hoursCourse Description: Introduction to the design and analysis of algorithms. Asymptotic analysis of timecomplexity. Efficient algorithms for sorting, searching, and selection. Algorithm analysis: worst andaverage case analysis. Recurrences and asymptotics. Data structures: balanced trees, heaps, hashes, etc.Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms. Algorithmsfor fundamental graph problems, e.g., depth-first search, breadth-first search, topological sort, shortestpaths. Textbook: Mark Allen Weiss, Data Structures and algorithm analysis in Java, AddisonWesley, 1999.Reference books: 1. Sara Baase and Allen Van Gelder, Computer Algorithms, 3rd edition, Addison Wesley, 1999.2. Berman, Data Structures via C++ ---Objects by evolution, Oxford, 1997.3. Budd, Data structures in C++ using the standard template library, Addison Wesley 1998.4. Cormen (ed.), Leiserson, Rivest and Stein, Introduction to Algorithms, 2nd edition, MIT Press, 2001.5. Ford and Topp, Data Structures with C++, Prentice Hall, 1996 6. Goodrich, Michael T. and Roberto Tamassia. Data Structures and Algorithms in Java. J. Wiley & Sons. 7.Langsam, Augenstein and Tenenbaum,Data structures using C and C++,2nd edition, Prentice Hall, 1990.8. Main and Savitch, Data structures and other objects using C++, Addison Wesley, 1997.9. Main, Data Structures and Other Objects Using Java, 2nd edition, Addison Wesley, 2003.10. Sahni, Data Structures, Algorithms, and Applications in C++, McGraw-Hill ,199811. Naps, Thomas L. and Pothering, George J., Introduction to Data Structures and Algorithm Analysis withC++, West Publishing Company, 1995.12. Walls and Mirrors , Data Abstraction and Problem Solving - - Second Edition13. Mark Allen Weiss, Algorithms, Data Structures, and Problem Solving with C++, Addison-WesleyPublishing Company, 1996.14. Sedgewick, Algorithms in C++, Part 1-4 Fundamentals Data Structures, Sorting, Searching, Addison-Wesley, 3rd edition.1998.Prerequisites: CS 46A and 46B. Calculus II (Math 031) and Discrete Mathematics (Math 042). A full chart for all SJSU CS courses can be found hereProgramming Language: Mastery of Java equivalent to the material in Professor Cay Horstmann’s Computing Concepts with Java Essentials, now in its third edition.Needed Skills: Teachers and books provide information to students. We do the best job we know how toconvey this information; but you, the student, must learn the information and make it a part of yourknowledge. Your ability to do this depends on many things but two in particular: motivation and studyskills. The student is expected to be familiar with basic concepts of programming in Java and with a varietyof mathematical tools for modeling and analyzing discrete structures. In order to tackle these topics, youshould already be competent at programming in Java. You should feel confident in your ability to designand implement simple programs using arrays and functions. You should be familiar with someprogramming environment--either a PC or a Unix system. More specifically, the student should be familiarwith programming features such as variables, control flow, iteration, and recursion, and structures such asarrays, records, lists, queues, stacks, trees, and graphs. The student should have some rudimentaryunderstanding of time as a measure of program complexity, of basic ideas of program correctness. Thestudent should be familiar with mathematical areas such as college algebra, calculus includingdifferentiation and integration of basic functions; basic concepts of logic, set theory, and proof construction;counting techniques. Dropping Classes: Monday, February 10th last day to drop or withdraw without a “W” grade.Learning Outcomes: 1. The student will develop a knowledge of intermediate level algorithms and data structures and become proficient in programming advanced data structures The student will familiar with a number of classical algorithms and data structures that are used frequently in a variety of applications in computer science and mathematics. 2. Gain experience in making thoughtful programming decisions by examining tradeoffs between size,speed and coding styles. 3. Obtain an understanding of software engineering on an individual basis through planning, tracking and analyzing your software process. The more important objective is to learn a number of powerful general techniques that can be used to design and analyze your own algorithms4. The student will be expected to


View Full Document

SJSU CS 146 - Syllabus

Download Syllabus
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Syllabus and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Syllabus 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?