About the Instructor
COMP 2404
Introduction to Software Engineering ● Biography:
➢ BCS and MCS at U. Ottawa, graduating in early 1990s
➢ worked in high-tech industry for nearly 10 years
Bell Canada, SHL Systemhouse, Nortel
1. Welcome
➢ PhD in Computer Science at Carleton in 2005-2009
2. About the instructor specialized in wireless network security
3. About the course ➢ full-time instructor (teaching professor) in SCS since 2009
teaching software engineering and systems programming
4. Course page
5. Course outline ● My main goal: your success as a software professional
6. Course policies ➢ beyond this course, to graduation, and into your future
1 ©2018 Christine Laurendeau 3
Welcome About the Instructor (cont.)
● Instructor: Dr. Christine Laurendeau ● Professional success requires:
➢ just met me?
it’s customary to be more formal ➢ knowing how to produce quality work
please call me Dr. or Prof. Laurendeau follow the instructions
give the work enough time and focus to do it well
➢ already know me?
we can be more informal, but still professional!
➢ a professional attitude
it’s fine to call me Christine (or Dr. Christine)
to learn new concepts, you have to allow others to teach you
learn to accept constructive feedback
● Lecture schedule: Tue. and Thu. 16:00 - 17:30 ● it’s for your professional development, it’s not personal
● it’s your work and knowledge that are evaluated, not you as a person
● nobody “hates” you, and nobody is “out to get you”
● Tutorials: begin next Wed. Sept. 12 learn to take responsibility for yourself and for your work
➢ full schedule is posted in cuLearn
➢ no tutorials the week of the midterm
©2018 Christine Laurendeau 2 ©2018 Christine Laurendeau 4
About the Course Course Topics
● What is software engineering? ● Basics of C++ development
➢ Linux programming environment, programming conventions
● In this course, we focus on:
● Basics of C++ classes
➢ object-oriented (OO) design ➢ simple classes, constructors, destructors
it’s important to know how to write code properly
➢ memory management, pointers
independent of programming language or syntax
➢ C++ language ● Basics of OO design
widely used in the industry, including game development ➢ information hiding
quirky language that needs formal introduction ➢ object design categories
➢ documenting your design, UML class diagrams
©2018 Christine Laurendeau 5 ©2018 Christine Laurendeau 7
About the Course (cont.) Course Topics (cont.)
● Why is software engineering important? ● Essential OO techniques
➢ encapsulation
➢ it’s not enough to “just” get a program working ➢ inheritance
➢ design patterns
➢ your code has to be well designed and well written
easy to understand by other developers
➢ polymorphism
easy to modify ➢ overloading
easy to adapt to new platforms and applications ➢ templates
➢ exception handling
➢ very few professional developers write code for end users
● C++ library
➢ most users of your code will be other developers
➢ STL, files and streams, C++11 features
using your classes in their part of the code
modifying your code for upgrades or bug fixes
©2018 Christine Laurendeau 6 ©2018 Christine Laurendeau 8
Learning Objectives Course Page
● We will learn about: ● Check out the course page in cuLearn
➢ course notes
➢ object oriented design ➢ coding examples
how to organize your data and your logic
data abstraction and encapsulation
● Midterm and final exam cover everything
➢ implementation ➢ in course notes and annotations made during lectures
code reuse and robustness ➢ in material conveyed verbally during lectures
C++ language ➢ in coding examples done in class
➢ in assignments and tutorials
➢ this is not a full software engineering course
that will be COMP 3004
● Course notes are never complete
➢ you must attend lectures and take notes
©2018 Christine Laurendeau 9 ©2018 Christine Laurendeau 11
Programming Environment Course Outline
● We will use a virtual machine (VM) for this course ● You must read the course outline thoroughly
➢ use of the VM is mandatory for assignments and tutorials
● It contains:
● You need to install: ➢ expectations
➢ VirtualBox ➢ evaluation scheme
➢ the official COMP 2404 virtual machine ➢ information about tutorials
➢ course policies
● Details found in cuLearn
©2018 Christine Laurendeau 10 ©2018 Christine Laurendeau 12
Office Hours
● This is the only time to get one-on-one attention
● Instructor office hours
➢ priority to questions regarding:
course material
confidential issues, academic advising
problems with TAs or other students
➢ please be prepared with specific questions!
● TA office hours
➢ priority to questions regarding:
understanding and completing the assignments
©2018 Christine Laurendeau 13
Communication Policy
● Questions about assignments:
➢ you must post assignment questions in cuLearn
● Problems with your code
➢ see a TA during office hours
● Questions about course material
➢ see instructor during office hours
● Emailing the instructor
➢ only regarding confidential matters
➢ never for assignment questions or problems -- post in cuLearn
➢ be professional
©2018 Christine Laurendeau 14