جامعة الاميرة نورة بنت عبد الرحمن 

 

 

 

 

 

 

Programming language  CS110

This is a starting level programming course which covers topics such as control structures, iteration statements, methods, parameter passing, library methods, and arrays. Implementations and programs developments will be done using Java programming language. It is designed to achieve the following objectives
1- Provides an introduction to basic, concepts, terminologies and methodologies of structured programming.
2- Gives experience in applying algorithm design and depicting methods like pseudo code and flowcharts.
3- Develops practical skills needed for coding, tracing, debugging, and building solutions to problems, with the use of a high-level programming language.

 

Programming language(2) CS111

This course develops the students’ ability to continue understanding and writing programs using Java programming language. In this course, students will deeply understand the architecture of Object Oriented programming and utilization. Inheritance, Encapsulation, Abstraction, and Polymorphism will be thoroughly explained and utilized. Students will also learn graphics and Java 2D and learn how to use and develop Graphical User Interface (GUI) in order to communicate with different applications. Dealing with files and streams will be studied in this course as well. The main objective in this course is to develop skills required to design, implement, and debug solutions of problems using the object-oriented approach

 

Data Structures CS212

This course describes: Abstract data types and their implementation; Linked lists, trees, binary trees, graphs, and multilinked structures; Brief introduction to algorithm analysis; Sorting and searching techniques and performance; Topics include linear structures (lists, stacks and queues), nonlinear structures (trees and graphs)
The course objectives can be summarized as follows:
• Be familiar with basic techniques of algorithm analysis.
• Be familiar with the concept of recursion.
• Master the implementation of linked data structures such as linked lists, stacks, and queues.
• Be familiar with advanced data structures such as balanced search trees, graphs and hash tables .
• Master the standard data structure library of a major programming language.
• Master analyzing problems and writing program solutions to problems using the above techniques.

 

Advanced Programming language CS313

This course will introduce students to .NET Programming using the C# programming language. Emphasis will be placed on understanding not only the syntactical features of the language, but also how to effectively use the design of the language to develop robust software. The course assumes at least one year of programming in Java . Hence the main objective of the course is give the students a deep understanding of advanced programming concepts such as encapsulation ,polymorphisms and generic data types using the c# language.

Programming Languages Concepts CS430

This course aims to introduce students to the concepts found in a variety of programming languages. Programming languages as tools for problem solving and a brief introduction to languages from a number of different paradigms. The course objectives can be summarized as follows:
 To understand the fundamental concepts of various programming languages and the critical design issues related to their utilization .
 To compare major programming language paradigms: imperative and functional.
 To introduce the student to use syntax, semantics, types and implement subprograms.

Web Application development CS486

This course deals with the study of the technologies used to design and implement multimedia and dynamic web sites. The focus of the course will be hands-on development of professional web-based applications. Students will study a variety of software technologies relevant to web design and implementation. Several applied topics are covered in class: programming languages, scripting languages, network programming, client/server computing, security, and multi-media systems design. The objectives of the course can be summarized as follows:
 Cover the common open source systems and languages .
 Recognize the range of Web development
 Apply all needed tools and knowledge to develop a website from scratch.
 Demonstrate the knowledge of Client-side coding, Server-side coding, and Database Technology.
 Design and build an interactive and friendly website.

Compilers Design CS431

This course covers: the structure of compilers; lexical analysis; syntax analysis including LL, SLR, LALR and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools .In this course students will develop a deeper understanding of Compilers technology. Students will learn the most important techniques for the representation and generation of Languages. Those techniques will be then applied to the construction of a compiler for a programming language. In particular, during this course the student will learn how to build the different parts of a Compiler: Lexical Analyzer, Parser, Code Generation and Optimization.

 

Computer Organization CS206

This course introduces the basic computer organization; register, arithmetic-logic unit, and control unit; machine representation of data and instructions; machine language and assembly language programming; addressing modes; interrupts and input/output programming. This course is an introduction to explain how computers are designed and how it’s work. It introduces the student to foundational of computer organization including combinational and sequential circuits, microarchitecture and instruction set architecture, assembler programming, internal data representations and essential hardware components that support operating systems. It is intended to give students an overview of the entire computer machine organization.

Computer architecture CS207

This course introduces the key concepts that are likely to be included in the design of any modern computer system; the basic metrics by which new and existing computer systems may be evaluated; the peripherals, their interconnection and underlying data operations to understand the design of computer systems. The course examines different computer implementations and assess their strengths and weakness, explains how an instruction is executed and how basic instruction level parallelism using pipelining. This course explains the effect of memory latency and describes the use of memory hierarchy to reduce the effective memory latency.

Parallel computers Architecture and Programming CS408

