Hello and welcome to the Introduction to Computer Programming with Visual Basic Specialization. In this program, you're going to learn how to write code in Visual Basic. This program is made up of four courses. The first course is what I call foundations of computer science, and the goal with this first course is to give you a strong foundation on the environment within which the programs you're going to write will run in. Some learning objectives for this first course, you should be able to define algorithm efficiency. I want you to be able to convert numbers between different number systems. I want you to be able to evaluate Boolean logic. You should be able to list logical layers in network communication between our applications. I want you to be able to explain the difference between high level programming languages, such as Visual Basic and assembly languages. You should be able to explain the process of programming language translation from high level language down to machine code. You should be able to describe different forms of artificial intelligence, because someday you're going to be writing that artificial intelligence into your programs, if you won't do it today it's in the near future. Lastly, you should be able to list common security vulnerabilities in computers and software, because you have to deal with that in our current world. Onto the next course. The next course, that second course is where you're going to roll up your sleeves and start writing Visual Basic code. Some learning objectives for the second course, I want you to be able to develop computer programs that read user input and produce output to the console. You should be able to develop computer programs that utilize different data types in the execution of the program. You should be able to develop computer programs that utilize decision branching to solve business and mathematical problems. Lastly, you should be able to develop computer programs that utilize iteration to solve business and mathematical problems. After you're done with this second course, you can write some simple programs that take in input, run through all algorithms that we discussed a lot in our first course and then produce output. Then we move on two more. But through all the courses, we're going to have a programming environment that includes.Net 5 command line tools. Microsoft has the.Net framework, which has been around for years, which primarily only ran on the Windows platform. There were other solutions for Macintosh and Unix machines, but in.Net 5 Microsoft has really brought these command line tools which run on Windows, Macintosh, or Unix really to a parallel level. You can use any of these types of machines, and you'll be successful in the work we do here. The programming assumption we develop locally on your local machine so you're going to learn how to install.Net 5, and then you're going to upload them to the Coursera grader which will immediately evaluate your program and give you some feedback, and if you've got any issues, you can resubmit it. Then in that third course, we're going to continue to write code and we're going to build on the work we did earlier, so we're going to develop skills that allow us to abstract code at a higher level using object-oriented programming paradigm in this third course. Some learning objectives here is, I want you to be able to model some object oriented programs using UML class diagrams. I want you to be able to develop computer programs that utilize a string data type in the execution of the program. I want you to be able to develop computer programs that utilize time data types in the execution of the program. Lastly, I want you to be able to develop computer programs that utilize collections of variables to solve business and mathematical problems. When I say collections that means one variable is going to store many things. In a traditional academic course, we started to think about this is data structures. Data structures are what we call these collections of variables typically. You want to be all develop computer programs that utilize classes and objects to solve business and mathematical problems, let's say higher level of abstraction. Then the fourth course, we're going to continue to build on the work we've done by learning some skills that are used in larger teams of developers. Through the first three courses, you learn how to write code but we don't think about how you write code with other people in mind, we think about how you sit down in a computer and write code. Here we're going to add a lot of things from the programming environment that allow people in developing code for the same program at the same time. Some things we'll learn here is, you should be able to develop computer programs that utilize the files in the execution of the program. You should be able to develop computer programs that utilize inheritance in the execution of the program, so this is another level of abstraction. You should be able to develop computer programs that utilize polymorphism to solve business and mathematical problems, and you should be able to develop computer programs that utilize interfaces to solve business and mathematical problems. This last piece is really the part that is a change from the original academic work around Object-Oriented Programming and how we do it when we build software in teams of developers, this idea of an interface. We'll get our hands dirty there. I'm your instructor. My name is Aspen Olmsted. I've worked in software development since 1986. When I was a freshman in college, I went and got a job at the Buffalo Philharmonic. I was going to SUNY Buffalo State University of New York and I needed to have money to pay for my apartment and my car, and so I went there and they bought a computer system with 10 workstations and two servers. Software was not very developed at the time so I had to go learn how to code to solve some problems and it was a lot of fun, and that's what really motivated me in software development. I had a software company for many years, I sold to a big publicly traded corporation. Three major programming projects that I developed over the years. One was a distributed service-oriented computing system for ticketing, think about event ticketing. This code is owned by Major League Baseball today, this became tickets.com which was a competitor to ticketmaster for awhile but Major League Baseball was paying $3.25 a transaction. They didn't want to pay it anymore so he's bought the company which is tickets.com. But that's really a system I built in Europe in the '90s, and we didn't call it service-oriented computing at a time, but that's what we were doing. We had Unix servers and we had DOS machines that would send packets, and those packets would get responses back, and it allowed for really high distribution with thousands of computers. I also had the privilege of writing 4GL programming language compiler. I call it P-Code here because essentially it's a lot like.Net which we're going to learn in this course. It's didn't compile the machine code, it compiled to byte code, which allowed it to be run on multiple different platforms. This was used by over 1,000 different cultural arts, then used in customization of their software. Lastly, I had the great experience of writing a SQL Parser. SQL, you'll learn in the first course is used in databases, but this was used by over 1,000 cultural arts venues also to write queries for reporting purposes. These are three great learning experiences, I've had many, I'll share some of them through the lecture, but I hope you get to have similar experiences that I had when you pick up your programming skills, because it's a great career to be and the opportunities will just continue to grow. Currently, I'm a professor and program director at Fisher College in Boston. Fisher College is a small liberal arts college in downtown Boston in the Brownstones, and I run both undergraduate and graduate programs in information technology in computer science. Thank you.