Associate Professor, Department of Computer Science
University of Regina
Regina, Saskatchewan, Canada S4S 0A2
The prerequisites for CS210 are CS115 and MATH110. A fundamental component of the course requires extensive programming, debugging, and testing of algorithms and data structures written in C++.
The prerequisite for CS330 is CS210. A fundamental component of the course requires extensive programming, debugging, and testing of new features for HALos, an educational operating system written in C/C++. HALos manages a HAL9000 computer, a virtual machine written in C/C++ that runs on any computer running the Linux operating system. HALos supports the execution of foreground processes, background processes, and multiprogramming. HALos and the HAL9000 provide an environment for running "real" programs written in the HAL programming language. HAL supports integer, float, and string data types, local and global variables and constants, one-dimensional arrays, functions and procedures, pass-by-value and pass-by-reference variables, recursion, file I/O, arithmetic operations, and conditional and unconditional branching. Assignments will include the development of enhancements to HALshell (a command line interface to HALos), the development of enhancements to HALos for handling new system calls, new CPU scheduling policies, new memory managment policies, and network file systems.
CS430 and CS833 will be taught concurrently. The prerequisite for CS430 is CS330, but proficiency in C/C++ programming, algorithms and data structures, and computer systems architecture at a senior undergraduate level would also be beneficial. The prerequistes for CS833 are proficiency in C/C++ programming, algorithms and data structures, operating systems, and computer systems architecture at a senior undergraduate level. A fundamental component of both CS430 and CS833 is extensive programming, debugging, and testing of new features for xv6, a UNIX-like educational operating system written in C and x86 assembly language using AT&T syntax. The xv6 operating system runs on multiprocessor Intel x86-compatible computers.