CSIT Computer Info Sciences

CSIT 100 Freshman Seminar

Introduction to computing environments available on campus; e-mail, Internet access and web; campus computing policies; computing and information technology ethics; other campus resources and their effective use; building a support network with faculty, staff and peers; improving study skills inside and outside the classroom. Freshmen only.

1

CSIT 101 Programming with 3-D Graphics and Multimedia

Introductory programming course using a high-level, object -oriented language, such as ALICE. The course covers object-oriented and event driven programming concepts, in addition to algorithms and elementary programming techniques that are needed to develop elementary graphics and multimedia applications. Prerequisite: N.Y.S. Algebra II and Trigonometry (or Math B), or equivalent.

3

CSIT 102 Introduction to Programming with Python

Understanding algorithmic thinking and problem-solving, fundamentals of computer and programming concepts, introduction to Python programming language, basic input/output statements, expressions, conditional statements, loops, variables, lists, functions, classes, and objects.

3

CSIT 104 Introduction to Microcomputer Software

Introduction to microcomputers; elementary concepts and operations of spreadsheets and database management systems; analysis of a variety of problems, their design, and implementation of solutions using commercially available window-based software. Three units of high school mathematics required.

3

CSIT 105 Visual BASIC I

This is a Fredonia Foundations lab-based course that fulfills 3-credit hour mathematics and quantitative reasoning requirement. This is an introductory course in high level programming language, Visual Basic (VB), which introduces elementary ideas of object-oriented and event-driven programming, concepts using VB.

3

CSIT 106 Scientific Programming Using C/C++

Scientific problem solving; structured program development: simple algorithm design, arithmetic operations, data types and their declarations; control statements, loops, input and output including text files; arrays, functions, mathematical functions and round off error estimation. Applications to engineering, sciences and mathematics. Credit will not be given for both CSIT 106 and 121. Background assumed: N.Y.S. Algebra II and Trigonometry (or Math B), or equivalent.

3

Prerequisites

MATH 120 or MATH 122

CSIT 107 Web Programming I

An introductory course in client-side web technologies: HTML, cascading style sheets and JavaScript; designing and publishing a web site. Other topics include history of the Internet and World Wide Web, HTML editors, and graphics.

3

CSIT 120 Computer Science Overview

A comprehensive overview of the scope and dynamics of computer science. Survey of the field of computer science. Topics include: history of computing, computer organization and components, operating systems, programming languages, introduction to programming and program development, data structures, problem solving, software engineering, computer ethics, and computer applications. Background assumed: N.Y.S. Algebra II and Trigonometry (or Math B), or equivalent.

3

CSIT 121 Computer Science I

Hands-on exposure to the following major topics: Problem solving, algorithm design and development, structure of the program, top-down design and functional decomposition, debugging, elementary data types, expressions, I/O functions and formats, repetition and control structures, user-defined functions, pass by value, pass by reference, built-in functions, arrays, strings.

3

CSIT 151 Introduction to Information Systems

The course introduces information technology used in day-to-day business operations. It covers business applications software for office management, communication, project management, relational databases, eCommerce, web development, data transmission and networks, etc. The course also covers such basic information systems concepts as querying simple databases, data analysis and database design. Laboratory instruction is used to complement the course with hands-on experience with a set of above applications. The course is designed for students who will work as end-users, user-managers, leaders, or information systems professionals.

3

CSIT 201 Computer Security and Ethics

Introduces desktop, internet, and network security issues and how they interact with the ethical values of individuals, organizations, and society. Includes methods of avoiding, detecting, and analyzing network intrusions as well as the ethics related to computer security and privacy. Background assumed: N.Y.S. Integrated Algebra and Geometry, or Math A, or equivalent.

3

CSIT 202 Programming with Python for All

Understanding algorithmic thinking and problem-solving, fundamentals of computer and programming concepts, introduction to Python programming language, basic input/output statements, expressions, conditional statements, loops, variables, lists, functions, classes, and objects.

