CS 103 Overview

CS 103 Overview

1 CS103 Lecture 1 Min Mun 2 Who Am I? – Visiting Scholar in IMSC (Integrated Media System Center) currently on leave at Samsung – M.S. at USC in Computer Science, 2006 – Ph.D. at UCLA in Computer Science, 2011 – Senior Researcher at Samsung, 2011-2018 – Principal Researcher at Samsung, 2019 – present 3 Industries, Graduate schools? Programming experience? Java Python C.. Get to Know Each Other CS, EE, Others? 4 What is Computer Science? • All science is computer science – It is very interdisciplinary: Math, Engineering, Medicine, Natural sciences, Art, Linguistics, Social Sciences etc. • It is more about problem-solving and developing algorithms to solve information-based problems • Essential to economic growth and development • Dealing with society’s problems • A great way to make a living 5 More Applications • Music • Art • Visual Effects • Self-Driving Vehicles • Virtual Surgery 6 What Computer Scientist Do… • Find methods to solve a problem (algorithms) [this is truly CS] – Observe, organize, transform and discover useful information from data – Use math and logic to solve problems – Work in (cross-discipline) groups • Convert these methods/algorithms to a form a computer can execute [this is programming] • Programming is “must-do” thing whatever future plan you have for your career 7 What Is this Course About • "Introduction to Programming“ Not Computer Science • Programming – We'll try to teach good coding practices and how to find efficient solutions (not just any solution) – We'll focus on concepts present in most languages using C/C++ as the primary language (not Java) • Requirements: Doesn't require prior programming experience – However, I recommend for you to spend some extra time if you've never coded before – Those without any programming experience may want to consider taking CS 102 (Fundamental of Computation) 8 Why C/C++ • A very popular language in industry • C/C++ is close to the actual hardware – Makes it fast & flexible (Near direct control of the HW) – Makes it dangerous (Near direct control of the HW) – Most common in embedded devices (your phone, car, wireless router, etc.) • Principles learned in C/C++ will allow you to quickly learn other programming languages – C/C++ is extremely broad and thus covers concepts present in most other languages • C/C++ supports many other languages – C/C++ is underneath for other programming languages (i.e. Python, Matlab, etc.) • But not Java 9 Syllabus 10 Course Advice • Catch the wave! – Overestimate the time you will need and your ability to get your work done – Don’t let shame or embarrassment keep you from the help you need • Experiment and fail – Learning to "debug" your programs is JUST AS important as learning to code correctly the first time • Practice, practice, practice! – Computer science and programming require practice – It's like learning a musical instrument • Let's have fun! 11 Your Environment GETTING STARTED 12 Why Programming and Compiler? – Computers store information as numbers – Especially binary number, 0 or 1 – These numbers are stored as units of 8-, 32- or 64-bits 32-64 bits RAM Processor 13 Memory • Set of cells that each store a group of bits (usually, 1 byte Address Data = 8 bits) 0 11010010 1 01001011 • Unique address assigned to 2 10010000 each cell 3 11110100 – Used to reference the value in 4 01101000 that location 5 11010001 … 1023 00001011 Memory Device 14 Algorithms, Programming & Compiling • Programming and compiling entail converting an algorithm into a specific process that a computer can execute Problem: 5 4 3 2 5 4 1 Path Planning: Find shortest path from S to F 5 S 3 2 F 5 4 5 1. Write algorithms to solve the problems (Pseudo code) 2. Programming 0 00000000 #include <iostream> Addr. 1 00000000 using namespace std; 2 3. Compiling Data void printName(){ … cout << "Tommy Trojan" << endl; 20 00000001 } 21 00000001 int main(){ … Control printName(); return 0; } 1023 00001011 Executable 15 Development Environment • CS 103 officially uses www.Vocareum.com – Online editor and Linux environment – Can develop and test your code • Though you can develop and test your code on your own machine for speed, ease-of- use – Must submit your code on Vocareum – Your work will be graded and scores and feedback returned via Vocareum • To write and run software programs in C you will need – A text editor to write the code – A ‘C/C++’ compiler, linker, etc. to convert the code to a program that is executable on machine 16 Editors • "Real" developers use editors designed for writing code – No word processors!! • You need a text editor to write your code – Eclipse, Sublime, MS Visual Code, Emacs, Atom, and many others • These often have handy functions for commenting, indenting, checking matching braces ({..}) etc. 17 Compilers • Several free and commercial compilers are available for various platforms – g++ – clang++ • Several have "integrated" editors, debuggers and other tools and thus are called IDE's (Integrated Development Environments) – Xcode (Mac) – MS Visual Studio (Windows) – Eclipse C++ (Cross-platform) – CodeLite (Cross-platform) – CodeBlocks (Cross-platform) 18 Ubuntu VM Image • One last option is an Ubuntu Linux virtual machine that can run on either Mac or Windows computers – Requires installation of Oracle VirtualBox and download of the Ubuntu Image – https://www.virtualbox.org/wiki/Downloads – Requires download of the VM Image from http://bytes.usc.edu/files/cs103/install/ • Video walkthrough – http://ee.usc.edu/~redekopp/Streaming/fa13_vm_walkthru/fa13_vm _walkthru.html.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    18 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us