0% found this document useful (0 votes)
53 views4 pages

CSC 263

This document outlines the details of the Software Engineering course CSC 263 to be taught in the fall 2023 semester at Haigazian University. The course will introduce students to software engineering principles and techniques for developing quality software. It will cover topics such as requirements specification, design, testing, and project management. Students will work in teams on a semester-long software project and be evaluated based on this project, a midterm exam, and a final exam. The goal is for students to learn skills needed to successfully plan and develop medium-scale software systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views4 pages

CSC 263

This document outlines the details of the Software Engineering course CSC 263 to be taught in the fall 2023 semester at Haigazian University. The course will introduce students to software engineering principles and techniques for developing quality software. It will cover topics such as requirements specification, design, testing, and project management. Students will work in teams on a semester-long software project and be evaluated based on this project, a midterm exam, and a final exam. The goal is for students to learn skills needed to successfully plan and develop medium-scale software systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

Haigazian University

Computer Science Department

Course Number: CSC 263


Course Title: Software Engineering
Course Instructor: Ali Moukallid
Semester: Fall 2023-2024
Office: Mehagian 405
Time: MWF 10:00-10:50

Course Description and Objectives:


The aim of Software Engineering is the production of quality software, software that is
delivered on time and within budget, and that satisfies all its requirements. This course
presents an in-depth treatment of many software engineering topics including: software
engineering paradigms, requirements specification, functional design, object-oriented
design, software verification, and maintenance. The main objectives of the course are: 1-
To introduce students to the principles, concepts, methods, and techniques of the Software
Engineering approach to producing quality software systems. 2- To provide knowledge
and training in the methods and techniques that are the basis for the design and
development of medium to large-scale software systems. 3- To emphasize on team work.

Required textbook:
Software Engineering. Somerville. Addison Wesley. 10th Ed.

www Link to free download of the book


 https://mycourses.aalto.fi/pluginfile.php/1177979/mod_resource/content/1/
Sommerville-Software-Engineering-10ed.pdf
Further Reading
 R. Pressman. Software Engineering. McGraw-Hill.

Pre-requisites:
High-level programming language.

Course Topics:
 Course organization
 Definition and introduction of software engineering; attributes of good software.
 Historical aspects, maintenance aspects, and team programming aspects.
 Professional and Ethical responsibilities.
 The standard life-cycle model: Requirements, specifications, architectural design,
detailed design, implementation and testing, coding, maintenance, retirement.
 Problems with software. Requirements engineering. CASE
 Suggestions for projects and formation of project teams
 Software life-cycle models: Build-and-Fix model, waterfall model, rapid
prototyping model, Spiral model, and incremental model.
 Project Requirements Presentations
 Architectural Design, design and implementation issues. GUI.
 Testing and validation: Testing phases (Reqs, specs, design, implementation,
integration), module testing, black-box testing, white-box testing…
 Project Design Presentations
 Software management and planning: Project planning and scheduling, quality
issues, time and cost estimation, training and documentation, managing people.
 Software Evolution and Maintenance.
 Final Project Presentations.

Instructional approach:
Lectures will cover the textbook material and may cover some other supplemental
materials. Lectures will not repeat all of the reading material, so do not simply skim
the readings! The lectures will not cover every part of every chapter and some lecture
materials will not appear in the book. As a general principle, the student will be
responsible for the topics covered in lectures and for assigned sections of the
textbook.

Grading:
You will be required to participate in a team project and to make both written and oral
reports on this work. Your grade in this course will be determined by your scores on
the assignments and exams distributed as follows:
Project 45%
Midterm Exam 25%
Final Exam 30%
Late work will be penalized, as will evidence of cheating in any form.

Project Notes and Grading


 Will be using Agile methodology
 Will introduce Python-Django as development tool
 Will introduce “Trello” as software management tool
 Will form teams of students for development
 Project work will be graded on a number of criteria, including conformance to
prescribed content and format, grammar, style, readability, technical content,
and use of technical notations and diagrams. There are two major aspects to
the project grading, described below.
 In grading Tasks and Stories, I will consider both content and presentation.
The content aspect includes completeness, correctness, and conciseness of
information. The presentation aspect includes spelling, grammar, punctuation,
and layout. We will apply the same level of professionalism in this course that
your supervisors will expect at work.

Course Learning Outcomes:


At the completion of this course, the student will able to:
 explain the software development life cycle and basic process models
 apply requirements elicitation, specification, and validation techniques
 design medium‐scale software systems
 plan small to medium size projects
 use CASE software tools
 develop professional documents

Student Outcomes addressed in this course:


 Definition of software engineering, its need, and ethical and professional
issues for software engineers
 Software development life cycle; process activities; process models: waterfall,
incremental, reuse-oriented, spiral, prototyping; agile software development
 concepts of user and system requirements, functional and non-functional
requirements
 Requirements engineering, requirements elicitation techniques, shortcomings
of informal requirements, requirements validation, requirements management,
requirements documentation
 Requirements specification using structured methods: form-based, tabular
 Requirements specification using UML’s use cases and sequence diagrams
 System models: context, interaction, structural, behavioural/statecharts
 Software architectural design, characteristics, reuse, decomposition styles,
structured design, object models and relations, architectural patterns
 Object oriented design: object identification, attributes, operations, relations
and interfaces; design patterns; implementation issues: reuse, configuration
management
 User interface design: human factors and design principles
 Software testing process, unit/component/system testing, release testing, user
testing
 Basic software project management such as scheduling, planning, and team
work
 Writing sound technical software engineering documents

Attendance Policy:
1. Students should attend all lectures and sessions.
2. Students are held responsible for all the material presented in the classroom, even
during their absence.
3. Students can miss no more than the allowed number of absences.
4. Students who exceed the allowed number of absences must withdraw from the
course; otherwise, the course grade will be recorded as “XF”.

Missed Exams:
No makeup exam will be given for a missed scheduled exam. Exceptional emergency
cases will be dealt with accordingly.

Computer Courses:
Any student found either making copies of our network files, or using an unauthorized
copy of our programs, or trying to infect and misuse our computers and internet
resources will be asked to withdraw from this course.

Academic Honesty:
Each student is responsible for performing academic tasks in such a way that honesty
is NOT in question.
Plagiarism on assignments, project work, and exams is a serious offense. If plagiarism
is detected, a student will be subject to penalty, which ranges from receiving a zero on
the assignment concerned to an “F” in the course.
More on Attendance, Conduct, & Academic Honesty: Refer to pp. 32-33 of the
Haigazian University Catalog, rules of conduct concerning academic honesty are
stated. They are applied in this course.
Plagiarism:
Plagiarism is committed when you take personal credit for work done by someone
else, be it your friend, a classmate, or an author’s publication, hard copy or electronic.
In citing any information from the literature, you need to provide an accurate
reference, fully acknowledging the source, the author, and the year. Even when the
information is completely rephrased in your own words, you still need to
acknowledge the original source.

Additional Remarks
 Reading the textbook is a must.
 Deadlines for the assignments must be respected.
 Make-ups and Incomplete: students are not automatically entitled to make-
ups; F will be given until reasons ( in writing and within one week of absence)
are presented and approved.
 Some of the exam questions will be based on class discussion and
assignments.
 No mobile phones in the classroom.

You might also like