COP 3330 Object-oriented Programming in C++ Introduction Spring 2019
Welcome to COP 3330 Course Website: http://www.cs.fsu.edu/~zhao/cop3330/main.html Almost Everything about the course can be found here Syllabus, announcements, schedules, slides, assignments, resource….. Make sure you check the course website periodically Canvas: assignment submission, grades, quizzes (maybe) Please read the class syllabus, policies, and lecture schedule; ask now if you have questions No recitations the first week! FSU first day attendance policy
Instructor Peixiang Zhao Associate professor at CS@FSU Office: LOV 262 Email: zhao at cs dot fsu dot edu Webpage: www.cs.fsu.edu/~zhao Office hours: Tuesday 2pm – 4pm, or by appointment Email me whenever you have questions. I’d love to hear from all of you! Tell me about the things you are working on, or anything you find interesting
TAs 2.5 TAs (who?) will be assigned to us this semester Recitations (5 sections) Start from 2nd week Assignments Quizzes Grading exams ….. More information will be provided shortly
You Why programming? Why C++? What are my expectations from this class? Am I eligible? Am I ready? Prerequisite: C- or better in COP 3014 (or equivalent classes) How to get a CS account? (Resource page) Is COP 3330 hard and challenging? How to ace this class? How to pass this class? How to fail this class? Please read carefully the course policy and the academic honor policy in FSU What’s next after COP 3330?
Why Programming? Why programming is important? https://www.youtube.com/watch?v=Dv7gLpW91DM A new way of thinking and communication A human creative skill acquired by experience Leverage computers/machines to solve problems Science & art Interesting and challenging opportunities to disrupt our life Decent jobs and bright futures ……
Why C++? Popularity TIOBE Index, January 2019
Why C++? Companies
Why C++? Browsers
Why C++? Software
Why C++? Games (Almost Universally)
Why C++? Machines The F-35 Lightning II (Joint Strike Fighter) relies extensively on C++ The Spirit rover was operational for over 6 years when the mission was only planned to run for around 3 months
Why C++? When performance becomes the number one principle When you want to fully control your software/systems When you want to clearly know how computer resources are used …… n. When your boss asks you to do so … So in the right hands its speed and ability to cheaply use resources should be able to surpass other languages!
Why NOT C++? God damn hard! Poor readability and portability “The problem that I have with them today is that... C++ is too complicated.” by Donald Knuth “It does a lot of things half well and it’s just a garbage heap of ideas that are mutually exclusive.” by Ken Thompson Poor readability and portability Lack full-featured standard libraries Lack of reflection, garbage collection, verbose error messages (particular from template metaprogramming) ……
Ken Thompson and Dennis Ritchie, creators of the C language A Brief C++ History K&R created C in 1972 Fast, simple, cross-platform No objects or classes Difficult to write code that work generically Tedious when write large programs In 1983, C++ was created by Bjarne Stroustrup Allow the programmer full control if they want it Don’t sacrifice performance except as a last resort Only add features if they solve an actual problem Enforce safety at compile time whenever possible …… Ken Thompson and Dennis Ritchie, creators of the C language
A Brief C++ History C++ C++98 C++03 C++11 C++14 C++17 C++20 1979 1983 1998 2003 2011 2014 2017 2020 C with Classes You are here
Programming Tools Recommendation Unix/Linux, g++/gcc, make Our default platform for assignment evaluation (linprog.cs.fsu.edu) Tmux, vim, YouCompleteMe (Emacs, Atom, Sublime Text 3)… Gdb, valgrind, git, …… Windows: Visual Studio QtCreator JebBrains Clion ……
Our First C++ Program: hello.cpp #include <iostream> int main() { std::cout << "Hello world!" << std::endl; return 0; } Talk is cheap. Show me the code. --- Linus Torvalds
Logistics
Questions