1 / 27

Welcome to COMP 40!

COMP 40: Machine Structure and Assembly Language Programming (Fall 2014 ). Welcome to COMP 40!. Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah. Course Introduction. COMP 40 Themes. Learn how computers work

taylor
Download Presentation

Welcome to COMP 40!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP 40: Machine Structure and Assembly Language Programming (Fall 2014) Welcome to COMP 40! Noah Mendelsohn Tufts UniversityEmail: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah

  2. Course Introduction

  3. COMP 40 Themes • Learn how computers work • Turn the corner toward being truly professionalprogrammers

  4. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  5. Important topics for the term • Abstraction • How machines work • What is a bit? • How languages and runtimes use the machine

  6. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills First assignment: • Programming skills • Hanson interfaces: practice in abstraction • Models of how abstract types are implemented • void * practice Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  7. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills Next three assignments: • How data is represented • How languages and libraries use the machine • Locality Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  8. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Assembler programming on popular machine Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  9. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills How machines run internally Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  10. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Build your own versions of the tools you’ve been using Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  11. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Use what you built! Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  12. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills ABSTRACTION! Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  13. How we’ll do it Building Useful Applications in your Language Ramp up your Programming Skills Big programs that teach you abstraction, pointers, locality, machine representations of data Building a Language Processor on your Emulator Intel Assembler ProgrammingThe Bomb! Emulating your own hardware in software

  14. Course staff • Professor: • Noah Mendelsohn • Emails: noah@cs.tufts.edu • Graduate TAs • TO BE ANNOUNCED • Email: comp40-staff@cs.tufts.edu • Undergraduate Tas • Too many to list: all COMP 40 experts • Email: ta40@cs.tufts.edu BTW: I prefer you call me Noah, but Prof. Mendelsohn is fine too.

  15. Credits • This version of COMP 40 was originally developed by Prof. Norman Ramsey • Many of the materials and all the assignments trace to him • Updates have been made by Noah Daniels, Mark Sheldon, and Noah Mendelsohn

  16. Announcements

  17. What you must do right now! • Make sure you have a partner for assignment 1 • Read course: home page, admin & policies including collaboration policy pair programming rules, coding standards • Sign up for Piazza: • We mostly won’t email announcements – just post there • Immediately: start reading the HW1 handout and readings from course calendar • Come to lab on Friday withyour partner – switch labs if necessary

  18. Homework 1 is out now • Instructions at http://www.cs.tufts.edu/comp/40/homework/intro • Also linked from course calendar • Due dates: • Design document: Submit by Monday Sept 8th • Final submission with code: Thusday Sept 11th • Be sure to understand course policy on late submissions: up to 2 tokens/assignment, 6 total for term. No credit if > 2 days late! (note: in past semesters, limit was 5 total for term) • See admin page for policies on serious illness, etc.

  19. Pair programming • You must work with a partner – rare exceptions • Both of you must be together when design, documentation, or coding is done! • You must never split the work • After the first assignment you choose your own partner – max 3 assignments with same partner • Be sure to understand and follow all pair programming rules at: http://www.cs.tufts.edu/comp/40/admin#pairprogramming

  20. Labs • Required – attend with your partner • You can switch from morning to afternoon if http://www.cs.tufts.edu/~molay/labssays there’s space • Many labs are designed to give you essential help completing your big projects!

  21. A few more thoughts • This course is intense • Most students report it is very worthwhile • Grading can be severe on individual assignments but… • …most students do very well in the end • We are here to help you succeed! • Relax…work hard…be patient…have fun!

  22. Design Documents

  23. Getting Help

  24. Where to get help • Piazza! • We much prefer you ask questions there • You must not share your own code or test cases with other students: mark those questions “instructor only” • We prefer you not be anonymous…but it’s your choice • TAs: in labs most days and evenings • Schedule will be kept on Piazza page • Office hours: see my home page • Online sources • man pages, Google, Stack Overflow

  25. “If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn” Anne Isabella Thackeray Ritchie

  26. In COMP 40, we will sometimes decline to give you fish, but we will always help you learn to fish. Noah M.

  27. But…just this once since we’re hitting you with a lot at once… …I’ll give you a few fish!

More Related