Algorithmic complexity, recursion and various system functionality are introduced. Topics include process control and synchronization, memory management, processor scheduling, file systems and security. Introduction to data processing with a word processor, an electronic spreadsheet and a database management system. Both CISC and RISC are discussed. Students do literature research and a presentation on an appropriate robotics topic, program several different simulated and real robots, and develop a research proposal suitable for submission to a funding agency.
Students accomplish robotics research of their own proposing or contribute to ongoing research.
An introduction to Object-oriented program design using the Java programming language. This course builds on the basic object-oriented concepts from Computer Science II but concentrates on how best to apply these concepts, in Java syntax, to programming problems to achieve the best implementation. This course is preparatory for the more general software engineering concepts taught in the senior level Software Engineering course. This course covers advanced operating system concepts for senior undergraduate students or for beginning graduate students with a deficiency in operating systems. This course includes substantial programming work, involving the construction of distributed and parallel OS functionality on parallel and cluster machines.