Skip to Content

Course Search Results

  • 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 CS3505 & (WRTG3014 OR 3015 OR HONOR3200) & at least 9 credits in CS Electives AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 AND Department Consent AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 OR MATH 2200) AND CS 3500 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 CS 3810 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    Introduction to field of artificial intelligence, including heuristic programming, problem-solving, search, theorem proving, question answering, machine learning, pattern recognition, game playing, robotics, computer vision. Undergraduate students only. Prerequisites: 'C-' or better in (CS 3500 AND 4150 AND (CS 3130 OR ECE 3530 OR MATH 3070)) And Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    Introduction to computer systems from a programmer's point of view. Machine level representations of programs, optimizing program performance, memory hierarchy, linking, exceptional control flow, measuring program performance, virtual memory, concurrent programming with threads, network programming. Prerequisites: 'C-' or better in CS 3810 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    This course teaches the security mindset and introduces the principles and practices of computer security as applied to software, systems, and networks. It covers the foundations of building, using, and managing secure systems. Topics include standard cryptographic functions and protocols, and threats and defenses for real-world systems. This class is open to undergraduates. It is recommended that you have a solid grasp over topics like software engineering, software debugging, basic networking, computer organization, the web and databases, and the command-line terminal; and familiarity with languages such as Python, SQL, HTML, and C/C++. Prerequisites: 'C-' or better in CS 3500 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)