This course covers: Design and principles of parallel architectures, and parallel languages; Naming, latency, bandwidth, and synchronization in parallel machines; Distributed memory, shared memory, message passing, and data flow; Specification of parallelism, inter-process communication and synchronization, design of parallel programs for scientific computation and distributed systems; Survey of existing multiprocessor systems. The course introduces the fundamental principles and trades involved in designing modern parallel computers, as well as the programming techniques to effectively utilize these computers. The course explains parallel computers, shared data, synchronizing threads, the latency and band-width associated with communication, exploits the potential processing power of the parallel computers by understand how to write efficient parallel programs. The course introduces the student to design a good parallel program with understanding how parallel machines are built and vice-versa.

Distributed Systems CS409

This course aims to expose students to the complexities involved in designing and building distributed applications. Increase in-depth understanding of the principle paradigms used in this area. Main themes: Paradigms of distributed computing including message passing; remote procedure call; remote method invocation; client server computing; shared file systems; distributed objects; time and global states; coordination and agreement; Distributed algorithms and parallel computing; and replication and fault tolerance.
The course aims to teach students how distinguish among LANs, WANs, and Internetworking, how distributed message sending and how data conversion and transmission and sockets, message sequencing, buffering, retrying, and dropping messages. The course introduces the distributed service design, the data link layer and transport layer services and the core distributed algorithms.

Operating Systems CS340

This course aims to provide a clear description of the theoretical concepts that underlie operating systems. This course demonstrates the history of the operating systems and provides knowledge of operating systems concepts. The course introduces the principles of processes including inter-process communication, process scheduling, deadlocks, the principles of input / output that includes I/O hardware and software, Memory and File systems management that includes swapping, paging, virtual memory, and page replacement algorithms. The students will experience lab work in groups and will be introduced to the modern concepts of the operating systems using Unix/Linux and Windows.
This course will provide an introduction to design and performance evaluations of modern operating systems. Mapping and binding of addresses. Organization of multiprogramming and multiprocessing systems; interrupts, process model, and interlocks. Resource allocation models and problem of deadlocks. Scheduling, synchronization. Memory management, virtual memory. I/O control, and file systems.

Selected Topics (2) CS391

This course will be determined based on the Selected Topic. Upon completing this course the student will have learned, through appropriate classroom and laboratory experiences, Operational Research, and/or Advanced Modeling and Simulation and/or Advanced Parallel Computation

 

Algorithms Design and Analysis CS220

This course is a study of algorithm design, algorithm complexity analysis, and problem complexity analysis. Design techniques analyzed will include divide-and-conquer, dynamic programming, greedy algorithms, backtracking, and branch-and-bound.
The course - Covers the common algorithms, algorithmic paradigms, and data structures utilized to resolve problems .
Introduces basic algorithm performance measures and analysis techniques - Teaches techniques of design and analysis of algorithms.
- Uses, Compares, and analyzes the primary sorting and searching algorithms.
- Identifies and applies the divide-and-conquer, greedy, dynamic programming, backtracking, and branch-and-bound methods.
- Identifies differences among best, average, and worst case running times.
- Explains time and space tradeoff.

Advanced Algorithms CS321

This course covers: the advanced level of algorithms design and analysis where it
 Explain the main advanced paradigms of algorithm design.
 Design and analysis of modern algorithms with proof in written form.
 Use, compare, classify and analyze the advanced algorithm design techniques.
 Describe and explain the linear recurrences and matrix operations.
 Explain an NP-hard computational optimization problem, an approximation algorithm for NP-hard and determine its approximation factor.
 Explain the appropriateness of algorithms as a solution to a given problem and its efficiency.
 Analyze and use specific algorithms in network flows, computational geometry, online and parallel algorithms.

Formal Language and automata CS322

This course covers: Regular sets: finite automata, regular expressions, equivalences among notations, and methods of proving a language not to be regular; Context free languages: grammars, pushdown automata, normal forms for grammars, and proving languages non-context free; Turing machines: equivalent forms, un-decidability; Closure properties, pumping lemmas, and decision algorithms; Introduction to computability

Professional ethics CS180

The course main objectives
1. .Introducing the concept of ethics and it's rules.
2. Introducing eight ethical theories and differences between them.
3. covers network communications.
4. Identifies Intellectual property and how to protect.
5. Identifies information privacy issues.
6. Introducing network security issues.

Discrete Structure CS100

This course provides a study of problem Solving and Algorithms, models for discrete structures in computer science drawn from logic, set theory, relations, group theory, ring, field theory, proof techniques, permutations, combinations, summations, recursion and graph theory.
The course main objectives includes
 Introduce the student to the basic mathematical foundation of structures and algorithms that will be used in later computer science courses.
 Introduce the student to basic concepts in logic, Boolean algebra and proof techniques.
 Introduce the student to fundamental concepts of computability theory.

