Slidespace

Sign-In

Course

Saved

ECE141a: Software Foundations

Sign-up for Slidespace now!

In order to access this course, you must first be a registered user of Slidespace. It takes less than a minute.

Sign-Up

Description

This course is about the structures, algorithms, design principles, relationships, and patterns that comprise the stories we tell about our software. Software design is meant to be abstract, distinct and separate from architectures that bind our designs to specific implementation details.

Lectures

  1. Introduction
    Welcome, syllabus, and some preliminary topics.
    lecture
    reading
    video
  2. A whirlwind tour of C++, P1
    Most of you will have already seen this material in another class.  However, we'll do a quick (two lecture) review of the core C++ language to make… sure… we'll all up to speed.
    lecture
    assignment
    video
  3. A whirlwind tour of C++, P2
    In this lecture, we're going to finish up our introduction to C++ material, and explore some of the built-in classes (strings and… streams).
    lecture
    video
  4. Communication Patterns

    Learning to get our objects to communicate effectively

    lecture
  5. Introduction to design patterns
    The first step toward becoming an effective software designer is a clear understanding of the generally accepted design principles. There's no… better… place to start that with design patterns.
    lecture
  6. Creational Patterns
    We'll begin our discussion of design patterns by exploring some of the creational patterns.
    lecture
    reading
    video
  7. Structural Patterns
    Basic techniques to organize objects
    lecture
  8. It's all a Game!
    Let's discuss our final assignment
    lecture
  9. More Behavioral Patterns
    Making objects work together, better
    lecture
  10. Control Patterns
    In this presentation, we're going to talk about ways to simplify our code, and begin the discussion of how we can make our… objects… work more…… expressively, and effectively.
    lecture
  11. Design Studio, Part 1
    We've been discussing patterns, anti-patterns, and the process of converting stories into scenarios, and scenarios into code. Let's… put… our new skills to… work.
    lecture
  12. Threading
    Multi-tasking is much easier in C++ these days
    lecture
  13. Diagramming
    Telling stories really counts in software design. Capturing ideas with diagrams is one of the most common ways we share… high-level ideas.  Let's examine some of the popular techniques.
    lecture
  14. Mid-term week: Anti-patterns
    Anti-patterns are patterns that we commonly find in code, that we should try to avoid. We'll discuss some common anti-patterns, and how to avoid them.
    lecture
    assignment
    video
  15. Where to go from here...
    Continuing on our journey
    lecture
  16. What's next, and final thoughts

    Getting ready for ECE141b

    lecture
  17. Behavioral Patterns
    In this lecture, we're going to begin our review of behavioral patterns – which describe ways that objects behave, organize, and……… communicate.  These… are concepts you'll… rely on again and again to design more flexible solutions.
    lecture
    video
  18. Digging into the debugger
    Learning to properly use your debugger is a valuable skill when debugging software.  Before we dive headlong into… software… design topics, we'll go… over debugger  basics.
    lecture
  19. Testing and Validation
    This lecture will discuss a number of concepts related to software design and quality. This is essential material for… helping students… improve their… software design skills.
    lecture
    assignment
    reading
    test
  20. Design Studio, Part 2
    Let's get our class fully functional
    lecture
  21. Werfen Research Discussion

    Short description of MAS of CoSE, Slidespace (SRL)

    lecture
  22. ECE141a Final
    Good luck to everyone!
    lecture