3

CSIT 203 Multimedia Systems

The course introduces multimedia systems from a theoretical and practical perspective. Topics covered include: computer manipulation of images, music, animation, and video, including theoretical aspects of lighting, color, elementary acoustics principles, motion, perspective, graphical and sound file formats, and network transmission. Various software packages will be introduced: for raster and vector graphics; for 2-D- and 3-D-modeling and animation; for sound recording and editing. Using these software packages and applying the principles learned in the course, students will practice creating, processing, and modifying graphics and sound. Students will gain practical hands-on experience through the course work and understand the operating principles of multimedia systems. No programming background is assumed.

3

CSIT 205 Visual BASIC II

Advanced visual Basic programming techniques with graphical user interface and Active X controls. Topics include: multiple forms and other GUI elements, database concepts and interacting with databases, server side web programming, dynamic and static data types, arrays, files, lists, stacks and queues, concept of classes and related notions, designing Windows API calls and Windows registry functions and advanced event-driven business applications. The course provides a computer laboratory component to ensure practice with the above concepts.

3

Prerequisites

CSIT 105 or CSIT 121

CSIT 207 Web Programming II

An advanced course in server-side web programming. Topics include: cookies, file and database access, portals and web applications; server side scripting. Knowledge of HTML, and of C++, Java, or Visual Basic are required.

3

Prerequisites

CSIT 107 and (CSIT 105 or CSIT 121)

CSIT 221 Computer Science II

Hands-on exposure to major topics in data structures and control, including file I/O; abstract data types; static and dynamic data structures; pointers and pointer operations; templates, memory addresses; garbage collection; memory leak; function and operator overloading; constructors and destructors; deep and shallow copying; class concepts; multi-dimensional and dynamic arrays; linked lists; doubly-linked lists; stacks, queues and their implementations and applications. The course provides a computer laboratory component to ensure practice with the above concepts.

3

Prerequisites

CSIT 121

CSIT 225 Java Programming

Basic programming constructs: primitive types, expressions, and statements; class hierarchies; elementary predefined classes such as String and Math; object-oriented programming; packages and interfaces; exception handling; I/O and file access; graphics; applets; studio processing and other applications.

3

Prerequisites

CSIT 221

CSIT 231 Systems Programming

UNIX commands, shells, utilities, editors; file types and modes; shell scripts; make-files; memory and storage management; C programming tools; processes, IPC (signals, sockets, pipes); development tools; streams; networking; UNIX internals, system administration and other topics as time permits.

3

Prerequisites

CSIT 221

CSIT 232 Introduction to Robotics

Students will study the history of robots, understand the differences in types of robots, explore artificial intelligence through readings and lab work with the Raspberry Pi microcomputer and python programming language, work with sensors, where necessary work with servos and motors, demonstrate understanding of electrical components involved in physical computing, design and attempt construction of programmable and autonomous robots using the Raspberry Pi as a foundation. Working in teams, the students will demonstrate their successes and describe and demonstrate their efforts in a final project.

3

CSIT 241 Discrete Mathematics I

Study of mathematical topics needed for further study of computer science at the advanced undergraduate level, including: logic, sets, proof techniques, matrices, basic number theory, modular arithmetic, functions, linear transformations, relations, basic combinatorics.

3

Prerequisites

(MATH 120 or MATH 122) and (CSIT 105 or CSIT 121)

CSIT 242 Discrete Mathematics for Computer Science II

A continuation of CSIT 241. Topics include combinatorics, digraphs, and trees; recurrence relations; switching circuits and logic gates; automata, grammars and languages; other topics as time permits.

3

Prerequisites

CSIT 221 and CSIT 241

CSIT 251 Information Systems Structures

