Home Brew Robotics Talk slides |

Housekeeping

  • Using my course materials as a place to write my presentation!
  • Yes, I will remove this before the class starts
  • Forgive typos!
  • Ok with me to record this
  • Happy to be interrupted with questions at any time

About Me

  • Computer Science B.S. from Brandeis University
  • Actually was pre-med but switched to computers early
  • Back in those days (80’s) getting a programming job wsa pretty easy

Worked

  • DEC (Digital)
  • long-forgotten-database-company “Software House” (before relational was a thing!)
  • Lotus Development (Jazz, Improv, Notes, ccMail)
  • Founded eRoom Technology
  • Consuted in tech strategy
  • Brandeis (around 10 years ago)

What I know and don’t know

  • “Software Engineer” not an academic
  • Although I’ve dabbled in research and have a handful of published papers
  • I’ve been a programmer for xx years! Many.
  • Age does change what you are good at and less good at

How I got into teaching

  • Around 2010 I was done with consulting
  • Always liked explaining
  • Had built up a massive knowledge base in my head
  • How to share it? Sure, become a college professor!
  • How hard can it be?
  • No PhD. In my 50’s.
  • Hard to break into academia

Brandeis

  • Multiple universities approached
  • Developed a few different ideas for courses
  • Initially co-taught a summer course. $0
  • Eventually full time “Professor of the Practice”
  • Yes, my alma mater but that was not the deciding factor
  • Brandeis, traditionally is a liberal arts college

Computer Science at Brandeis

  • My one data point so YMMV
  • I was actually in the very first Comp Sci cohort at Brandeis (1976)
  • Relatively small department, ~15 faculty
  • About 300-400 Computer Science majors at any moment in time
  • Traditionally it was focused more on theory and research
  • Lately bringing in more “applied” people but still a minority

Computer Science Curriculum

  • Courses offered this semester
  • Bretty broad coverage of the “basics” of computer science (a few gaps closed recently)
  • Very strong representation of AI, Machine Learning, Neural Nets, Computational Linguistics
  • Almost all the courses have a significant “programmning” component
  • Java, Python and then various other languages
  • Until the Robotics course there was no course that involved actual hardware

My Courses

  • It does vary depending on the semester
  • Electives
    • Software Entrepreneurship (this semesster)[http://cosi102r.s3-website-us-east-1.amazonaws.com]
    • Autonomous Robotics (this semester)[http://cosi119r.s3-website-us-west-2.amazonaws.com]
    • Software Engineering Capstone (last year)[http://cosi166r.s3-website-us-east-1.amazonaws.com]
    • Software Engineering for Scalability (last year)[http://cosi105b.s3-website-us-west-2.amazonaws.com]
  • Required Courses
    • Introduction to Java Programming
    • Operating Systems

Students

  • I teach both undergraduate and graduate students
  • There’s no rhyme or reason
  • Most of my courses are elective so I have to market them and make them engaging
  • Students are very intelligent and fearless
  • But, they focus far too much on grades and GPAs
  • They are willing to try whatever activity you invent
  • But of course they are inexperienced
  • You need to be careful about assuming what you would consider obvious or common sense
  • Also you are often the first one to tell them an oldie-but-goodie joke or war story

Classroom Facility

  • Classrooms come in all shapes and sizes
  • You have almost no control over what room or what time your class is going to be held
  • All classes have projectors and computer interfaces but also black boards (or white boards)
  • Problem is, can the board be seen from the back of the class?
  • Instructors can decide whether laptops are open or closed, whether attendance is taken, whether students can attend remotely.

Student expectations

  • You need to keep them “entertained”
  • Just like some of you are on your phones right now
  • They almost always are there because they want to learn
  • They have a lot of demands on their time
  • So they are always triaging their time
  • They want to know “why” they are being given an assignment or other

The genesis of the Robotics Course

  • I wanted to create something that would give students a taste of a real world large software project
  • Idea: Campus Rover
  • I thought it was a “solved” problem
  • As usual I didn’t know what I didn’t know (still don’t)
  • That might be a strength :)

The Robotics course in context

  • What is it like to be the only Robotics course
  • It too much to fit into one course
  • None of my students have any electronics engineering knowledge
  • Initially had no special budget for this
  • Used my tiny personal faculty budget
  • Initially a “special” independent study with 6 students

General: Designing a course

  • Brandeis gives us a lot of freedom
  • 13 Week semesters, either 3 50 minute or two 80 minute classes per week
  • Number of students expected will affect the design (scaling)
  • Assessment and grading can be fraught
  • Many alternative grading schemes are discussed (e.g. specifications grading)
  • how to design a course, learning objectives, homework assignments, assessment and grading

Pick your poison

  • Again, I didn’t realize how complicated ROS is
  • “It’s just another API, how hard can it be”?
  • Actually it’s taken years (as you know)
  • Started with RObotis TB3. An excellent choice
  • Still not 100% sure that ROS was the right choice
  • WHy ROS1 and not ROS2?

About the course

  • It had to be hands on
  • It had to use python
  • It has to work with relatively cheap robots
  • Initially built it around the chapters in the PRR book
  • After looking at every single book about ROS and Robots I could find
  • Brandeis has a subscription to all OReilly Publishing books

Building blocks

  • Learning objectices (“skills”)
  • Homework assignments
  • Grading rubrics
  • Schedule of lectures

ROS in practice

  • Running ROS is a nightmare
  • Most students are not running Linux
  • And their computers are in widely varying conditions
  • Usually the first weeks of the course were spent getting students running
  • Then we built our cluster

About the Cluster

  • Kubernetes - K3S
  • Docker Images
  • Two pods per student, one for Linux Desktop and one for VS Code
  • Docker Images
  • Setup created by an excellent TA a few years ago
  • I had to learn it!

About the lab

  • Safety
  • LIPO batteries
  • Capacity of the lab
  • Space is at a premium so I’ve been in many different spaces

About the “Branbot”

  • Large wheels: Wanted it to be able to go outside (remember original vision)
  • Cheaper: Taking advantage of maker lab and free labor

Tradeoff: Build your own robot?

  • Learning: Turtlebot3 is manufactured professionally
  • I have to keep a “fleet” of about 10 robots running for students
  • We have gotten better at careful robust construction but it’s still not as good

Team projects

  • Benefits
  • Risks
  • Choosing team members
  • Team dynamics
  • Projects need to be interesting and engaging
  • But plausible and doable.

Evolution

  • Over the first few years the evolution matched my learning curve
  • We now have home grown robots too (why)
  • Class sizes have steadily grown (reaching or passed a reasonable limit)

Continuity

  • Tried really hard to have each cohort build on the last one
  • Worked well when we thought we were jointly building “campus rover”
  • Now students contribute to Lab Notebook

Lab Notebook

  • Lab Notebook
  • Useful for building “institutional memory”
  • Useful for assessment
  • Problems:
    • Students may put in invalid info
    • Or information becomes obsolete
    • Or info is valid but there is a much better way to do it

What about AI?

  • Has upset many academic applecarts
  • Everyone is deciding what their AI policy will be

Self Assessment: What can be improved

  • Student wasted time trouble shooting “dumb stuff
  • Too much packed into one course
  • Because of that some of the learning is superficial

Self Assessment: What I am happy with

  • I am proud of the course
  • Students work very hard and learn a lot of the hard knocks of engineering
  • They certainly learn the basics of how autonomous robots work
  • Only a few of them go out for Robotics jobs (which is totally fine)