Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

ADMAS UNIVERSITY

FACULTY OF INFORMATICS
DEPARTMENT OF COMPUTER SCIENCE
COURSE OUTLINE

Course Title:Rapid Application Development


Course Code: CoSc239
Credit Hours: 3+lab Lecture Hours: 2
Laboratory Hours: 2 Prerequisites: CoSc132
Course Description
The course introduces students to the basic principles of .NET platform-based
applications and their use. Topics to be covered include: introduction to Visual Basic
programming environment; introduction to the integrated development environment;
building an application; variables, constants, data types, and expressions; modifying
applications; looping and multiple forms; using menus, dialogs, procedures, functions,
and arrays; debugging, executable files, and distribution.
Course Objectives
Upon completing the course, students will
▪ know and understand visual programming,
▪ know how to develop application software using Visual Basic,
▪ understand and design user interface,
▪ know how to create database connectivity using Visual Basic, and
▪ design, develop and implement application software for real world problems using
Visual Basic.Net by connecting to a database.
Course Content
Chapter 1: Introduction to Visual Basic Programming Environment
1.1 Visual Basic.Net and the Visual Basic programming language
1.2 Program development
1.3 Rapid application development
Chapter 2: Introduction to the Integrated Development Environment
2.1 Basic components of Visual Basic integrated development environment
2.2 Customizing the environment
2.3 Setting properties on controls and navigating the code window
2.4 Modifying code in a project
2.5 Running a project
Chapter 3: Building an Application
3.1 Designing an application
3.2 Working with forms
3.3 Using controls
3.4 Changing property values of controls
3.5 Writing and document code
3.6 Evaluating and modify a program
Chapter 4: Variables, Constants, Data Types, and Expressions
4.1 Declaring variables and constants
4.2 Using variables and constants within code
4.3 Describing data types
4.4 Converting between data types
4.5 Coding a form load event procedure
4.6 Using the option strict statement
4.7 Arithmetic expressions
4.8 Order of operator precedence in code
4.9 Pmt and format functions
Chapter 5: Modifying Applications
5.1 ComboBox control
5.2 If…Then…Else… structure and nested structures
5.3 Selection structure
5.4 Validation of input
5.5 Strings in code
5.6 Rational and logical operators in code
Chapter 6: Looping and Multiple Forms
6.1 Adding forms to a project
6.2 Changing default of forms
6.3 Displaying item lists on forms
6.4 Using form controls
6.5 Working with collections in code
6.6 Do Until, Do While loops
6.7 For…Next and For Each…Next loops
Chapter 7: Using Menus, Dialogs, Procedures, Functions, and Arrays
7.1 Adding menus to applications and shortcuts
7.2 Common dialog boxes in an application for user interaction
7.3 One- and multidimensional arrays in code
7.4 Function procedure to return a value
7.5 Sub-procedures
Chapter 8: Debugging, Executable Files, and Distribution
8.1 Differences among syntax, logic, and run-time errors
8.2 Locate errors during design and run time
8.3 Setting breakpoints
8.4 Stepping to execute one statement at a time
8.5 Evaluating variables and expressions
8.6 Changing values of variables using debugging tools
8.7 Examining variables and objects
8.8 Creating executable files
8.9 Creating a setup program to distribute a Windows application
Teaching Methods
- Lecture, Lab

