Why Is Computer Science Important? Reza Peyrovian Explains
Reza Peyrovian spent 25 years at Bell Labs, leading high-budget projects that produced hardware and software that still operates as part of the AT&T network. As an adjunct professor at Stevens Institute of Technology's Charles V. Schaefer Jr. School of Engineering & Science, he's helped develop their high-ranking online master's program in computer science.
We sat down with Peyrovian to find out what distinguishes computer science among academic disciplines and what distinguishes the StevensOnline master's program in computer science from its competitors. Below, he discusses computer science from the dual perspectives of a seasoned industry professional and an accomplished academic.
Why is computer science important?
Computer science solves problems. Let me offer an example from my career. I worked at Bell Labs for 25 years. The first project I led developed a processor from scratch. It took four to five years to complete the project. I had to learn the nuts and bolts, from the properties of silicon all the way to the logic of creating a processor that's fault-tolerant and real-time and meets the requirement of no more than three minutes of downtime per year. How do you create the hardware and software to do that? These are the kinds of problems you can solve as a computer scientist. In the end, it cost Bell Labs $1.8 billion to develop and deploy that processor. It's still running in the AT&T network, many years later.
Later, I moved into software development. I developed software for mobile systems and provisioning systems. At that point, I started to miss teaching — I am an educator. Friends told me there was a great opportunity at Stevens, so I joined. At this point, I've taught most of the courses in the program.
You've been teaching online for years. How has online computer science instruction changed?
Years ago, we used to post content online and students would go read it. We didn't really interact with students that much unless they came to office hours. But it's evolved, and now there's quite a bit of facetime — an hour and a half each week in each course. Teleconferencing apps make that possible. To me, there's no difference between sitting in a live classroom and sitting on Zoom. I get to know students, I answer their questions in class and in meetings. Students are involved in a very interactive way even though they are not physically sitting in front of us.
Breakout rooms make it easy for them to collaborate and then share their group's solution to a problem or ask questions. I usually pose a problem and then talk about it, and then students go into breakout rooms of three to five people and develop the answer together. We then discuss the solution from two or three of the breakout groups, which I choose at random. It makes the session much more lively than it would be if I just stood in front of the class and showed graphs and lectured.
As we understand online learning better, we've developed content designed to work in an online format. We try to do as much interactive content as possible, and online textbooks are becoming more interactive as well. It's not just reading and memorizing. It's practice. The textbooks include participation activities, in which students answer questions as they read. It reinforces what they learn and it's low stakes; you keep answering until you get the correct answer. Then there are challenge activities, in which students get graded on whether they answer correctly. Students like this format, and we've found it's very effective in preparing them for the live sessions.
Tell me more about the format of the online MSCS program.
When possible, we use videos to teach concepts. In my algorithms class, for example, we've created a series of original, professionally produced videos teaching about algorithms inspired by nature. Whether it's from ants or a cuckoo bird, nature can teach us how to solve some algorithm problems. Students get a new perspective. They see it's not just stacks and queues.
One set of videos approaches the elevator algorithm from different angles. Students have to figure out: What are we trying to optimize? Are we trying to save energy? Get people to the floor they want to get to as fast as possible? Should it be first-come, first-served, or should we factor in the direction of the elevator? It's a complex problem. You have to look at the pattern of movement of people, not just who is going where but how many people are waiting on each floor, and at what time. In the morning, there's a lot of traffic from the lobby to offices. At noon, there's a lot of traffic to and from the cafeteria. The algorithm has to become a learning machine, so now this lesson in algorithms also becomes a lesson in the importance of machine learning and artificial intelligence. It turns out this problem is NP-complete, so it's not solvable in the way we might want to solve it. But we can solve it by learning from ants, looking at how they find food and bring it to their nest — which brings us back to learning from nature. The videos teach all this, tie it all together in an engaging and memorable way.
We tackle a lot of interesting problems in algorithms: how to match medical students to medical schools to optimize for both students and schools, how to create mazes, how to connect people on social networks.
We are in a new era. We used to try to solve problems for computers, but we're past that. Modern computers are fast; we don't need to worry about optimizing them further. People keep talking about big O notation, and yes, it's important to make things more efficient, but the big goal of algorithms is to make our lives easier — problem-solving for human satisfaction. People sometimes worry that computers will take over, but they don't need to be afraid of that. If we program them the way we want, they will do the things we want.
Can students customize the program?
We decided to run the program on a cohort model, which means everyone takes the same computer science courses at the same time as the group they came in with. It's important that students go through this experience together. They interact and get to know each other well, and the lockstep curriculum ensures that students have the necessary background to understand each course in the sequence.
The program does vary a bit depending on whether you come in with a computer science background. A lot of students in this program don't have a computer science background. If you didn't get a computer science education as an undergraduate, you need to take some remedial catch-up courses. Our program includes two that you take at the outset of the program, followed by eight fundamental foundational courses. Students who come in with a computer science background don't have to do those two courses. We have two other courses for them instead: one on agile processes and one on human-computer interaction.
This program is designed to cover all the areas that industry wants, all the hot subjects in computer science. We cover all kinds of computer programming: cloud programming, software development, mobile systems, web programming. Plus, we provide the foundation you need to keep learning on your own after you earn the degree.
A prospective student asks, "I'm thinking about a master's, but alternatively I'm thinking about doing a certificate or a boot camp. Why should I get a master's?"
Getting a certificate and learning one narrow area is one way of picking up on a subject. Alternatively, you can also train yourself so that you can learn anything in the future on your own. Then, you won't need to keep going back to get more certificates. You'll have a good foundation on which to learn other topics on your own or in practice. Education gives you that foundation, the ability to learn.
What you learn in a certificate program can be pretty superficial. You study, you pass an exam — you don't have to go deep. In earning a master's-level computer science degree, you spend four or five courses learning fundamentals that have remained the same since the inception of the computer. Take computer architecture. You have to know it. Once you do, you don't expect the machine to do the impossible. You know what it can do, what it can't do, that it's not a magic box. I teach students what a tortuous process the computer takes to add two numbers. When you learn that, you know what computers can do and cannot do in terms of network, parallelism, and creating a distributed system. You learn all of that so you can use them properly.
Why should master's students study computer science online at Stevens Institute of Technology?
Stevens is an institution built on a foundation of engineering, software, and computer science. We have some of the best faculty members in the computer science department. The bar is set very high for content.
Students here learn the fundamentals as well as today's hot areas, like how to develop cloud service and how to do application programming for distributed systems, not just client server-side applications. We cover data structure, algorithms, and the nuts and bolts of the machine. We cover computer organization and design to really understand how computers work, even how GPUs work. Students learn agile processes for software development. When they leave here and enter a work environment, they will be able to be productive. From the time they enter, they can join the teams and work on those processes, or become a web programmer or mobile systems applications programmer.
Finally, we produce results: our computer science graduates quickly find jobs in the Northeast. In the summertime, I have difficulty getting teaching assistants because they all get high-paying internships that provide valuable professional experience to help them along their career path.
U.S. News & World Report ranks the 10-course, 30-credit Master of Science in Computer Science at Stevens Institute of Technology eighth on its Best Online Graduate Information Technology Programs list. Open to those with limited computer science backgrounds as well as undergraduate computer science majors, a Stevens MSCS prepares tomorrow's computing professionals for lucrative careers with employers that include Amazon, Facebook, Google and IBM.
At Stevens, you'll learn from National Science Foundation CAREER winners, top researchers and industry consultants, and experts in computer science subfields like machine learning and AI. Thanks to the online format, you'll be able to do this without ever visiting the Stevens campus. A convenient online experience that combines synchronous live classes with self-paced asynchronous content accessible anywhere you can connect to the internet. StevensOnline students enjoy support from the Continuing and Professional Student Care Center from the time they apply until they graduate.
If you're ready to advance in your computer science career, now's the time to apply to the StevensOnline Master of Science in Computer Science program.