Human Computer Interaction CS531

This course is an introduction to Human-Computer Interaction (HCI), a discipline concerned with the design, evaluation, and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. The course considers the inherently multi- and interdisciplinary nature of HCI and situates various HCI issues in the organizational and societal contexts. It introduces theories of human psychology, principles of computer systems and user interfaces designs, a methodology of developing effective HCI for information systems, and issues involved in using technologies for different purposes. It is intended to give students an overview of the entire HCI field by covering most aspects of it.

Computer vision and image Processing CS361

This course is an introduction to Computer Vision and Image Processing, a discipline concerned with the role of computer vision, signals and their transformation, image processing, image Recognition, images Retrieval and with the study of major phenomena surrounding them. It introduces the principles of Computer Vision and Image Processing, and issues involved in using technologies for different purposes. It is intended to give students an overview of the entire Computer Vision and Image Processing field by covering most aspects of it.

Multimedia system CS350

This course introduce principles and current technologies of computer-based multimedia systems. They will study current media types (images, video, audio, graphics etc) and how they are used to create multimedia content. Issues in effectively representing, processing, and retrieving multimedia data will be addressed. The students will be familiarized with the range of tools used in creating computer-based multimedia
Objectives
Discuss privacy and copyright issues in the context of multimedia
-Describe The requirements for multimedia system
- Understand challenges for multimedia systems
- Critique essentials for multimedia application in terms of representation, compression storage and computers and networks systems support

Computer Graphics CS360

This course aims to introduce students to the concepts and algorithms of 2D/3D computer graphics and the applications of computer graphics technologies. Moreover, it provides the fundamentals of input and display devices, output primitives and their attributes, two- and three-dimensional transformations and clipping, windowing techniques, curves and curved surfaces, three-dimensional viewing and perspective, hidden surface removal, illumination and color models, graphics API's, and 3-D modeling tools.
Objectives
Learning fundamental computer graphics techniques .
Understanding the concepts and the algorithms of 2D/3D computer graphics and the applications of computer graphics technologies .
providing students with a foundation in graphics
providing students with Applications programming

Artificial intelligence CS370

This course provides a study of introductory and advanced topics in artificial intelligence, intelligent agents, and knowledge-based systems, Solving problems by searching, Informed search algorithms, First Order Logic, Second Order Logic, Lisp, Prolog, Game, and neural network .
Course Objectives
•Understand the fundamental concepts of Artificial Intelligence
•Understand different methods of search and optimization in AI
•Able to develop small application using heuristic functions to solve any search problem in AI
•Understand the learning strategies
•Understand and implement searching techniques
•Understand the fundamental concept of logic in AI Understand the knowledge areas
•Learn PROLOG language used to implement Artificial Intelligence Systems

Graduation project 1 CS487

The student is required to complete a project that demonstrates his intellectual and comprehensive computer skills and knowledge. This course allows the student to deal with a real and practical computing project. The course enable the student to define and state a problem, figure a solution or solutions to the problem, and then define the system requirements for the problem. This course also enables the student to write a professional project proposal and manage the project in terms of feasibility and scheduling. The course also let the student develop skills like time management, communication, and oral presentation
Course Objectives
This course provides teamwork of students with a thorough guideline for survey and research to design, develop, and implement different fields covering “one or more” the CS Knowledge areas
Understanding of a software topic survey and research
Experience in designing and developing a relatively large software project
Experience in documenting and presenting a major piece of software.

Graduation project 2 CS488

The course involves a scientific project in any area of computer Sciences. The course must be taken by a small group of student (4-5). This course is the continuation from the Graduation Project (I)
Course Objectives
Implement and testing the proposed project in the Graduation Project Proposal
Cover “one or more” the CS Knowledge areas

Internship CS489

Internship course is an important component of the CCIS - Computer sciences (CS) program. This course is designed to provide an opportunity for CS students to gain a supervised practical experience in computer environment of an approved department, firm or agency in KSA. The students will gain a valuable on-site working experience. It further allows the students to develop skills like: communication, team work and problem solving skills which will enable them in joining a competitive job market in their fields. Cooperative Training Office (CTO) should coordinate with students to apply internship. The student and CTO should also submit a written plan for approval before taking-up the internship. All internships are subject to approval by the Internship Coordinator of the college. Note: maximum number of students 35 per class.
Course objectives
provide a supervised experience in CS environment with an aim of helping the PNU students to develop an insight into the professional demands of the workplace
recognize real-world opportunities and constraints such that they are better prepared to enter their future careers