Assessment Methods:
Assessment Methods Points
Test 1 10%
Test 2 10%
Individual or group assignment 10%
Presentation of individual/group work 10%
Class activity and participation 10%
Final Exam 50%
Grand total 100%
Textbook
- Steven Holzner: “Visual Basic .Net Programming Black Book”, Dream Tech Press.
References
- Jeffrey R. Shapiro: “Visual Basic.Net”, Tata McGraw Hill, 2007.
- McCarter David: “Visual Basic.Net Complete”, APRESS, USA.
- Willis Crossland Blair: “Beginning VB.Net 2003”, Dream Tech Press.
ADMAS UNIVERSITY
FACULTY OF INFORMATICS
DEPARTMENT OF COMPUTER SCIENCE
COURSE OUTLINE
Course Title: Object-Oriented Software Engineering
Course Code: CoSc348
Credit Hours: 3 Lecture Hours: 3
Laboratory Hours: - Prerequisites: CoSc 343
Course Description
This course covers the concepts, skills, and techniques of object-oriented systems analysis
and design. It covers methodologies such as prototyping, task management, data
management, object-oriented project management. The focus is on the project planning and
analysis phases of the software development process using the Rational Unified
Methodology and the Unified Modeling Languages. Students will create the artifacts and
diagrams necessary to complete a feasibility analysis, project work plans and estimates, and
system proposals.
Course Objectives
At the end of the course, students will
▪ describe and use software modeling artifacts like use case, sequence diagram, and
activity diagram,
▪ be able to develop models using the UML notation,
▪ relate analysis and design artifacts,
▪ apply an iterative agile process,
▪ be able to analyze requirements with use cases,
▪ be able to create domain models,
▪ describe system testing techniques and methods,
▪ design object solutions with patterns and architectural layers, and
▪ document and present project deliverables.
Course Content
Chapter 1: Introduction to Object-Oriented Analysis and Design (OOAD)
1.1 Software development life cycle
1.2 What is UML and its history
1.3 What is OOAD?
Chapter 2: Object-Oriented Analysis
2.1 Requirement gathering.
2.2 Requirement modeling
2.3 Formulate alternative solutions
2.4 System modeling (Use case modeling, Sequence diagram, Activity diagram)
2.5 User interface prototyping
Chapter 3: Logical Architecture
3.1 What is a logical architecture?
3.2 UML Package Diagrams
Chapter4: Object-Oriented Design
4.1 Layering classes
4.2 Design models
4.3 Persistence Models
4.4 Component and Deployment diagrams
Chapter 5: Design Patterns
Chapter6: Implementation and Testing
6.1 System Implementation
6.2 System Testing
Teaching Methods
- Lecture, Project
Assessment Methods:
Assessment Methods Points
Test 1 10%
Test 2 10%
Individual or group assignment 10%
Presentation of individual/group work 10%
Class activity and participation 10%
Final Exam 50%
Grand total 100%
Textbook
- Bernd Bruegge and Allen H. Dutoit:“Object-Oriented Software Engineering
Conquering Complexity and Changing Systems”, Prentice Hall, 2000.
References
- Craig Larman:“Applying UML and Patterns”, Prentice Hall, 2005.
- G. Booch, J.Rumbaugh, and I. Jacobson:“The Unified Modeling Language User
Guide”, 2nd edition, Addison Wesley, 2005.
- Jim Arlow and Ila Neustadt:“UML2 and the Unified Process”, Addison Wesley, 2005.
- Jacobson:“Object-Oriented Software Engineering: A use-case driven Approach”.
ADMAS UNIVERSITY
FACULTY OF INFORMATICS
DEPARTMENT OF COMPUTER SCIENCE
COURSE OUTLINE
Course Title: Software Project Management
Course Code: CoSc 441
Credit Hours: 3 Lecture Hours: 3
Laboratory Hours: - Prerequisites: CoSc343
Course Description
Concepts and issues of software project management and the practical benefits of project
planning and management together with resource management; project planning and
management, estimation models and techniques, software project scheduling; software
project tracking, metrics, and system performance evaluation; managing expectations of
managers, clients, team members, and others; determining skill requirements and staffing;
cost-effectiveness analysis; reporting and presentation techniques; management of
behavioral and technical aspects of a software project; change management; software tools
for project tracking and monitoring, team collaboration techniques and tools.
Course Objectives
At the end of the course, students will be able to
▪ develop a comprehensive software project plan,
▪ estimate costs for a software project,
▪ measure software project progress, productivity, and other aspects of the software
development process,
▪ understand risk management and dynamically adjust project plans,
▪ apply change management processes, and
▪ use standards in project management.
Course Content
Chapter 1: Introduction to Software Project Management
1.1 Software Project Management Basics
1.2 Role of a Software Project Manager
1.3 Software Project Resources
1.4 Phases of a Software Project
Chapter 2: Introduction to PERT/CPM
2.1 Work Breakdown Structure
2.2 Network diagramming
2.3 Critical Path
2.4 PERT Probability
2.5 Crashing
2.6 Resource Leveling
Chapter 3: Software Effort Estimation
3.1 Estimation Basics
3.2 LOC Method
3.3 Function Points
3.4 Activity Based Estimation
3.5 COCOMO
3.6 Uncertainty in estimation
Chapter 4: Software Project Planning
4.1 Management
4.2 Risk
4.3 Configuration
4.4 Quality Assurance
4.5 Induction
4.6 Schedule
Chapter 5: Configuration Management
5.1 Configuration Management Basics
5.2 Environment for Configuration Control
5.3 Configuration Control vs. Version Control
5.4 Code Management
5.5 Change Management
5.6 Information Management
Chapter 6: Quality Assurance in Software Projects
6.1 Quality Basics
6.2 Quality Assurance Activities in Software Projects (standards and processes)
6.3 Quality Control Activities in Software Projects (Verification, Validation,
Quality Metrics)
6.4 Introduction to ISO 9000, SEI – CMM Maturity Levels, Six Sigma
Chapter 7: Productivity Aspects
7.1 Productivity Basics
7.2 Productivity Measurement and Metrics
Chapter 8: Human Factors and Leadership
8.1 Motivation
8.2 Communication
8.3 Handling Difficult People
8.4 Leadership
8.5 Team Dynamics
Chapter 9: Progress Tracking and Control
9.1 Progress Evaluationand Reporting
9.2 Scope Management
9.3 Risk Mitigation
Chapter 10: Software Project Closeout
10.1 Software Project post-mortem
10.2 Collection of re-usable Components
10.3 Draw lessons from the good and bad Practices of the Software Project
10.4 Project-End Audit
Chapter 11: Organizational Support for Effective Software Project Management
11.1 Recognition as a Specialist Discipline
11.2 Organize Knowledge Repository
11.3 Processes, Standards and Guidelines
11.4 Training
Teaching Methods
- Lecture, Assignment
Assessment Methods:
Assessment Methods Points
Test 1 10%
Test 2 10%
Individual or group assignment 10%
Presentation of individual/group work 10%
Class activity and participation 10%
Final Exam 50%
Textbook
- Olson, David L.: “Introduction to Information Management Systems”, 2001.
References
- K. Schwalbe: “Information Technology Project Management”, 3rd edition, Thompson,
2003.
- S. Humphrey: “Managing the Software Process”, Addison-Wesley, 1989.
- N. Whitten: “Managing Software Development Projects: Formula for Success”, 2nd
edition, Wiley, 1995.
ADMAS nnbnjkio
FACULTY OF INFORMATICS
DEPARTMENT OF COMPUTER SCIENCE
COURSE OUTLINE
Course Title:Formal Language Theory
Course Code: CoSc471
Credit Hours: 3 Lecture Hours: 3
Laboratory Hours: - Prerequisites: CoSc 212
Course Description
The course aims to develop the theoretical foundations of computer science through study of
mathematical and abstract models of computers and the theory of formal languages and use
of various abstract machines. Topics to be covered include: introduction to the theory of
computation (sets, functions and relations, graphs and trees, languages, grammars,
automata); finite automata (deterministic and nondeterministic finite automata, equivalence
of deterministic and non-deterministic finite automata, reducing number of states in finite
automata); regular languages and regular grammars (regular expressions, connection
between regular expressions and regular languages, regular grammars); context free
languages (context free grammars, parsing and ambiguity, context free grammars and
programming languages); simplification of context free grammars and normal forms; push
down automata (nondeterministic push down automata, push down automata and context
free languages, deterministic push down automata and deterministic context free languages).
Course Objectives
At the end of the course, students will
▪ know the concepts formal languages, formal grammars, and automata,
▪ be introduced to the mathematical notation of sets, graphs, and trees,
▪ understand about (Finite) Automata concepts,
▪ study and understand about grammars, languages and normal forms, and
▪ be introduced to the mechanism of Turing Machine.
Course Content
Chapter 1: Basics
1.1 Overview of languages: natural vs. formal
1.2 Review of set theory and relations (definition, operations, cardinality and
countability)
1.3 Relations and functions (basic definition of relations, equivalence relation;
functions: into, onto, one-to-one, bijective)
1.4 Mathematical induction
1.5 Graphs and trees
1.6 Strings and languages
Chapter 2: Introduction to Grammars
2.1 Grammars (introduction)
2.2 Phrase Structure Grammar (PSG) and language; derivation
Chapter 3: Regular Languages
3.1 Regular grammars (regular languages and properties, transition diagrams)
3.2 Automata (characteristics and types of automata)
3.3 Finite State Automata (FSA)
3.4 DFSA (String acceptance by DFSA)
3.5 NFSA (String acceptance by NFSA)
3.6 Equivalence of DFSA and NFSA
3.7 FSA with lambda moves (String acceptance by FSA with lambda moves)
3.8 Regular Expressions - identities for regular expressions
3.9 Equivalence of DFSA, NFSA, and RE
3.10 Minimization of DFSA (construction of minimal DFSA)
3.11 Identification of non-regular languages
Chapter 4: Context Free Languages
4.1 Context Free Grammars (Derivation Tree, Context free Languages, Ambiguity
in grammars)
4.2 Parsing arithmetic expressions
4.3 Removing lambda productions
4.4 Normal Forms (NFs) - Chomsky NF (CNF), Conversion to CNF, Pumping
lemma for CFLs
4.5 GreibachNF (GNF)
4.6 A membership algorithm for CFGs (CYK algorithm)
Chapter 5: Push Down Automata
5.1 Non-deterministic pushdown automata (NPDA) (instantaneous description,
languages accepted by NPDA)
5.2 Deterministic pushdown automata (DPDA) - languages accepted by DPDA
Teaching Methods
- Lecture, Assignments
Assessment Methods:
Assessment Methods Points
Test 1 10%
Test 2 10%
Individual or group assignment 10%
Presentation of individual/group work 10%
Class activity and participation 10%
Final Exam 50%
Textbook
- Peter Linz: “An Introduction to Formal Languages and Automata”, D. C. Heath and
Company.
References
- K. L. P. Mishra and N. Chandrasekaran: “Theory of Computer Science (Automata,
Languages and Computation)”, Prentice Hall of India, 2nd edition, 2003.
- D. C. Kozen: “Automata and Computability”, Springer Verlag, 1997.
- J. E. Hopcroft, J. D. Ullman, and R. Motwani: “Introduction to Automata, Theory,
Languages and Computation”, 2nd edition, Addison-Wesley, 2001.
- M. Sipser: “Introduction to the Theory of Computation”, PWS Publishing Company,
1997.

You might also like