The Hardware/Software Interface CSE 351 Spring 2016
|
|
|
- Barnard Fleming
- 9 years ago
- Views:
Transcription
1 The Hardware/Software Interface CSE 351 Instructor: Brandon Holt Teaching Assistants: Kevin Bi, Anton Goncharenko, Sarang Joshi, Xi Liu, Anthony McIntosh, Alfian Rizqi, Yufang Sun, Shan Yang
2 Welcome! 10 weeks to see the key abstractions under the hood to describe what really happens when a program runs How is it that everything is 1s and 0s? Where does all the data get stored and how do you find it? How can more than one program run at once? What happens to a Java or C program before the hardware can execute it? What is The Stack and The Heap? And much, much, much more An introduction that will: Profoundly change/augment your view of computers and programs Connect your source code down to the hardware Leave you impressed that computers ever work. 2
3 Who: Course Staff Brandon Holt: 5 th year PhD student Excited to teach what was my favorite class in undergrad. I like: compilers, mountains, and sandwiches (esp. w/ avocado). First time teaching an entire class, so help me out! TAs: 8 (!) Alfian, Anton, Anthony, Kevin, Sarang, Shan, Xi, Yufang all have taken the course and most have TA d 351 in the past. Office hours will be figured out ASAP Get to know us! We are here to help you succeed And to make the course better with your help! 3
4 Acknowledgments Many thanks to the people whose course content we are liberally reusing with at most minor changes CMU: Randy Bryant, David O Halloran, Gregory Kesden, Markus Püschel Harvard: Matt Welsh (now at Google-Seattle) UW: Gaetano Borriello, Luis Ceze, Peter Hornyack, Hal Perkins, Ben Wood, John Zahorjan, Katelin Bailey, Ruth Anderson, Dan Grossman Not listed: dozens of TAs 4
5 Who are you? ~116(!) registered CSE majors, EE majors, and more! Most of you will find almost everything in the course brand new Please get to know each other, and help each other out See me if you are interested in taking the class but are not yet registered. 5
6 Staying In Touch Course web page: Schedule, policies, labs, homeworks, and everything else Catalyst discussion board Keep in touch outside of class help each other Staff will monitor and contribute Course mailing list Low traffic mostly announcements; is subscribed Office hours, appointments, drop-ins Spread throughout the week Staff (Brandon + TAs): [email protected] For things that are not appropriate for the discussion board Anonymous feedback Comments about anything related to the course where you would feel better not attaching your name, linked from website, goes directly to Brandon. 6
7 Course Components Lectures (28) Introduce the concepts; supplemented by textbook Sections (10) Applied concepts, important tools and skills for labs, clarification of lectures, exam review and preparation Written homework assignments (4) Mostly problems from textbook to solidify understanding Programming labs/assignments (5, plus lab 0 ) Provide in-depth understanding (via practice) of an aspect of system Exams (midterm + final) Test your understanding of concepts and principles Midterm Friday, April 29, in class Final time set by the university: Wednesday June 8, 2:30-4:20PM 7
8 Policies: Grading Exams (45%): 15% midterm, 30% final Many old exams on course website (but now 64-bit, +new instructor) Written assignments (20%): weighted according to effort We ll try to make these about the same Lab assignments (35%): weighted according to effort These will likely increase in weight as the quarter progresses Late days: 3 late days to use as you wish throughout the quarter see website Collaboration: Do not cheat!!! It s an affront to the course staff, your fellow students, and yourself. CSE courses are special and valuable keep it that way! 8
9 Textbooks Computer Systems: A Programmer s Perspective, 3 rd Edition Randal E. Bryant and David R. O Hallaron Prentice-Hall, rd edition includes complete rewrite of Chapter 3 All code examples in x This book really matters for the course! How to solve labs Practice problems typical of exam problems A good C book any will do The C Programming Language (Kernighan and Ritchie) C: A Reference Manual (Harbison and Steele) 9
10 Videos / Online course Gaetano Borriello and Luis Ceze made videos in 2013 covering the course content [for an online version of the course] And self-check quiz questions These are a great resource encourage you to watch them Generally optional unless class is cancelled or something Occasionally may require before class so you don t get lost in an example But some content has changed Now all 64-bit so some videos may have extra information no longer relevant. This means we may get to new things that class didn t get to. If in doubt, go with what we talked about in this class. 10
11 Other details Consider taking CSE 391 Unix Tools, 1 credit, useful skills Available to all CSE majors and everyone registered in CSE351 Office hours will be held this week, check web page for times 11
12 Concise To-Do List Review syllabus, course goals, collaboration policy, etc.: Make sure you are receiving announcement s Beginning-of-course survey, due Friday Lab 0, due Monday, January 11 at 5pm Make sure you get our virtual machine set up and are able to do work Basic exercises to start getting familiar with C Credit/no-credit Get this done as quickly as possible Section Thursday Please install the virtual machine BEFORE coming to section BRING your computer with you to section Includes activities to help you get started with Lab 0 12
13 Anything I forgot about course mechanics before we discuss, you know, hardware and software? 13
14 The Hardware/Software Interface What do we mean by hardware? software? What is an interface? Why do we need a hardware/software interface? Why do we need to understand both sides of this interface?
15 C/Java, assembly, and machine code if (x!= 0) y = (y+z)/x; ê cmpl $0, -4(%ebp) je.l2 movl -12(%ebp), %eax movl -8(%ebp), %edx leal (%edx, %eax), %eax movl %eax, %edx sarl $31, %edx idivl -4(%ebp) movl %eax, -8(%ebp).L2: ê High Level Language (e.g. C, Java) Assembly Language Machine Code 15
16 C/Java, assembly, and machine code if (x!= 0) y = (y+z)/x; ê Compiler ê cmpl $0, -4(%ebp) je.l2 movl -12(%ebp), %eax movl -8(%ebp), %edx leal (%edx, %eax), %eax movl %eax, %edx sarl $31, %edx idivl -4(%ebp) movl %eax, -8(%ebp).L2: ê Assembler ê High Level Language (e.g. C, Java) Assembly Language Machine Code 16
17 C/Java, assembly, and machine code if (x!= 0) y = (y+z)/x; ê cmpl $0, -4(%ebp) je.l2 movl -12(%ebp), %eax movl -8(%ebp), %edx leal (%edx, %eax), %eax movl %eax, %edx sarl $31, %edx idivl -4(%ebp) movl %eax, -8(%ebp).L2: ê l The three program fragments are equivalent l You'd rather write C! (more human-friendly) l Hardware likes bit strings! l l Everything is voltages The machine instructions are actually much shorter than the number of bits we would need to represent the characters in the assembly language 17
18 HW/SW Interface: Historical Perspective Hardware started out quite primitive 18
19 HW/SW Interface: Historical Perspective Hardware started out quite primitive Jean Jennings (left), Marlyn Wescoff (center), and Ruth Lichterman program ENIAC at the University of Pennsylvania, circa 1946.Photo: Corbis innovator-of-the-%e2%80%9cc%e2%80%9d-programming-language-and- 19
20 HW/SW Interface: Historical Perspective Hardware started out quite primitive Programmed with very basic instructions. E.g. a single instruction for adding two integers Software was also very basic Closely reflected the actual hardware it was running on Specify each step manually Architecture Specification (Interface) Hardware 20
21 HW/SW Interface: Assemblers Life was made a lot better by assemblers 1 assembly instruction = 1 machine instruction, but... different syntax: assembly instructions are character strings, not bit strings, a lot easier to read/write by humans can use symbolic names Assembler specification User program in assembly language Assembler Hardware 21
22 HW/SW Interface: Higher-Level Languages Higher level of abstraction: 1 line of a high-level language is compiled into many (sometimes very many) lines of assembly language C language specification User progra m in C C compiler Assembler Hardware 22
23 HW/SW Interface: Code / Compile / Run Times Code Time Compile Time Run Time User progra m in C C compiler Assembler Hardware.c file.exe file Note: The compiler and assembler are just programs, developed using this same process. 23
24 The Big Theme: Abstractions and Interfaces Computing is about abstractions (but we can t forget reality) What are the abstractions that we use? What do you need to know about them? When do they break down and you have to peek under the hood? What bugs can they cause and how do you find them? How does the hardware (0s and 1s, processor executing instructions) relate to the software (C/Java programs)? Become a better programmer and begin to understand the important concepts that have evolved in building ever more complex computer systems 24
25 Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: get_mpg: pushq movq... popq ret %rbp %rsp, %rbp %rbp Java: Car c = new Car(); c.setmiles(100); c.setgals(17); float mpg = c.getmpg(); OS: Memory & data Integers & floats Machine code & C x86 assembly Procedures & stacks Arrays & structs Memory & caches Processes Virtual memory Memory allocation Java vs. C Computer system: 25
26 Little Theme 1: Representation All digital systems represent everything as 0s and 1s The 0 and 1 are really two different voltage ranges in the wires Or magnetic positions on a disc, or hole depths on a DVD, or even DNA Everything includes: Numbers integers and floating point Characters the building blocks of strings Instructions the directives to the CPU that make up a program Pointers addresses of data objects stored away in memory These encodings are stored throughout a computer system In registers, caches, memories, disks, etc. They all need addresses A way to find them Find a new place to put a new item Reclaim the place in memory when data no longer needed 26
27 Little Theme 2: Translation There is a big gap between how we think about programs and data and the 0s and 1s of computers Need languages to describe what we mean These languages need to be translated one level at a time We know Java as a programming language Have to work our way down to the 0s and 1s of computers Try not to lose anything in translation! We ll encounter Java byte-codes, C language, assembly language, and machine code (for the X86 family of CPU architectures) Not in that order, but will all connect by the last lecture!!! 27
28 Little Theme 3: Control Flow How do computers orchestrate everything they are doing? Within one program: How do we implement if/else, loops, switches? What do we have to keep track of when we call a procedure, and then another, and then another, and so on? How do we know what to do upon return? Across programs and operating systems: Multiple user programs Operating system has to orchestrate them all Each gets a share of computing cycles They may need to share system resources (memory, I/O, disks) Yielding and taking control of the processor Voluntary or by force? 28
29 Writing Assembly Code??? In 2016??? Chances are, you ll never write a program in assembly Compilers are much better and more patient than you are But: understanding assembly is the key to the machine-level execution model Behavior of programs in presence of bugs High-level language model breaks down Tuning program performance Understand optimizations done/not done by the compiler Understanding sources of program inefficiency Implementing system software Operating systems must manage process state Fighting malicious software Using special units (timers, I/O co-processors, etc.) inside processor! 29
30 Course Outcomes Understanding of some of the abstractions that exist between programs and the hardware they run on, why they exist, and how they build upon each other Knowledge of some of the details of underlying implementations Less important later, but cannot get it without doing it and doing it requires details Become more effective programmers Understand some of the many factors that influence program performance More efficient at finding and eliminating bugs Facility with more languages that we use to describe programs and data Better understand new hardware Prepare for later classes in CSE 30
31 CSE351 s role in the CSE Curriculum Pre-requisites 142 and 143: Intro Programming I and II Also recommended: 391: System and Software Tools Complementary to: CSE311->CSE369->EE371 / EE271->EE371: hardware design below us arranging wires to do addition and stuff EE/CSE474 embedded systems: CSE351 invaluable but not a pre-req [EE] CSE331/332/341: high-level software design and structures Essential pre-req for: CSE401: compilers write a program to do CSE351 translations CSE333: building well-structured systems in C/C++ Courses after CSE333: OS, networks, distributed systems, graphics, 31
32 Course Perspective CSE351 will make you a better programmer Purpose is to show how software really works Understanding the underlying system makes you more effective Better debugging Better basis for evaluating performance How multiple activities work in concert (e.g., OS and user programs) Not just a course for hardware enthusiasts! What every CSE major needs to know (plus many more details) See many patterns that come up over and over in computing (like caching) Like other 300-level courses, stuff everybody learns and uses and forgets not knowing CSE351 presents a world-view that will empower you The intellectual tools and software tools to understand the trillions+ of 1s and 0s that are flying around when your program runs 32
33 33
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Registration We have 180 students registered and others who want to get in. If you re thinking of dropping
The Hardware/So7ware Interface CSE351 Spring 2010 (Inaugural Edi5on) 1 st Lecture, 29 March
The Hardware/So7ware Interface CSE351 Spring 2010 (Inaugural Edi5on) 1 st Lecture, 29 March Instructor: Gaetano Borriello Teaching Assistants: Paul Pham, Andrew Reutsch, Ben Wood CSE351 Inaugural EdiDon
Introduction. Compiler Design CSE 504. Overview. Programming problems are easier to solve in high-level languages
Introduction Compiler esign CSE 504 1 Overview 2 3 Phases of Translation ast modifled: Mon Jan 28 2013 at 17:19:57 EST Version: 1.5 23:45:54 2013/01/28 Compiled at 11:48 on 2015/01/28 Compiler esign Introduction
Language Processing Systems
Language Processing Systems Evaluation Active sheets 10 % Exercise reports 30 % Midterm Exam 20 % Final Exam 40 % Contact Send e-mail to [email protected] Course materials at www.u-aizu.ac.jp/~hamada/education.html
CS 51 Intro to CS. Art Lee. September 2, 2014
CS 51 Intro to CS Art Lee September 2, 2014 Announcements Course web page at: http://www.cmc.edu/pages/faculty/alee/cs51/ Homework/Lab assignment submission on Sakai: https://sakai.claremont.edu/portal/site/cx_mtg_79055
CS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
Lecture 27 C and Assembly
Ananda Gunawardena Lecture 27 C and Assembly This is a quick introduction to working with x86 assembly. Some of the instructions and register names must be check for latest commands and register names.
Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) [email protected] http://www.mzahran.com
CSCI-UA.0201-003 Computer Systems Organization Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) [email protected] http://www.mzahran.com Some slides adapted (and slightly modified)
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
CS 43: Computer Networks Course Introduction. Grab a clicker and please sit towards the front, next to other students!
CS 43: Computer Networks Course Introduction Kevin Webb Swarthmore College September 1, 2015 Grab a clicker and please sit towards the front, next to other students! What This Class Is About What This
How to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer
How to make the computer understand? Fall 2005 Lecture 15: Putting it all together From parsing to code generation Write a program using a programming language Microprocessors talk in assembly language
Department of Accounting ACC 311 - Fundamentals of Financial Accounting Syllabus
Department of Accounting ACC 311 - Fundamentals of Financial Accounting Syllabus Instructor: Kristen Valentine E-mail: [email protected] Office: CBA 5.334W Office Hours: Monday Thursday
Lecture 1: Course Introduction"
Lecture 1: Course Introduction" CSE 123: Computer Networks Alex C. Snoeren First Discussion Friday 10/4! Lecture 1 Overview" Class overview Expected outcomes Structure of the course Policies and procedures
EE361: Digital Computer Organization Course Syllabus
EE361: Digital Computer Organization Course Syllabus Dr. Mohammad H. Awedh Spring 2014 Course Objectives Simply, a computer is a set of components (Processor, Memory and Storage, Input/Output Devices)
CS 378: Computer Game Technology
CS 378: Computer Game Technology http://www.cs.utexas.edu/~fussell/courses/cs378/ Spring 2013 University of Texas at Austin CS 378 Game Technology Don Fussell Instructor and TAs! Instructor: Don Fussell!
Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014
Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014 Class: Tuesdays and Thursdays, 10:00-11:15 in Science Hall 005 Lab: Tuesdays, 9:00-9:50 in Science
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
NORTHWESTERN UNIVERSITY Department of Statistics. Fall 2012 Statistics 210 Professor Savage INTRODUCTORY STATISTICS FOR THE SOCIAL SCIENCES
NORTHWESTERN UNIVERSITY Department of Statistics Fall 2012 Statistics 210 Professor Savage INTRODUCTORY STATISTICS FOR THE SOCIAL SCIENCES Instructor: Professor Ian Savage 330 Andersen Hall, 847-491-8241,
CS 261 C and Assembly Language Programming. Course Syllabus
CS 261 C and Assembly Language Programming Course Syllabus Spring 2016 Lecture: Tuesdays and Thursdays 9:10AM to 10:25 in VSCI 255 3 Semester Hours Instructor: Dick Lang, Ph.D. [email protected]
South Plains College: General Course Syllabus
South Plains College: General Course Syllabus Department: Behavioral Sciences Discipline: Sociology Course Number: Sociology 1301 Course Name: Introduction to Sociology Credit: 3 Lecture: 3 Lab: 0 This
CS 301 Course Information
CS 301: Languages and Automata January 9, 2009 CS 301 Course Information Prof. Robert H. Sloan Handout 1 Lecture: Tuesday Thursday, 2:00 3:15, LC A5 Weekly Problem Session: Wednesday, 4:00 4:50 p.m., LC
Syllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?
Inside the CPU how does the CPU work? what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? some short, boring programs to illustrate the
Introducción. Diseño de sistemas digitales.1
Introducción Adapted from: Mary Jane Irwin ( www.cse.psu.edu/~mji ) www.cse.psu.edu/~cg431 [Original from Computer Organization and Design, Patterson & Hennessy, 2005, UCB] Diseño de sistemas digitales.1
Computer Science Theory. From the course description:
Computer Science Theory Goals of Course From the course description: Introduction to the theory of computation covering regular, context-free and computable (recursive) languages with finite state machines,
General Psychology. Fall 2015
General Psychology Fall 2015 Dr. Mary E. McKemy (pronounced Mc-KAY-me, but feel free to call me Mary) Kinard 123 (down the hall from the Psychology Office) 323-2643 (Office) and 328-9978 (Home -- please
Operating Systems Introduction
Operating Systems Introduction Chester Rebeiro IIT Madras Webpage : http://www.cse.iitm.ac.in/~chester/courses/15o_os/index.html The Layers in Systems Applications Operating Systems Computer Organization
STAT 1403 College Algebra Dr. Myron Rigsby Fall 2013 Section 0V2 crn 457 MWF 9:00 am
MATH 1403 College Algebra/ Rigsby/ Fall 2013 Page 1 Credit Hours: 3 Lecture Hours: 3 University of Arkansas Fort Smith 5210 GRAND AVENUE P.O. BOX 3649 FORT SMITH, AR 72913-3649 479-788-7000 Syllabus and
ECE 3803: Microprocessor System Design D Term 2011 Course Syllabus Department of Electrical and Computer Engineering Worcester Polytechnic Institute
ECE 3803: Microprocessor System Design D Term 2011 Course Department of Electrical and Computer Engineering Worcester Polytechnic Institute Instructor: Gene Bogdanov, AK020, [email protected], 508-831-6640
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Corporate and Brand Identity on the Web: VIC5315 University of Florida Summer 2013
b+i corporate and brand identity on the web Corporate and Brand Identity on the Web: VIC5315 University of Florida Summer 2013 Course number: VIC5315 Credits: 03 Meeting times: Wednesday evenings, 6pm
Gildart Haase School of Computer Sciences and Engineering
Gildart Haase School of Computer Sciences and Engineering Metropolitan Campus I. Course: CSCI 6638 Operating Systems Semester: Fall 2014 Contact Hours: 3 Credits: 3 Class Hours: W 10:00AM 12:30 PM DH1153
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
ò Paper reading assigned for next Thursday ò Lab 2 due next Friday ò What is cooperative multitasking? ò What is preemptive multitasking?
Housekeeping Paper reading assigned for next Thursday Scheduling Lab 2 due next Friday Don Porter CSE 506 Lecture goals Undergrad review Understand low-level building blocks of a scheduler Understand competing
Lab 4.4 Secret Messages: Indexing, Arrays, and Iteration
Lab 4.4 Secret Messages: Indexing, Arrays, and Iteration This JavaScript lab (the last of the series) focuses on indexing, arrays, and iteration, but it also provides another context for practicing with
Syllabus COP2253: Introduction to Programming in Java
Syllabus COP2253: Introduction to Programming in Java Instructor Contact Information Mr. Chris Alvin Email: [email protected] Virtual Office Hours: Day and Times to be Determined Course Information Course
How to design and implement firmware for embedded systems
How to design and implement firmware for embedded systems Last changes: 17.06.2010 Author: Rico Möckel The very beginning: What should I avoid when implementing firmware for embedded systems? Writing code
Introduction to Information Technology ITP 101x (4 Units)
Objective Concepts Introduction to Information Technology ITP 101x (4 Units) Upon completing this course, students will: - Understand the fundamentals of information technology - Learn core concepts of
Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles
Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles Knowledge Areas that contain topics and learning outcomes covered in the course Knowledge Areas Total Hours of Coverage Software Development
ITS1100: Train the Trainer
Course Syllabus ITS1100: Train the Trainer Course Information Prerequisites Required permissions Classroom location Meeting days Class hours Department location Web page None None Skylight Room- 306, 17
REPUTATION MANAGEMENT SURVIVAL GUIDE. A BEGINNER S GUIDE for managing your online reputation to promote your local business.
REPUTATION MANAGEMENT SURVIVAL GUIDE A BEGINNER S GUIDE for managing your online reputation to promote your local business. About Main Street Hub: Main Street Hub is the voice for more local businesses
n Introduction n Art of programming language design n Programming language spectrum n Why study programming languages? n Overview of compilation
Lecture Outline Programming Languages CSCI-4430 & CSCI-6430, Spring 2016 www.cs.rpi.edu/~milanova/csci4430/ Ana Milanova Lally Hall 314, 518 276-6887 [email protected] Office hours: Wednesdays Noon-2pm
COS 217: Introduction to Programming Systems
COS 217: Introduction to Programming Systems 1 Goals for Todayʼs Class Course overview Introductions Course goals Resources Grading Policies Getting started with C C programming language overview 2 1 Introductions
CSS 341 : Fundamentals of Programming Theory and Applications Course Syllabus-Autumn 2012
Fund Prog Autumn 2012 Page 1 of 9 CSS 341 : Fundamentals of Programming Theory and Applications Course Syllabus-Autumn 2012 Instructor: Charles F. Jackels Office: Room 251-UWBB (Science and Technology
Programming Languages
Programming Languages In the beginning To use a computer, you needed to know how to program it. Today People no longer need to know how to program in order to use the computer. To see how this was accomplished,
CS 1361-D10: Computer Science I
CS 1361-D10: Computer Science I Instructor Name: Lopamudra Roychoudhuri Instructor Phone Number: (325) 486-5448 Instructor email: [email protected] Instructor Office: MCS 205E Class Times: Online,
MKT2413: Marketing Research Semester 2, 2013/2014
MKT2413: Marketing Research Semester 2, 2013/2014 Department of Marketing NUS Business School Lecturer: Dr. Chu Junhong Office: Mochtar Riady Building, BIZ 1 8-34 Email: [email protected] Tel: (65) 6516-6938
BUDT 758B-0501: Big Data Analytics (Fall 2015) Decisions, Operations & Information Technologies Robert H. Smith School of Business
BUDT 758B-0501: Big Data Analytics (Fall 2015) Decisions, Operations & Information Technologies Robert H. Smith School of Business Instructor: Kunpeng Zhang ([email protected]) Lecture-Discussions:
Introduction to Database Systems CS4320. Instructor: Christoph Koch [email protected] CS 4320 1
Introduction to Database Systems CS4320 Instructor: Christoph Koch [email protected] CS 4320 1 CS4320/1: Introduction to Database Systems Underlying theme: How do I build a data management system? CS4320
Contents. 1 Introduction. CS 15 Collaboration Policy Fall 2015. 1 Introduction 1 1.1 Motivation... 2 1.2 Enforcement... 2
Contents 1 Introduction 1 1.1 Motivation.................................... 2 1.2 Enforcement................................... 2 2 Discussion of Course Material 2 3 Implementation and Debugging 3 4
How To Write Portable Programs In C
Writing Portable Programs COS 217 1 Goals of Today s Class Writing portable programs in C Sources of heterogeneity Data types, evaluation order, byte order, char set, Reading period and final exam Important
Theories of Personality Psyc 314-001, Fall 2014
Theories of Personality Psyc 314-001, Fall 2014 Dr. Mary E. McKemy (pronounced Mc-KAY-me) Kinard 123 (down the hall from the Psychology Office) 323-2643 (Office) and 328-9978 (Home -- please call before
STAT 301 (Traditional and Online) SYLLABUS for Spring 2012
STAT 301 (Traditional and Online) SYLLABUS for Spring 2012 INSTRUCTOR: EMAIL: OFFICE: OFFICE HOURS: FRIDAY LAB T.A.: Any student may attend the office hours of any STAT 301 instructor. A master schedule
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
CMSC 10600 Fundamentals of Computer Programming II (C++)
CMSC 10600 Fundamentals of Computer Programming II (C++) Department of Computer Science University of Chicago Winter 2011 Quarter Dates: January 3 through March 19, 2011 Lectures: TuTh 12:00-13:20 in Ryerson
CSE 6329: Special Topics in Advanced Software Engineering. Office. Class. Class Meetings in GS 109. Office hours in NH 306, after class
CSE 6329: Special Topics in Advanced Software Engineering Fall 2008 Monday, Wednesday, 4-5:20 pm, GS 109 Instructor: Christoph Csallner Nedderman Hall 306, 817-272-3334, [email protected] Office Class Office
Overview and History of Operating Systems
Overview and History of Operating Systems These are the notes for lecture 1. Please review the Syllabus notes before these. Overview / Historical Developments An Operating System... Sits between hardware
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce
2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce Program Objective #1 (PO1):Students will be able to demonstrate a broad knowledge
Analytical Chemistry Lecture - Syllabus (CHEM 3310) The University of Toledo Fall 2012
Analytical Chemistry Lecture - Syllabus (CHEM 3310) The University of Toledo Fall 2012 Course Call #s 44899/44900 and 48756/47954 2.00 credits Instructor: Class Meeting Time: Office Hours: TA: Dr. Wendell
02-201: Programming for Scientists
1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming
New York University Stern School of Business Undergraduate College
New York University Stern School of Business Undergraduate College Principles of Financial Accounting (ACCT-UB.0001.03) Fall 2013 M/W, 9:30 10:45 a.m., UC25 Table of Contents Instructor information.2 Teaching
Introduction to Computer Engineering EECS 203
Introduction to Computer Engineering EECS 203 Instructor: Hai Zhou Office: L461 Tech Email: [email protected] Phone: 847 491 4155 TA: Email: Jing Xin [email protected] Outline Administrative
1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
1.00 Lecture 1 Course Overview Introduction to Java Reading for next time: Big Java: 1.1-1.7 Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
Introduction to Programming System Design. CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
Department of Geography University of Idaho. GEOG 390: Geographic Visualization January to May 2010 COURSE OUTLINE. (subject to change)
Department of Geography University of Idaho GEOG 390: Geographic Visualization January to May 2010 COURSE OUTLINE (subject to change) Instructor Classes meet Mondays, Wednesdays 3:30 5:45 pm at MCCL 206
Ch. 10 Software Development. (Computer Programming)
Ch. 10 Software Development (Computer Programming) 1 Definitions Software or Program Instructions that tell the computer what to do Programmer Someone who writes computer programs 2 Instruction Set A vocabulary
Operating System Overview. Otto J. Anshus
Operating System Overview Otto J. Anshus A Typical Computer CPU... CPU Memory Chipset I/O bus ROM Keyboard Network A Typical Computer System CPU. CPU Memory Application(s) Operating System ROM OS Apps
Introduction to Psychology Psych 100 Online Syllabus Fall 2014
Introduction to Psychology Psych 100 Online Syllabus Fall 2014 Contact Information Professor: Dr. Deborah Maher Office: C&L (Classrooms and Labs) 119 Office phone #: (714) 432-0202, x21190 (best to email
CMSC 152: Introduction to Computer Science II
CMSC 152: Introduction to Computer Science II The University of Chicago, Winter 2015 Adam Shaw and Matthew Wachs http://www.classes.cs.uchicago.edu/archive/2014/winter/15200-1 Welcome! In CS152, we introduce
INSTRUCTION AT FSU THE FLORIDA STATE UNIVERSITY OFFICE OF DISTANCE LEARNING. A Guide to Teaching and Learning Practices
7th Edition Office of Distance Learning INSTRUCTION AT FSU A Guide to Teaching and Learning Practices Version 12.02.11 ODL/rg THE FLORIDA STATE UNIVERSITY OFFICE OF DISTANCE LEARNING 7th Edition Office
CS 253: Intro to Systems Programming
CS 253: Intro to Systems Programming Spring 2014 Amit Jain, Shane Panter, Marissa Schmidt Department of Computer Science College of Engineering Boise State University Logistics Instructor: Amit Jain http://cs.boisestate.edu/~amit
Process Scheduling CS 241. February 24, 2012. Copyright University of Illinois CS 241 Staff
Process Scheduling CS 241 February 24, 2012 Copyright University of Illinois CS 241 Staff 1 Announcements Mid-semester feedback survey (linked off web page) MP4 due Friday (not Tuesday) Midterm Next Tuesday,
Napa Valley College Fall 2015 Math 106-67528: College Algebra (Prerequisite: Math 94/Intermediate Alg.)
1 Napa Valley College Fall 2015 Math 106-67528: College Algebra (Prerequisite: Math 94/Intermediate Alg.) Room 1204 Instructor: Yolanda Woods Office: Bldg. 1000 Rm. 1031R Phone: 707-256-7757 M-Th 9:30-10:35
Soft processors for microcontroller programming education
Soft processors for microcontroller programming education Charles Goetzman Computer Science University of Wisconsin La Crosse [email protected] Jeff Fancher Electronics Western Technical College
Course Content Concepts
CS 1371 SYLLABUS, Spring, 2016 Revised 1/8/16 Computing for Engineers Course Content Concepts The students will be expected to be familiar with the following concepts, either by writing code to solve problems,
CSE 307: Principles of Programming Languages
Course Organization Introduction CSE 307: Principles of Programming Languages Spring 2015 R. Sekar Course Organization Introduction 1 / 34 Topics 1. Course Organization Info and Support Course Description
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
Embedded System Design. Disclaimer
Embedded System Design CS/ECE 6780/5780 Al Davis Today s topics: course logistics & overview organize lab sessions 1 CS 5780 Disclaimer Course traditionally taught by John Regehr (SoC) or Chris Myers (ECE)
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming "The only way to learn a new programming language is by writing programs in it." -- B. Kernighan and D. Ritchie "Computers
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
IT 342 Operating Systems Fundamentals Fall 2014 Syllabus
Tuesday 7:20 to 10:00 Bull Run Hall Room 258 James F. Holdener, P.E. Phone: 703 983-2343 (I check this number daily during the week) Email: [email protected] Email is the best method to get hold of me.
Letter from the Editor-in-Chief: What Makes an Excellent Professor?
The Journal of Effective Teaching an online journal devoted to teaching excellence Letter from the Editor-in-Chief: What Makes an Excellent Professor? Russell L. Herman 1 The University of North Carolina
AC 2007-2027: A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION
AC 2007-2027: A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION Michael Black, American University Manoj Franklin, University of Maryland-College Park American Society for Engineering
SYLLABUS: EE-1301: Modern Electronic Technology
SYLLABUS: EE-1301: Modern Electronic Technology Course Information Orig: 150116 EE-1301 is a survey course in electrical engineering for non-technical, liberal arts undergraduate students. The course topics
NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department. COURSE: CST2403 C++ Programming Part 1 ( 4 hours, 3 credits )
1 NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department COURSE: CST2403 C++ Programming Part 1 ( 4 hours, 3 credits ) INSTRUCTOR: OFFICE: E-MAIL: PHONE: OFFICE HOURS: Course Description:
CSCI 4250/6250 Fall 2015 Computer and Network Security. Instructor: Prof. Roberto Perdisci [email protected]
CSCI 4250/6250 Fall 2015 Computer and Network Security Instructor: Prof. Roberto Perdisci [email protected] CSCI 4250/6250! What is the purpose of this course?! Combined Undergrad/Graduate Intro to Computer
GEOG 5200S Elements of Cartography : Serving the Community Through Cartography Spring 2015
GEOG 5200S Elements of Cartography : Serving the Community Through Cartography Spring 2015 Instructor Ola Ahlqvist, PhD, Associate Professor [email protected] Office phone: 247-7997 Office address: 1049
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference
Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
Administrative Issues
CSC 3210 Computer Organization and Programming Introduction and Overview Dr. Anu Bourgeois (modified by Yuan Long) Administrative Issues Required Prerequisites CSc 2010 Intro to CSc CSc 2310 Java Programming
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
3 SOFTWARE AND PROGRAMMING LANGUAGES
3 SOFTWARE AND PROGRAMMING LANGUAGES 3.1 INTRODUCTION In the previous lesson we discussed about the different parts and configurations of computer. It has been mentioned that programs or instructions have
