DTSC 5565/INFO 4900: Software Engineering for Data Scientists

Fall Semester 2023 Course Information

Instructor: Dr. Sharad Sharma
Department of Inforamtion Science
University of North Texas

E-MAIL: sharad.sharma@unt.edu

TA: Ms. Rishitha Reddy Pesaladinne

CLASS HOURS:Tuesday: 5:30 PM to 8:20 PM
CLASS LOCATION: Room Number NTDP K120
INSTRUCTOR OFFICE HOURS:Tuesday: 3:30 PM - 5:30 PM or Other Times by Appointment
INSTRUCTOR OFFICE LOCATION: UNT Discovery Park Building Room E292C

Required Text


Somerville, Ian, Addison-Wesley Software Engineering 10th Edition, Massachusetts: Addison Wesley, ISBN:0133943038, ISBN-13:9780133943030


Reference Book(s):


COURSE DESCRIPTION

This course introduces the student to major topics in software engineering such as: requirements specification, analysis and design, testing, project management, and implementation. Additional topics such as software life cycle models, the Unified Modeling Language (UML), agile software development techniques, configuration management, change control, and project documentation will be discussed.

Prerequisite: DTSC 5501/ INFO 3020


Course Related Links

* Syllabus
* Flyer
* Assignments (On Canvas)

Project Proposal

Project Groups


Weekly Time Schedule

Date Topics Chapters Assignments

22-Aug

Introduction

Chapter 1

 

29-Aug

Software processes

Chapter 2

 

5-Sep

Agile software development.

Chapter 3

Assignment 1

12-Sep

UML Modeling & Object Oriented Design

 

Quiz 1

19-Sep

Requirements engineering.

Chapter 4

Project Proposal

26-Sep

System modeling

Chapter 5

3-Oct

Architectural design

Chapter 6

 

10-Oct

Design and Implementation Chapter 7

 

17-Oct

Mid Term Exam

 

 

24-Oct

Software Testing

Chapter 8

Project Demo 1 & Report 1

31-Oct

Unit Testing (Lab 1) , (Lab 2) (Lab 3)

Chapter 8

Quiz 2, Assignment 2

07-Nov

Software Evolution

Chapter 9

 

14-Nov

Software Management, Safety Engineering

Chapter 12, 22

  Assignment 2 due (Submit on Canvas)-no extension

21-Nov Thanks Giving Break No Class  
28-Nov Security Engineering Chapter 13  

05-Dec

Final project presentation

Project Demo 2, Report 2

 

12-Dec Final Exam  

STUDENT EXPECTED OUTCOMES: Upon completion of this course, the student will be able to:

EVALUATION:  Following is the Evaluation system for the Final Grade.  Each assignment will be graded.  Students are responsible for completing them as scheduled.

  1. Two Assignments                                           20%
  2. Quizzes (2)                                                      10%
  3. Mid-Term Exam                                              20%
  4. Final Exam                                                      20%
  5. Final Project                                                    30%

Final Project, Mid-term and Final exams are mandatory. 


Assignments: One assignment given prior to the mid-term exam and one assignment given after the mid-term exam.

Final Project: The purpose of the course project is to provide the students with the knowledge of software engineering methodology and the skills to apply it. The project consists of two iterations, both focused around the same software product. The first iteration is exploratory and represents the first attempt at developing the proposed software product. The second iteration is development and also includes revision of the project goals. The deliverables for the first and second iteration are reports and demos.

GRADING:  Academic dishonesty will result in grade F.  The following grade scale will be used:

90 % - 100% = A
80 % -  89%  = B
70 % -  79%  = C
60 % -  69%  = D
0   -    59%    = F

Final grades will be computed based upon credits earned for all the five components mentioned above.


USEFUL LINKS

  1. Junit tutorial

    1. JUNIT tutorial 2

    2. Junit with NetBeans IDE 6.0 tutorial

    3. Testing with JUnit (Book)

    4. JUnit - Tutorial

    5. Junit test case

    6. Class Assert API

    7. JUnit 4.0 Example

    8. Introduction to testing Java programs with JUnit

    9. JUnit assertTrue

    10. Eclipse, an IDE for Java

    11. JUnit, a unit testing environment

    12. Junit 5

    13. JUnit Jupiter

  1. How to Develop a Responsibility Allocation Matrix

  2. Computer Science vs. Software Engineering