1 / 8

What is EECS 280 ?

What is EECS 280 ?. An Introduction to Programming and Introductory Data Structures at the University of Michigan. EECS 280 Manifesto. Mathematics , especially as used by physics, is the formalism we use to describe “what is” The physical world is modeled by equations.

tryna
Download Presentation

What is EECS 280 ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What is EECS 280? An Introduction to Programming and Introductory Data Structures at the University of Michigan

  2. EECS280 Manifesto • Mathematics, especially as used by physics, is the formalismwe use to describe “what is” • The physical world is modeled by equations. • Solutions to these equations give us insight into the world. • Classical mathematics, however, does not say anything about how these processes unfold. For that, we need something else… • Computer Science is the formalism we use to describe “how to” • The computer science world uses algorithms to do this. • Algorithm: An abstract sequence of actions composed to solve a problem. • Program: A concrete set of program statements which implement some algorithm.

  3. What EECS280 is about… • Procedural Abstraction: specification, invariants (dynamic) • Data Abstraction: specification, invariants (static) • Dynamic Resource Management • All this will be applied to programs that a single programmer might be expected to understand.

  4. Why EECS 280 is interesting… • Complexity is all around us, and resources are always limited. • Specification, invariants, abstraction, and dynamic resource management turn out to be surprisingly useful! • Programs are composed of pure “thought-stuff” that result in real, tangible products – it’s magic!

  5. Why EECS 280 isn’t about programming… • This course is more about computer science than computer programming in C++. • There are many dark corners of the language we will not even touch. However, we need some concrete platform in which to realize these ideas. • (Analogy) Designing/Implementing a program compared to building a house: • Given the right tools, anyone can build something simple. • However, you won’t be able to build anything complex unless you understand the core principles behind larger projects.

  6. Class Projects • Five projects covering the areas: • Basic selection/iteration • Recursion • Aggregate Types • Abstract Data Types, Interfaces, and Inheritance • Templated Container Classes

  7. Course Goals • Take a problem and consider various possible approaches for solving it • Select an approach—or algorithm—that provides for a simple, clean, well-structured solution • Convert an algorithm into C++ code, using good design and style • Test and debug a program using rigorous techniques

  8. Course Goals • Understand the concepts of top-down design, data encapsulation, information hiding, and procedural/data abstraction • Design, implement and use complete classes, including constructors, destructors, and operator overloading • Implement dynamic data structures for stacks, queues and lists • Be able to quickly design, implement, test and debug a large scale project independently (1000+ lines of code).

More Related