Overview of information systems (IS) for operational, tactical and strategic functions of business organizations; IS practices and challenges for business competitiveness; data, information and knowledge processing; information systems theory and quality decision, systems analysis and design, database management, network and network management; electronic commerce and social and ethical issues; IS and IT planning and implementation.

3

Prerequisites

CSIT 151 or BUAD 161 or CSIT 104

CSIT 291 Special Topics

Selected topics in computer and information sciences based on instructor or student interest requiring basic understanding of computer information systems operations.

1-3

CSIT 300 Internship

Participation in an approved professional experience in the area of computer science. Students must submit a proposal describing the work experience, its relationship to subject matter in computer science, and how it will be monitored and evaluated. Permission of the department required.

1-12

CSIT 305 Computer Laboratory Assistantship

Non-credit course for students interested in performing computer-related services for the Computer and Information Sciences program. Duties include: proctoring in computing laboratories; assisting with the labs in CSIT 121 or CSIT 221; helping the faculty director and/or systems manager with basic laboratory maintenance. Grading is on an S/U basis. Permission of the department required.

0

CSIT 307 Web and Mobile App Design

An introduction to cross platform and hybrid mobile application aesthetic design. This course emphasizes prototyping mobile applications and powering their functionality through iterative development. The course includes a comprehensiveproject including the design and implementation of a web-based software product based on predefined specifications

3

Prerequisites

CSIT 107 and CSIT 207

CSIT 308 Computer Game Design and Implementation

This course will provide an introduction to current and future techniques for computer game design and implementation. Topics will cover graphics game engines, motion generation, behavioral control for autonomous characters, layered game architecture, interaction structure, and interface issues of multi-user play. The course will emphasize a practical approach to the development of games. A variety of game development technologies will be considered. Programming background is expected.

3

Prerequisites

CSIT 203 or CSIT 221

CSIT 311 Assembly Language and Computer Organizations

Introduction to the basic concepts of computer organization, digital logic, data representation, and machine instructions repertoire; memory access and storage; instruction execution; assembly language; computer organization; levels of computer structures; data representation and transfer; digital arithmetic; memory structure and addressing methods; cache; secondary memory structure and organization.

3

Prerequisites

CSIT 121

CSIT 312 Computer Structures

Introduction to basic concepts of computer system and architecture; internal and external memories, I/O and operating system support; instruction execution; computer structure, organization and function; digital arithmetic; memory structure and addressing methods; cache; secondary memory structure and organization; system software structure; purpose and functions of system programs; file systems; process and resource management. For Computer Information Systems majors; Computer Science majors may not count this course to meet major requirements.

3

Prerequisites

CSIT 105 or CSIT 121

CSIT 316 Introduction to Human-Computer Interaction

The course introduces techniques, ideas, and models involved in designing, implementing, and evaluating interactive technologies for human use. It explores principles of design and usability, with an emphasis on the human-side of interaction. Accordingly, in addition to human and computing factors, the role of task (goals) and context are highlighted as key to understanding interaction phenomena at the individual, group, organizational, and societal levels. These include issues related to internationalization, such as cultural, ethical, and social aspects of interaction. Students will learn how to gather requirements, to design usable interfaces, and both implementation and evaluation processes. They will gain hands-on experience with contemporary interaction design techniques, and will have the opportunity to analyze and critique various computing interfaces including web sites, computer systems, video games, mobile devices, and more.

3

Prerequisites

CSIT 121 or CSIT 151

CSIT 321 Paradigms of Programming Languages

Brief history of programming languages; language design issues; syntax and translation; data types; sequence control; the procedural paradigm; the object-oriented paradigm; the functional paradigm; the logical paradigm.

3

Prerequisites

CSIT 205 or CSIT 221

CSIT 324 Object Oriented Programming

Object-oriented design methodologies; object-oriented programming; class concepts, encapsulation; operator overloading, polymorphism, inheritance; virtual, constant and friend functions; constructors and destructors; dynamic and delayed binding; abstract classes and interfaces; function overloading; and exception handling; advanced OO programming and applications.

