Franklyn Turbak
Associate Professor of Computer Science
Programs and programming languages are at the heart of both my teaching and research.
To read more about Dr. Turbak, his teaching, and his research, visit his web site.
Education
- B.S., Massachusetts Institute of Technology
- M.S., Massachusetts Institute of Technology
- Ph.D., Massachusetts Institute of Technology
Current and upcoming courses
Computer Programming and Problem Solving
CS111
An introduction to problem-solving through computer programming. Students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, data structures, abstraction, recursion, and modularity. Students explore these concepts in the context of interactive programs, data processing, and graphics or audio, using the Python programming language.
This course has a required co-requisite laboratory - CS 111L.
This lecture and corresponding labs are intended for students who have some previous programming experience (in any language(s)) but would benefit from strengthening their programming skills before taking the CS 230 Data Structures course. The pace of this section will be slightly faster than CS 111-01 and CS 111-02, and it will cover some topics that are not taught in the other sections. If you would like to enroll in this accelerated version of CS 111, please fill out this form. Students who are given permission to enroll in CS 111-03 must enroll in either CS 111L-L06 (Turbak) or CS 111L-L07 (Turbak).
-
Foundations of Computer Systems with Laboratory
CS240
This course examines how computers run programs, introducing key software and hardware abstractions and implementations between programming languages and transistors. The course traces representation and translation of data and programs through three broad topics in computer systems: computer hardware implementation, including digital logic, computer arithmetic, and machine organization; the hardware-software interface, including instruction set architecture, assembly code, and the C programming language; and abstractions for practical systems, including the physical memory hierarchy, the operating system process model, virtual memory, and memory management. Students complete extensive hands-on projects in hardware and software systems. Students are required to attend one three-hour laboratory weekly.