eece 310 software engineering

Download EECE 310 Software Engineering

Post on 19-Mar-2016




2 download

Embed Size (px)


EECE 310 Software Engineering. Lecture 0: Course Orientation. What is this course about?. Building program modules Programming in the large Other skills – design, documentation, and testing. Building Program modules. Abstraction mechanisms Procedures Exceptions Data abstractions - PowerPoint PPT Presentation


  • EECE 310Software Engineering

    Lecture 0: Course Orientation

  • What is this course about?Building program modulesProgramming in the largeOther skills design, documentation, and testing*

  • Building Program modulesAbstraction mechanismsProceduresExceptionsData abstractionsIteration abstractionPolymorphic abstractionsConcurrent programming


  • Programming in the largeHow to design and implement large programs

    Requirements analysis and specification


    Implementation and testing*

  • Other skillsUnderstand how individual activities are integrated into the software engineering life-cycle

    Appreciate the value of good design and sound engineering principles in software construction

    Apply sound techniques for writing specifications, building test-suites, developing design documents

    Learn how software engineering works in the real world or at least the way it should *

  • What is this course NOT about?Java language or its (or third party) libraries

    Eclipse or any other integrated development environment (IDE) or build tool

    Distributed systems, software security, databases, HCI, computer games, ...Though youll use concepts learned in this class for these*

  • How is EECE 310 different from earlier software courses (pre-requisite classes) ?APSC 160: Intro. to Computation in Eng. DesignIntroduction to programming languagesCPSC 260: Object-Oriented Program DesignData structuresIntroduction to OOEmphasis on C/C++ language

    AbstractionAdvanced OOEmphasis on JavaMastery of CPSC 260 topics assumed*

  • Why should you take this course ?*Fundamental class in object-oriented designYou will learn not just how to do it, but why do it that wayAppreciation of design and aesthetics of softwareLearn to design robust and maintainable code

    Many of the things youll learn have immediate applications (e.g., testing, specifications, design patterns)

    If nothing else, youll develop an appreciation for large-scale software development and its challenges

  • Course gradingAssignments (50%)Five assignments (10 % each)

    Exams (45 %)Mid-term (15 %) Final (30 %)

    Class participation (5%) In class activitiesPiazza*

  • Labs and Assignments*Labs in MCLD 348 starting this weekThe TAs will be there to answer questions And to grade assignments on the days they are due

    Assignments: To be done in teams of twoSame partner for all assignments preferredSame grade for both you and your partnerYou must individually be able to explain your solution

    Submission mechanicsYou must attend labs on the days the assignments are dueTAs will come to each computer and evaluate your solutionAlso, submit your code to the Tas for plagiarism checking

  • To succeed in this course *Attend the lectures and participate in activitiesWe will have active learning components in each classAsk questions, come to office hours if needed

    The concepts may seem easy or even obvious sometimes, but they are hard to apply or get rightTry to solve the recommended exercises in the bookDo the assignments yourself and dont just hack themUnderstand the solutions to the quizzes/mid-term

    You should expect to spend a significant amount of time outside class working on the assignments

  • Administrivia Instructor: Karthik Pattabiraman (

    TAs for the course: Frolin Ocariza Jr.Anna Thomas

    Office hours:Karthiks office hours: Tuesdays 1 to 2 PMAnna and Frolin: During labs on Wed, and Thurs