Courses tagged with "Information control" (75)
This course provides a thorough introduction to the C programming language, the workhorse of the UNIX operating system and lingua franca of embedded processors and micro-controllers. The first two weeks will cover basic syntax and grammar, and expose students to practical programming techniques. The remaining lectures will focus on more advanced concepts, such as dynamic memory allocation, concurrency and synchronization, UNIX signals and process control, library development and usage. Daily programming assignments and weekly laboratory exercises are required. Knowledge of C is highly marketable for summer internships, UROPs, and full-time positions in software and embedded systems development.
This course analyzes issues associated with the implementation of higher-level programming languages. Topics covered include: fundamental concepts, functions, and structures of compilers, the interaction of theory and practice, and using tools in building software. The course includes a multi-person project on compiler design and implementation.
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python™ programming language.
This course explores the fundamentals of optical and optoelectronic phenomena and devices based on classical and quantum properties of radiation and matter culminating in lasers and applications. Fundamentals include: Maxwell's electromagnetic waves, resonators and beams, classical ray optics and optical systems, quantum theory of light, matter and its interaction, classical and quantum noise, lasers and laser dynamics, continuous wave and short pulse generation, light modulation; examples from integrated optics and semiconductor optoelectronics and nonlinear optics.
This course examines signals, systems and inference as unifying themes in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; group delay; state feedback and observers; probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization; least-mean square error estimation; Wiener filtering; hypothesis testing; detection; matched filters.
This course introduces students to the theory, algorithms, and applications of optimization. The optimization methodologies include linear programming, network optimization, integer programming, and decision trees. Applications to logistics, manufacturing, transportation, marketing, project management, and finance. Includes a team project in which students select and solve a problem in practice.
6.101 is an introductory experimental laboratory that explores the design, construction, and debugging of analog electronic circuits. Lectures and six laboratory projects investigate the performance characteristics of diodes, transistors, JFETs, and op-amps, including the construction of a small audio amplifier and preamplifier. Seven weeks are devoted to the design and implementation, and written and oral presentation of a project in an environment similar to that of engineering design teams in industry. The course provides opportunity to simulate real-world problems and solutions that involve trade offs and the use of engineering judgment. Engineers from local analog engineering companies come to campus to help students with their design projects.
6.171 is a course for students who already have some programming and software engineering experience. The goal is to give students some experience in dealing with those challenges that are unique to Internet applications, such as:
- concurrency;
- unpredictable load;
- security risks;
- opportunity for wide-area distributed computing;
- creating a reliable and stateful user experience on top of unreliable connections and stateless protocols;
- extreme requirements and absurd development schedules;
- requirements that change mid-way through a project, sometimes because of experience gained from testing with users;
- user demands for a multi-modal interface.