3

Prerequisites

CSIT 221

CSIT 333 Mobile Applications Development

This course introduces system development for the Android, iPhone or Windows mobile operating systems from both the practical software implementation and the theoretical software design perspectives. Topics covered include: Overview of mobile systems development, scope of mobile software, mobile development environments, user interface design, receivers/alerts and services coordination, hardware interaction, multimedia integration, and networking/location-based services utilization.

3

Prerequisites

CSIT 205 or CSIT 221

CSIT 341 Data Structures

Review of basic data structures and algorithmic complexities; recursion; topological order; Sorting and searching; Huffman codes; tries; binary trees; binary search trees; tree traversals; general trees, heaps, balanced trees; priority queues; hashing; graphs, graph algorithms.

3

Prerequisites

CSIT 205 or CSIT 221

CSIT 351 Business Systems Development

Review of business programming language principles and techniques; interfacing with computing environment; sorting, table handling, indexing and searching; preparation and handling of data; file organization, and file update; business system analysis, design and implementation; introduction to business information systems.

3

Prerequisites

CSIT 205 or CSIT 251

CSIT 390 Directed Study

An intensive project-oriented course utilizing emerging technologies. Departmental approval is required.

1-3

CSIT 391 Special Topics

This course is designed to introduce and explore new subjects in Computer and Information Sciences at 300-level based on faculty and student interest. Topics will vary and may include: New Programming Languages, Advanced Web Development topics, Project Management Controlling, Risk Management, Project Teams, Communication and Documentation, Organizational Structures, Introduction to MS Project, or other relevant topics as they arise.

3

Prerequisites

CSIT 221

CSIT 400 Directed Independent Study

Independent study of a selected list of readings approved by a faculty advisor. Permission of the department required.

1-3

CSIT 411 Programming for Embedded Microcontrollers

Programming and development for embedded microcontrollers. Embedded architecture, programming considerations related to embedded systems development. Memory utilization, I/O, synchronous and asynchronous serial communication. Utilization of timers, and interrupts. Development considerations for comparators, A/D converters, USARTs and other on-board peripheral devices. Debugging, and utilization of test equipment such as multimeters and oscilloscopes. Students will build a series of embedded projects of increasing complexity. Some very basic electronic design principles are also included.

3

Prerequisites

CSIT 221

CSIT 413 Computer Architecture

Review of computer organization and digital logic principles; system buses and peripherals, main and cache memory overview; pipelined processing; RISC and CISC concepts; Superscalar and IA-64 architecture; performance evaluation; microarchitecture level and the control unit. Term projects in digital system design are emphasized.

3

Prerequisites

CSIT 311 or CSIT 312

CSIT 425 Software Engineering

Basic concepts and major issues of software engineering; current tools and techniques providing a basis for analysis, design, development, maintenance, and evaluation of software systems; structured walkthrough and software testing; verification and validation; technical, managerial, administrative, and operating issues; privacy, security, and legal issues; developing a team project using software engineering principles.

3

Prerequisites

CSIT 221 or CSIT 205

CSIT 431 Introduction to Operating Systems

System software organization, purpose and functions of computer operating systems, batch processing systems: translation, loading and execution; serial and parallel I/O processing; spooling; interrupt facilities; memory protection and management; file systems; multi-access and special-purpose systems; process scheduling; accounting procedures and resource management; classical and popular operating systems.

3

Prerequisites

(CSIT 311 or CSIT 312) and CSIT 341 and CSIT 231

CSIT 433 Compiler Construction

Finite automata; languages and grammars; review of language structure, translation, linking, loading, execution; run-time storage organization; compilation of simple structures; compiler design principles, organization and implementation; lexical analysis; symbol tables; parsers and semantic analysis; code generation and optimization; error diagnostics.

3

Prerequisites

(CSIT 311 or CSIT 312) and CSIT 341

