1 / 17

What to expect?

What to expect?. or Who is this guy with his weird foreign accent?. Introduction. Akos Ledeczi Associate Professor at EECS Senior Research Scientist at ISIS (Institute for Software Integrated Systems) http://www.isis.vanderbilt.edu/akos/ akos.ledeczi@vanderbilt.edu Research Interest:

pooky
Télécharger la présentation

What to expect?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What to expect? or Who is this guy with his weird foreign accent?

  2. Introduction • Akos Ledeczi • Associate Professor at EECS • Senior Research Scientist at ISIS (Institute for Software Integrated Systems) • http://www.isis.vanderbilt.edu/akos/ • akos.ledeczi@vanderbilt.edu • Research Interest: • Wireless Sensor Networks • Model Integrated Computing • Office hours: • Mondays 2-3pm, Jacobs 380 or • By appointment, 1025th 16th Ave. South, 4th floor (not far from the Commons)

  3. Why two professors? • “the idea to combine professors is bad ” • It is a compromise with good reasons behind it: • It saves a lot of time for us. Given a fixed number of hours we can dedicate to the class, we can use it to improve the material, create more examples, answer emails, etc. • The two sections are pretty much equivalent.

  4. Communication • “Hard to understand through the Russian accent…” • “Needs to speak slower.” • “Difficult to understand at times.” • Communication needs to be bidirectional. • Do not be afraid to ask questions! • Chances are, you are not alone with your problem… • There are no stupid questions…

  5. Speed • “Easy class. Helpful for engineering students. Didn't really learn anything new until halfway through the semester, though.” • “Also, the class moved very slowly. There wasn't really much point in actually going to class” • “He teaches a bit fast” • “Difficult to understand during class due to the speed when going over example problems” • With 200+ students having diverse backgrounds, experience level, abilities, it’ll always be slow to some and fast to some others. I’ll try to strike a balance.

  6. Outside class • “The professors never respond to emails asking for help.” • Not true. But if I do not respond immediately after reading your email, it may slip my mind. If you do not get an answer within 24 hours, send me a reminder. I won’t be annoyed, I’ll be glad you reminded me. • Your “first line of attack” should be the TAs, because • back of the envelop calculation: • Each student sends one email per month • It takes an average of 5 minutes to read/respond 4 hours per week (10% of (official) working hours)

  7. Class structure • Visit: • OAK or • The class webpage directly at http://eecs.vanderbilt.edu/Courses/cs103/ • If you forget the url, google vanderbilt cs103

  8. Why is programming difficult? • Computers are dumb: they need to be told what to do very precisely, using elementary steps • When you see a “smart” application, it is all in the software • Programming languages: • assembly (what the CPU understands) • C, C++ (compiler translates it to assembly) • Java, Matlab, Scratch (interpreter “executes” program) • Scratch and Matlab have lots of smarts, but they are still programming languages

  9. Still, why is it difficult? • Algorithmic thinking is not natural to humans • We are great at things that computers still cannot do (at least not well): “intuition,” “intelligent, creative and contextual thinking,” or more concrete examples: natural language understanding, image understanding • Computers are great processing large amounts of information fast (if you tell them what to do and how to do it via a program) • But translating a problem to a program that computers can “understand” requires you to “think” like a computer • It comes naturally to some, some others can become quite good with practice and still some suffer to make this mental switch • (Incredible productivity difference between an average and a great programmer) • The only way to get there (and become good at it) is by doing it: PRACTICE

  10. Programming • It is a creative process • There are a few flexible building blocks (i.e., programming constructs), but you decide which ones to use, in what order, how to “configure” them, etc. • There is an infinite number of possibilities • The same problem can be typically solved many different ways • This makes it challenging, but really rewarding • A well-written program is just like a piece of art

  11. Why is it important? • This is one of the most important classes you take at Vanderbilt • “Everybody” writes programs these days in engineering, science, business, etc. to solve all kinds of problems • Software runs “everything” these days: cars, phones, TVs, medical equipment, factories, utilities, traffic, etc. • http://spectrum.ieee.org/feb09/7649 • Your programming ability may be your most valuable asset in the job market

  12. Class • Good old boring lecture • All code examples will be available by class time (Matlab) or right after class (Scratch) on the website • Class notes (highlights) will be updated after class • In-class assignments: • The only way to learn this is by practicing it • Most of you would not do this until 2 days before the next project is due or the night before a test which would be too late for many  • Use this opportunity to try out what you have just heard • You can quickly realize if you do not understand something • ASK QUESTIONS • Fun: 5-min context switch (during some of the Matlab classes): • Discussion of an interesting topic from CS/EE

  13. Summary • There are no stupid questions • Practice, practice, practice • Programming is one of the most important skills an engineer or many other professionals can have today • I am here to TEACH you and NOT to give you a hard time, give you a bad grade, bore you to death, etc.

  14. Computer Science • Computer science is the study of algorithms for processing information with computers. • An algorithm is a precise step-by-step procedure for performing a task. •  Let’s look at some examples of tasks that might be algorithms: • Example: Leave this room • Get to a door and go through it. • Is this an algorithm? No, because it is not precise. • Example: Leave this room • Get up, face right, walk until you hit a wall, turn right, walk until you hit a wall, turn right walk until you hit a door, push the door open and walk two steps, turn left and walk until you hit a door, push the door open and walk two steps. • Is this an algorithm? Yes. • Is it part of computer science? No, because it does not process information on a computer.

  15. Computer Science cont’d. • Example: Process webpage data for amazon.com • Display list of book titles with authors. If title is clicked, display first 12 pages. If “Close” is clicked, close the page. • Is this an algorithm? Yes • Is this part of computer science? Yes • Example: Add the first 100 numbers together. • Set sum = 0for each of the integers n from 1 to 100 sum = sum + n • Is this an algorithm? Yes • Is this part of computer science? Yes.

  16. Example areas of computer science • Algorithms (solve puzzles) • Artificial Intelligence (mimic human thought) • Graphics (make pictures, games, movies) • Information Processing & Storage (e.g., databases) • Image Processing (improve/inspect pictures) • Networks (local, Internet, computers, phones) • Operating Systems (e.g., Windows, Linux, MAC OS) • Software Engineering (i.e., design large programs) • User Interfaces (determine what the user sees and does) • Programming Numerical Algorithms.

  17. Scratch • Visual Programming Language • Developed specifically for novices • Introduces the most important programming constructs common to all languages • Cannot do everything that a full featured programming language such as Java or C++ can • What it can do, however, it does very well: • Easy • Intuitive • Fun

More Related