Skip to Content

Course Search Results

  • 3.00 Credits

    Working in teams, students employ the concepts of digital logic design and computer organization to design, implement and test a computing system. Interface IO devices and develop associated software/firmware. Extensive use of CAD and software tools. Prerequisites: "C-" or better in (ECE 3700 OR CS 3700) AND (ECE 3810 OR CS 3810) AND (Full Major status in Computer Science OR Computer Engineering).
  • 3.00 Credits

    An in-depth study of computer architecture and design, including topics such as RISC and CISC instruction set architectures, CPU organizations, pipelining, memory systems, input/output, and parallel machines. Emphasis is placed on performance measures and compilation issues. Prerequisites: 'C-' or better in CS 2420 AND (Full Major or Minor status in Computer Science OR Full Major status in Computer Engineering OR Full Major status in Software Development
  • 1.00 - 4.00 Credits

    Content changes each semester. In-depth exploration of topics of special interest. Prerequisites: Full Major status in Computer Science OR Computer Engineering OR Software Development
  • 1.00 Credits

    Presentations from faculty and industry representatives to discuss trends in computer engineering, professionalism, ethics, the impact of engineering in global and societal context, lifelong learning, and contemporary issues. Prerequisites: Full Major status in Computer Engineering.
  • 3.00 Credits

    This is the first course in a 2 or 3 semester series. The purpose of this course is to form teams and propose either a self-selected senior project to be completed in CS/ECE 4710, or an ECE clinic which will be completed in the subsequent 2 semesters. The individual option is to find a thesis advisor, and write a thesis proposal. The thesis work will be in CS/ECE 4991 and 4992. During the first half of the course while teams are being formed and while project ideas are being selected the instructor will lecture on the, fundamentals of project planning: scoping, group selection, risk assessment, scheduling, backup planning, strategy, etc. The second half of the course involves student presentations and critique of the written proposals that are in progress. The final result of the course will be an approved project, clinic, or thesis proposal. Prerequisites: "C-" or better in (ECE 3710 OR CS 3710) AND (CS 3991 OR ECE 3991) AND Full Major status in Computer Engineering.
  • 3.00 Credits

    During their last two semesters, senior Computer Science students form teams to develop significant software projects. This class is the first semester in the sequence. Seniors will work on team formation, project identification, project planning (including UI design, software architecture, testing methods, scheduling, etc.), and completion of a system prototype. This course will provide teams with time and guidance to effectively plan their projects, as well as emphasizing the written and oral communications necessary to succeed in industry. Projects formed in this course must be completed during the following semester in CS 4500. Students should have four or less CS electives/required courses left when signing up for this course and should be graduating during the following semester. Prerequisites: 'C-' or better in CS 3505 AND (WRTG 3014 OR WRTG 3015 OR HONOR 3200) AND at least 9 credits in CS Electives AND Full Major Status in Computer Science OR Software Development
  • 3.00 Credits

    The School of Computing Cooperative Education and Internship Program (CEIP) seeks to provide students with practical experience to complement class-oriented learning. In most cases, CEIP experiences will occur at locations removed from campus, with a possibility of being out of state, usually during summer terms. Students will be required to plan four learning objectives to be completed across the 14+ week internship. Students must write a one page paper each week describing current progress, including on topics such as: Ethics, Skills, Information Interview, and Resume. A final paper must be completed describing the entire learning process. Permission from the Director of Undergraduate Studies is required to enroll. Prerequisites: "C-" or better in CS 3505.
  • 1.00 Credits

    This course prepares students for the process of entering the software developer job market. Students will practice technical and non-technical job interview scenarios, learn to build a resume and portfolio, and navigate the landscape of job advertisements with specific career goals in mind. Students will research compensation expectations in order to prepare for salary negotiations. Prerequisites: 'C-' or better in CS 3505 AND (CS 3550 OR CS 4530 OR CS 5530)
  • 3.00 Credits

    Study of algorithms, data structures, and complexity analysis beyond the introductory treatment from CS 2420. Balanced trees, heaps, hash tables, string matching, graph algorithms, external sorting and searching. Dynamic programming, exhaustive search. Space and time complexity, derivation and solution of recurrence relations, complexity hierarchies, reducibility, NP completeness. Laboratory practice. Prerequisites: 'C-' or better in CS 2100 AND CS 3500 AND (Full Major status in Computer Science OR Computer Engineering OR Data Science OR Software Development)
  • 3.00 Credits

    This course is a comprehensive exploration of parallel programming paradigms, examining core concepts, focusing on subset of widely available contemporary parallel programming models, and providing context with a small set of parallel algorithms. In the last few years, this area has been the subject of significant interest due to a number of factors. The advent of multi-core microprocessors has made parallel computing available to the masses. At the high end, major vendors of large-scale parallel systems, including IBM, Cray, and Sun, have recently introduced new parallel programming languages designed for applications that exploit tens of thousands of processors. Embedded devices can also be through of a small multiprocessors. The convergence of these distinct markets offers an opportunity to finally provide application programmers with a productive way to express parallel computation. The course is structured a lectures, homework, programming assignments and a final project. Students will perform four programming projects to express algorithms using selected parallel programming models and measure their performance. The final project will consist of teams of 2-3 students who will implement codes by combining multiple programming models. Recommended experience in C programming or equivalent. Prerequisites: 'C-' or better in CS 3505 AND 3810 AND (Full Major status in Computer Science OR Software Development)