CSIT 435 Data Communication and Networks

Network protocol stack layers, network bandwidth and traffic management, data transmission fundamentals; data encoding and multiplexing, switching and error handling; ATM, Diffserv, RSVP, MPLS and related modern protocols; network applications; carrier transport networks, reliability and security, encryption and compression; wireless networks; advanced network programming. Term projects are emphasized for network performance analysis and QoS application design.

3

Prerequisites

CSIT 311 or CSIT 312

CSIT 436 Advanced Network Programming

Designing client-server applications with sockets; traffic analysis; building concurrent and multi-service servers; designing network protocols; measuring and analyzing performance of protocols. Students will complete a number of programming and network analysis experiments during the semester.

3

Prerequisites

CSIT 435

CSIT 437 Advanced Operating Systems

Review of contemporary operating systems, OS design principles and strategies; examination of communication and synchronization protocols; concurrent processes and process scheduling including their statistical analysis; distributed operating systems; client-server computing model; distributed resource management; multiprocessor OS; failure recovery and fault tolerance; data security; applications.

3

Prerequisites

CSIT 431

CSIT 441 Analysis and Design of Algorithms

Introduction to design and analysis of algorithms: time and space complexity, verification of correctness; advanced algorithm design strategies: iterative, divide and conquer, greedy method, dynamic programming, branch and bound, etc.; specific examples drawn from sorting, searching, string searching, graph problems, matrices, polynomial arithmetic, cryptography; hard problems and approximation algorithms: Knapsack, bin packing, and graph coloring problems, etc.

3

Prerequisites

CSIT 242 and CSIT 341

CSIT 443 Theory of Computation

Regular expressions and finite automata; context-free grammars and pushdown automata; pumping arguments; closure properties; decision algorithm; Turing machines; computability and decidability; halting problem; and elementary complexity theory.

3

Prerequisites

CSIT 242 and CSIT 341

CSIT 451 Introduction to Files and Databases

Large scale information organization; basic concepts and terminologies of file management techniques; storage hierarchies, external storage devices; mass storage systems; common file structures and organization methods; physical file organization; list, inverted, and tree structured file organization methods; file systems; concepts of data modeling; data languages; search, retrieval and processing methods; introduction to relational databases and database management systems.

3

Prerequisites

CSIT 341

CSIT 455 Relational and Object Databases

Review of data modeling and databases (DB); entity/relationship and relational models; relational algebra; relational databases; database architecture; data integrity; SQL design; SQL and QBE languages; functional dependencies; normalization; data protection and SQL concurrency; data and database security; object-oriented databases; distributed and client/server systems; introduction to DB administration.

3

Prerequisites

CSIT 121

CSIT 456 Information and Decision Support Systems

Information and computer information systems; information hierarchy; decisions and decision-making; functional components of a decision support system; intelligent/knowledge-based decision-making and knowledge management; architecture of decision systems; distributive and group decision-making; executive information systems; expert and fuzzy systems; reasoning and explanation; knowledge elicitation and representation; logistics and long-term decision-making.

3

Prerequisites

CSIT 341 or CSIT 351

CSIT 458 Lab Supervision in Computer and Information Sciences

A supervisory experience working in the Computer and Information Sciences department's laboratories under the guidance of a faculty member. Student experiences may include preparing and handling lab materials, help students needing guidance in completing assignments, and demonstrating procedures and techniques to students. Student must have Junior/Senior Standing and Departmental Approval is needed.

1

CSIT 461 Introduction to AI and Knowledge Engineering

Overview of artificial intelligence tools and techniques; searching methods; applications of AI: game playing, expert systems and knowledge-based systems; components of a knowledge-based system; knowledge acquisition, representation, and formalization; numerical and symbolic processing; information theoretic and decision theoretic algorithms; inference engine; machine learning; reasoning and explanation; basic concepts and major issues of knowledge engineering; current tools and techniques for analysis, design, development of the knowledge based systems; applications in robotics, medical diagnosis, smart decision systems, etc.

