The design of algorithms is studied, according to methodology and application. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms. Analysis of algorithms is studied - worst case, average case, and amortized - with an emphasis on the close connection between the time complexity of an algorithm and the underlying data structures. NP-Completeness theory is examined along with methods of coping with intractability, such as approximation and probabilistic algorithms.
This course focuses on the fundamentals of computer algorithms, emphasizing methods useful in practice. Upon successful completion of this course, the student will be able to: explain and identify the importance of algorithms in modern computing systems and their place as a technology in the computing industry; indentify algorithms as a pseudo-code to solve some common problems; describe asymptotic notations for bounding algorithm running times from above and below; explain methods for solving recurrences useful in describing running times of recursive algorithms; explain the use of Master Theorem in describing running times of recursive algorithms; describe the divide-and-conquer recursive technique for solving a class of problems; describe sorting algorithms and their runtime complexity analysis; describe the dynamic programming technique for solving a class of problems; describe greedy algorithms and their applications; describe concepts in graph theory, graph-based algorithms, and their analysis; describe tree-based algorithms and their analysis; explain the classification of difficult computer science problems as belonging to P, NP, and NP-hard classes. (Computer Science 303)
This lesson plan creates a classroom database collecting information on books that students have read over a period of time determined by the teacher and/or students. By sorting and filtering, students evaluate the data and can later create other products from their findings.
In Counting on Art, students will explore the paintings of Horace Pippin and Wayne Thiebaud and the mobiles of Alexander Calder to discover and practice math and visual art concepts.In Pippin's Story, young children (grades K–3) focus on a painting by African American artist Horace Pippin. They will learn how to "read" the clues in a painting and write a story about the work. Students will also solve counting and time problems and create their own "secret number" painting.Calder's Balancing Acts focuses on math in the mobiles of Alexander Calder. Elementary- level students (grades 2–5) will learn about the artist and write equations based on Calder's art. Upper-level students (grades 6–8) will discover patterns and the Fibonacci sequence. Both levels will make their own math mobiles.Cake Math, based on a painting by California artist Wayne Thiebaud, features math challenges of many varieties. Elementary-level students (grades 2–5) will practice fractions, addition, subtraction, word problems, sorting, and classifying. Intermediate level students (grades 6–8) will find volume and surface area in Thiebaud's cakes.
The children will be involved in several different activities (graphing, sorting and classifying, patterning) rotating to each station during the lesson.
Foundations subject in modern software development techniques for engineering and information technology. Covers the design and development of component-based software (using C# and .NET); data structures and algorithms for modeling, analysis, and visualization; basic problem-solving techniques; web services; and the management and maintenance of software. Includes a treatment of topics such as sorting and searching algorithms; and numerical simulation techniques. Foundation for in-depth exploration of image processing, computational geometry, finite element methods, network methods and e-business applications.
This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
This course is a continuation of the first-semester course titled Introduction to Computer Science I. It will introduce the student to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. The student will begin with a comparison between Java--the programming language utilized last semester--and C++, another popular, industry-standard programming language. The student will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what they have learned learned last semester and familiarizing themselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced topics, including the Standard Template Library, Exceptions, Recursion, Searching and Sorting, and Template Classes. By the end of the class, the student will have a solid understanding of Java and C++ programming, as well as a familiarity with the major issues that programmers routinely address in a professional setting. Upon successful completion of this course, the student will be able to: Demonstrate an understanding of the concepts of Java and C++ and how they are used in Object-Oriented Programming; Demonstrate an understanding of the history and development of Object-Oriented Programming; Explain the importance of the C++ Standard Template Library and how basic components are used; Demonstrate a basic understanding of the importance of run-time analysis in programming; Demonstrate an understanding of important sorting and search routines in programming; Demonstrate an understanding of the generic usage of templates in programming for C++ and Java; Compare and contrast the features of Java and C++. (Computer Science 102; See also: Mathematics 303)
This course presents fundamental software development and computational methods for engineering and scientific applications. Object-oriented software design and development is the focus of the course. Weekly programming problems cover programming concepts, graphical user interfaces, numerical methods, data structures, sorting and searching, computer graphics and selected advanced topics. Emphasis is on developing techniques for solving problems in engineering, science, management, and planning. The Java programming language is used.
This course examines fundamental software development and computational methods for engineering, scientific and managerial applications. Emphasis is placed on object-oriented software design and development. Students engage in active learning using laptop computers (available on loan). Assignments cover programming concepts, graphical user interfaces, numerical methods, data structures, sorting and searching, computer graphics and selected advanced topics. The Java® programming language is used.
The students will have hands-on experiences with sorting pictures into groups according to the Social Sciences objective: The learner will apply basic economic concepts to home and school. This lesson will focus on distinguishing between wants and needs.
Sorting things into categories is the first step in understanding nature. To sort items, you need to carefully observe them. This often leads to new insights into nature.
Studies how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Models of randomized computation. Data structures: hash tables, and skip lists. Graph algorithms: minimum spanning trees, shortest paths, and minimum cuts. Geometric algorithms: convex hulls, linear programming in fixed or arbitrary dimension. Approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.
This course is a student-presented seminar in combinatorics, graph theory, and discrete mathematics in general. Instruction and practice in written and oral communication is emphasized, with participants reading and presenting papers from recent mathematics literature and writing a final paper in a related topic.
No restrictions on your remixing, redistributing, or making derivative works.
Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some
restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make
derivative works.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based
educators, or other custom arrangements. Go to the resource provider to see
their individual restrictions.