Course Introduction

Course Introduction - 8/23/10 Introduc0on and Overview...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 8/23/10 Introduc0on and Overview ECE 3574 Applied So@ware Engineering Binoy Ravindran ECE Dept Virginia Tech ECE 3574 Fall 2010 Lecture Outline •  Course Logis0cs –  Syllabus –  Course policies, etc. •  Get started with Ch3 of Ezust ECE 3574 Fall 2010 1 8/23/10 Who is the instructor? •  Binoy Ravindran –  PhD from University of Texas (1998) •  Joined Virginia Tech in Fall 1998 •  Leads a systems research group at VT –  Major focus on systems resource management •  Scheduling, synchroniza0on, memory management, energy management, network rou0ng, high availability, concurrent/distributed programming, etc. –  Major focus on systems so@ware •  OS kernels, virtualiza0on/virtual machines, run0mes, middleware, etc. –  Supported by NSF, Office of Naval Research, Naval Surface Warfare Center, The MITRE Corpora0on, NASA, ETRI, DARPA –  9 PhD, 2 MS students; hbp://www.real ­0me.ece.vt.edu/ •  hbp://www.ece.vt.edu/faculty/ravindran.html ECE 3574 Fall 2010 Course staff (contd.) •  Instructor: Dr. Binoy Ravindran –  Office: 2040C, Torgersen Hall –  Phone: 540 ­231 ­3777 –  E ­mail: binoy@vt.edu –  Office Hours: Mondays, Wednesdays: 11AM – 12PM •  GTA: Alex Turcu –  Office: TBA –  Office Hours: TBA –  E ­mail: talex@vt.edu ECE 3574 Fall 2010 2 8/23/10 Mee0ng 0me and place •  Tuesday, Thursday, 12:30PM – 1:45PM •  GBJ 102 •  (Also, loca0on of exams) ECE 3574 Fall 2010 Course Objec0ves •  Upon comple0on, you should be able to write C++ programs that use: –  classes, inheritance, and polymorphism –  powerful design paberns (e.g., visitor, composite, serializer, command, model/view) –  efficient, high ­level programming techniques using libraries, generics, and containers –  Qt widgets, models, and views (and build graphical applica0ons) –  mul0threading to reflec0ve programming ECE 3574 Fall 2010 3 8/23/10 Course Objec0ves (contd) •  Also be able to: –  follow so@ware engineering process models (e.g., waterfall, itera0ve/incremental, spiral, open ­ source, sync ­stabilize) –  Use structured tes0ng techniques (inspired by JUnit framework; junit.org) ECE 3574 Fall 2010 Course Prerequisites •  ECE 2574 •  Solid programming ability in C++ •  Sufficient maturity –  Read libraries, APIs, documenta0on (quite a lot) –  (as you would in an industrial semng) ECE 3574 Fall 2010 4 8/23/10 Textbooks •  Required: –  An Introduc0on to Design Paberns in C++ with Qt 4, Alan Ezust and Paul Ezust, Pren0ce Hall, 2007 –  (Wait! Full text is released under OPL at: hbp://cartan.cas.suffolk.edu/oopdocbook/ opensource/) –  Comprehensive wiki page (source codes, slides, Qt library and APIs, mailing list): hbp://cartan.cas.suffolk.edu/moin/ OopDocbookWiki ECE 3574 Fall 2010 Textbooks (contd.) •  Recommended: –  Opera0ng System Concepts, 8th Ed, Silberschatz, Galvin, and Gagne, ISBN 0 ­470 ­12872 ­0, John Wiley and Sons –  hbp://www.os ­book.com/ –  Great OS book! ECE 3574 Fall 2010 5 8/23/10 Course website •  •  •  •  scholar.vt.edu Distribute HWs, projects, etc. Digital submission via Scholar Discussion forum (threaded) –  Primarily manned by the GTA ECE 3574 Fall 2010 Programming Plaporm •  Ubuntu Linux (Ubuntu 10.04; ubuntu.com) •  GNU C/C++ compiler + Qt library packages •  Several ways to install Ubuntu –  Na0vely –  Virtualiza0on (VirtualBox, VMware) –  Easy windows installer (Wubi; wubi ­installer.org) –  Backup all your files before…! –  KDevelop, GEdit, etc. •  Several IDEs for C++/Qt programming •  Detailed instruc0ons for semng up Ubuntu/Qt stack atop your OS in Scholar ECE 3574 Fall 2010 6 8/23/10 What is Qt? •  C++ had been in widespread use before its standardiza0on in ’89 •  Very mature, efficient, flexible language •  Most popular OO language up un0l mid ‘90s •  Around ‘96, Java gained favor for good reasons: –  Simpler than C++ –  Built ­in GC (no dangling pointers, memory leaks!) –  Built in GUI classes and mul0threading –  Plaporm independent (Wintel, Solaris, MacOS, Linux, etc.) –  Many Web servers provide Java APIs –  Plug ­in with JARs (instead of recompile/relink) ECE 3574 Fall 2010 C++ with Qt 4 •  Many of Java’s benefits can be achieved: –  Qt has a comprehensive set of GUI classes – faster, flexible, elegant than Java’s Swing –  Qt’s inter ­object communica0on mechanism (signals and slots) are easier than that of Java’s (Ac0on/Event/Key Listener interfaces) –  Easy itera0on (in Qt 4) with Perl like “foreach” –  Qt 4 also supports “plug in” (load code without recompile/relink) ECE 3574 Fall 2010 7 8/23/10 C++ with Qt 4 (contd.) •  However, no GC! •  Alterna0ves exist for avoiding the need to directly delete heap objects –  Containers –  Parents and children –  Subobjects –  Stack objects ECE 3574 Fall 2010 C++ with Qt 4 (contd.) •  Comes very close to Java in ease of use, convenience, comprehensiveness •  Exceeds Java in speed/efficiency –  E.g., high speed graphics ­intensive games are possible •  Great wealth of free open ­source code, promo0ng significant reuse –  Qt is extensively used in open ­source projects ECE 3574 Fall 2010 8 8/23/10 Graded Work •  Homeworks: –  About ten individual programming HWs –  300– 800 LOC each (approximately) –  80% total weight (approximately) •  Midterm Exam: 10% (open ­book, open ­notes) •  Final Exam: 10% (open ­book/notes, comprehensive) –  See syllabus for exam dates •  Leber grades are rela0ve ECE 3574 Fall 2010 Feedback from your friends… •  “I learned more from this class than all my CS classes combined” •  “…lot of work…” •  “…..read substan0al amount of documenta0on…and did lot of coding …..” •  “…learned a lot …..” •  “…very 0me consuming course…” ECE 3574 Fall 2010 9 8/23/10 Grading Policy •  No late submissions –  Must be submibed by due date/0me (digital submission via Scholar) •  No make ­up exams •  Excep0ons are only for extra ­ordinary situa0ons (e.g., illness, etc.) •  Must appeal for grading errors within one week a@er graded work is returned (by e ­mail is fine) –  To GTA for HWs –  To instructor for exams Fall 2010 ECE 3574 Honor Code Policy •  Strictly enforced •  Discussion, coopera0ve learning is encouraged •  Any copying or otherwise using another person's solu0ons to the homework problems is an honor code viola0on •  Automa0cally forwarded to Undergraduate Honor System (honorsystem.vt.edu/) ECE 3574 Fall 2010 10 8/23/10 Special Needs •  Talk to instructor for any special needs or circumstances: –  Accommoda0on for disability, religious reasons, medical situa0ons ECE 3574 Fall 2010 Course Outline •  •  •  •  •  •  •  •  •  •  Introduc0on and overview (syllabus, etc.) Introduc0on to Qt (Ch. 3, Ezust) Lists (Ch 4, Ezust) Func0ons (Ch 5, Ezust) Inheritance and polymorphism (Ch 6, Ezust) Libraries (Ch 7, Ezust) Introduc0on to design paberns (Ch 8, Ezust) QObject (Ch 9, Ezust) Generics and containers (Ch 10, Ezust) Qt GUI Widgets (Ch 11, Ezust) ECE 3574 Fall 2010 11 8/23/10 Course Outline (contd.) •  Introduc0on to processes, threads (Ch 3, 4, Silberschatz) •  Midterm •  Process synchroniza0on (Ch 6, Silberschatz) •  Concurrency (Ch 12, Ezust) •  Meta objects, proper0es, and reflec0ve programming (Ch 15, Ezust) •  Design paberns (Ch 16, Ezust) •  Models and views (Ch 17, Ezust) •  So@ware life cycle models, structured tes0ng (notes) ECE 3574 Fall 2010 12 ...
View Full Document

Ask a homework question - tutors are online