ACM and the Programming Contest
I have recently taken over as the faculty liaison to the student chapter of the ACM at UC Santa Barbara. The ACM, which was founded in 1947, is the professional organization for those involved in any aspect of computing. With over 78,000 members, the ACM is a great way to meet those involved in the field of computer science and further your career. Students can get a membership for fairly cheap, which grants you access to a variety of online computing magazines, journals, and proceedings. Like any other student organization, our local UCSB chapter is largely a product of what students do for it.
The two largest events of the student chapter each year is hosting the UCSB campus wide programming contest that prepares students for the Southern California Regional Contest, and the UCSB programming battle which is just about programming up some software bots and going head to head against your classmates.
UCSB Course Descriptions
- CS160: Translation of Programming Languages
Study of the structure of compilers. Topics include: lexical analysis; syntax analysis and parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools. - CS154: Computer Architecture The course gives an in-depth understanding of the inner-workings of modern digital computer systems and tradeoffs present at the hardware-software interface. Computer architecture is driven from the software side by user needs in terms of functionality and performance and from the hardware side by technological innovations and constraints. CS 154 introduces students to this exciting field, including the design process, performance and cost analysis, computer arithmetic, controller and data path design, input/output systems, interrupts and exceptions, pipelining and parallelism.
- CS254: Advanced Computer Architecture
This class will cover many of the important aspects of modern computer architectures (how do modern caches really work, predicting future execution, techniques for speculation and instruction level parallelism) and will explore the relationship between computer architecture and other areas such as machine learning and optimization.
UCSB Course History
Fall 03 - CS160: Translation of Programming Languages
Winter 04 - CS290I: Algorithms and Heuristics in Computer Architecture
Spring 04 - CS154: Computer Architecture
Fall 05 - CS160: Translation of Programming Languages
Winter 05 - CS160: Translation of Programming Languages
Spring 05 - CS160: Advanced Computer Architecture
Fall 06 - CS160: Translation of Programming Languages
Winter 06 - CS160: Translation of Programming Languages
Spring 07 - CS160: Advanced Computer Architecture