COMP 2710 Software Construction Dr Xiao Qin Auburn
COMP 2710 Software Construction Dr. Xiao Qin Auburn University http: //www. eng. auburn. edu/~xqin@auburn. edu
About Dr. Qin 1996 1999 2004 • Undergraduate Student at Huazhong University of Science and Technology, (1996) – Senior Design Project: Real-Time Disk Scheduling in Unix M. S. Student at Huazhong University of Science and Technology, (1996 -1999) Real-Time and Fault-Tolerant Scheduling A doctoral student at the University of Nebraska-Lincoln (20012004) I/O-Aware Load Balancing Assistant Professor at New Mexico Tech (2004 -2007) 2007 Security-Aware Scheduling Assistant Professor at Auburn University (2007 -2010) Energy-Efficient Storage Systems Associate Professor at Auburn University (2010 -2015) 2015 Prefetching and Active Storage Systems Professor at Auburn University (2015 -Now) Big-Data Computing
Your Background Not-A-Quiz • • Is this course an elective or a required course for you? What is your major? What programming languages do you have (any) experience in? What is your favorite programming language (not necessarily the one you are the most skilled at)?
Goal and Objectives Goal: Compete for positions in the job market or in graduate schools. Goal Objective 1: Grasp both C++ Syntax and Semantics Objective 2: Design, implement, and test software Objectives Programming skills 7 Software design skills
Your Future Careers: Comp. Sci & Eng. , Electrical Eng. Phone and On-site Interviews Programming skills Quickly learn a new programming language Problem solving skills Programming experience Personality
COMP 4300 Computer Architecture (Java, C++; C) COMP 3500 Intro to Operating Systems (C) COMP 2710 Software Construction COMP 2210 Fundamentals of Computing II (Java) COMP 1210 Fundamentals of Computing I (Java) 9
Why Study Software Construction?
C++ Applications • Adobe Systems: All major applications are developed in C++: – Photoshop & Image. Ready, – Illustrator, – Acrobat, – In. Design, – Go. Live, – Frame (mostly C, some C++)
C++ Applications (cont). • Amazon. com: Software for large-scale e-commerce. • Google: web search engine, etc. – Chromium browser. – Google file system. – Map. Reduce large cluster data processing. • HP: Here is a tiny fraction of HP's C++ apps: – C, C++, Fortran 90 compilers, and linker for the new HP IA 64 platform (these add to more than 1 million lines of C++ code). – SAM (HP's system management utility) – Some of the networking libraries in HP-UX – Java VM core • IBM: – OS/400. – K 42: a high performance, open source, general-purpose operating system kernel for cache-coherent multiprocessors. • http: //www. research. att. com/~bs/applications. html
Parallel Applications on Supercomputers
Why Study Software Construction? Position Software Engineer Location Seattle, WA Company Amazon Part of the Job Descriptio n Basic Qualifications * Bachelor's Degree or better in Computer Science or related field. * 4+ years professional experience in software development. * Computer Science fundamentals in object-oriented design, problem solving, data structures and algorithm design * Proficiency in, at least, one modern programming language such as C++, C# and Java. Perl experience a plus.
Why Study Software Construction? Position Software Test Specialist Location San Jose, California Company IBM Part of the Applicant should possess a strong programming language such as C, Job C++ or Java. Command of a non-Windows platform such as Linux Description or UNIX is also a plus. The applicant should possess any number of the following abilities: Java, C++, C, Linux, Windows, TCP/Networking, Websphere, DB 2, Rational Tools, Project Management.
Why Study Software Construction? Position Senior Software Engineer Location Washington, DC Company Intel Part of the You should possess at least a Bachelor of Science degree and Job possibly more advanced degrees with extensive experience as Description graphics programmer in the video game industry. Additional qualifications include: - Solid understanding of Direct X*, Open. GL*, and Shaders* - Strong experience with C/C++ language and Windows* development environment - A good communicator and comfortable with public speaking - Multithreading experience and computer architecture knowledge would be an added advantage
Why Study Software Construction? Position Software Engineer, Compilers Location Mountain View, CA Company Google Part of the Job Description Responsibilities: * Performance analysis * Development of advanced tools * Implement state of the art compiler optimizations * Integration into the GCC public repository Requirements: * Comprehensive and recognized knowledge in compilers, optimization technology, and algorithms * Deep understanding of computer architecture * Strong debugging/analytical skills * Solid practical C/C++ experience
Why Study Software Construction? Position C++ Software Engineer Location Pittsburgh, PA Company M*Modal Part of the Job Description Responsibilities: … Join our renowned research and development team, and add to our unique blend of scientific and engineering excellence. Requirements: * C++ and scripting languages (e. g. Python, Perl, …) * XML and related technologies * Text processing/manipulation * Integrate and communicate well in small R&D teams
Why Study Software Construction? Position C/C++ Scientific Programmer Location Bethesda, MD Company Focus Group Corporation (FGC) Part of the Job Description FGC has mulitiple openings for qualified and experienced Scientific Programmers to work in the field of Bioinformatics with a strong emphasis in C, C++ and Unix. Requirements: * experience in C, C++, * background in algorithm development and * implementation and/or programming support of scientific research are highly desired.
Why Study Software Construction?
Learn COMP 2710 for Fun • To write fun applications! • Six programming assignments • Two major projects 1 -21
Questions Please ask at any time!
What will you get out of COMP 2710? • Analyze problems to determine system requirements • Develop object-oriented software designs that map to requirements identified in analysis • Develop software using sound programming principles • Grasp both C++ Syntax and Semantics • Have experience in developing non-trivial software applications • Understand concepts of data abstraction, efficiency, and memory management • Understand how to perform software testing.
Topic Coverage (Outdated) • I/O: Basic, File (Week 2 a) • Functions: Basics, Overloading, Templates (Week 2 b 3 c) • Arrays (Week 4 a-b) • Structures & Classes: Basics, Constructors (Week 4 c) • Vectors and Iterators (Week 6 c-7 b) • Operator Overloading (Week 7 c-8 c) • Strings and Streams (Week 9 a-10 c)
Topic Coverage: What’s new? • • • Using Eclips IDE (Week 1) Two Midterm Exams Pointers and Linked List (Week 7) Use Cases (Week 9) Function-Oriented Design (Week 11) Project 1 Design (Week 12) Header Files and Makefile (Week 13) Project 2 Design (Week 14) Debugging and Testing (Week 14) Object-Oriented Design (Week 15)
Feedback from Former COMP 2710 Students • The first half of the class was easy; the second half was difficult • TA never replied emails • Grading on assignments was unfair (TA’s machine has no C++11) • Due days were on Friday night
Am I going to read the book to you? • NO! • Book provides a framework and complete background, so lectures can be more interactive. – You do the reading – We’ll discuss it • Projects will go “beyond” • Textbook: Savitch, Walter. Absolute C++, 2 nd, 3 rd, 4 th, 5 th, or 6 th Edition. Addison-Wesley.
1 -28
Course Syllabus • Prerequisite: COMP 2210 Fundamentals of Computing. • Six homework assignments. – Due 11: 55 pm Friday night. – Late assignments: penalty. • 2 midterm exams and 1 final exam • Grading – Quizzes 10% – Exams 40% (2 midterm exams, 1 final exam) – Homework 20% – Projects 30%
Rebuttal Period • A period of a week (7 days) • The TA use this opportunity to address any concern and question you may have.
Course Syllabus (cont. ) • Scale – A [90, 100], B [80, 90), C [70, 80), D [60, 70), F [0, 60) – Note: In order to pass the class, you must receive at least 60% credit on the Individual Construction Projects and Homework, regardless of performance on exams. • Cheating – – All assignments have to be done individually. Students may discuss with their friends. Assignments submitted must be yours. Please do not attempt to recycle answers from the Internet (plagiarism).
Office Hours Dr. Qin’s Office hours: MWF, 9: 50 am – 10: 40 am Shelby Center for Engineering Technology, Suite 3101 E GTA: Yuanqi Chen Office: 3139 Shelby Center Office Hours: MWF 2: 00 pm – 2: 50 pm Email: yzc 0029@auburn. edu
Special Accommodations Request of special accommodations must be made through Office of Accessibility 1228 Haley Center Phone: 844 -2096 Email: accessibility@auburn. edu You need to arrange a meeting with Dr. Qin after today’s class.
Your Programming Environments • • Do you have a laptop? What operating systems are installed on your laptops? Windows, Mac OS, Linux? What IDE do you use? Eclips, j. Graps? Do you use Linux command lines?
For Next Time… Programming Environment Setup
Your Feedback Not-A-Quiz (Anonymously) 1. What are your expectations? 2. What are your career goals? 3. Write your reactions to the first day
- Slides: 36