3

Prerequisites

(CSIT 205 or CSIT 221) and CSIT 241

CSIT 462 Computer Graphics

Introduction to computer graphics; graphics hardware, systems and APIs; raster and vector graphics; basic 2D primitives; points, lines, arcs, polygons and poly-lines; basic 3D shapes; raster algorithms for drawing 2-D primitives; 2D and 3-D geometrical transformations; projections; rendering, lighting, and animation; representation of curves and surfaces; solids modeling; applications of the above concepts.

3

Prerequisites

CSIT 221 or CSIT 205

CSIT 463 Introduction to Digital Image Processing and Computer Vision

Introduction to digital image and signal processing, computer vision and pattern recognition; image acquisition, registry and display; elementary image processing algorithms: sampling, preprocessing, smoothing, segmentation, and sharpening; transformations; filtering; image coding and restoration; analog and digital images and image processing systems; feature extraction and selection; elementary pattern classification and vision systems; robotics; machine learning.

3

Prerequisites

CSIT 205 or CSIT 221

CSIT 471 Information Systems Management

Overview of information systems (IS) for business organizations; IS systems management; strategic uses of IT, and I-commerce; IS planning, using and managing essential technologies: databases, distributed systems, telecommunications, information resources; managing IS operations; managing systems development; systems for supporting knowledge-based work; practices and challenges for business competitiveness; information systems theory and quality decision theory; electronic and mobile commerce; social and ethical issues; IS and IT implementation.

3

Prerequisites

CSIT 205 or CSIT 221

CSIT 473 Data Warehousing and Mining

Overview of data and information sharing; principles of information sharing; information security; data mining, data warehousing, and data marts; data modeling; data collection, problems, quality, and integrity; databases and content management; business intelligence; online analytical processing; data visualization, multidimensionality, and real-time analytics; examples of data warehousing and data mining - geographic information systems, web intelligence, resource management, multimedia-based databases, knowledge bases, etc. CSIT 121 is a prerequisite. CSIT 221 is recommended but not required.

3

Prerequisites

CSIT 121

CSIT 475 Electronic Commerce

Topics include Internet technology for business advantage, managing e-commerce funds transfers, business opportunities in e-commerce, Website development, social, political and ethical issues associated with e-commerce, and business plans for technology ventures. The purpose of the course is to educate the students about the technology required of e-commerce. Lab instruction in Internet application development complements the course.

3

Prerequisites

(CSIT 205 or CSIT 221) and CSIT 207

CSIT 490 Seminar on Selected Topics

Studies, discussions, workshops and seminars on selected topics in computer science. Written reports and a formal presentation are required.

1-3

CSIT 496 Special Topics

A variable-topics course in computer and information sciences. Topics normally not covered in the Computer Science or Computer Information Systems degree programs, but suitable to explore at length at the senior level. Project and a formal presentation are required.

1-3

CSIT 497 Thesis

Faculty-supervised research on a computer and information sciences topic of interest to the faculty member and the student. Minimum of 80 hours of productive work required. A thesis documenting problem statement, approach, methodology, and results will be submitted upon completion.

3

Prerequisites

CSIT 341 or CSIT 351

CSIT 499 Senior Project

Faculty-directed work on a computer and information sciences project of interest to the faculty member and student. Minimum of 80 clock hours of productive work required. A report of presentation discussing approach, methodology, and results will be submitted upon completion.

3

Prerequisites

CSIT 341 or CSIT 351

CSIT 501 Network Management and System Administration

Introduction to Computer Networks will be provided. Activities involved in deploying, configuring, administering, operating and managing networks will be a part of this course. Topics such as Fault Management, Configuration Management, Performance Management, Security Management and Account Management will be discussed in addition to System Administration. The course will include study of protocols involved and hands-on lab exercises to understanding working of the protocols and other concepts related to Network Management and System Administration. An introduction to Software Defined Networks will be a part of this course including hands-on exercises.

