400
Is a work-experience opportunity with the purpose of expanding education by applying accumulated knowledge in computer science/technology. The availability of internships is limited to upper-level students, normally seniors with a 2.5 quality point average. Students are approved individually by the academic department. A contract can be obtained from the Career Services Office in Starvaggi Hall. Internships count as general electives.
Computer science junior or senior standing and permission of the department chair. Internships must be preapproved.
This class gives the student a fundamental background in computer architecture and operating systems. This includes a brief introduction to computer organization using hardware description languages (such as VHDL), assembly language programming, hardware support for computer systems, as well as process and memory virtualization techniques fundamental to modern operating systems
.
Surveys the relationship between hardware architecture and both systems and applications software. The influence of processor and storage system architecture on software design is also studied.
Junior standing or permission of instructor
Considers the structure of operating systems involving design, implementation, and maintenance. Various types of mainframe, mini, and micro operating systems will be discussed. Includes systems programming to support operating system operations and driver development.
Is an introduction to the architecture of the microprocessors and Assembly Language. Concepts in digital logic, machine level of data, the assembly level machine organization, memory system organization, interfacing and functional organization are covered. Includes an introduction to pipelined memory architectures. Exercises in Assembly Programming and a hardware description language will illustrate some of these concepts.
Gives students an opportunity to plan and implement a significant project using previously obtained analytic and programming skills. Students will be responsible for the proposal, management, implementation, documentation, and communication of the project. Departmental guidance will be available when necessary.
Explores Artificial Intelligence (AI) as a means of developing systems. Explores current frameworks for AI system development. Includes issues in training, reliability and ethical considerations. Applies a framework and tool set to the design, testing and evaluation of an expert system. Areas of focus may include natural language processing, planning, image processing, data analysis. Includes examination of the impact and ethics of AI and its application.
Examines the underlying mathematical models and theories that are the basis of the modern computer. Topics include grammars, types of languages, types of automata, computability, and complexity.
Requires all computer science students to write a thesis on an approved topic in computer science. Students must consult closely with a departmental faculty member at each stage in the development of their theses. The thesis will be presented to students in the Junior Seminar.
Initiation of capstone project in computer science. This class is intended for junior or senior software engineering majors. Students will work on a team project to develop a secure, effective, and efficient capability of value to a customer through the application of software engineering theory, processes, tools, technologies and methodologies. The students are expected to complete their project in a way that shows proficiency in the software engineering processes and techniques, and demonstrates ethical professional conduct.
Culmination of capstone project in software engineering. This class is intended for junior or senior software engineering majors. Students will work on a team project to develop a secure, effective, and efficient capability of value to a customer through the application of software engineering theory, processes, tools, technologies and methodologies. The students are expected to complete their project in a way that shows proficiency in the software engineering processes and techniques, and demonstrates ethical professional conduct.