CS351, Programming III: C++ 9:30am-10:20am TR, Biology 202 Two Credit Hours http://cs351.cs.ua.edu, Xiaoyan Hong •SEC 3412 •348 4042 •Office hours: 10:30 – noon Thur and Monica Anderson •SEC 3426 •348 1667 •Office hours: 2 – 3pm M/W What is in a language? • Grammar • Library • Tools What will be taught? • • • • • • • • Basic Data Types and Operations Control Structures Methods/Functions Object-oriented Programming Event-driven Programming GUI Components Multithreading Networking How it will be taught? • Basics/Principles • Examples • In class exercises, assignments, projects – more exercises the first half of the semester – More projects the second half of the semester • Exams • Bring own laptop to class • Use programing tools • g++ compiler via bama.ua.edu • Microsoft Visual Studio 2012 How to succeed? • • • • Attend every class meeting Actively participate in class teaching/learning Digest every example code after class Complete every assignment/project • Learn by example • Learn from web Grading Policy • • • • Mid-term (26%), and final (40%) In-class exercises, assignments (10%) About 4 projects (24%) Class participation (5%) Textbooks • Ira Pohl, C++ for C Programmers, Third Edition, Addison-Wesley (not required) • Fraser, Pro Visual C++/CLI and the .NET 3.5 Platform, Apress (not required). Resources • C++ for C Programmers – Publisher site http://www.pearsonhighered.com/educator/product/CFor-C-Programmers-ThirdEdition/9780201395198.page – Author site http://users.soe.ucsc.edu/~pohl/cpp3.html • Microsoft Visual Studio Software Resources for CS students about the MSDN Academic Alliance program • .NET Framework Class Library • Additional tutor for 300 level courses (course material) TBA –Office hours w schedulable slots, URL TBA –Locations (SEC 3433) course info 9 Course Policies • All the exercises, assignments, projects and the exams are to be done individually, unless indicated as team work –Your understanding through the exercises/assignments/ projects are essential to the success in the exams. –Encourage to discuss with peers –Copy-paste is expressly forbidden. For programming projects, it is expected that you have written EVERY LINE OF CODE 10 4/13/2015 Course Policies • Expect to attend all classes • No late turn-in of assignments is accepted for credit. • No make-up exams unless with excusable reasons (show necessary documentations) • No academic misconducts • Turning questions regarding to grading within one week • Only technical discussions regarding to homework, papers, projects, etc., are allowed on the discussion board and chat room on the course web • Accommodate disabilities via university resources 11 4/13/2015 Why not Python? • Python is a prototyping langauge • Python is interpreted • Python is not the fastest running language • Python is not strongly typed (Errors cannot be caught by compiler are runtime errors) Why C++ • C++ is a strongly typed language – Language constructs designed to catch more errors • C++ is designed to be more efficient – Code has a more specific meaning as to what it becomes in machine langauage • C++ supports higher level programming constructs (object oriented programming, templates, etc) C++ in action • Write a simple hello.cc (hello world program • Compile the program • Run the program • bama.ua.edu is a UNIX based system with access to a g++ compiler; does not provide a graphical programming toolkit Demo • • • • Login into bama.ua.edu Create program using vi Compile program Test program through execution Homework for next Tuesday • Complete the test on Blackboard (python review) • Look up paradigms that you missed (we will not go back and cover python or algorithm development) • Study the operator translation sheet – Assignments, comparisons and arithmetic operators are the same – boolean and, or and not are different • Be ready to start on variable declarations next Tuesday