class_desriptions

3
CS141: Data Structures and Algorithms algorithm analysis using asymptotic/Big O notation summation and recurrence relations Discrete structures: trees, strings, graphs Divide and conquer, greedy, and dynamic programming algorithm design CS100: Software Construction Programming in linux environment Programming using bash and linux system calls for threading and process management CS161: Computer Architecture Low level computer organization, Processor data path/pipeline, low-level arithmetic instruction efficiency, caching, memory hierarchy, virtual memory, Disk storage and I/O STAT150: Statistics for engineering Sample spaces, probability, probability distributions, statistical inferences CS150: Automata and formal languages Deterministic and non deterministic finite state machines, regular expressions, grammars, context free grammars, turing machines CS120B: Embedded Systems Experiments with programming a microprocessor in C: lighting LED patterns, using LED matrices to create simple games, using a variable resistor to change volume on a speaker State machines and implementing state machines in C Some detail in low level representation of integers, floating point/fixed point numbers Computer Graphics Labs using OpenGL library to implement low level graphics algorithms (drawing lines, polygons, and applying

Upload: isaac-long

Post on 13-Feb-2017

73 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: class_desriptions

CS141: Data Structures and Algorithms⁃ algorithm analysis using asymptotic/Big O notation⁃ summation and recurrence relations⁃ Discrete structures: trees, strings, graphs⁃ Divide and conquer, greedy, and dynamic programming algorithm design

CS100: Software Construction⁃ Programming in linux environment⁃ Programming using bash and linux system calls for threading and process management

CS161: Computer Architecture⁃ Low level computer organization, Processor data path/pipeline, low-level arithmetic instruction efficiency, caching, memory hierarchy, virtual memory, Disk storage and I/O

STAT150: Statistics for engineering⁃ Sample spaces, probability, probability distributions, statistical inferences

CS150: Automata and formal languages⁃ Deterministic and non deterministic finite state machines, regular expressions, grammars, context free grammars, turing machines

CS120B: Embedded Systems⁃ Experiments with programming a microprocessor in C: lighting LED patterns, using LED matrices to create simple games, using a variable resistor to change volume on a speaker⁃ State machines and implementing state machines in C⁃ Some detail in low level representation of integers, floating point/fixed point numbers

Computer Graphics⁃ Labs using OpenGL library to implement low level graphics algorithms (drawing lines, polygons, and applying lighting and transformations to them)

CS152: Operating System Design⁃ Fundamental operating system concepts: processes, threads, how low level memory and the filesystem is managed in Unix, virtual memory⁃ Worked with PintOS operating system and implemented some of the thread management and scheduling⁃ Concurrency concepts: locks, mutual exclusion, starvation, etc

CS152: Compiler Design

Page 2: class_desriptions

⁃ Studied details of the entire compilation process: scanning, context free grammars and parsing, semantic analysis, source code optimization, code generation⁃ Wrote partial compilers using Flex and Bison for small language

CS166: Parallel programming ⁃ Concurrency and parallel programming in C: thread and process management in Unix⁃ Intro to OpenMP C library

CS172: Information Retrieval⁃ Search engine architecture, evaluating search engines, web crawlers, text processing, retrieval models, ranking and indexes ⁃ Developed small web crawler and ranking system in Java using Apache Lucene

CS164: Computer Networks⁃ Studied application layer, transport layer, network layer, and link layer of modern computer networks⁃ TCP, HTTP, SMTP, FTP, DNS, Peer to Peer, protocols⁃ Socket programming and small twitter-like network project in Python

CS166: Database Management Systems⁃ Study of DBMS implementation ___⁃ Small Facebook-like project using PostgreSQL and Java

CS165: Computer Security-Linux crypto and how to brute force a linux password, how passwords are stored on various operating systems, Security of web application passwords, x86 execution model: memory operations, control flow, and memory organization, how procedures and functions interact with the stack, Control flow hijacks (buffer overflow, shell code construction), network hijacks, types of encryption

CS170: Artificial Intelligence-Blind search, adversarial search, heuristic search (A*), machine learning in conjunction with search

CS180: Software Engineering -Key principles and evolution of software engineering, rapid and iterative development and how Facebook and Microsoft approach software engineering processes, requirements and specifications-Development of Android application for ride sharing at UCR

CS179: Senior Design in Operating Systems

Page 3: class_desriptions

-Development of FUSE filesystem, unix-like filesystem in C++ in user space