Computer Science (COM S) | Iowa State University Catalog

KeyGenSumo.com | S Catalog

KeyGenSumo.com | S Catalog

Catalog 4300 PDF Version. PDF Version 2 — 6/2021 located within the Assembly/Installation section of this catalog. 8-10-8UR001 R5OLO-S. T&S Brass offers a full range of top quality foodservice, commercial, laboratory, and pet market faucets and fittings. [a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa].

KeyGenSumo.com | S Catalog - certainly right

Grading

Faculty and instructors submit grades once coursework has been completed. The approved grade mode(s) are included in the information with each course in this General Catalog (in the course bubble). Grade modes are Traditional (A through F letter grades), Student Option Satisfactory/Unsatisfactory, Instructor Option, Satisfactory/Unsatisfactory, and Audit. See below for more information.

Grading Scale

Grade points

GradeGrade points per credit
A+4.000
AExcellent4.000
A-3.667
B+3.334
BGood3.000
B-2.667
C+2.334
CSatisfactory2.000
DPoor, but passing1.000
FFailure0.000
SSatisfactory 2
UUnsatisfactory 1
IIncomplete 1
WWithdrawal 1
HHonors 2
AUAudit 1
NGNo Grade Reported 1
NGCNon Graded Component 2

Credits for courses graded F are used to compute GPA, but they do not count toward graduation.

Effective Fall 2008, C-, D+, and D- grades are not assigned at CSU.

When an X is placed before a grade, e.g., XA, XB, etc., the student has been granted an Academic Fresh Start. These grades are not calculated into the grade point average.

When an R is placed before the grade, the student has elected to repeat the course under the terms of CSU’s Repeat/Delete policy. The original course grade is not calculated into the grade point average.

When an AM is placed before the grade, it indicates a finding of academic misconduct by the student in the particular course. For more information, see Procedures for Dealing with Academic Misconduct in the Students' Responsibilities section of University Policies.

Students may contest whether or not an assigned grade was recorded accurately in the educational record by following the procedures described under the Grade Appeal section.

Grade Mode Descriptions

Traditional

Term grades are reported using the Grading Scale above.

Faculty use of +/- grading is optional. Instructors should indicate on the course syllabus and/or policy statement the grading system used in the course.

Student Option Satisfactory/Unsatisfactory

Undergraduate students may elect satisfactory/unsatisfactory grading in one course per term for courses offering the Student Option Satisfactory/Unsatisfactory grading under the following conditions:

Undergraduate students, except first-term freshmen and transfers, with a cumulative CSU grade point average of 2.000 or better and with their advisor’s consent may register for approved courses on a Student Option Satisfactory/Unsatisfactory basis. This option may not be used in areas of study required in the student’s major, minor, teacher licensure, or for All-University Core Curriculum requirements (i.e., it must consist of free electives not specified as to the general area of study). For example, a three-credit social science requirement would not be considered a free elective. Students must register for the course first and then complete the Satisfactory/Unsatisfactory (S/U) Grading form to elect this option. The form can be found on the Office of the Registrar’s website. Changes to Satisfactory/Unsatisfactory grading can only be made during the add/drop period.

A grade for a course taken as Satisfactory/Unsatisfactory may not be converted to a traditional grade for purposes of improving the GPA to meet graduation or scholastic requirements. In situations where students change their major or minor to include required courses taken previously for Satisfactory/Unsatisfactory grades, the major department will determine if such courses may be considered as fulfilling degree requirements. When it is determined that an ineligible student is or has been registered for a Satisfactory/Unsatisfactory course, a traditional grade will be assigned. A correct Satisfactory/Unsatisfactory registration, including advisor approval, is the express responsibility of each student.

Satisfactory/Unsatisfactory registration policies for graduate students are described in the Graduate and Professional Bulletin.

Instructor Option

Instructor option grading allows the instructor to determine whether Traditional or Satisfactory/Unsatisfactory grading is to be used for a course. In courses approved for instructor option grading, the type of grading (Traditional or Satisfactory/Unsatisfactory) to be used for all students in the course during the term is to be indicated on the course syllabus. 

Satisfactory/Unsatisfactory Grades

Performance equivalent to a grade of C or better is recorded as Satisfactory. Performance equivalent to a grade of D or F is recorded as Unsatisfactory. Neither S nor U grades are used in calculating the CSU grade point average; however, courses graded S may apply to graduation requirements.

Audit

A student wanting to attend a class without earning credits may register as an auditor. Auditing a course requires prior approval of the instructor of the course. If an instructor determines an auditor’s attendance or participation is unsatisfactory, the course will not be recorded on the student’s academic record. Changes to or from audit status must be made during the registration and/or the add/drop period. Tuition and fees are assessed for audited credits. Audits do not count toward full-time status for loan deferments, financial aid, etc., and are not eligible for the College Opportunity Fund (COF). Students must register for the course first and then complete the Audit Grading form. The form can be found at the Office of the Registrar’s website.

Incomplete Grades

At the discretion of the instructor, a temporary grade of “I” may be given to a student who demonstrates it is not possible to complete the requirements of a course due to circumstances beyond the student’s control and not reasonably foreseeable. A student must be passing a course at the time an Incomplete is requested unless the instructor determines there are extenuating circumstances to assign an Incomplete to a student who is not passing the course. When an instructor assigns an “I”, the instructor shall specify, in writing, the requirements the student shall fulfill to complete the course as well as the reasons for granting an “I” if the student is not passing the course. The instructor shall retain a copy of this statement in the grade records and provide copies to the student and the department head or designee. Students will be notified to take action on Incomplete grades at the beginning of their anticipated graduation term. The student should not register for the course again to complete the coursework. After successful completion of the makeup requirements, Incomplete grades will be changed by the instructor of record or the department head, in absence of the instructor of record. After one year, or at the end of the semester in which the student graduates (whichever comes first), an Incomplete will be automatically changed to an “F” (failure) or a "U" (unsatisfactory) unless the course has been previously completed and a grade change submitted by the instructor or the head of the department. If the class for which the student has been given an Incomplete is S/U only, the grade shall revert to a "U"; if it is a traditionally graded class, it shall revert to an "F". If a course is instructor option and S/U grades exist, the Incomplete will roll to a "U". If only traditional grades ("A" thru "F") exist, the Incomplete will roll to an "F". The temporary grade of “I” must be changed to a grade (e.g., A, B, C, D, F, S, U) prior to the student being awarded a diploma from CSU.(Faculty Council approved minutes March 6, 2018)

Discontinuing a Class (Student Non-Attendance)

If a student discontinues attending a class and has not officially dropped or withdrawn through RAMweb or the Office of the Registrar, the grade of F (failure) is recorded.

Semester Grades

Students may access their semester grades through RAMweb three business days after the week of final exams for each term.

Transcripts

Transcripts of students’ official academic records are maintained by the Office of the Registrar. Official and unofficial copies of a student’s transcript may be obtained by the student through RAMweb.

Grade Appeals

Instructors are responsible for clearly stating the instructional objectives of the course at the beginning of each term and for evaluating student achievement in a manner consistent with these objectives. Students are responsible for maintaining standards of academic performance established for each course in which they are enrolled. Instructors are responsible for determining and assigning final course grades. Graded examinations, papers, and other materials used as a basis for evaluating a student’s achievement will be available to the student for inspection and discussion.

Students may appeal instructors' grading decisions. The burden of proof, however, rests with the student to demonstrate the grading decision was made on the basis of any of the following conditions. (Faculty Council approved minutes May 4, 2010)

  1. The grading decision was made on some basis other than performance and other than as a penalty for academic misconduct.
  2. The grading decision was based upon standards unreasonably different from those which were applied to other students in the same course and section.
  3. The grading decision was based on a substantial, unreasonable, or unannounced departure from previously articulated standards.

Before making an appeal, the student should discuss the situation with the instructor(s) involved in the decision. To appeal a grading decision, the student shall submit a written request to the department head. The request must set forth the basis for the appeal, identifying one or more of the three criteria set forth above.

The request must be submitted (or postmarked, if mailed) no later than thirty (30) calendar days after the first day of classes of the following spring semester for appeal of grades recorded for the fall and no later than thirty (30) calendar days after the first day of classes of the following fall semester for grades received in the spring or summer semester. If no appeal is filed within this time period, the grade shall be considered final.

Within thirty (30) days of receipt of an appeal, the department head shall forward the appeal to the course instructor(s) who assigned the grade and an appeal committee shall be formed. If the request is received during or shortly before the summer session, when the course instructor(s) who assigned the grade or member(s) of the appeal committee may not be available, the appeal committee will be formed no later than thirty (30) calendar days after the beginning of the following fall semester. The appeal committee shall be composed of two (2) faculty members, two (2) students from within the department, and one (1) faculty member from outside the department who shall serve as a the chair.  All five (5) members of the committee shall be voting members. The procedure for the selection of the members of the appeal committee shall be specified in the department code.

The appeal committee will review the written appeal and response of the instructor(s). They may elect to separately interview both the student and the instructor(s) before rendering a decision. The decision of the appeal committee will be based upon whether one of the conditions for an appeal set forth above has been met. At the conclusion of the deliberations, the committee shall render one of the following decisions:

  1. the original grading decision is upheld, or 
  2. the department chair or designee(s) will reevaluate the student’s achievement of the instructional objectives of the course and assign a grade accordingly.

Written notice of the committee’s decision and the reasons for the decision normally will be sent to the student and the instructor(s) within 30 calendar days of the appointment of the committee. The appeal committee’s decision is the final decision of the University. Written summaries of the hearing and decision, together with a rationale for that decision, shall be provided to the student and the instructor who assigned the grade and shall be retained in the department office for a period of one year.

Repeat/Delete Policy

Repeat/Delete is a one-time per course grading option that may be used by undergraduate students who repeat a course. Once a student has graduated from CSU, a student may not repeat/delete any CSU course taken prior to the date of graduation. The following rules apply when the Repeat/Delete option is applied:

  1. The grade received in the repeated course will be used in calculating the student’s GPA, regardless of whether the repeated grade is higher, the same as, or lower than the initial grade received. The initial grade will remain on the transcript but will not be used in calculating the GPA when the Repeat/Delete option is applied.
  2. It is the student’s responsibility to request the Repeat/Delete option through RAMweb before the expiration of the course withdrawal period for the semester in which the course is first repeated.
  3. The Repeat/Delete option may be used for a maximum of twelve (12) credit hours and no more than three courses.The Repeat/Delete option may not be applied to a course for which the final grade was given as a penalty for academic dishonesty in accordance with the academic integrity policy under section I.5.1 of the Academic Faculty and Administrative Professional Manual.
  4. If the course is repeated at any time subsequent to the use of the Repeat/Delete option, all grades for that course, except the initial grade, will be used in computing the student’s GPA.
  5. Although a course may be repeated as often as a student chooses, the Repeat/Delete option can be used only the first time a course is repeated.
  6. The Repeat/Delete option will not retroactively affect academic standing for previous terms. For example, use of the Repeat/Delete option may change a student’s cumulative grade point average, but it will not change the notation of probation previously recorded on the student’s record.

Note: Although CSU does not use the original course grade for GPA calculation once the Repeat/Delete option has been used, other educational institutions and potential employers may use this grade in their GPA calculation. Medical schools, many law schools, and other graduate programs, for example, may recalculate cumulative GPA using ALL grades on a transcript. 

