Kobe Institute of Computing, Syllabus 2023

1. Course Code2207
2. Course Title
F50e: Introduction to Computer Software
3. Teacher
ITO, Mamoru
4. TermFall 2
5. Course Requirements (Courses / Knowledge for this course) and Important Information
None

6. Course Overview and Objectives
You will learn the fundamentals of the processes and techniques required to develop anddeploy software systems. This course also discusses the latest technologies that aredriving the digital transformation of our society. Through this course, you will understandthe characteristics of software and the social environment surrounding software, and you
will be able to develop your decision-making and behavioral skills to deal with variousproblems you will face in software projects.
7. Course Outline
1 Basic computer principles
2 Data structures and algorithms
3 Digital Transformation - Cloud computing and web design
4 Digital Transformation - Machine learning and blockchain
5 Software engineering and ethics
6 Software development processes
7 Software requirements
8 Software design
9 Software testing and quality
10 Object-Oriented concepts
11 Introduction to UML - Behavior diagrams
12 Introduction to UML - Structure diagrams
13 UML modeling exercise14 UML modeling exercise
15 Modeling exercise presentation
16 Term-end examination (multiple-choice and open-book format)
8. Textbooks (Required Books for this course)
None

9. Reference Books (optional books for further study)
Bourque, Pierre, et al. Guide to the Software Engineering Body of Knowledge. 2014.

10. Course Goals (Attainment Targets)(1) Have a basic understanding of software development life cycle and process models(2) Utilize basic techniques in software analysis and design(3) Acquire practical decision-making skills required for software project management(4) Deepen an understanding of social environments surrounding software development(5) Analyze the ethical issues in software development
(6)
(7)
(8)
11. Correspondence relationship between Educational goals and Course goals
Educational goals of the school
Course Goals
High level ICT Basic academic skills(1), (2)Specialized
knowledge
andliteracy(1), (2)skillsAbility to continually improve own strengths(2)
Problem setting(3), (4)Ability to discover andHypothesis planning(3), (4)
Human skill resolve the problem inHypothesis testing(TankyusocietyPracticeskill）
Fundamental
Ability to step forward(3)
Ability to think through(3), (4)Competencies for
Ability to work in a team(1)
Working Persons
Professional ethics(3), (4), (5)12. Evaluation
Goals
Evaluation method & point allocation
examination
Quiz
Reports Presentation Deliverables
Other(1)
〇〇〇〇
(2)
〇〇〇〇
(3)
〇〇〇〇
(4)
〇〇〇
(5)
〇〇〇
(6)
(7)
(8)
Allocation
30
30
15
1015
13. Evaluation Criteria
Examination
Multiple-choice exam is used to assess students' understanding andapplication of the course goals. This is an open-book exam that allows
students to bring in their own materials and does not require knowledge ofthe subject matter.
Quiz

Multiple-choice quizzes are used to evaluate the students' comprehension
and application of the content in each class. As this is an open-book test,
no knowledge is required.

Reports

Evaluate in terms of the appropriateness of the description, the structure of
the report, the validity of the argument, and the originality of the proposal.

Presentation

Evaluate the content of the presentation in terms of its purposefulness, thestructure of the presentation, the relevance of the argument, and theoriginality of the proposal.

Deliverables

Evaluate the diagrams and documents created in terms of relevance,clarity, and objectivity.

Other14. Active Learning
Hourly percentage of active learning within the whole class time40%
1 Active learning such as problem solving assignment using the knowledge All the timeand skills acquired in class.
2 Active learning such as group works and discussions.

All the time

3 Outcome presentations and feedbacks.

Sometimes

4 Students actively make decisions on how the class should be conducted. Not at all
15. Notes
This course provides the course materials on Moodle.

16. Course plan(Notice) This plan is tentative and might be changed at the time of delivery

Lesson 1: Basic computer principles

Lecture/Discussion
90 minSoftware runs on a computer. A basic knowledge of computers will improve yourunderstanding of software development. In this lesson, we will learn how a computer works.
- Introduction- Computer organization (CPU, memory, clock)- Von Neumann architecture- Memory hierarchy- Program performance equation
Lesson 2: Data structures and algorithms

Lecture/Discussion
90 minData structures and algorithms should be considered when designing a computer program.
This lesson introduces students to data structures and algorithms.
- Number system- Address space- Major data structures – array, list, stack, queue, and tree
- Algorithms and computational complexity

Lesson 3: Digital Transformation - Cloud computing and web
Lecture/Discussion
design90 minA variety of digital technologies are being used to drive digital transformation (DX). Thislesson provides an overview of DX, followed by the basics and latest trends in cloudcomputing and web technologies.
- What is Digital Transformation (DX)?
- Strategy first- Cloud computing- Web technologies

Lesson 4: Digital Transformation - Machine learning andLecture/Discussion
blockchain
90 minThis lesson focuses on machine learning and data science, among the various digitaltechnologies used to drive digital transformation (DX). We will discuss the growing
opportunities and challenges of these technologies.
- Basics of Machine learning and data science- AI and society- Blockchain technologies- web3

Lesson 5: Software engineering and ethics

Lecture/Discussion
90 minWith the popularization of computers, software is becoming increasingly important. We willdiscuss the reality surrounding software development after understanding thecharacteristics of software and learning the necessity of software engineering.
- Features of software- Importance of software- Environment surrounding software development- Role of software engineering and ethics

Lesson 6: Software development processes

Lecture/Discussion
90 minA "process" can be defined as "a set of related or interacting activities that transform inputs
into outputs. A good process is needed to produce good outputs. We will get an overview ofsoftware life cycle process models and the importance of process improvement.
- Definition of software process- Life cycle models- Present situation and issues on software process- Meaning of software improvement

Lesson 7: Software requirements

Lecture/Discussion
90 minThe role of software engineers is to realize the requirements of customers and users byusing the software. But their requirements are sometimes ambiguous and lack consistency.
We should acquire their requirements exhaustively and analyze them systematically. We
will marshal the concepts of requirements and flow of requirement analysis.
- Difference between needs wants and demands- Functional requirements and non-functional requirements- Requirements analysis techniques- Requirements modelingLesson 8: Software designLecture/Discussion
90 minThe role of software engineers is to realize the requirements of customers and users byusing the software. But their requirements are sometimes ambiguous and inconsistent. We
should collect their requirements thoroughly and analyze them systematically. We will
review the concepts of requirements and the flow of requirements analysis.
- Design viewpoints- Data Flow Diagram (DFD)- State Transition Diagram (STD)- Entity Relationship Diagram (ERD)
Lesson 9: Software testing and qualityLecture/Discussion
90 minSoftware testing and quality management are becoming increasingly important because
software defects have a significant impact on society. In this lesson, we will learn the basic
concept of software testing and quality management.
- What is software testing?
- Major testing techniques- Quality and grade- Software quality model- Quantitative quality management
Lesson 10: Object-Oriented paradigm

Lecture/Discussion
90 minThe object-oriented methodology is gaining popularity in connection with the increasing sizeand complexity of software. This methodology is used not only for programming, but alsofor requirements analysis and software design. This lesson focuses on object-oriented
analysis and design using UML modeling.
- A brief history of object-oriented methodology- Object-oriented model- Object-oriented principles- Object-oriented analysis
Lesson 11-12: Introduction to UML

Lecture/Exercise
180 min
UML is becoming widely used with object-oriented technology. UML stands for Unified
Modeling Language, a useful tool for analyzing and designing complex software systems
and businesses. We will learn how to describe important diagrams.
- What is UML?
- Behavior diagrams- Structure diagrams

Lesson 13-14: UML modeling exercise

Exercise: 180 min

UML is used to model businesses and processes and to analyze, design, and implement
software systems. In this lesson, we will focus on different businesses, and through group
work, we will model each business using UML.

Lesson 15: Presentation

Presentation 90 min

Each group conducts a presentation of the results of UML modeling.

Term-end Examination

Examination: 90 min

A multiple-choice exam will be administered to assess each student's level ofunderstanding. Your answers to these questions will all be scored by computer.