The focus is on the applicaton of a specific software product. Techniques for using software will be learned while applying them to the solution of information-processing problems. Students are permitted to repeat the course when it is offered with a different software application, but no more than six credit hours of CSC 131 may be counted toward graduation requirements.
This course focuses on spreadsheet and database technologies with an emphasis of the use of those technologies into specific application domains including business and the sciences. Topics include creation of spreadsheets and databases, financial and statistical functions, charting, problem solving tools, querying of databases, creation of forms and reports, macros, and the integration of spreadsheets and databases.
This course is designed to provide an introduction to computing from a perspective of information systems as opposed to computer science. As such, the course focuses less on the technical aspects of computer systems and more on systems architecture and the usage of computer systems within organizations. The course builds the foundation necessary for student interested in areas such as business analysis, project management, and system design. Topics include Boolean algebra, databases, HTML, system architecture, and the software development life cycle. Ethical considerations are introduced throughout the course.
This introductory course is designed for those students intending to major or minor in Computer Science or Computer Information Systems. Topics include the internal representation of values and instructions, digital logic and circuits, machine language, network terminology and architecture, parallel and distributed algorithms, data communications, security, and the use of global networks.
This course is designed to introduce the student to the areas of requirements gathering and testing of computer systems. The course focuses on building the skills necessary to drive a student's understand, application and success in the Business or Systems Analysis arena. Case studies will be used to explore requirements gathering. Testing topics will include V Model and Testing First models. Students will be introduced to the components of a testing plan and be required to create portions of a test plan using industry standard techniques.
This course emphasizes the design, construction, and use of structured data and objects. Both static and dynamic linear structures are covered, including lists, stacks and queues.
This course expands the study of data structures begun in CSC 241 to non-linear structures, including trees, graphs and heaps. Special attention is paid to the time and space complexity of the related algorithms. More advanced language topics are introduced.
This course focuses on the development of advanced data structures that are commonly used in computer science including stacks, queues, trees, and graphs. Emphasis is placed on the efficiency of the various data structures and the applications for which they are used. The more advanced language features of C++ including inheritance, polymorphism, templates, and exception handling are also studied.
This course focuses on the creation and integration of computer media including still graphics, animation, video, and sound. A major part of the course will focus on programming techniques and languages for the interactive control of multimedia presentations.
This course is an initiation to data communications. Topics include fundamental communications concepts (data and voice); communications hardware, protocols, and software; and network configurations, design, security, control, and management. Topic coverage includes study of LANs, WANs, OSI models, Internet, and intranets.
This course explores the social issues, including historical and social context, professional responsibilities, risks and liabilities, and intellectual property of an information system organization. Topics include security policy development life cycle, policy development and implementation process, network security, privacy laws, authentication, and access and information flow controls.
This course introduces the fundamental concepts necessary for the use, design, implementation, and management of a database system. The course is project-based, covering database creation, maintenance, and querying using SQL. A relational database management system will be used throughout. The project focuses on retrieving and answering queries from and to a Web interface.
This course covers concepts and tools associated with diagnosing and troubleshooting computer networks. Topics include interpreting documentation, performing online and offline diagnostics, debugging code, interpreting diagnostic results and log files, performing troubleshooting techniques. Course will focus on finding and localizing problems rather than correcting them.
This course covers the design, installation and administration of computer networks at the operating system level from an applied perspective. The course includes a highly integrated hands-on component in which a fully functional single client and peer-to-peer client network is realized within a hybrid physical and virtualized platform is used.
Performing undergraduate research in computer science requires that students have foundational knowledge and skills related to research methodology. In this course, students will learn the basics of performing research including how to identify a research problem, performing background research, reading published research, and developing a research plan.
This is the first of a two-course sequence that presents how engineering principles are applied in the development of large, complex software systems. The focus is on issues of the analysis, design, and development phases of the software development life cycle. Topics presented include software development methodologies, modeling, and version control, and development for different platforms (PC, web, mobile).
Building upon the topics presented in CSC 310, this course will include topics such as configuration management, design patterns, software validation and verification, deployment, and software evolution.
This course covers administering network operating systems. Topics include Windows system and UNIX (Linux) system administration, application (Database, Web) maintenance and interoperability between Windows and Linux systems.
This course covers computing history, computer technology and terminology, basic logic design, computer architecture, CPU architecture, memory systems and assembly language.
This course introduces the concept of structured programming in a business-programming environment. Concepts covered include object-oriented program structures, developing text and GUI interfaces, file processing, database information processing, data conversion and information processing.
This course stresses advanced topics in database management systems, particularly: advanced processing and SQL techniques, recovery and security issues and strategies, advanced database models, performance and tuning issues, distributed databases including data warehousing and related concepts.
This class will focus on the identification of a problem and the preparation of a research proposal for the required Senior Research Project. Students will work individually or in teams under the guidance of the faculty member to formally define the hypothesis for their research project and perform related background research. A formal proposal for a research project will be developed and presented by semester.s end.
This course covers operating systems, processes and threads, CPU scheduling, mutual exclusion and synchronization, deadlock, memory management, file systems, networking, distributed systems and systems programming.
This course covers advanced concepts and tools associated with network operation and performance. Topics include network topology, network hardware (switches and routers), communication protocols and packet formats, troubleshooting techniques, multi-platform integration, and network security and configuration.
This course covers concepts and tools associated with evaluating the security of a computer system or network and the defense of attacks from malicious outsiders. Topics include the anatomy of an attack, survey of tools used in attacks, strategies used in attacks, and techniques and guidelines on how to prevent or mitigate attacks. Documenting the attacks, from the attacker and the victim perspective, is also covered.
This course is an introduction to the theoretical foundations underlying computing. Topics include language specification and grammars, finite and pushdown automata, Turing machines, decidability, and computability. Application of these concepts into areas such as compiler design will also be discussed.
Building on concepts of basic algorithm design and complexity analysis introduced in Computer Science I&II, this course explores advanced algorithm design and analysis. Topics may include advanced data structures, inductive algorithms, graph algorithms, geometric, algebraic, and numeric algorithms, reductions, NP-completeness, and parallel algorithms. Emphasis is placed on formal efficiency analysis of algorithms utilizing concepts from discrete mathematics.
This course will serve as an introduction to artificial intelligence concepts and techniques. Specific topics include a historical and philosophical perspective on AI, the Python programming language, the agent paradigm, search techniques, game playing, knowledge representation and reasoning, logic systems, uncertain reasoning and Bayes nets, planning, and machine learning. Time permitting, special topics in the instructor.s research interests will be covered, and may include: advanced pattern recognition, multi-agent systems, or natural language processing.
This course provides a methodical approach to developing computer systems including feasibility study, systems planning, analysis, design, testing, implementation, and software maintenance. Structured Systems Analysis and Design will be emphasized, but data-structure based and object-oriented Systems Analysis and Design methods will also be covered, with an emphasis on the relationship between the latter two methodologies.
This course provides a methodical approach to project management in the context of an information system organization. The theory and practice of project management are studied and applied. Topics include system life cycle planning, organizational structures, team building, interview techniques, management functions, project management software, project evaluation and control, and technical writing.
This course is designed to be a senior capstone experience in which the student is expected to demonstrate mastery of the skills and concepts acquired throughout the major curriculum. The internship is required to match the individual.s major program and have an emphasis on the application of classroom knowledge to actual practice. All internships must be approved by the faculty of the department. Due to the capstone nature of the course, senior status within the major is a required pre-requisite.
This course provides a project-oriented experience and is intended primarily for those students who are seeking a research experience or who for logistical reasons are unable to participate in an internship experience. Any student seeking to pursue this option must submit a detailed project proposal to the computer science faculty for approval. The project proposal must demonstrate that the project is of significant breadth and depth to be considered a capstone experience, integrating multiple aspects of the student's background coursework and extending the student's knowledge in at least one aspect of his or her area of concentration.
This is the first of a two-semester sequence (CSC 480/481). See description of CSC 481 below.
This two-semester sequence (CSC 480/481) is designed to be a capstone experience in the software engineering major that provides the opportunity to analyze, design, develop, and test a large software system. The projects undertaken will be large-scale and complex, requiring students to apply the engineering principles learned in previous courses. Project will be completed by teams of students. At the end of the experience a technical paper and presentation will be required.
During this course, students work on the research project defined in the pre-requisite Senior Research Proposal course. Students will conduct their research, making presentations along the way to obtain valuable feedback from the instructor and fellow students. Progress on the project will be sufficient to enable completion of the research, writing of a thesis and presentation of the work in the subsequent course.
This course focuses on completion of the research project defined in the pre-requisite Senior Research Proposal course and developed in the pre-requisite course. Students will continue to conduct their research, making presentations along the way to obtain valuable feedback from the instructor and fellow students. Successful completion of the course will require completion of the research, writing of a thesis on the work, and presentation of the completed project.