Making the Abstract Approachable
How UMBC's Computer Science and Electrical Engineering Department is using innovative teaching techniques to engage and inspire undergraduates.
Gone are the days of stuffy lectures and drowsy students. At least, this is true of UMBC’s Computer Science and Electrical Engineering Department, where hands-on labs, industry simulations, new teaching methods, honors courses, and efforts to engage women and underrepresented minorities are being used to engage and inspire the next generation of Computer Scientists and Computer Engineers.
A Little Healthy Competition
For an abstract concept like Computer Science, getting your hands dirty with micro-chips and robots might be the secret to engaging students. Dr. Tim Oates’ Robotics course shows that a healthy dose of competition helps, too. Oates devised a semester-long, team-based competition where students build robots and then battle them. They’re called “Sumobots” (pictured right), named after the age-old Japanese sport, Sumo. Like its namesake,
the victor of a sumobot battle is the last robot standing in the circular arena.
“The competition element definitely made it a lot of fun,” says Emily Scheerer (CS ’14) whose team’s robot—made from a servo motor, microcontroller, and plastic binder–was the worst functioning sumobot on the first day of class. After a trip to Home Depot for some sturdier parts and a few revisions, the robot climbed to the top ranking by the last day of class.
Despite cheering that can be heard from inside the classroom on competition days, the course is not just fun and games. “You still have to work for the ‘A’,” explains Mat Kurtz (ME, minor CS ’13), “but the way it’s set up, you want to work for the ‘A’”. Oates explains that having students build and program a robot helps bridge the gap between computer science theory its application.
A similar energy can be found in Introduction to Engineering Science (ENES 101), co-taught by CSEE professor of the practice Dr. Chuck LaBerge and Mechanical Engineering professor of the practice Dr. Anne Spence.
Dubbed the “cornerstone” course because it teaches the basics of engineering to all engineering students (Computer, Mechanical, Biochemical), the course puts students from these different disciplines together to leverage their skills on group projects.
For the past two years, the semester has ended with the AROW competition (Academy Robotics on the Water). Teams design a robotic boat (pictured left) that emulates tasks of the U.S. Coast Guard: tending a light house, placing navigation buoys, cleaning and recycling and oil spill – represented by ping-pong balls – and rescuing Lego fishermen who have fallen overboard. The teams are then judged on the basis of the cost-effectiveness of the various team designs. The winner is chosen based on efficiency and cost-effectiveness.
Build it and they will Come
Replacing lectures with hands-on design experience is a growing trend in Computer Engineering courses at UMBC. Take Programmable Logic Devices (CMPE 415), which teaches students how to program FPGA boards. Two years ago, Dr. Ryan Robucci revamped the course so students could get their hands on FPGA boards from day one.
“We gave them something they can touch,” explains Robucci, who also introduced a “games” theme to the class. Instead of programming the boards to carry out abstract tasks, students connect the boards to monitors and make them play simple video games like the 70’s Atari classic, Pong.
Robucci applied the same technique to C Programming and Embedded Systems (CMPE 331), a similar course that involves programming microcontrollers rather than FPGA boards. In this case, students must program the microcontroller to play a song through a set of speakers.
Robucci stresses that the benefit of hands-on programming is that it forces students to troubleshoot to ensure physical results. Students can’t focus on a single problem and ignore the rest—as they’re apt to do on paper–or they will miss out on a rousing game of pong.
In Dr. Gymama Slaughter’s Biosensor Technology (CMPE), student teams get to build and test their own biosensors (pictured right). This includes a trip to UMBC’s Cleanroom, located in the Technology Resource Center (TRC).
An emerging, multidisciplinary field, biomedical microsystesms (BioMEMS) is making strides with diabetes research. “The development of biosensors is a recent endeavor that is gradually replacing big and bulky laboratory-based diagnostics tools,” explains Slaughter. “Reliable and highly sensitive analytical devices for measuring different components in blood has allowed for patients with diabetes to be able to monitor their glucose levels at home.”
Dr. Fow Sen-Choa has a new Computer Engineering course in the works called “Experimental Techniques for Electrical and Computer Engineering” that will exposes students to basic technologies and laboratory techniques in the areas of wireless communications, optical communications, and bio-medical instrumentation.
Welcome to the "Real World"
CSEE courses that simulate what it’s like to work in the industry arm students with skills to help them thrive in the “real world.”
Take Chuck LaBerge’s Computer Engineering capstone course (CMPE 450/451), where Computer Engineering seniors are asked to apply what they have learned since freshman year. This semester, Dr. LaBerge is teaching the course in the same space as Dr. Anne Spence’s Mechanical Engineering senior capstone, allowing Computer and Mechanical engineers to collaborate.
“Dr. LaBerge ran the capstone class as though it was an engineering consulting firm in which he was the manager of several teams of engineers,” explains Jason Dunthorn (ME ’12), who was part of a team of mechanical engineering students who developed an ultrasonic transceiver to help the blind gauge nearby obstacles (pictured left).
Teams worked on projects for a third-party “customer” (generally a CSEE faculty member or external company), who specifies what they are looking for in a product. Throughout the year, the teams met with their customers to update them on their progress. If groups had trouble, they would seek out advice from other teams.
“This collaborative environment encouraged everyone to grow beyond what they were getting out of their own projects,” says Jason. “It was a wonderful success; Students felt enriched and strengthened.”
A special section of Dr. Susan Mitchell’s Software Design and Development (CSMC 345) course also follows the industry model. Last spring, Mitchell recruited her “customer” from Columbia-based tech company Next Century Corporation.
Made up of two teams of five students, the special section asked teams produce a visualization of how computer viruses spread geographically. As if they had been hired by the company, teams had to give regular updates every one to two weeks, sometimes in person, sometimes via Skype. Next Century even allowed the teams to use their own Wiki and a Configuration Management System, where they could structure their computer code.
Their midterm and final presentations were given in Next Century’s conference room, in front of the company’s president. “They were very nervous,” says Mitchell. Though chances are they’ll be less nervous when they do it for real a few years from now.
One-on-one contact with industry professionals is also an element of Dr. Marc Olano’s Senior Game Project (CMSC 493). A class for aspiring video game developers within UMBC’s Game Development Track, it brings together both Computer Science and Visual Arts students to create a playable video game by the semester’s end. “The final exam is a presentation of the finished games for 10-20 pros at a networking reception,” explains Olano.
SLUG (pictured right), a 2D flash game where the player must help a pink slug collect acorns while avoiding enemies: bees, birds and frogs, even won an award at the 2010 West Virginia Flash Festival.
“The core things (in addition to game development) the students learn during the class include working effectively with others with very different skills and backgrounds, scoping and planning development for a large project, and effective presentation skills through multiple presentations to the class and outsiders,” says Olano.
Teaching Tech with Tech
The “flipped-classroom” approach of Shawn Lupoli’s Programming Languages (CMSC 331) course replaces actual lectures with video lectures; The result is more class time that Lupoli can spend interacting with students.
“I find Mr. Lupoli’s approach much more friendly and easier to understand,” says Andrew Bosco (CS ’14). Despite the roughly 1.5 hours he spends watching videos and taking the online follow-up quiz, Andrew says the class is not more work than other classes; The time is just structured differently. “I’m spending time I would usually devote to studying watching videos.”
Lupoli spends hours writing and recording the videos, so that there is no gap between what the students learn online and what they learn in the classroom. Students come to class already knowing the material; They then use class time to ask questions and work collaboratively on projects.
Honors Seminars
It’s easy for technical subjects like Math and Computer Science to stick to an uninspired lecture-hall format, but the new Computer Science honors seminars are structured to celebrate discussion and student participation.
Dr. Anupam Joshi’s Security and Privacy in a Mobile Social World (HONR 300/ CMSC 491) explores how ubiquitous computing is effecting our personal privacy. Introduced last spring, the course discusses recent court cases like the United States. V. Jones case in which the government installed a GPS in a suspect’s car and monitored him without his knowledge.
As their final project, students were asked to look at Twitter feeds and predict whether the user was a Democrat or a Republican. Student predictions were 70-75% accurate. The point of the exercise, explains Joshi, was to help students realize how much of their personal information they could inadvertently be giving away using social media outlets like Facebook and Twitter.
Dr. Marie desJardin’s Computation, Complexity, and Emergence (HONR 300/ CMSC 491) course uses Computer Science to model and understand natural complex systems like bird flocks, ant colonies, coral colonies, the evolution of language, and weather systems.
“Many years ago, I read Gary Flake’s book The Computational Beauty of Nature and was completed fascinated by the concepts of fractals, chaos, and swarm systems, and how such simple individual behaviors could lead to such complex system behaviors,” explains desJardins, who started teaching the course last year. “…I had often thought of the ubiquity of these complex systems in the world around us would be a great launching point for engaging non-CS majors in understanding how relevant computational modeling can be to their own interests, and broadening the perspective of CS majors on the kinds of problems their training would enable them to work on.”
desJardins was also responsible for a new honors section for Introduction to Computers and Programming (CMSC 100), which she dubbed “Python Boot Camp.” A one-hour completely hands-on, very student-led interactive lab section, the course is meant to hook students who might never consider taking a hard-core programming class.
After students learn the basics of Python programming and using pseudocode to design an algorithmic solution to a problem, they are sent to the front of the room to solve a problem. “Just watching somebody else talk about programming, or even watching them write programs, is really not that effective in terms of actually learning to program," explains desJardins. “It’s one of those things you have to do.”
Computing for All
Making Computer Science and Computer Engineering accessible and enticing for students, especially underrepresented minorities in the field like women, minorities, and transfer students, has always been a priority of the department.
UMBC’s Center for Women in Technology (CWIT), directed by CSEE professor Dr. Penny Rheingans, has been focusing on this issue since the center came to be nearly 15 years ago. This summer, Dr. Rheingans received an NSF research award to develop and evaluate an innovative first-year seminar for computing majors aimed at increasing retention, completion, and success among students, especially women and those from underrepresented groups.
“Students arrive not really understanding which computing major is right for them,” explains Dr. Rheingans. She says that the course, Problem Solving and Computer Programming (IS 101Y/CMSC 104Y), which is being co-taught by herself and Dr. Susan Martin, Associate Director, CWIT, will overcome obstacles that prevent new students from sticking with Computer Science.
“Traditional computing programs generally spend the first semesters teaching skills (for example programming) without really talking much about the big picture, specifically the grand challenges of the field and the impact one can make on solving societal problems,” explains Rheingans. “This organization works fine for students with a love of programming, but not so well for those who see programming as a tool to achieve greater good.”
Students learn both technical skills–algorithmic problem solving, abstraction, programming, and analysis—and professional skills–time management, understanding learning styles, networking, working in teams, and presenting. They work together on a semester long team-based design, implementation, and evaluation project, which shows that working in teams is actually the norm in the industry.
Innovative teaching in UMBC’s Computer Science and Electrical Engineering department is the product of teachers who love the subject and want to make sure their students are similarly infatuated. The way to do that is by making the abstract approachable.