3

CSIT 502 Enterprise Security Operations

Security control types, Need to know and least privilege, Access control models, Identification and authentication, User account provisioning, Access control methods, Biometrics, Multi-factor techniques, SSO technologies, Security operations, Change and configuration management, Privilege management, Incident response and investigation, Backup and Recovery operations, Application Security testing, client-server app vulnerabilities, secure SDLC, Database security.

3

CSIT 503 Network Security

Introduction to Network Security. Network attacks. Secure network architecture. VLANs. NAT. VPNs. Firewalls. Packet inspection. Ingress/Egress filtering. Intrusion detection. Intrusion prevention. Network encryption.

3

Prerequisites

CSIT 501*

Cross Listed Courses

* Indicates that the course can be taken in the same semester

CSIT 504 Applied Cryptography

Probability theory, Symmetric and asymmetric cryptography, Common cryptographic algorithms, Steganography, Hashing and Message Digests, Key Management, Public Key Infrastructure and certificate management, Cryptanalysis and Cryptographic attacks, Standard cryptographic tools.

3

Prerequisites

CSIT 502

CSIT 505 Regulations in Security

Quality Assurance, Maturity models, Change management, Asset management, Security policies, Security management, Threat profiling and risk analysis, Risk management techniques, Business continuity planning, Disaster recovery, Regulatory compliance, HIPAA and PCI requirements, legal issues, Computer crime and criminal investigations, Privacy and Ethics.

3

Prerequisites

CSIT 502

CSIT 506 Penetration Testing and Exploit Development

Introduction to penetration testing, Penetration testing methodology, reconnaissance, Google hacking, email harvesting, Open source intelligence and social media, enumeration, DNS enumeration, Port scanning, Vulnerability assessments, exploits and exploit development, bypassing antivirus, Post-exploitation techniques, Privilege escalation, Password retrieval and cracking, Pivoting, Web application hacking, SQL Injection, Cross-site scripting, Cross-site request forgery, Local and remote file inclusion.

3

Prerequisites

CSIT 503

CSIT 536 Advanced Network Programming

Designing client-server application with sockets; traffic analysis; building concurrent and multi-service servers; designing network protocols; measuring and analyzing performance of protocols. Students will complete a number of programming and network analysis experiments during the semester. Background assumed: Data Communication and Networks II or equivalent.

3

CSIT 537 Advanced Operating Systems

Review of contemporary operating systems (OS), OS design principles and strategies; examination of communication and synchronization protocols; concurrent processes and process scheduling including their statistical analysis; distributed operating systems; client-server computing model; distributed resource management; multiprocessor OS; failure, recovery and fault tolerance; data security; applications. Background assumed: Introduction to Operating Systems or equivalent.

3

CSIT 541 Algorithms

Topics include: time and space complexity; verification of correctness; advanced algorithm design strategies (iterative, divide-and-conquer, greedy methods, dynamic programming, branch-and-bound, etc., with specific examples drawn from sorting, searching, graph theory, matrix and polynomial arithmetic, and cryptography); hard problems and approximation algorithms, with examples such as napsack, bin-packing, and graph coloring problems; introduction to parallel algorithms as time permits. Background assumed: Mathematical Structures and Proof and Data Structures.

3

CSIT 542 Advanced Data Structures

Typical topics include: Red-Black trees; AVL trees; B trees; B+ trees; B* trees; tries; splay trees; spatial data structures; self-organizing lists; summation techniques; recurrence relations, including establishing bounds and expanding recurrences; hashing and other complex indices; complexity of searching on various structures. Background assumed: Data Structures.

3

CSIT 580 Computational Biology