Источник: [https://torrent-igruha.org/3551-portal.html]

Computer Science

COMP SCI 1000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 1001 Special Topics (LAB 0.0-6.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 1010 Introduction To Computer Science (LEC 1.0)

This course is devoted to an introduction of various areas of Computer Science, the faculty members, and lab equipment. Computer ethics will be discussed in several lectures.


COMP SCI 1200 Discrete Mathematics for Computer Science (LEC 3.0)

This course provides a rigorous treatment of topics from discrete mathematics which are essential to computer science. Principal topics include: formal logic (propositional & predicate), set theory, proof techniques, mathematical induction, program correctness, combinatorics, discrete probability, relations, functions, matrices, and graph theory. Prerequisite: A grade of "C" or better in either Comp Sci 1500 or Comp Sci 1570 and in one of Math 1120, Math 1140, Math 1208, or Math 1214.


COMP SCI 1500 Computational Problem Solving (LAB 1.0 and LEC 2.0)

This course provides a rigorous introduction to computational problem solving, thinking, and debugging, for those with little-to-no experience in computer science. Language-agnostic foundations focus on pseudo-code, flowcharts, and software-based code tracing, then build to programming in a high-level interpreted language, with a focus on data and modeling.


COMP SCI 1570 Introduction To C++ Programming (LEC 3.0)

Object-Oriented Programming design and development in C++. Emphasis placed on good programming practices. Topics include syntax/semantics, operators, control flow/decision branching, memory management, functions, file I/O, C-strings, arrays, pointers, classes, templates, inheritance, polymorphism, and exception handling. This course is programming intensive. Prerequisites: A grade of "C" or better in Comp Sci 1500 or in both of Comp Sci 1971 and Comp Sci 1981, and accompanied by Comp Sci 1580.


COMP SCI 1575 Data Structures (LEC 3.0)

A continuation of Object-Oriented Programming, with emphasis on the efficient organization of data through Abstract Data Types and Data Structures. Topics include Linked Lists, Vectors, Stacks, Queues, Trees, Hash Tables, Graphs and their use in a variety of algorithms. Recursive programming techniques are also covered. This course is programming intensive. Prerequisite: Grade of "C" or better in Comp Sci 1570.


COMP SCI 1580 Introduction To Programming Laboratory (LAB 1.0)

Practical applications of concepts learned in Computer Science 1570. Hands-on instruction in C++ developing, debugging, and testing programming projects. Prerequisite: Accompanied by Comp Sci 1570.


COMP SCI 1585 Data Structures Laboratory (LAB 1.0)

Hands-on instruction in programming development tools such as version control systems, integrated development environments, debuggers, profilers, and event-based programming environments. Exercises will complement the concepts presented in Comp Sci 1575. Prerequisite: Preceded or accompanied by Comp Sci 1575.


COMP SCI 1970 Basic Scientific Programming (LEC 2.0)

Introduction to the structure of programs and programming techniques in Fortran to solve science and engineering problems. Topics include data representation, basic solutions of numerical problems and the debugging and verification of programs. Prerequisite: Entrance requirements.


COMP SCI 1971 Introduction To Programming Methodology (LEC 2.0)

Basic structured programming and problem solving techniques using C++. Development, debugging, and testing of programs, data representation. Topics to include syntax/semantics, operators, loops, decision branching, arrays, file I/O. This course is a terminal course for non-majors and is not sufficient for entry into Computer Science 1575.


COMP SCI 1972 Introduction to MATLAB Programming (LEC 2.0)

Programming design and development using MATLAB for non-CS majors. Strong emphasis placed on algorithmic problem solving methods using good programming practices. Introduction to built-in functions including plotting, as well as logical/relational/arithmetic operators, decision branching, loops, functions, file I/O, datastructures, and output formatting. Prerequisite: Accompanied by Comp Sci 1982 and a "C" or better grade in either Math 1208 or Math 1214.


COMP SCI 1980 Computer Programming Laboratory (LAB 1.0)

A laboratory to accompany Comp Sci 1970 which emphasizes the designing, writing and debugging of programs in Fortran. Prerequisite: Accompanied by Comp Sci 1970.


COMP SCI 1981 Programming Methodology Laboratory (LAB 1.0)

A hands-on introduction to structured programming in C++. Development, coding, debugging, and execution of programming concepts discussed in Computer Science 1971. Prerequisite: Accompanied by Computer Science 1971.


COMP SCI 1982 MATLAB Programming Laboratory (LAB 1.0)

Practical application of concepts learned in Comp Sci 1972. Hands-on instruction in MATLAB developing, debugging and testing programming projects. Prerequisite: Accompanied by Comp Sci 1972.


COMP SCI 2000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 2001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 2002 Cooperative Work Training (IND 1.0-5.0)

On-the-job experience gained through cooperative education with industry, with credit arranged through departmental cooperative advisor. Grade received depends on quality of reports submitted and work supervisors evaluation. Not more than 9 hours may be applied to the B.S. degree.


COMP SCI 2200 Theory of Computer Science (LEC 3.0)

This course will cover the theoretical underpinnings of computer science. In particular, this course will cover the following topics: basic computability and formal language concepts, regular languages, context free languages, recursively-enumerable languages, and classes P, NP, and NP-completeness. Prerequisite: A grade of "C" or better in both Comp Sci 1200 and Comp Sci 1575.


COMP SCI 2300 File Structures and Introduction to Database Systems (LEC 3.0)

Course covers major topics in file structures and database systems including techniques for disk access and organization, record and file structures, index structures, sequential file, dense/sparse and secondary indexes, B-trees, range queries, insertion/deletion, hash tables, fundamentals of database systems, the ER model, relational model, algebra and SQL. Prerequisite: A grade of "C" or better in Comp Sci 1575.


COMP SCI 2500 Algorithms (LEC 3.0)

Students will solve recurrence relations, analyze algorithms for correctness and time/space complexity, apply these analysis techniques to fundamental dynamic programming, greedy, shortest-path, minimal spanning trees, and maximum flow algorithms and validate these analyses through programming. Prerequisite: A grade of "C" or better in both Comp Sci 1200 and Comp Sci 1575; preceded by a grade of "C" or better in either Math 1208 or Math 1214, or accompanied by either Math 1208 or Math 1214.


COMP SCI 2501 Java and Object Oriented Design (LEC 3.0)

This course will cover Basic Java, Applets, Application, Classes, interfaces, Strings, Arrays, Generics, inheritance, Polymorphism, Algorithm and Object Oriented Design, Software Testing, Exception Handling, File I/O. The use of Graphical User Interfaces in program design and introduction to Software Life Cycle. Project included. Prerequisite: A "C" or better grade in Comp Sci 1570.


COMP SCI 2889 Introduction To Computer Organization And Assembly (LEC 3.0)

A detailed study designed to teach the building blocks of a computer system, assembly language programming and the basic computer organization concepts. Subjects include digital logic, performance issues, machine & assembly language, binary arithmetic, and the structure of an ALU. Prerequisites: Comp Sci 1575 and Comp Sci 1200.


COMP SCI 3000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 3001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 3010 Seminar (IND 0.0-6.0)

Discussion of current topics.


COMP SCI 3100 Software Engineering I (LEC 3.0)

Development of methodologies useful in the software engineering classical life cycle. This includes: requirements, design, implementation, and testing phases. These methodologies are reinforced through utilization of a CASE tool and a group project. Prerequisite: A "C" or better grade in Comp Sci 2500 and at least Junior standing.


COMP SCI 3200 Introduction To Numerical Methods (LEC 3.0)

Finite difference interpolation, numerical differentiation and integration, linear systems of equations, solution of nonlinear equations, numerical solution of ordinary differential equations, computational techniques and the programming of a large number of problems on digital computers. Prerequisites: Program competency and a "C" or better grade in either Math 1215 or Math 1221.


COMP SCI 3500 Programming Languages And Translators (LEC 3.0)

Covers basic design of programming languages, compilers and interpreters. The concepts of syntax, variables, expressions, types, scope, functions, procedures, statements, I/O, exception handling and concurrency are introduced. The manner in which various programming languages handle these concepts is discussed. Prerequisite: A "C" or better grade in Comp Sci 2200.


COMP SCI 3601 Digital Forensics (LEC 3.0)

Planning/managing incidents and response related to digital forensics; identifying, collecting, and preserving digital evidence; live/dead approaches covering systems as a whole emphasizing file system forensics; analysis and interpretation of artifacts culminating in a final project consisting of a collection, analysis, and report; legal and ethical issues. Prerequisites: A grade of "C" or better in Comp Sci 3800.


COMP SCI 3610 Computer Networks (LEC 3.0)

This course covers general principles of computer networking, focusing primarily on internet protocols. It covers the TCP/IP stack, with the application layer first, moving down through link and physical layers. Topics include network virtualization, security, wireless, and mobile networks, with extensive live protocol analysis. Coursework is project based. Prerequisites: A grade of "C" or better in Comp Sci 3800.


COMP SCI 3800 Introduction to Operating Systems (LEC 3.0)

This course teaches the concepts, structure, and mechanisms of Operating Systems. Topics include process management, concurrency, synchronization, deadlock, multithreading, memory management, scheduling, and internetworking. Special emphasis is given to Unix and its modern-day derivatives. Prerequisites: A grade of "C" or better in both Comp Sci 1575 and Comp Eng 2210.


COMP SCI 3803 Computer Organization (LEC 3.0)

A detailed study of computer organization concepts and the components of a computer system including control unit, microprogrammming, pipelining, memory hierarchy, cache design, virtual memory, I/O devices, and a brief introduction to parallel processors. Prerequisites: A "C" or better in both Comp Eng 2210 and Comp Sci 1575. (Co-listed with Comp Eng 3110).


COMP SCI 4000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 4001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 4010 Seminar (RSD 1.0)

Discussion of current topics. Prerequisite: Junior standing.


COMP SCI 4090 Software Engineering Capstone I (LEC 3.0)

This is the first course in the Software Engineering Capstone sequence covering the Software Life Cycle. Students will learn about software engineering, and work in teams to spec, design, prototype, implement, test, document, deploy, and maintain a software system. This course is programming intensive, writing emphasized and addresses ethical considerations. Prerequisites: A grade of "C" or better in all of Comp Sci 2300, Comp Sci 2500, Comp Sci 3610, and in one of Philos 3225, Philos 3235, Philos 4340, or Philos 4368.


COMP SCI 4091 Software Engineering Capstone II (LEC 3.0)

This is the second course in the Software Engineering Capstone sequence covering the Software Life Cycle. Students will learn about software engineering, and work in teams to spec, design, prototype, implement, test, document, deploy and maintain a software system. This course is programming intensive, writing emphasized and addresses ethical considerations. Prerequisites: A grade of "C" or better in both Comp Sci 4090 and Comp Sci 4610.


COMP SCI 4096 Software Systems Development I (LEC 3.0)

Class members will work in small teams to develop a complete software system beginning with end-user interviews and concluding with end-user training. Prerequisites: 100 credit hours completed and a grade of "C" or better in both Comp Sci 3100 and one of Phil 3225, Phil 3235, Phil 4340, or Phil 4368.


COMP SCI 4097 Software Systems Development II (LEC 3.0)

This course is an optional continuation of Comp Sci 397. Those interested in project management should take this course since participants become officers or group leaders in the class "corporation." This course is especially important for those going straight into industry upon graduation. Students with coop experience may find this course redundant. Prerequisite: A "C" or better grade in Comp Sci 4096.


COMP SCI 4099 Undergraduate Research (IND 0.0-6.0)

Designed for the undergraduate student who wishes to engage in research. Does not lead to the preparation of a thesis. Not more than six (6) credit hours allowed for graduation credit. Subject and credit to be arranged with the faculty supervisor.


COMP SCI 4489 Multimedia Systems (LEC 3.0)

This course introduces the concepts and components of Multimedia information systems. Topics include: Introduction to Multimedia Data, Multimedia Date Compression, Techniques and Standards, Indexing and Retrieval, Data Storage Organization, Communication and Synchronization, Applications-Media-OnDemand Systems, Video Conferencing, Digital Libraries. Prerequisite: A "C" or better grade in Comp Sci 1575.


COMP SCI 4601 Computer Network Concepts And Technology (LEC 3.0)

This course will introduce computer network concepts and will survey the current and evolving technology for the construction, operation, and management of those networks. Both hardware and software issues will be addressed with a focus on local area networks. Prerequisite: A "C" or better grade in Comp Sci 3800.


COMP SCI 4610 Computer Security (LEC 3.0)

This course covers principles of threat-modeling, trust, and security policies. Topics include cryptography, reverse engineering, software security, malware analysis, authentication, access controls, operating systems hardening, virtualization, database security, and network security. This class is programming intensive and project based, with case-analyses. Prerequisites: A grade of "C" or better in Comp Sci 3800.


COMP SCI 4700 Intellectual Property For Computer Scientists (LEC 3.0)

A presentation of the relationship between the law of intellectual property and computer science. Topics include the application of copyright principles to computer programs, protection of computer programs through patents and trade secret law, and the effect of various agreements which are frequently encountered by the computer scientist. Prerequisite: Senior or graduate standing.


COMP SCI 5000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 5001 Special Topics (LEC 0.0-6.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 5040 Oral Examination (IND 0.0)

After completion of all other program requirements, oral examinations for on-campus M.S./Ph.D. students may be processed during intersession. Off-campus M.S. students must be enrolled in oral examination and must have paid an oral examination fee at the time of the defense/comprehensive examination (oral/ written). All other students must enroll for credit commensurate with uses made of facilities and/or faculties. In no case shall this be for less than three (3) semester hours for resident students.


COMP SCI 5099 Research (IND 0.0-16)

Investigations of an advanced nature leading to the preparation of a thesis or dissertation. Consent of instructor required.


COMP SCI 5100 Agile Software Development (LEC 3.0)

Understand principles of agile software development and contrast them with prescriptive processes. Specifically: Eliciting, organizing, and prioritizing requirements; Design processes; Understand how a particular process promotes quality; Estimate costs and measure project progress and productivity. Prerequisite: A "C" or better grade in Comp Sci 3100.


COMP SCI 5101 Software Testing And Quality Assurance (LEC 3.0)

It covers unit testing, subsystem testing, system testing, object-oriented testing, testing specification, test case management, software quality factors and criteria, software quality requirement analysis and specification, software process improvement, and software total quality management. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5102 Object-Oriented Analysis And Design (LEC 3.0)

This course will explore principles, mechanisms, and methodologies in object-oriented analysis and design. An object-oriented programming language will be used as the vehicle for the exploration. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5200 Analysis Of Algorithms (LEC 3.0)

The purpose of this course is to teach the techniques needed to analyze algorithms. The focus of the presentation is on the practical application of these techniques to such as sorting, backtracking, and graph algorithms. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5201 Object-Oriented Numerical Modeling I (LEC 3.0)

A study of object-oriented modeling of the scientific domain. Techniques and methodologies will be developed enabling the student to build a class library of reusable software appropriate for scientific application. Applications will be drawn from mechanics, finance, and engineering. Prerequisites: A grade of "C" or better in both Comp Sci 3200 and Comp Sci 1575; a grade of "C" or better in one of Math 3108, 3103, 3329.


COMP SCI 5202 Object-Oriented Numerical Modeling II (LEC 3.0)

A continued study of object-oriented modeling of the scientific domain. Advanced applications include models posed as balance laws, integral equations, and stochastic simulations. Prerequisite: A "C" or better grade in Comp Sci 5201.


COMP SCI 5203 Mathematical Logic I (LEC 3.0)

A mathematical introduction to logic with some applications. Functional and relational languages, satisfaction, soundness and completeness theorems, compactness theorems. Examples from Mathematics, Philosophy, Computer Science, and/or Computer Engineering. Prerequisite: Philos 3254 or Math 5105 or Comp Sci 2500 or Comp Eng 2210. (Co-listed with Math 5154, Philos 4354 and Comp Eng 5803.).


COMP SCI 5204 Regression Analysis (LEC 3.0)

Simple linear regression, multiple regression, regression diagnostics, multicollinearity, measures of influence and leverage, model selection techniques, polynomial models, regression with autocorrelated errors, introduction to non-linear regression. Prerequisites: Math 2222 and one of Stat 3111, 3113, 3115, 3117, or 5643. (Co-listed with Stat 5346).


COMP SCI 5204H Regression Analysis-H (LEC 3.0)


COMP SCI 5205 Real-Time Systems (LEC 3.0)

Introduction to real-time (R-T) systems and R-T kernels, also known as R-T operating systems, with an emphasis on scheduling algorithms. The course also includes specification, analysis, design and validation techniques for R-T systems. Course includes a team project to design an appropriate R-T operating system. Prerequisites: COMP ENG 3150 or COMP SCI 3800. Co-listed with Comp Eng 5170.


COMP SCI 5300 Database Systems (LEC 3.0)

This course introduces the advanced database concepts of normalization and functional dependencies, transaction models, concurrency and locking, timestamping, serializability, recovery techniques, and query planning and optimization. Students will participate in programming projects. Prerequisite: A "C" or better grade in both Comp Sci 1200 and Comp Sci 2300.


COMP SCI 5400 Introduction To Artificial Intelligence (LEC 3.0)

A modern introduction to AI, covering important topics of current interest such as search algorithms, heuristics, game trees, knowledge representation, reasoning, computational intelligence, and machine learning. Students will implement course concepts covering selected AI topics. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5401 Evolutionary Computing (LEC 3.0)

Introduces evolutionary algorithms, a class of stochastic, population-based algorithms inspired by natural evolution theory (e.g., genetic algorithms), capable of solving complex problems for which other techniques fail. Students will implement course concepts, tackling science, engineering and/or business problems. Prerequisite: A "C" or better grade in both Comp Sci 2500 and in a Statistics course.


COMP SCI 5402 Introduction to Data Mining (LEC 3.0)

The key objectives of this course are two-fold: (1) to teach the fundamental concepts of data mining and (2) to provide extensive hands-on experience in applying the concepts to real-world applications. The core topics to be covered in this course include classification, clustering, association analysis, data preprocessing, and outlier/novelty detection. Prerequisites: A grade of "C" or better in all of Comp Sci 2300, Comp Sci 2500, and one of Stat 3113, Stat 3115, Stat 3117 or Stat 5643.


COMP SCI 5403 Introduction to Robotics (LEC 3.0)

This course provides an introduction to robotics, covering robot hardware, fundamental kinematics, trajectories, differential motion, robotic decision making, and an overview of current topics in robotics. Prerequisite: A grade of "C" or better in both Math 3108 and Comp Sci 1575. (Co-listed with Comp Eng 5880 and Elec Eng 5880).


COMP SCI 5404 Introduction to Computer Vision (LEC 3.0)

This course introduces foundational theories and analysis methods in computer vision. Topics will include camera model and geometry, description of visual features, shape analysis, stereo reconstruction, motion and video processing, and visual object recognition. Prerequisite: A "C" or better grade in both Math 3108 and Comp Sci 2500.


COMP SCI 5405 Java Gui & Visualization (LEC 3.0)

Fundamentals of Java Swing Foundation Classes, Java System Language Specifics, Graphical User Interfaces, Images, Audio, Animation, Networking, and Threading. Visualization of Algorithms. GUI Elements include Event Driven Programming, Interaction with Mouse and KeyBoard, Window Managers, Frames, Panels, Dialog Boxes, Borders. Prerequisite: A "C" or better grade in Comp Sci 2500 or equivalent.


COMP SCI 5406 Interactive Computer Graphics (LEC 3.0)

Applications and functional capabilities of current computer graphics systems. Interactive graphics programming including windowing, clipping, segmentation, mathematical modeling, two and three dimensional transformations, data structures, perspective views, antialiasing and software design. Prerequisite: A "C" or better grade in both Comp Sci 3200 and Comp Sci 2500.


COMP SCI 5407 Introduction to Virtual Reality (LEC 3.0)

Fundamentals: creative and digital skills. Houdini interface (Scene View, Network, Parameter panes), design facets (networks of nodes, navigation of networks interactive 3D modeling and visualization, digital assets, animation, lights, cameras, rendering), and simple applications of particles, dynamics, and fluids (Shattering, Destruction, Smoke, Fire). Prerequisites: A grade of "C" or better in both Comp Sci 2500 and Math 3108.


COMP SCI 5408 Game Theory for Computing (LEC 3.0)

This course introduces the mathematical and computational foundations of game theory, and its applications to computer science (e.g., cybersecurity, robotics and networking). Topics include decision rationality, game representations, equilibrium concepts (e.g., Nash equilibrium), Bayesian games, dynamic games, cooperative game theory, and mechanism design. Prerequisites: A grade of "C" or better in both Comp Sci 2500 and Math 3108, and in one of Stat 3113, Stat 3115, Stat 3117, or Stat 5643.


COMP SCI 5500 The Structure of a Compiler (LEC 3.0)

Review of Backus normal form language descriptors and basic parsing concepts. Polish and matrix notation as intermediate forms, and target code representation. Introduction to the basic building blocks of a compiler: syntax scanning, expression translation, symbol table manipulation, code generation, local optimization, and storage allocation. Prerequisite: A "C" or better grade in both Comp Sci 3500 and Comp Sci 2500.


COMP SCI 5600 Computer Networks (LEC 3.0)

This course focuses on the Internet and the general principles of computer networking. It covers the TCP/IP model from the application layer to the link layer in a top-down approach. It also exposes students to multimedia networking, network security, wireless and mobile networks. It is a networking class targeted for entry-level graduate students. This course has additional requirements beyond CS4600 on network performance modeling and analysis, development and implementation of complex communication protocols. Credit will not be given if previously have taken CS4600 or CpE 4410/5410. Prerequisite: A "C" or better grade in Comp Sci 3800.


COMP SCI 5601 Security Operations & Program Management (LEC 3.0)

An overview of information security operations, access control, risk management, systems and application life cycle management, physical security, business continuity planning, telecommunications security, disaster recovery, software piracy, investigations, ethics and more. There will be extensive reporting, planning and policy writing. Prerequisite: A "C" or better grade in all of: operating systems, computer networking, and a writing emphasized course.


COMP SCI 5602 Introduction to Cryptography (LEC 3.0)

Introduces fundamentals of modern cryptography. Topics include basic number theory, public & private key encryption schemes, cryptographic hash functions, message authentication codes, elliptic curve cryptography, Diffie-Hellman key agreements, digital signatures, PUFs, quantum cryptography, and generation of prime numbers and pseudo-random sequences. Prerequisites: A grade of "C" or better in COMP SCI 5200 or a grade of "B" or better in COMP SCI 2500.


COMP SCI 5700 Bioinformatics (LEC 3.0)

The course will familiarize students with the application of computational methods to biology, as viewed from both perspectives. It will introduce problems in molecular, structural, morphological, and biodiversity informatics, and will discuss principles, algorithms, and software to address them. Prerequisites: A grade of "C" or better in both one of Bio Sci 1113 or Bio Sci 1213 and one of Comp Sci 1570 and Comp Sci 1580 or Comp Sci 1971 and Comp Sci 1981. (Co-listed with Bio Sci 5323).


COMP SCI 5800 Distributed Computing (LEC 3.0)

This is an introduction to the fundamentals of distributed computing. Topics include a review of communication between distributed processes, causality, distributed state maintenance, failure detection, reconfiguration and recovery, distributed mutual exclusion, clock synchronization, and leader election. Students will implement select course concepts. Prerequisites: A grade of "C" or better in both Comp Sci 3800 and Comp Sci 2500.


COMP SCI 5801 The Structure Of Operating Systems (LEC 3.0)

The hardware and software requirements for operating systems for uniprogramming, multiprogramming, multiprocessing, time sharing, real time and virtual systems. The concepts of supervisors, interrupt handlers, input/output control systems, and memory mapping are discussed in detail. Prerequisite: A "C" or better grade in Comp Sci 3800.


COMP SCI 5802 Introduction to Parallel Programming and Algorithms (LEC 3.0)

Parallel and pipelined algorithms, architectures, network topologies, message passing, process scheduling and synchronization. Parallel programming on clusters. Cost, speedup and efficiency analysis. Prerequisite: A "C" or better grade in both Comp Sci 3800 and Comp Sci 2500.


COMP SCI 5803 Introduction to High Performance Computer Architecture (LEC 3.0)

Overviews high performance architecture of computing systems and covers various architectural/hardware and software/algorithmic means that enhance performance. Uniprocessor and concurrent systems are investigated. Various computational models are studied and linked to commercial systems. Prerequisite: A "C" or better grade in both Comp Eng 3150 and Comp Sci 2500. (Co-listed with Comp Eng 5110).


Источник: [https://torrent-igruha.org/3551-portal.html]

Catalogs

The online catalog management system—acalog™—contains a number of features to assist you, including advanced search options, intuitive navigation and a personal portfolio to store favorite programs and courses. This online catalog is a powerful tool to help you quickly locate undergraduate and graduate programs and courses whether you are a prospective student or already enrolled at Western Michigan University. Not all courses listed in this catalog are offered every semester. It is important to visit your academic advisor on a regular basis to stay on track to graduate.

Purpose of the catalog

The WMU catalogs are the official source of the university’s academic programs, courses, policies and procedures. The catalog should be used as a guide—in conjunction with your academic advisor—in planning a course of study and in meeting requirements for graduation.

Non-discrimination policy

Western Michigan University prohibits discrimination or harassment which violates the law—or which constitutes inappropriate or unprofessional limitation of employment, University facility access or participation in University activities—on the basis of race, color, religion, national origin, sex, sexual orientation, gender identity, age, protected disability, veteran status, height, weight or marital status.

Current catalogs

Undergraduate catalog 2021-22
Graduate Catalog 2021-22
Archived Catalogs

2005 and earlier

Catalogs from 1936 to 2005 are available as downloadable PDFs. Choose the appropriate catalog and then click download button located on the right side of the page.

Источник: [https://torrent-igruha.org/3551-portal.html]
Iowa State University Courses and Programs (2021-2022 Catalog)Select a section... View PDF

Any experimental courses offered by COM S can be found at:registrar.iastate.edu/faculty-staff/courses/explistings/

Expand all courses

Courses primarily for undergraduates:

Cr. R. F.S.


Introduction to the computer science discipline and code of ethics, Com S courses, research and networking opportunities, procedures, policies, help and computing resources, extra-curricular activities offered by the Department of Computer Science and Iowa State University. Discussion of issues relevant to student adjustment to college life. Offered on a satisfactory-fail basis only. Offered on a satisfactory-fail basis only.

Cr. 4. F.S.SS.


Introduction to computer literacy and applications. Literacy: Impact of computer technology in today’s societies, hardware, software, software programming, database and information systems, communication and networks, digital media technology, computer security and safety, ethics and privacy. Applications: In-depth hands-on experience with the operating systems, Microsoft word processing, spreadsheets, database management and presentation software. No prior computer experience necessary. Offered online only. Attendance required at an orientation session the first week of class.

(1.5-1) Cr. 2. F.S.


Offered first 8 weeks and last 8 weeks. Use of personal computer and workstation operating systems and beginning programming. Project-oriented approach to computer operation and programming, including use of tools to aid in programming. Topics from computer history, using basic Windows and Unix tools, program structure, expression, variables, decision and logic, and iteration. No prior computer experience necessary.

(3-0) Cr. 3. F.S.


Introduction to web programming basics. Fundamentals of developing web pages using a comprehensive web development life cycle. Learn to design and code practical real-world homepage programs and earn adequate experience with current web design techniques such as HTML5 and cascading style sheets. Students also learn additional programming languages including JavaScript, jQuery, PHP, SQL, and MySQL. Strategies for accessibility, usability and search engine optimization. No prior computer programming experience necessary.

(3-0) Cr. 3.

Prereq: COM S 107 or equivalent
Advanced programming applications in Visual Basic for non-majors. Emphasis on programming projects including sorting, file processing, database processing, web programming, and graphics and animation. Students will learn problem solving techniques and advanced programming skills to build real-world applications.

(2-2) Cr. 3. F.S.SS.


Using Microsoft Excel spreadsheets and Microsoft Access databases to input, store, process, manipulate, query, and analyze data for business and industrial applications. Credit in Com S 113 may not be applied toward graduation in the COM S, S E, and CPR E majors.

(3-2) Cr. 4. F.S.

Prereq: Credit or Enrollment in MATH 140 or higher
Introduction to computer programming with an emphasis on problem solving. Topics include: program structures, expressions, variables, decision and logic, iteration, collections, input and output. Program construction and testing. Programming assignments including games and applications. No prior programming experience necessary. This course is intended for Computer Science majors.

Cr. R. F.S.


Computer science as a profession. Introduction to career fields open to computer science majors. Relationship of coursework to careers. Presentations by computer science professionals. Offered on a satisfactory-fail basis only.

(Cross-listed with MIS). (3-1) Cr. 3. F.S.SS.

Prereq: MATH 150 or placement into MATH 140 or higher
An introduction to computer programming using an object-oriented programming language. Emphasis on the basics of good programming techniques and style. Extensive practice in designing, implementing, and debugging small programs. Use of abstract data types. Interactive and file I/O. This course is not designed for computer science, software engineering, and computer engineering majors. Credit may not be applied toward graduation for both Com S 207/MIS 207 and Com S 227.

(3-1) Cr. 3.

Prereq: MIS/COM S 207, credit or enrollment in MATH 151, MATH 160, or MATH 165
Intermediate-level programming techniques. Emphasis on designing, writing, testing, debugging, and documenting medium-sized programs. Data structures and their uses. Dynamic memory usage. Inheritance and polymorphism. Algorithm design and efficiency: recursion, searching, and sorting. Event-driven and GUI programming. The software development process. This course is not designed for computer science, software engineering and computer engineering majors. Credit may not be applied toward the major in computer science, software engineering, or computer engineering.

(3-2) Cr. 4. F.S.SS.

Prereq: Credit or Enrollment in MATH 143 or higher; recommended: a previous high school or college course in programming or equivalent experience.
Computer programming using objects as the mechanism for modularity, abstraction, and code reuse. Instance variables, methods, and encapsulation. Review of control structures for conditionals and iteration. Developing algorithms on strings, arrays, and lists. Recursion, searching, and sorting. Text parsing and file I/O. Interfaces, inheritance, polymorphism, and abstract classes. Exception handling. Tools for unit testing and debugging. Emphasis on a disciplined approach to specification, code development, and testing. Course intended for Com S majors. Credit may not be applied toward graduation for both Com S 207 and 227.

(3-1) Cr. 3. F.S.SS.

Prereq: Minimum of C- in COM S 227, credit or enrollment in MATH 165
An object-oriented approach to data structures and algorithms. Object-oriented analysis, design, and programming, with emphasis on data abstraction, inheritance and subtype polymorphism, and generics. Abstract data type specification and correctness. Collections including lists, stacks, queues, trees, heaps, maps, hash tables, and graphs. Big-O notation and algorithm analysis. Searching and sorting. Graph search and shortest path algorithms. Emphasis on object-oriented design, writing and documenting medium-sized programs. This course is designed for majors.

(3-0) Cr. 3. F.

Prereq: CPR E 185 or S E 185 or COM S 127 or COM S 207 or COM S 227
Introduction to installation, utilization, and administration of Linux systems. Topics include open-source software, package installation and management, shell programming and command-line utilities, process and service management, account management, network configuration, file sharing, interoperation with other computers and operating systems, automation, and system security.

Cr. arr. Repeatable, maximum of 6 credits. F.S.SS.

Prereq: Permission of instructor
No more than 6 credits of Com S 290 or Com S 290H may be counted toward graduation.

(3-1) Cr. 3. F.S.SS.

Prereq: Minimum of C- in COM S 228; MATH 166, ENGL 150; COM S 230 or CPR E 310
Basic techniques for design and analysis of algorithms. Sorting, searching, graph algorithms, string matching, and NP-completeness. Design techniques such as dynamic programming, divide and conquer, greedy method, and approximation. Asymptotic, worst-case, average-case and amortized analyses. Topics from advanced data structures such as balanced trees and hashing. Programming projects.

(Cross-listed with S E). (3-0) Cr. 3. F.S.

Prereq: COM S 228
Overview of user interface design. Evaluation and testing of user interfaces. Review of principles of object orientation, object oriented design and analysis using UML in the context of user interface design. Design of windows, menus and commands. Developing Web and Windows-based user-interfaces. Event-driven programming. Introduction to Frameworks and APIs for the construction of user interfaces.

Cr. 1. F.S.

Prereq: Minimum of C- in COM S 228; COM S 230 or CPR E 310
Half-semester course. Design and implementation of libraries and applications in C, for students with prior programming background. Emphasis on differences between C and other languages, including file I/O, string processing, memory management, and buffer overruns. Using build systems, debuggers, and other development tools. Programming projects.

(3-0) Cr. 3. F.

Prereq: COM S 327, CoReq MATH 207 or MATH 317
Programming interactive computer graphics systems using standard low-level libraries (such as OpenGL or DirectX) with an emphasis on 3D rendering. The graphics pipeline and programmable shaders. Coordinate systems and transformations in two and three dimensions. Homogeneous coordinates, viewing transformations and perspective. Euler angles and quaternions. Visible surface algorithms. Lighting models and shading. Texture mapping, bump mapping, reflection, elementary ray tracing. Offscreen buffers, render-to-texture and related techniques.

(Cross-listed with MATH). (3-0) Cr. 3. S.

Prereq: MATH 201 or COM S 230
Divisibility, integer representations, primes and divisors, linear diophantine equations, congruences, and multiplicative functions. Applications to cryptography. Additional topics, chosen at the discretion of the instructor.

(3-0) Cr. 3. F.S.

Prereq: Minimum of C- in COM S 228 and MATH 165; ENGL 250
Relational, object-oriented, semistructured and query languages. SQL, XML, and NO-SQL. Database design using entity-relationship model, data dependencies, and relational database design. Application development in SQL-like languages and general purpose host languages with application program interfaces and a commonly used Object Relational Mapping framework. Web application development. Programming Projects.

Cr. R. Repeatable. F.S.SS.

Prereq: Permission of department chair
Required of all cooperative education students. Students must register for this course prior to commencing each work period.

(Cross-listed with BCBIO, BIOL, GEN). (4-0) Cr. 4. F.

Prereq: BCBIO 322, basic programming experience (e.g. COM S 127, COM S 227 or permission of instructor). MATH 160 or MATH 165; and STAT 101 or STAT 104; and MATH 166 or STAT 301.
Application of computer science and statistics to molecular biology with a significant problem-solving component, including hands-on programming using Python to solve a variety of biological problems. String algorithms, sequence alignments, homology search, pattern discovery, genotyping, genome assembly, genome annotation, comparative genomics, protein structure.

Cr. 2-3. Repeatable, maximum of 6 credits. F.S.

Prereq: COM S 309, COM S 311, COM S 321, COM S 331, ENGL 250, SP CM 212, and Senior Classification
Students work as individuals and teams to complete the planning, design, and implementation of a significant project in the topic area. Oral and written reports. No more than 6 credits of 402A, 402B, and 402C may be used toward graduation.

Cr. 2-3. Repeatable, maximum of 6 credits. F.

Prereq: COM S 309, COM S 311, COM S 321, COM S 331, and COM S 437, Senior Classification
Students conceive, plan, architect and design a computer game. Student registered in this course will work with students in ARTIS 409. Oral and written reports. No more than 6 credits of 402A, 402B, and 402C may be used toward graduation.

(0-6) Cr. 2-3. Repeatable, maximum of 6 credits. F.S.

Prereq: COM S 309, COM S 311, COM S 321, and COM S 331, Senior Classification
Students work as individuals and teams to complete the planning, design, and implementation of a significant project in the topic area. Oral and written reports. No more than 6 credits of 402A, 402B, and 402C may be used toward graduation.

(Dual-listed with COM S 507). (Cross-listed with AER E). Cr. 3. S.

Prereq: AER E 361 for AER E majors. COM S 311 for COM S majors. AER E 361 or COM S 311, or an equivalent course, plus instructor permission for other majors.
Introduction to the fundamentals of formal methods, a set of mathematically rigorous techniques for the formal specification, validation, and verification of safety- and security-critical systems. Tools, techniques, and applications of formal methods with an emphasis on real-world use-cases such as enabling autonomous operation. Build experience in writing mathematically analyzable specifications from English operational concepts for real cyberphysical systems, such as aircraft and spacecraft. Review capabilities and limitations of formal methods in the design, verification, and system health management of today's complex systems.

(Dual-listed with COM S 509). (3-0) Cr. 3.

Prereq: COM S 309; for graduate credit: graduate standing or permission of instructor
The requirements engineering process including elicitation, requirements analysis fundamentals, requirements specification and communication, and requirements evaluation. Modeling of functional and nonfunctional requirements, traceability, and requirements change management. Case studies and software projects.

(Dual-listed with COM S 513). Cr. 3.

Prereq: COM S 327 or CPR E 288; COM S 342
Algorithms and tools for automatically reasoning about code and program executions to predict software behavior. Theory and foundations related to control flow analysis, dataflow analysis, abstract interpretation and symbolic execution. Applications of program analysis to improve software security, performance and testing. Concepts, algorithms, tools, benchmarks, methodologies for solving problems using program analysis and for preparing research in program analysis.

(Dual-listed with COM S 514). (3-0) Cr. 3.

Prereq: COM S 227 or COM S 207 or GERON 377 or ARTGR 271 or equivalent; for graduate credit: graduate standing or permission of instructor
Interdisciplinary course designed for students interested in assistive technology, pervasive computing, mobile computing and principles of universal and inclusive design for end users, in particular, the elderly population. Students work in semester-long projects as interdisciplinary teams to apply knowledge obtained from lectures and mutual presentations. Research report and oral presentation required for graduate credit.

(Dual-listed with COM S 515). (3-0) Cr. 3.

Prereq: COM S 309 or COM S 311; for graduate credit: graduate standing or permission of instructor
An introduction to the hazard analysis, safety requirements, design, and testing of software for safety-critical and high-dependability systems. Safety analysis techniques, fault identification and recovery, and certification issues. Emphasizes a case-based and systematic approach to software's role in safe systems.

(Dual-listed with COM S 518). (3-0) Cr. 3.

Prereq: COM S 311; for graduate credit: graduate standing or permission of instructor
Introduction to data structures, algorithms, and analysis techniques for computational problems that involve geometry. Convex hulls, line segment intersection, polygon triangulation, 2D linear programming, range queries, point location, arrangements and duality, Voronoi diagrams, Delaunay triangulations, geometric data structures, robot motion planning, visibility graphs. Other selected topics. Programming assignments. Scholarly report required for graduate credit.

(3-1) Cr. 3.

Prereq: COM S 311, COM S 362 or COM S 363, ENGL 250, SP CM 212
A practical course in concepts, techniques, languages, and frameworks for concurrent and asynchronous systems. Concurrency fundamentals: threads, synchronization locks, waiting and notification, memory visibility. Immutability and thread confinement. Concurrent data structures and utilities, thread pools. Asynchronous programming with callbacks, futures, and message passing. Issues of aliasing, ownership and borrowing. Transactional memory, immutable and versioned data structures. Alternatives to threads and locks: event-driven systems, the actor model, CSP, coroutines. Students will investigate several non-mainstream languages supporting different concurrency models. Oral and written reports.

(Dual-listed with COM S 533). (3-0) Cr. 3.

Prereq: Minimum of C- in COM S 331 or permission of instructor; for graduate credit: graduate standing or permission of instructor
Programming, modeling, and analysis of natural and engineered systems at the nanoscale. Topics include chemical reaction networks, strand displacement systems, models of self-assembly, biomolecular origami, and molecular robotics. Emphasis on mathematical methods of describing, simulating, programming, and assessing the computational power of such systems. Graduate credit requires a written or oral report on current research.

(Dual-listed with COM S 535). (3-0) Cr. 3.

Prereq: COM S 311 or equivalent; for graduate credit: graduate standing or permission of instructor
Algorithmic challenges involved in solving computational problems on massive data sets. Probabilistic data structures, Curse of Dimensionality and dimensionality reduction, locality sensitive hashing, similarity measures, matrix decompositions. Optimization problems in massive data analysis. Computational problems that arise in the context of web search, social network analysis, online advertising etc. Practical aspects include implementation and performance evaluation of the algorithms on real world data sets. Graduate credit requires a written report on current research.

(Dual-listed with COM S 541). (3-1) Cr. 3.

Prereq: COM S 342 or COM S 440; for graduate credit: graduate standing or permission of instructor
Survey of the goals and problems of language design. Formal and informal studies of a wide variety of programming language features including type systems. Creative use of functional and declarative programming paradigms.

Cr. 3.

Prereq: COM S 311
Fundamentals of privacy preserving algorithms, data security, anonymization, and techniques and mechanisms to minimize disclosure of sensitive information while maintaining availability. Theory and fundamentals underpinning measures to evaluate the privacy and availability of data; implementation and deployment of privacy-preserving data operations including pre- and post-randomization techniques, homomorphisms, and secure function evaluation protocols. Theory and practice of the algorithmic limits on data privacy, including the cost in terms of time and space complexity.

(Dual-listed with COM S 554). (Cross-listed with CPR E). (3-1) Cr. 3.

Prereq: COM S 311; COM S 352 or CPR E 308; for graduate credit: graduate standing or permission of instructor
Theoretical and practical issues of design and implementation of distributed systems. The client server paradigm, inter-process communications, synchronization and concurrency control, naming, consistency and replication, fault tolerance, and distributed file systems. Graduate credit requires additional in-depth study of concepts. Programming projects and written reports.

(Dual-listed with COM S 555). (3-0) Cr. 3.

Prereq: COM S 311, STAT 305 or STAT 330 or STAT 341, ENGL 250; for graduate credit: graduate standing or permission of instructor
Introduction to discrete-event simulation with a focus on computer science applications, including performance evaluation of networks and distributed systems. Overview of algorithms and data structures necessary to implement simulation software. Discrete and continuous stochastic models, random number generation, elementary statistics, simulation of queuing and inventory systems, Monte Carlo simulation, point and interval parameter estimation. Graduate credit requires additional in-depth study of concepts.

(3-1) Cr. 3.

Prereq: COM S 311, ENGL 250, SP CM 212
Database design including entity-relationship model, relational data model, and non-relational data models, data dependency, and normalization. Database management including physical storage, access methods, query processing, and transaction management. Database systems of special purposes such as spatial databases, mobile object databases, and multimedia databases. Introduction to current database research such as cloud data management and Internet information retrieval.

(Dual-listed with COM S 572). (3-1) Cr. 3.

Prereq: COM S 311, STAT 330 or STAT 305 or STAT 341, ENGL 250; for graduate credit: graduate standing or permission of instructor
Basic principles, techniques, and applications of artificial intelligence. Specification, design, implementation, and applications of intelligent agents. Computational models of intelligent behavior, including problem solving, knowledge representation and reasoning, planning, decision making, learning, perception, and communication. Artificial intelligence programming. Term project and written report for graduate credit.

(Dual-listed with COM S 574). (3-1) Cr. 3.

Prereq: COM S 311, STAT 330 or STAT 305 or STAT 341, MATH 165, ENGL 250; for graduate credit: graduate standing or permission of instructor
Introduction to concepts, tools and techniques of machine learning for applications. Selected machine learning algorithms in practical data mining tasks such as classification, regression, and clustering, e.g., association rules, decision trees, linear models, Bayesian learning, support vector machines, artificial neural networks, instance-based learning, probabilistic graphical models, ensemble learning, and clustering algorithms. Selected applications in data mining and pattern recognition.

(Dual-listed with COM S 576). Cr. 3.

Prereq: COM S 311, ENGL 250
Recent techniques for developing algorithms that automatically generate continuous motions while satisfying geometric constraints. Applications in areas such as robotics and graphical animation. Basic path planning. Kinematics, configuration space, and topological issues. Collision detection. Randomized planning. Nonholonomic systems. Optimal decisions and motion strategies. Coordination of Multiple Bodies. Representing and overcoming uncertainties. Visibility-based motion strategies. Implementation of software that computes motion strategies. Written reports.

(Dual-listed with COM S 577). (3-0) Cr. 3.

Prereq: COM S 228; COM S 230 or CPR E 310, MATH 166, MATH 207 or MATH 317, or consent of the instructor; for graduate credit: graduate standing or permission of instructor
Selected topics in applied mathematics, algorithms, and geometry that have found applications in areas such as geometric modeling, graphics, robotics, vision, human machine interface, speech recognition, computer animation, etc. Homogeneous coordinates and transformations, perspective projection, rotations in space, quaternions, polynomial interpolation, roots of polynomials and polynomial systems, solution of linear and nonlinear equations, parametric and algebraic curves, curvature, torsion, Frenet formulas, surfaces, principal curvatures, Gaussian and mean curvatures, geodesics, approximation, Fourier series and fast Fourier transform, linear programming, data fitting, least squares, simplex method, nonlinear optimization, Lagrange multipliers, calculus of variations. Programming components. Scholarly report required for graduate credit.

(Cross-listed with MATH). (3-0) Cr. 3. S.

Prereq: MATH 265 and either MATH 266 or MATH 267
First order Euler method, high order Runge-Kutta methods, and multistep methods for solving ordinary differential equations. Finite difference and finite element methods for solving partial differential equations. Local truncation error, stability, and convergence for finite difference method. Numerical solution space, polynomial approximation, and error estimate for finite element method. Computer programming required.

(3-0) Cr. 3.

Prereq: COM S 352 or CPR E 308
An introduction to fundamental concepts in the design and implementation of computer communication in both wired and wireless networks, their protocols, and applications. Layered network architecture in the Internet, applications, transport, network, and data link layers and their protocols, Socket API, software-defined networking, and network security.

(Dual-listed with COM S 587). (3-0) Cr. 3.

Prereq: COM S 352 or CPR E 489 or equivalent; for graduate credit: graduate standing or permission of instructor
Programming paradigms for building distributed and networking applications, including multithreaded client-server programming, socket programming, distributed object frameworks and programming suites, and web computing and security. Introduction to some on-going research issues in distributed and networking applications, including peer-to-peer computing, multimedia communications, and mobile computing and networking. Written report and oral presentation required for graduate credit.

Cr. arr. Repeatable, maximum of 9 credits. F.S.SS.

Prereq: 6 credits in computer science, permission of instructor
No more than 9 credits of Com S 490 or Com S 490H may be counted toward graduation.

Cr. arr. Repeatable, maximum of 9 credits. F.S.

Prereq: 6 credits in computer science, permission of instructor
No more than 9 credits of Com S 490 or Com S 490H may be counted toward graduation.

Courses primarily for graduate students, open to qualified undergraduates:

(Dual-listed with COM S 407). (Cross-listed with AER E). Cr. 3. S.

Prereq: AER E 361 for AER E majors. COM S 311 for COM S majors. AER E 361 or COM S 311, or an equivalent course, plus instructor permission for other majors.
Introduction to the fundamentals of formal methods, a set of mathematically rigorous techniques for the formal specification, validation, and verification of safety- and security-critical systems. Tools, techniques, and applications of formal methods with an emphasis on real-world use-cases such as enabling autonomous operation. Build experience in writing mathematically analyzable specifications from English operational concepts for real cyberphysical systems, such as aircraft and spacecraft. Review capabilities and limitations of formal methods in the design, verification, and system health management of today's complex systems.

(Dual-listed with COM S 409). (3-0) Cr. 3.

Prereq: COM S 309; for graduate credit: graduate standing or permission of instructor
The requirements engineering process including elicitation, requirements analysis fundamentals, requirements specification and communication, and requirements evaluation. Modeling of functional and nonfunctional requirements, traceability, and requirements change management. Case studies and software projects.

(Dual-listed with COM S 413). (Cross-listed with CPR E). Cr. 3.

Prereq: COM S 327 or CPR E 288; COM S 342
Algorithms and tools for automatically reasoning about code and program executions to predict software behavior. Theory and foundations related to control flow analysis, dataflow analysis, abstract interpretation and symbolic execution. Applications of program analysis to improve software security, performance and testing. Concepts, algorithms, tools, benchmarks, methodologies for solving problems using program analysis and for preparing research in program analysis.

(Dual-listed with COM S 414). (3-0) Cr. 3.

Prereq: COM S 227 or COM S 207 or GERON 377 or ARTGR 271 or equivalent; for graduate credit: graduate standing or permission of instructor
Interdisciplinary course designed for students interested in assistive technology, pervasive computing, mobile computing and principles of universal and inclusive design for end users, in particular, the elderly population. Students work in semester-long projects as interdisciplinary teams to apply knowledge obtained from lectures and mutual presentations. Research report and oral presentation required for graduate credit.

(Dual-listed with COM S 415). (3-0) Cr. 3.

Prereq: COM S 309 or COM S 311; for graduate credit: graduate standing or permission of instructor
An introduction to the hazard analysis, safety requirements, design, and testing of software for safety-critical and high-dependability systems. Safety analysis techniques, fault identification and recovery, and certification issues. Emphasizes a case-based and systematic approach to software's role in safe systems.

(Dual-listed with COM S 418). (3-0) Cr. 3.

Prereq: COM S 311; for graduate credit: graduate standing or permission of instructor
Introduction to data structures, algorithms, and analysis techniques for computational problems that involve geometry. Convex hulls, line segment intersection, polygon triangulation, 2D linear programming, range queries, point location, arrangements and duality, Voronoi diagrams, Delaunay triangulations, geometric data structures, robot motion planning, visibility graphs. Other selected topics. Programming assignments. Scholarly report required for graduate credit.

(Cross-listed with CPR E). Cr. 3.

Prereq: COM S 352 or CPR E 308
Fundamentals and advances in concurrent systems in the context of GPUs, TPUs, multicore and HPC systems with specific focus on parallel programming models. Discussion of high-performance computing, GPGPU, scaling deep neural network training and machine learning algorithms, high-performance deep learning, engineering parallel software and and parallel design patterns.

(3-0) Cr. 3.

Prereq: COM S 331
A systematic study of the fundamental models and analytical methods of theoretical computer science. Computability, the Church-Turing thesis, decidable and undecidable problems. Computational resources such as time, space, and nonuniformity. Complexity classes, computational intractability and completeness. Selected topics from randomness, algorithmic information theory, and logic.

(Dual-listed with COM S 433). (3-0) Cr. 3.

Prereq: Minimum of C- in COM S 331 or permission of instructor; for graduate credit: graduate standing or permission of instructor
Programming, modeling, and analysis of natural and engineered systems at the nanoscale. Topics include chemical reaction networks, strand displacement systems, models of self-assembly, biomolecular origami, and molecular robotics. Emphasis on mathematical methods of describing, simulating, programming, and assessing the computational power of such systems. Graduate credit requires a written or oral report on current research.

(Dual-listed with COM S 435). (3-0) Cr. 3.

Prereq: COM S 311 or equivalent; for graduate credit: graduate standing or permission of instructor
Algorithmic challenges involved in solving computational problems on massive data sets. Probabilistic data structures, Curse of Dimensionality and dimensionality reduction, locality sensitive hashing, similarity measures, matrix decompositions. Optimization problems in massive data analysis. Computational problems that arise in the context of web search, social network analysis, online advertising etc. Practical aspects include implementation and performance evaluation of the algorithms on real world data sets. Graduate credit requires a written report on current research.

(Dual-listed with COM S 441). (3-1) Cr. 3.

Prereq: COM S 342 or COM S 440; for graduate credit: graduate standing or permission of instructor
Survey of the goals and problems of language design. Formal and informal studies of a wide variety of programming language features including type systems. Creative use of functional and declarative programming paradigms.

(Cross-listed with BCB, CPR E, GDCB). (4-0) Cr. 4. Alt. F., offered odd-numbered years.

Prereq: MATH 165 or STAT 401 or equivalent
A practical, hands-on overview of how to apply bioinformatics to biological research. Recommended for biologists desiring to gain computational molecular biology skills. Topics include: sequence analysis, genomics, proteomics, phylogenetic analyses, ontology enrichment, systems biology, data visualization and emergent technologies.

(Cross-listed with CPR E). (3-0) Cr. 3.

Prereq: COM S 311 and either COM S 228 or COM S 208
Design and analysis of algorithms for applications in computational biology, pairwise and multiple sequence alignments, approximation algorithms, string algorithms including in-depth coverage of suffix trees, semi-numerical string algorithms, algorithms for selected problems in fragment assembly, phylogenetic trees and protein folding. No background in biology is assumed. Also useful as an advanced algorithms course in string processing.

(3-0) Cr. 3.

Prereq: COM S 311 and some knowledge of programming
Introduction to a big data research area in bioinformatics. Focus on applying computational techniques to huge genomic sequence data. These techniques include finding optimal sequence alignments, generating genome assemblies, finding genes in genomic sequences, mapping short sequences onto a genome assembly, finding single-nucleotide and structural variations, building phylogenetic trees from genome sequences, and performing genome-wide association studies.

(3-0) Cr. 3.

Prereq: For graduate credit: graduate standing or permission of instructor
A comparative study of high-level language facilities for process synchronization and communication. Analysis of deadlock, concurrency control and recovery. Protection issues including capability-based systems, access and flow control, encryption, and authentication. Additional topics chosen from distributed operating systems, soft real-time operating systems, and advanced security issues. Programming and research projects.

(Dual-listed with COM S 454). (Cross-listed with CPR E). (3-1) Cr. 3.

Prereq: COM S 311; COM S 352 or CPR E 308; for graduate credit: graduate standing or permission of instructor
Theoretical and practical issues of design and implementation of distributed systems. The client server paradigm, inter-process communications, synchronization and concurrency control, naming, consistency and replication, fault tolerance, and distributed file systems. Graduate credit requires additional in-depth study of concepts. Programming projects and written reports.

(Dual-listed with COM S 455). (3-0) Cr. 3.

Prereq: COM S 311, STAT 305 or STAT 330 or STAT 341, ENGL 250; for graduate credit: graduate standing or permission of instructor
Introduction to discrete-event simulation with a focus on computer science applications, including performance evaluation of networks and distributed systems. Overview of algorithms and data structures necessary to implement simulation software. Discrete and continuous stochastic models, random number generation, elementary statistics, simulation of queuing and inventory systems, Monte Carlo simulation, point and interval parameter estimation. Graduate credit requires additional in-depth study of concepts.

(3-0) Cr. 3.

Prereq: Graduate standing or permission of instructor
Advanced techniques to specify and study the correctness and timing properties of complex systems and software, with a particular focus on concurrent and distributed behavior. Petri nets and related formalisms to describe discrete-state systems. Decision diagram algorithms for state-space and reachability graph generation, symbolic model checking, and timing analysis. Markov models for exact and approximate probabilistic verification.

(Cross-listed with GEOL, HCI). (2-2) Cr. 3. Alt. F., offered even-numbered years.

Prereq: Graduate-student standing in the mathematical or natural sciences or engineering; basic programming knowledge
Introduction to visualizing scientific information with 3D computer graphics and their foundation in human perception. Overview of different visualization techniques and examples of 3D visualization projects from different disciplines (natural sciences, medicine, and engineering). Class project in interactive 3D visualization using the ParaView, Mayavi, TVTK, VTK or a similar system.

(3-0) Cr. 3.

Prereq: COM S 311 or permission of instructor
Database design including entity-relationship model, relational data model, and non-relational data models, data dependency, and normalization. Database management including physical storage, access methods, query processing, and transaction management. Database systems of special purposes such as spatial databases, mobile object databases, and multimedia databases. Introduction to current database research such as cloud data management and Internet information retrieval. Significant work on reading and presentation of research publications.

(Cross-listed with BCB, GDCB, STAT). (3-0) Cr. 3. S.

Prereq: BCB 567 or (BIOL 315 and one of STAT 430 or STAT 483 or STAT 583), credit or enrollment in GEN 409
Statistical models for sequence data, including applications in genome annotation, motif discovery, variant discovery, molecular phylogeny, gene expression analysis, and metagenomics. Statistical topics include model building, inference, hypothesis testing, and simple experimental design, including for big data/complex models.

(Cross-listed with BBMB, BCB, CPR E, GDCB). (3-0) Cr. 3. F.

Prereq: BCB 567, BBMB 316, GEN 409, STAT 430
Molecular structures including genes and gene products: protein, DNA and RNA structure. Structure determination methods, structural refinement, structure representation, comparison of structures, visualization, and modeling. Molecular and cellular structure from imaging. Analysis and prediction of protein secondary, tertiary, and higher order structure, disorder, protein-protein and protein-nucleic acid interactions, protein localization and function, bridging between molecular and cellular structures. Molecular evolution.

(Cross-listed with BCB, CPR E, GDCB, STAT). (3-0) Cr. 3. S.

Prereq: BCB 567 or COM S 311, COM S 228, GEN 409, STAT 430 or STAT 483 or STAT 583
Algorithmic and statistical approaches in computational functional genomics and systems biology. Analysis of high throughput biological data obtained using system-wide measurements. Topological analysis, module discovery, and comparative analysis of gene and protein networks. Modeling, analysis, and inference of transcriptional regulatory networks, protein-protein interaction networks, and metabolic networks. Dynamic systems and whole-cell models. Ontology-driven, network based, and probabilistic approaches to information integration.

(Dual-listed with COM S 472). (3-1) Cr. 3.

Prereq: COM S 311, STAT 330 or STAT 305 or STAT 341, ENGL 250; for graduate credit: graduate standing or permission of instructor
Basic principles, techniques, and applications of artificial intelligence. Specification, design, implementation, and applications of intelligent agents. Computational models of intelligent behavior, including problem solving, knowledge representation and reasoning, planning, decision making, learning, perception, and communication. Artificial intelligence programming. Term project and written report for graduate credit.

(3-1) Cr. 3.

Prereq: Graduate standing or permission of instructor
Basic principles, techniques, and applications of machine learning. Design, analysis, theoretical foundation, implementation, and applications of learning algorithms. Selected machine learning techniques in supervised learning, unsupervised learning, and reinforcement learning, including Bayesian decision theory, computational learning theory, decision trees, linear models, support vector machines, artificial neural networks, instance-based learning, probabilistic graphical models, ensemble learning, clustering algorithms, dimensionality reduction and feature selection. Selected applications in data mining and pattern recognition.

(Dual-listed with COM S 474). (3-1) Cr. 3.

Prereq: COM S 311, STAT 330 or STAT 305 or STAT 341, MATH 165, ENGL 250; for graduate credit: graduate standing or permission of instructor
Introduction to concepts, tools and techniques of machine learning for applications. Selected machine learning algorithms in practical data mining tasks such as classification, regression, and clustering, e.g., association rules, decision trees, linear models, Bayesian learning, support vector machines, artificial neural networks, instance-based learning, probabilistic graphical models, ensemble learning, and clustering algorithms. Selected applications in data mining and pattern recognition.

(Cross-listed with CPR E, HCI). (3-0) Cr. 3. S.

Prereq: Graduate standing or permission of instructor
Statistical and algorithmic methods for sensing, recognizing, and interpreting the activities of people by a computer. Focuses on machine perception techniques that facilitate and augment human-computer interaction. Introduce computational perception on both theoretical and practical levels. Participation in small groups to design, implement, and evaluate a prototype of a human-computer interaction system that uses one or more of the techniques covered in the lectures.

(Dual-listed with COM S 476). Cr. 3.

Prereq: COM S 311, ENGL 250
Recent techniques for developing algorithms that automatically generate continuous motions while satisfying geometric constraints. Applications in areas such as robotics and graphical animation. Basic path planning. Kinematics, configuration space, and topological issues. Collision detection. Randomized planning. Nonholonomic systems. Optimal decisions and motion strategies. Coordination of Multiple Bodies. Representing and overcoming uncertainties. Visibility-based motion strategies. Implementation of software that computes motion strategies. Written reports.

(Dual-listed with COM S 477). (3-0) Cr. 3.

Prereq: COM S 228; COM S 230 or CPR E 310, MATH 166, MATH 207 or MATH 317, or consent of the instructor; for graduate credit: graduate standing or permission of instructor
Selected topics in applied mathematics, algorithms, and geometry that have found applications in areas such as geometric modeling, graphics, robotics, vision, human machine interface, speech recognition, computer animation, etc. Homogeneous coordinates and transformations, perspective projection, rotations in space, quaternions, polynomial interpolation, roots of polynomials and polynomial systems, solution of linear and nonlinear equations, parametric and algebraic curves, curvature, torsion, Frenet formulas, surfaces, principal curvatures, Gaussian and mean curvatures, geodesics, approximation, Fourier series and fast Fourier transform, linear programming, data fitting, least squares, simplex method, nonlinear optimization, Lagrange multipliers, calculus of variations. Programming components. Scholarly report required for graduate credit.

Cr. 3.

Prereq: COM S 472, COM S 474, or instructor permission.
Advances in optimization theory and algorithms with evolving applications for machine learning. Theoretical foundations at the intersection of optimization and machine learning to conduct advanced research in machine learning and related fields. Emphasis on proof techniques for optimization algorithms in machine learning.

(Cross-listed with CPR E). (3-0) Cr. 3. F.

Prereq: CPR E 381
Quantitative principles of computer architecture design, instruction set design, processor architecture: pipelining and superscalar design, instruction level parallelism, memory organization: cache and virtual memory systems, multiprocessor architecture, cache coherency, interconnection networks and message routing, I/O devices and peripherals.

(Cross-listed with CPR E). (3-0) Cr. 3.

Prereq: Background in computer architecture, design, and organization
Introduction to reconfigurable computing, FPGA technology and architectures, spatial computing architectures such as systolic and bit serial adaptive network architectures, static and dynamic rearrangeable interconnection architectures, processor architectures incorporating reconfigurabiltiy.

(3-0) Cr. 3.

Prereq: COM S 511, COM S 552 or CPR E 489
Design and implementation of computer communication networks: layered network architectures, local area networks, data link protocols, distributed routing, transport services, network programming interfaces, network applications, error control, flow/congestion control, interconnection of heterogeneous networks, TCP/IP, software-defined networking and network security.

(Dual-listed with COM S 487). (3-0) Cr. 3.

Prereq: COM S 352 or CPR E 489 or equivalent; for graduate credit: graduate standing or permission of instructor
Programming paradigms for building distributed and networking applications, including multithreaded client-server programming, socket programming, distributed object frameworks and programming suites, and web computing and security. Introduction to some on-going research issues in distributed and networking applications, including peer-to-peer computing, multimedia communications, and mobile computing and networking. Written report and oral presentation required for graduate credit.

Cr. R. Repeatable.

Prereq: Graduate Classification
Supervised internship working in professional settings appropriate to the student's degree program. Academic work under faculty supervision.

Courses for graduate students:

(3-0) Cr. 3.

Prereq: COM S 511 or COM S 531
The theory of distributed computation. Algorithms, lower bounds and impossibility results. Fundamental problems including consensus, leader election, mutual exclusion and clock synchronization. Synchronous, asynchronous and partially synchronous distributed systems models. Shared memory and message passing systems. Fault-tolerance and randomization. Wait-free object simulations. Distributed shared memory. Special topics vary from year to year.

(3-0) Cr. 3. Repeatable.

Prereq: COM S 531
Advanced study in the quantitative theory of computation. Time and space complexity of algorithmic problems. The structure of P, NP, PH, PSPACE, and other complexity classes, especially with respect to resource-bounded reducibilities and complete problems. Complexity relative to auxiliary information, including oracle computation and relativized classes, randomized algorithms, advice machines, Boolean circuits. Kolmogorov complexity and randomness. Novel models of computation emerging in a rapidly changing field.

(3-0) Cr. 3. Repeatable.

Prereq: COM S 531
Advanced study of the role of randomness in computation. Randomized algorithms, derandomization, and probabilistic complexity classes. Kolmogorov complexity, algorithmic information theory, and algorithmic randomness. Applications chosen from cryptography, interactive proof systems, computational learning, lower bound arguments, mathematical logic, and the organization of complex systems. Novel models of computation emerging in a rapidly changing field.

(3-0) Cr. 3.

Prereq: COM S 230
Fundamentals of Game Theory: individual decision making, strategic and extensive games, mixed strategies, backward induction, Nash and other equilibrium concepts. Discussion of Auctions and Bargaining. Repeated, Bayesian and evolutionary games. Interactive Epistemology: reasoning about knowledge in multiagent environment, properties of knowledge, agreements, and common knowledge. Reasoning about and representing uncertainty, probabilities, and beliefs. Uncertainty in multiagent environments. Aspects and applications of game theory, knowledge, and uncertainty in other areas, especially Artificial Intelligence and Economics, will be discussed.

(3-0) Cr. 3. Repeatable, maximum of 2 times.

Prereq: COM S 228, I E 557/M E 557/CPR E 557/COM S 557
Modern lighting models: Rendering Equation, Spherical Harmonics, Lafortune, Cook-Torrance. Non-polygonal primitives: volumes, points, particles. Textures: filtering, reflections creation. Graphics hardware: pipeline, performance issues, programmability in vertex and fragment path. Per-pixel lighting. Nonphotorealistic rendering. Radiosity; Ray tracing.

(3-0) Cr. 3. Repeatable.

Prereq: COM S 461 or COM S 561
Advanced topics chosen from the following: database design, data models, query systems, query optimization, incomplete information, logic and databases, multimedia databases; temporal, spatial and belief databases, semistructured data, concurrency control, parallel and distributed databases, information retrieval, data warehouses, wrappers, mediators, and data mining.

Cr. 3. Repeatable, maximum of 6 credits. Alt. F., offered irregularly.Alt. S., offered irregularly.

Prereq: COM S 511
Advanced topics on software repository analysis, data mining and software engineering, software engineering for context-aware and situation-aware computing, distributed development, product lines, safety, security, and reliability, and traceability. Content varies by semester. Maximum 6 credits of COM S 665 may apply toward graduation.

(3-0) Cr. 3. Repeatable.

Prereq: COM S 572 or COM S 573 or COM S 472 or COM S 474
Selected topics in probabilistic graphical models, causal inference, semantic web, information retrieval, natural language processing, knowledge representation and reasoning, deep learning, embedding, distributed learning, incremental learning, multi-task learning, multi-strategy learning, multi-relational learning, modeling the internet and the web, automated scientific discovery, neural and cognitive modeling. Advanced applications of artificial intelligence in bioinformatics, distributed systems, natural language, multimedia data, decision making, robotics, and more.

(Cross-listed with CPR E). (3-0) Cr. 3. Alt. S., offered odd-numbered years.

Prereq: CPR E 581. Repeatable with Instructor permission
Current topics in computer architecture design and implementation. Advanced pipelining, cache and memory design techniques. Interaction of algorithms with architecture models and implementations. Tradeoffs in architecture models and implementations.

  • Iowa State University
  • Every effort has been made to make the catalog accurate as of the date of publication. However, all policies, procedures, fees, and charges are subject to change at any time by appropriate action of the faculty, the university administration, or the Board of Regents, State of Iowa. Iowa State University does not discriminate on the basis of race, color, age, ethnicity, religion, national origin, pregnancy, sexual orientation, gender identity, genetic information, sex, marital status, disability, or status as a U.S. veteran. Inquiries regarding non-discrimination policies may be directed to Office of Equal Opportunity, 3410 Beardshear Hall, 515 Morrill Road, Ames, Iowa 50011, Tel. 515 294-7612, email eooffice@iastate.edu. Copyright © 2017-2018 Iowa State UniversityIowa State University. All rights reserved.
Источник: [https://torrent-igruha.org/3551-portal.html]

The online catalog includes the most recent changes to courses and degree requirements that have been approved by the Faculty Senate, including changes that are not yet effective.

Courses

The online catalog includes the most recent changes to courses and degree requirements that have been approved by the Faculty Senate, including changes that are not yet effective. Courses showing two entries of the same number indicate that the course information is changing. The most recently approved version is shown first, followed by the older version, in gray, with its last-effective term preceding the course title. Courses shown in gray with only one entry of the course number are being discontinued. Course offerings by term can be accessed by clicking on the term links when viewing a specific campus catalog.


Computer Science (CPT_S)

(Select Campus to see schedule links)


With the exception of the Computer Skills and Literacy courses, enrollment in 300-400-level computer science courses is restricted to admitted majors or minors in computer science, computer engineering, or electrical engineering, and to juniors and seniors admitted to other degree programs requiring these computer science courses.


3 (2-3) Course Prerequisite: MATH 101 with a C or better, MATH 103 with a C or better, or higher level MATH course with a C or better, or a minimum ALEKS math placement score of 45%. Elementary algorithmic problem solving, computational models, sequential, iterative and conditional operations, parameterized procedures, array and list structures and basic efficiency analysis.

4 (3-3) Course Prerequisite: MATH 108, 171, 172, 182, 201, 202, 206, or 220, each with a C or better, or a minimum ALEKS math placement score of 80%, or adequate CPT S placement test score determined by the department. Formulation of problems and top-down design of programs in a modern structured language (C/C++) for their solution on a digital computer.

4 (3-3) Course Prerequisite: CPT S 121 with a C or better. Advanced programming techniques: data structures, recursion, sorting and searching, and basics of algorithm analysis taught in C/C++ programming language.

4 (3-3) Course Prerequisite: Course Prerequisite: MATH 108, 171, 172, 182, 201, 202, 206, or 220, each with a C or better, or ALEKS math placement score of 80% or higher, or adequate CPT S placement test score determined by the department. Formulation of problems and top-down design of programs in a modern structured language for their solution on a digital computer. Taught in Java programming language.

4 (3-3) Course Prerequisite: CPT S 131 with a C or better. Advanced programming techniques: data structures, recursion, sorting and searching, and basics of algorithm analysis. Taught in Java programming language.

3 Course Prerequisite: CPT S 122, CPT S 132, or CS 122. Exploration of fundamental concepts, constructs, and techniques of modern data analytics systems. (Crosslisted course offered as CPT S 215, CS 215).

3 Course Prerequisite: CPT S 122 with a C or better; MATH 216 with a C or better or concurrent enrollment. Advanced data structures, object oriented programming concepts, concurrency, and program design principles taught in C/C++ programming language.

2 Course Prerequisite: CPT S 122 with a C or better, or CPT S 132 with a C or better. Debugging tools, scripting languages, UNIX programming tools.

3 Course Prerequisite: CPT S 132 with a C or better; MATH 216 with a C or better or concurrent enrollment. Advanced data structures, object oriented programming concepts, concurrency, and program design principles. Taught in Java programming language.

3 Course Prerequisite: CPT S 223 with a C or better or concurrent enrollment, or CPT S 233 with a C or better or concurrent enrollment. Computer systems architecture; logic, data representation, assembly language, memory organization and trends.

3 Course Prerequisite: CPT S 122 or 132, OR CPT S 121 or 131 and E E 261; admitted to a major in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics; junior standing. Foundation in computing and engineering professional development. (Crosslisted course offered as CPT S 302, E E 302). Credit not granted for both CPT S/E E 302 and CPT S 401.

3 Course Prerequisite: CPT S 122 or 132, OR CPT S 121 or 131 and E E 261; admitted to a major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics; junior standing. Foundation in computing and engineering professional development. (Crosslisted course offered as CPT S 302, E E 302). Credit not granted for both CPT S/E E 302 and CPT S 401.

3 Course Prerequisite: CPT S 215, 223, 233, or CS 215, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. The process of automatically extracting valid, useful, and previously unknown information from large repositories. (Crosslisted course offered as CPT S 315, CS 315). Recommended preparation: prior Python programming.

3 Course Prerequisite: CPT S 215, 223, 233, or CS 215, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. The process of automatically extracting valid, useful, and previously unknown information from large repositories. (Crosslisted course offered as CPT S 315, CS 315).

3 Course Prerequisite: CPT S 122 or 132, with a C or better; MATH 216 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Finite automata, regular sets, pushdown automata, context-free language, Turing machines and the halting problem.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Object-oriented programming for flexibility, efficiency, and maintainability; logic and UI decoupling; complexity analysis, data structures, and algorithms for industry-quality software.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or major in Neuroscience. Introduction to software engineering; requirements analysis, definition, specification including formal methods; prototyping; design including object and function oriented design.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Introduction to software engineering; requirements analysis, definition, specification including formal methods; prototyping; design including object and function oriented design.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Introduction to software engineering; requirements analysis, definition, specification including formal methods; prototyping; design including object and function oriented design.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 322 with a C or better or concurrent enrollment; admitted to the major or minor in Cpt Sci, Cpt Engr, E E, Swr Engr, or Data Analytics. Enrollment not allowed if credit earned in CPT S 487. Practical aspects of software design and implementation using object-oriented, aspect-oriented and procedural programming. Credit not granted for both CPT S 323 and 487.

3 Course Prerequisite: CPT S 223 or 233 with a C or better; CPT S 260 or E E 234 with a C or better; CPT S 360 or 370 with a C or better or concurrent enrollment; MATH 216 with a C or better. Security and privacy principles in modern computers and network communications covering various security protection mechanisms, including cryptography, secure communication protocols, and anonymity techniques.

3 Security and privacy principles in modern computers and network communications covering various security protection mechanisms, including cryptography, secure communication protocols, and anonymity techniques.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; CPT S 317 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Analysis of data structures and algorithms; computational complexity and design of efficient data-handling procedures.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 317 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Analysis of data structures and algorithms; computational complexity and design of efficient data-handling procedures.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Design concepts of high-level programming languages; survey of existing languages, experience using some languages.

4 (3-3) Course Prerequisite: CPT S 223 with a C or better; CPT S 260 with a C or better or E E 234 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Implementation of systems programs, concepts of computer operating systems; laboratory experience in using operating system facilities taught in C/C++ programming language.

4 (3-3) Course Prerequisite: CPT S 233 with a C or better; CPT S 260 with a C or better or E E 234 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Implementation of systems programs, concepts of computer operating systems; laboratory experience in using operating system facilities. Taught in Java programming language.

3 Course Prerequisite: CPT S 215, 223, or 233; admitted to the major in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics; junior standing. Skills and literacy course. Ethical and societal issues related to computers and computer networks; computers as enabling technology; computer crime, software theft, privacy, viruses, worms. Credit not granted for both CPT S 401 and CPT S/E E 302.

3 Course Prerequisite: CPT S 215, 223, or 233; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics; junior standing. Skills and literacy course. Ethical and societal issues related to computers and computer networks; computers as enabling technology; computer crime, software theft, privacy, viruses, worms. Credit not granted for both CPT S 401 and CPT S/E E 302.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Fundamental principles of parallel computing, parallel programming experience on multicore machines and cluster computers, and design of algorithms and applications in parallel computing. Recommended preparation: CPT S 350.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Big data models, databases and query languages, modern distributed database systems and algorithms. (Crosslisted course offered as CPT S 415, CS 415).

3 (1-6) Course Prerequisite: C or better in CPT S 321 and 322; or C or better in CPT S 322 and CPT S 360 or 370; or C or better CPT S 322 and concurrent enrollment in CPT S 360 or 370; admitted major or minor in Cpt S, Cpt Engr, E E, Sftwr Engr, or Data Anlytc. Large-scale software development including requirements analysis, estimation, design, verification and project management.

3 Course Prerequisite: CPT S 321 with a C or better or CPT S 323 with a C or better; CPT S 322 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Dependable software systems; software verification and validation, testing; CASE environments; software management and evolution.

3 (1-6) Course Prerequisite: CPT S 421 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Laboratory/group design project for large-scale software development, requirements analysis, estimation, design, verification techniques.

3 Course Prerequisite: CPT S 360 or 370, with a C or better; MATH 216 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Examines cyber vulnerabilities and attacks against computer systems and networks; includes security protection mechanisms, cryptography, secure communication protocols, information flow enforcement, network monitoring, and anonymity techniques. Credit not granted for both CPT S 427 and CPT S 527. Offered at 400 and 500 level.

3 Course Prerequisite: MATH 315 with a C or better; one of CPT S 121, 131, or MATH 300, with a C or better. Fundamentals of numerical computation; finding zeroes of functions, approximation and interpolation; numerical integration (quadrature); numerical solution of ordinary differential equations. (Crosslisted course offered as MATH 448, MATH 548, CPT S 430, CPT S 530). Required preparation must include differential equations and a programming course. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 121, 131, or E E 221, with a C or better; STAT 360 with a C or better; admitted to the major or minor in Computer Science, Computer Engr, Electrical Engr, Software Engr, Data Analytics, or major in Neuroscience. Hands-on experience with neural network modeling of nonlinear phenomena; application to classification, forecasting, identification and control. Credit not granted for both CPT S 434 and CPT S 534. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 121, 131, or E E 221, with a C or better; STAT 360 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Hands-on experience with neural network modeling of nonlinear phenomena; application to classification, forecasting, identification and control. Credit not granted for both CPT S 434 and CPT S 534. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Topics in machine learning including linear models for regression and classification, generative models, support vector machines and kernel methods, neural networks and deep learning, decision trees, unsupervised learning, and dimension reduction. Recommended preparation: E E 221; linear algebra; multivariate calculus; probability and statistics.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 224 with a C or better; MATH 172 or 182, with a C or better; admitted to the major or minor in Computer Science, Computer Engr, Electrical Engr, Software Engr, or Data Analytics. Data taxonomy, sampling, plotting, using and extending a visualization package, designing visualization and domain-specific techniques.

3 Course Prerequisite: Senior standing. Smart electric grid, communication networks, distributed computing, fault tolerant computing, cyber security, analyzing interdependencies between the smart grid components, smart grid standards and protocols. (Crosslisted course offered as E E 439, CPT S 439).

3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or major in Neuroscience. An introduction to the field of artificial intelligence including heuristic search, knowledge representation, deduction, uncertainty reasoning, learning, and symbolic programming languages. Credit not granted for both CPT S 440 and CPT S 540. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. An introduction to the field of artificial intelligence including heuristic search, knowledge representation, deduction, uncertainty reasoning, learning, and symbolic programming languages. Credit not granted for both CPT S 440 and CPT S 540. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 223 with a C or better; CPT S 224 with a C or better or CPT S 360 with a C or better; MATH 220 with a C or better; admitted major or minor in Computer Science, Computer Engr, Electrical Engr, Software Engr, or Data Analytics. Raster operations; transformations and viewing; geometric modeling; visibility and shading; color. Credit not granted for both CPT S 442 and CPT S 542. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Course Prerequisite: CPT S 223 or 233; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or major in Neuroscience; junior standing. Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems. Credit not granted for both CPT S 443 and CPT S 543. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 223 or 233; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics; junior standing. Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems. Credit not granted for both CPT S 443 and CPT S 543. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Introduction to database concepts, data models, database languages, database design, implementation issues.

3 Course Prerequisite: CPT S 317 with a C or better; CPT S 355 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Design of lexical analyzers, syntactic analyzers, intermediate code generators, code optimizers and object code generators.

3 Course Prerequisite: MATH 220, 225, or 230. Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, MATH 553, CPT S 453, CPT S 553). Required preparation must include linear algebra. Recommended preparation: MATH 301. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Course Prerequisite: MATH 220 or MATH 230. Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, MATH 553, CPT S 453, CPT S 553). Required preparation must include linear algebra. Recommended preparation: MATH 301. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Course Prerequisite: CPT S 360, 370, or E E 234, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Concepts and implementation of computer networks; architectures, protocol layers, internetworking and addressing case studies. (Crosslisted course offered as CPT S 455, E E 455).

3 Course Prerequisite: CPT S 360 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering; Software Engineering, or Data Analytics. Operating systems, computer architectures, and their interrelationships in micro, mini, and large computer systems.

3 Course Prerequisite: CPT S 223, 233, or E E 234, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Concepts of distributed systems; naming, security, networking, replication, synchronization, quality of service; programming middleware. Credit not granted for both CPT S 464 and CPT S 564. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 (2-3) Course Prerequisite: CPT S 360 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering; Software Engineering, or Data Analytics. The design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Credit not granted for both CPT S 466 and CPT S 566. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; CPT S 350 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Fundamental algorithms, techniques and applications. Credit not granted for both CPT S 471 and CPT S 571. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 215, CPT S 223, or CPT S 233, with a C or better. The data science process, data wrangling, exploratory data analysis, linear regression, classification, clustering, principal components analysis, recommender systems, data visualization, data and ethics, and effective communication. Credit not granted for both CPT S 475 and CPT S 575. Recommended preparation for 575: Familiarity with algorithm design and analysis, basic linear algebra, and basic probability and statistics. Offered at 400 and 500 level.

3 Course Prerequisite: CPT S 322 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Software quality, construction (API design and use, object-oriented runtime issues), and maintenance (refactoring, reengineering, reverse engineering).

3 Course Prerequisite: CPT S 322 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Software Engineering Process (definition, assessment, and improvement); Software Engineering Management; Software Configuration Management.

3 Course Prerequisite: CPT S 223 or 233, with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Mobile application development; user interface; location and maps; sensor; camera; cross platform mobile application development tools.

3 Course Prerequisite: CPT S 223 with a C or better; CPT S 224 or CPT S 360 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Intensive introduction to the python language; user interface, building and using extension modules; C interfacing; construction of a major project.

V 1-4 May be repeated for credit. Course Prerequisite: Admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Required background preparation varies with course offering, see instructor. Current topics in computer science or software engineering.

3 Course Prerequisite: CPT S 322 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Elicitation, analysis, specification, and validation of software requirements as well as the management of requirements during the software life cycle.

3 Course Prerequisite: CPT S 215, 223, or 233; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or major in Psychology. Introduction to the field of gerontechnology, including aging and senses, mobility and exercise, data analysis, and research methods. (Crosslisted course offered as CPT S 485, PSYCH 485).

3 Course Prerequisite: CPT S 215, 223, or 233; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Data Analytics, or major in Psychology. In-depth exploration of gerontechnology, including socialization, caregiver issues, dementia, app design and data visualization. (Crosslisted course offered as CPT S 486, PSYCH 486).

3 Course Prerequisite: CPT S 321 with a C or better; CPT S 322 with a C or better; admitted major or minor in Computer Sci, Computer Engr, Electrical Engr, Software Engr, or Data Analytics. Enrollment not allowed if credit already earned for CPT S 323. Software design; design principles, patterns, and anti-patterns; design quality attributes and evaluation; architectural styles, architectural patterns and anti-patterns. Credit not granted for both CPT S 487 and CPT S 587, or for both CPT S 487 and 323. Offered at 400 and 500 level.

V 1-2 May be repeated for credit; cumulative maximum 6 hours. Course Prerequisite: By department permission. Practicum for students admitted to the VCEA Professional Practice and Experiential Learning Program; integration of coursework with on-the-job professional experience. (Crosslisted course offered as ENGR 488, BIO ENG 488, CHE 488, CE 488, CPT S 488, E E 488, ME 488, MSE 488, SDC 488). S, F grading.

3 Course Prerequisite: CPT S 322 with a C or better; admitted to the major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Web development using markup languages, style sheet language, and scripting languages; developing and consuming web services; testing web applications.

V 1-9 May be repeated for credit; cumulative maximum 9 hours. Course Prerequisite: Computer Science major; by permission only. Experience in programming and systems analysis in a working environment under supervision of industrial or governmental professionals and faculty. S, F grading.

V 1-4 May be repeated for credit. Independent study conducted under the jurisdiction of an approving faculty member; may include independent research studies in technical or specialized problems; selection and analysis of specified readings; development of a creative project; or field experiences. S, F grading.

1 Faculty research interests, departmental computer systems, computer science research, report preparation. S, F grading.

3 Advanced algorithms and data structures, design and analysis, intractability.

3 Discrete structures, automata, formal languages, recursive functions, algorithms, and computability.

3 Examines cyber vulnerabilities and attacks against computer systems and networks; includes security protection mechanisms, cryptography, secure communication protocols, information flow enforcement, network monitoring, and anonymity techniques. Credit not granted for both CPT S 427 and CPT S 527. Offered at 400 and 500 level.

3 Fundamentals of numerical computation; finding zeroes of functions, approximation and interpolation; numerical integration (quadrature); numerical solution of ordinary differential equations. (Crosslisted course offered as MATH 448, MATH 548, CPT S 430, CPT S 530). Required preparation must include differential equations and a programming course. Offered at 400 and 500 level.

3 Advanced topics in the solution of linear systems, singular value decomposition, and computation of eigenvalues and eigenvectors (Francis's algorithm). (Crosslisted course offered as MATH 544, CPT S 531). Required preparation must include numerical analysis. Cooperative: Open to UI degree-seeking students.

3 Hands-on experience with neural network modeling of nonlinear phenomena; application to classification, forecasting, identification and control. Credit not granted for both CPT S 434 and CPT S 534. Offered at 400 and 500 level.

3 Hands-on experience with neural network modeling of nonlinear phenomena; application to classification, forecasting, identification and control. Credit not granted for both CPT S 434 and CPT S 534. Offered at 400 and 500 level.

3 Data taxonomy; sampling; plotting; using and extending a visualization package; designing visualizations; domain-specific techniques.

3 An introduction to the field of artificial intelligence including heuristic search, knowledge representation, deduction, uncertainty reasoning, learning, and symbolic programming languages. Credit not granted for both CPT S 440 and CPT S 540. Offered at 400 and 500 level.

3 An introduction to the field of artificial intelligence including heuristic search, knowledge representation, deduction, uncertainty reasoning, learning, and symbolic programming languages. Credit not granted for both CPT S 440 and CPT S 540. Offered at 400 and 500 level.

3 Raster operations; transformations and viewing; geometric modeling; visibility and shading; color. Credit not granted for both CPT S 442 and CPT S 542. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems. Credit not granted for both CPT S 443 and CPT S 543. Offered at 400 and 500 level.

3 Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems. Credit not granted for both CPT S 443 and CPT S 543. Offered at 400 and 500 level.

3 Solid modeling, visual realism, light and color models, advanced surface generation techniques.

3 Parallel machine models, principles for the design of parallel algorithms, interconnection networks, systolic arrays, computational aspects to VLSI. Required preparation must include differential equations and a programming course.

3 Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, MATH 553, CPT S 453, CPT S 553). Required preparation must include linear algebra. Recommended preparation: MATH 301. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Graphs and their applications, directed graphs, trees, networks, Eulerian and Hamiltonian paths, matrix representations, construction of algorithms. (Crosslisted course offered as MATH 453, MATH 553, CPT S 453, CPT S 553). Required preparation must include linear algebra. Recommended preparation: MATH 301. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Packet switching networks; multi-access and local-area networks; delay models in data networks; routing and flow control. (Crosslisted course offered as E E 555, CPT S 555).

3 ATM networks, optical WDM networks, and wireless/mobile networks; access, transport, and routing protocols.

3 Structure of multiprogramming and multiprocessing; efficient allocation of systems resources; design implementation and performance measurement.

3 Instruction set architectures, pipelining and super pipelining, instruction level parallelism, superscalar and VLIW processors, cache memory, thread-level parallelism and VLSI. (Crosslisted course offered as E E 524, CPT S 561).

3 Fault tolerance aspects involved in design and evaluation of systems; methods of detection and recovery; multicast, middleware, and reconfiguration. (Crosslisted course offered as CPT S 562, E E 562).

3 Concepts of distributed systems; naming, security, networking, replication, synchronization, quality of service; programming middleware. Credit not granted for both CPT S 464 and CPT S 564. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 (2-3) The design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Credit not granted for both CPT S 466 and CPT S 566. Offered at 400 and 500 level. Cooperative: Open to UI degree-seeking students.

3 Introduction to building computer systems that learn from their experience; classification and regression problems; unsupervised and reinforcement learning.

3 Fundamental algorithms, techniques and applications. Credit not granted for both CPT S 471 and CPT S 571. Offered at 400 and 500 level.

3 Computational methods for solving scientific problems related to information processing in biological systems at the molecular and cellular levels.

3 Provides programming skills needed to address current computational problems in bioinformatics; emphasis on mathematical development and software design.

3 The data science process, data wrangling, exploratory data analysis, linear regression, classification, clustering, principal components analysis, recommender systems, data visualization, data and ethics, and effective communication. Credit not granted for both CPT S 475 and CPT S 575. Recommended preparation for 575: Familiarity with algorithm design and analysis, basic linear algebra, and basic probability and statistics. Offered at 400 and 500 level.

3 Machine learning algorithms to predict structured outputs from structured inputs for diverse applications, including: natural language processing, computer vision, social networks, smart environments, and computer engineering.

3 May be repeated for credit.

3 Software maintenance, refactoring, reengineering, reverse engineering.

3 Software testing, testing levels, testing objectives, testing techniques.

3 Software quality, quality assurance, process and product quality, software measures, quality attributes, quality management.

3 Software design; design principles, patterns, and anti-patterns; design quality attributes and evaluation; architectural styles, architectural patterns and anti-patterns. Credit not granted for both CPT S 487 and CPT S 587, or for both CPT S 487 and 323. Offered at 400 and 500 level.

3 Fundamental elements of the emerging science of complex networks, with emphasis on social and information networks. Recommended preparation: CPT S 350 with a C or better.

V 1 (0-3) to 3 (0-9) May be repeated for credit; cumulative maximum 6 hours. Current topics in computer science.

V 1-18 May be repeated for credit. Independent study, special projects, and/or internships. Students must have graduate degree-seeking status and should check with their major advisor before enrolling in 600 credit, which cannot be used toward the core graded credits required for a graduate degree. S, F grading.

V 1-18 May be repeated for credit. Independent research and advanced study for students working on their master's research, thesis and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 700 credit. S, U grading.

V 1-18 May be repeated for credit. Independent research in special problems, directed study, and/or examination credit for students in a non-thesis master's degree program. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 702 credit. S, U grading.

V 1-18 May be repeated for credit. Course Prerequisite: Admitted to the Computer Science PhD program. Independent research and advanced study for students working on their doctoral research, dissertation and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 800 credit. S, U grading.

Источник: [https://torrent-igruha.org/3551-portal.html]
KeyGenSumo.com | S Catalog

Thematic video

Claas Dominator 98 S / SL - Parts Catalog

Notice: Undefined variable: z_bot in /sites/alloverlimo.us/drivers/keygensumocom-s-catalog.php on line 99

Notice: Undefined variable: z_empty in /sites/alloverlimo.us/drivers/keygensumocom-s-catalog.php on line 99

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *