SEDS 481

Software Engineering and Data Science Primer I

Basic computer knowledge, history of computing, terms and definitions, system components and processes, computer architecture, data storage, computer networks and internet, software engineering, software engineering practices, unified modelling language, unit testing, problem solving and algorithm design, data structures, application fields of computers.

Course Objectives:

1. Developing a common understanding about computer science,

2. Gaining ability to describe, analyze and solve the problems,

3. Teaching the algorithmic thinking and design in a higher level,

4. Gaining basic knowledge about computer architecture, programming languages, data storage, software engineering and computer networks,

5. Teaching the application fields of computers.

Recommended or Required Reading:

J. G. Brookshear. Computer Science An Overview. 7th Ed. 2002. Addison-Wesley.

Volker Gruhn, Rüdiger Striemer, The Essence of Software Engineering. Springer Cham, doi.org/10.1007/978-3-319-73897-0, ISBN: 978-3-319-73896-3. Published: 04 July 2018

Learning Outcomes:
1. To learn about the history of computing
2. To learn design of algorithms
3. To have principle knowledge about programming languages and familiarity of different programming languages
4. To learn the principles of computer networks
5. To have basic knowledge about different data analytics methods
6. To have general knowledge about software engineering concepts and practices
7. To have principle knowledge about the software architecture
8. To learn the application fields of the computers
Topics
Introduction to software engineering
Algorithms
Data abstraction
Operating systems
Computer Networks and Internet
Programming languages
Programming languages cont.
Data structures
OOP fundamentals and design
Software engineering and design
UML
Software architecture
Unit Testing
General evaluation

Grading:

Homework Assignments: 20%

Literature Review and Reading Assignments: 30%

Final Exam: 50%