The course exposes students to a wide range of state-of-the-art research and techniques in the field of computational biology. This is a modern discipline dealing with the discovery and implementation of algorithms facilitating the understanding of biological processes. Various statistical, heuristic, and machine learning methods are used for this purpose, as well as graphical tools to visualize the objects. The course is intended to present some biological problems related to the human genome and the computational methods to resolve them. It will cover an introduction to computational biology, the use of computational methods to search for, classify, analyze, and model protein sequences, i.e. to convert the masses of information from biochemical experiments into useful information.

3

CSIT 591 Selected Topics in Computer Science

A variable topics course in computer science. Topics normally not covered in Computer Science or Computer Information Systems undergraduate degree programs but suitable to explore at length at graduate and senior level. Project and a formal presentation are required. Prerequisite: CSIT 341 or equivalent background knowledge and permission of instructor.

3

CSIT 613 VLSI Design

The course focuses on the design of CMOS VLSI (Very Large Scale Integrated) chips using integrated circuit cells as building blocks and employing hierarchical design methods. Focus will be on the design of digital systems. Design issues at layout, schematic, logic and RTL levels will be studied. Shareware and freely available design software will be used for laboratory exercises. An overview of VLSI computer-aided design (CAD) tools and theoretical concepts in VLSI architectures will also be discussed. Prerequisite: Completed at least one course in logic design or computer architecture at the undergraduate level.

3

CSIT 625 Advanced Topics in Software Engineering

The course focuses on modern software project development techniques. Topics include Universal Modeling Language (Use Case, Sequence, and Class diagrams), code reusability, design patterns, component development and versioning software. Students will produce a significant, multifaceted software product.

3

Prerequisites

CSIT 425

CSIT 636 Network Security

The course deals with the security aspect of information and data exchange on shared internetworks. The requirements of secure transfer include secrecy, integrity, authentication and non-repudiation. The mechanisms to fulfill these requirements are introduced including encryption algorithms that provide privacy, message authentication, and non-repudiation. Practical implementation of security on top of the three layers of the OSI reference model is highlighted. The various forms of attacks including intrusions, worms, viruses, Trojan horses and distributed attacks are discussed along with the defense mechanisms of firewalls and intrusion detection and prevention techniques. Background assumed: Data Communication and Networks II.

3

CSIT 639 Special Topics: Systems Structures

The advances in computer science are rapid. The course is designed to cover current issues in computer systems structures. Current topics in one or more fields of computer architecture, system software, network, wireless computing, etc. will be covered in detail.

3

CSIT 649 Selected Topics in Theory of Computation

The course is designed to cover current issues in theory of computations. Current topics of instructor's choice in the field of computer systems theory, computations and algoritms, will be selected. Background assumed: Theory of Computation

3

CSIT 665 Pattern Recognition

Statistical pattern recognition; syntactic pattern recognition; neural networks; applications. Topics include: Bayesian classifiers; linear classifiers; nonlinear classifiers; context-dependent classification; system evaluation; feature selection; clustering. Background assumed: Probability and Statistics.

3

CSIT 669 Selected Topics in Information Structures and Systems

Designed to cover current issues in information systems and structures. Current topics in one or more fields of computer architecture, computer information architecture, artificial intelligence and knowledge engineering, databases, systems and systems software, software engineering, data protection, concurrency and security, etc.

3

CSIT 670 Data Compression for Multimedia Applications

Introductory course on data compression, which is an essential concept for communication and networking, with specific emphasis on multimedia. Topics include: information theory, source coding, dictionary and quantization techniques, image and sound compression.

3

Prerequisites

CSIT 341

CSIT 672 Multimedia Systems

Topics may include: basic multimedia concepts; human perception; hardware requirements for multimedia applications; creating and processing images and sound by computer; multimedia and web; compression; main features of a graphical modeling language (e.g., VRML language); authoring tools, principles of working with an authoring system; creating an interactive multimedia application. Background assumed: Computer Graphics course or approval of instructor.

3