Hiển thị các bài đăng có nhãn Programming. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Programming. Hiển thị tất cả bài đăng

Thứ Tư, 6 tháng 2, 2019

Advanced Vision Course from The university of Edinburgh

Link: https://www.learn.ed.ac.uk/webapps/blackboard/content/listContent.jsp?course_id=_54479_1&content_id=_2584712_1

  • Advanced Vision Course Materials

    The goal of this course is provide you with the skills to understand and sketch out solutions to a variety of computer vision applications. You should end up with the skills to tackle novel situations and incompletely defined applications. We will approach this by looking at 6 simplified computer vision systems that cover a large portion of the range of both applied and research computer vision.
    IMPORTANT INFORMATION: This course is not taught by the traditional lectures. Instead, AV uses an Inverted Classroom method. This means that you will have about 15 hours of video to watch in your own time. This material is assessible. There are still 2 full class meetings each week. Normally, at the first meeting we will be discussing any questions that you either suggest in advance or raise in class on the day. The second meeting will be a guest lecture teaching you some advanced vision technology and applications (these talks are not assessed).

    Syllabus

    This module looks at several approaches to building vision systems. The order of the topics might change depending on the practicals. See links to the systems in the left side navigation panel. 
    • System 1: Orthographically viewed non-rigid 2D objects
    • System 2: Recognising classes of shape
    • System 3: Video Tracking (2D)
    • System 4: 3D objects from range data (recognition)
    • System 5: Video based human behaviour understanding
    • System 6: 3D objects from stereo vision (recognition)
    • System 7: Deep nets for Vision
    In the process of doing this, we will encounter a variety of topics in low, middle and high level computer vision

    Other References, Course Notes and Other Study Materials

    There is no perfect text book for this course.
    Recommended course textbooks (All available electronically from the University library)

    • R. Szeliski"Computer Vision", Springer, 2011, ISBN: 978-1-84882-934-3. (content for about 1/2 of course)
    Optional supplementary textbooks

    • T. Morris - "Computer Vision and Image Processing" (Palgrave, 1st Edition, 2004)
    • D. A. Forsyth & J. Ponce - "Computer Vision - a modern approach" (Prentice Hall, 2nd Edition, 2012)
    Online computer vision resources at University of Edinburgh (and beyond)


    Online computer vision and image processing courses
    Online MATLAB introductions and tutorials
    MATLAB code for the systems demonstrated in the lectures.
  • Item

    Summary of In-class Activities

    There is a summary of the questions that students emailed to me before class meetings and a summary of the in-class discussion exercises.

  • Item

    Inverted Classroom Advice

    Introduction: The expectation is that you take more control of your education in this course. There are no lectures in the traditional sense. Instead, we have pre-recorded 50-60 short videos (typically 15 minutes each) on different topics. You are to watch the videos in your own time (about 2 hours/week).
    There are six main topics and the videos for each topic are intended to be watched in the order listed on the Learn page. However, the topics themselves can largely be watched in any order. There are cross references from one topic to others.
    Using the materials: Each topic has a set of subtopics in a suggested order. You can get to the topic by clicking on one of the "View details" links. On the page for each of the topics, there are links to the subtopics. You can expose these by clicking on the topic name. Each subtopic has potentially 4 resources:
    1. PDF: There are 3 PDF files. The first file is a full size set of the slides that are used in the video. The second file is a 4 slide to a page version. The third set generally has an unfilled box on each content slide. The idea is that you fill in the box while listening to the video; writing helps you remember the concept. The 4-to-a-page format is to save paper if you decide to print the file.
    2. Review question + answer: A question based on the material presented in this subtopic that helps you better understand the material. A brief answer to the question is given
    3. Video: A video explaining the content. It should be playable inline by clicking on the video, or the video can be downloaded in 3 different formats.
    4. References/Examples/Online: Other resources that will help you understand the topic, and also additional topics.
    Timing: The topics are given a planned order and the main course web page has suggested a set of subtopics to be covered each week. You are expected to have watched the videos for that week before the start of the week. The class sessions are used: a) to answer questions that you email to me or ask in class and b) do some non-assessed group discussion on a vision problem related to the week's videos.
    The order and timing of the topics is chosen so that you will have covered the materials needed for the practicals in time.

Chủ Nhật, 14 tháng 10, 2018

Programming Language

Python:
1) edX_MITx-6.00.1x Introduction to Computer Science and Programming Using Python  (python 3.6)
Online: https://courses.edx.org/courses/course-v1:MITx+6.00.1x+2T2018/course/
Ebook: [John_V._Guttag]_EdX course_Introduction_to_Computation_and_Python

2) edX_MITx: 6.00.2x Introduction to Computational Thinking and Data Science
https://courses.edx.org/courses/course-v1:MITx+6.00.2x+3T2017/courseware/

3) edX_HarvardX-PH526x_Using Python for Research
Online: https://courses.edx.org/courses/course-v1:HarvardX+PH526x+2T2018/course/
Library: https://docs.python.org/3/library/index.html

4) edX_UTArlingtonX: CSE1309x_Introduction to Programming Using Python
Online: https://courses.edx.org/courses/course-v1:UTArlingtonX+CSE1309x+1T2018/course/

5) Python Tutorial:
http://cs231n.github.io/python-numpy-tutorial/

ROS
1) edX_DelftX-ROS1x_Hello (Real) World with ROS ? Robot Operating System
Online: https://courses.edx.org/courses/course-v1:DelftX+ROS1x+3T2018/course/

MATLAB
Help: https://au.mathworks.com/help/
Math: https://matlabacademy.mathworks.com/

code: http://cs103.net/
http://apmonitor.com/che263/index.php/Main/MatlabDynamicSim
Opimization: http://apmonitor.com/che263/index.php/Main/MatlabOptimization

Sphere in sphere contact force:
https://au.mathworks.com/matlabcentral/fileexchange/65316-designing-robot-manipulator-algorithms
Designing Robot Manipulator Algorithms
https://www.youtube.com/watch?v=5DnKot3mMSc

1) Industrial Controls Code Generation
https://au.mathworks.com/solutions/embedded-code-generation/industrial-controls.html
2) REU: Introduction to MATLAB
https://sites.wustl.edu/neumann/courses/previous-semesters/spring-2016/intro2matlab/
3) edX_PennX: ROBO4x_Robotics: Locomotion Engineering
Introduction to MATLAB: https://courses.edx.org/courses/course-v1:PennX+ROBO4x+3T2017/course/

Thứ Sáu, 14 tháng 10, 2016

Programming Course

Open Courseware của đại học MIT cung cấp 2100 khóa học về các chủ đề đa dạng, bao gồm cả kỹ thuật điện và khoa học máy tính. Các nguồn tài nguyên miễn phí bao gồm sách giáo khoa trực tuyến, kỳ thi, nội dung đa phương tiện, bài tập, các dự án và các ví dụ - và tất cả các khóa học thực tế từ MIT trong thời gian gần đây.
Coursera ra mắt vào tháng 4/2012 và đã mở rộng bao gồm trên 200 khóa học từ 33 trường đại học. Nếu bạn chưa nghe nói về Coursera, đó là một startup về cơ bản cho phép bạn nhận được một khóa học đại học trực tuyến được dạy bởi một giáo sư chính tại một trong những trường đại học tốt nhất thế giới.
Udacity là một dịch vụ miễn phí hiện nay với 14 lớp học ở đó, "Bạn học bằng cách giải quyết các vấn đề khó khăn... với các giảng viên đại học nổi tiếng trên thế giới." Các lớp học bao gồm các chủ đề liên quan đến lập trình, và đồng thời cũng tạo cho bạn một nền tảng vững chắc về toán học, vật lý và hơn thế nữa, đó là "Làm thế nào để khởi nghiệp".
Đó là trường dạy lập trình của Google, một nguồn tài nguyên miễn phí, và rõ ràng là một trong những nguồn tài nguyên tốt nhất nếu bạn quan tâm đến phát triển Android. Ở đây cũng có một số chủ đề nâng cao bao gồm hệ thống phân tán và bảo mật web.
Mozilla biết rõ một trang web như thế nào là tốt, và nó có một trung tâm dạy học miễn phí bao gồm các tài liệu được viết bởi mạng lưới cộng tác viên và từ các trang web khác.
Trong trường hợp bạn đang tự hỏi trang web này thuộc loại nào. Thì xin thưa rằng nó có rất nhiều thông tin miễn phí về HTML5, bao gồm cả các bài viết blog, và các hướng dẫn trực tuyến khác.
The Code Player là một nơi tuyệt vời để học lập trình. Với rất nhiều tài nguyên phong phú dành cho bạn. Bạn hãy tự khám phá nhé!
Codecademy trở nên nổi tiếng vào đầu năm 2012 khi thị trưởng thành phố New York là Michael Bloomberg đã nói rằng ông sẽ tự học lập trình trên trang này.
Một học viện khác, Khan Academy cung cấp nhiều khóa học ngoài lập trình nếu bạn đang tìm kiếm những kiến thức nhiều lĩnh vực khác - nhưng nếu bạn chỉ cần học lập trình thì nó cũng có rất đầy đủ tài liệu dành cho bạn.
General Assembly có một cách tiếp cận khác bằng cách cung cấp livestream (trả tiền) về các chủ đề như "Rapid Prototyping: From Wireframes to HMTL" - bạn mua một e-ticket trên Eventbrite, nhận được một mật khẩu, và xem các livestream khi nó diễn ra.
PeepCode bao gồm rất nhiều ngôn ngữ lập trình, nó cung cấp bản tải về (trả tiền), và các bài học được thu lại.
Eloquent JavaScript thực sự là một cuốn sách trực tuyến hoàn toàn miễn phí (hoặc bạn có thể mua cuốn ebook này trên Amazon). Từ giới thiệu của tác giả: "JavaScript là ngôn ngữ mà vào thời điểm này nó hầu như được sử dụng để làm tất cả mọi thứ thông minh và tuyệt vời với các trang web trên World Wide Web."
Nếu học Ruby (đây là Ruby, chứ không phải Ruby-on-Rails) là những gì bạn đang tìm kiếm, thì Ruby Koans có một hướng dẫn miễn phí, hứa hẹn là "người bạn đồng hành” khi bạn học Ruby.
Learn Code The Hard Way bắt đầu bằng cuốn sách (miễn phí trực tuyến) Learn Python The Hard Way, và sau này được nó bổ sung thêm cho các ngôn ngữ khác như Ruby và C.
Có rất nhiều thông tin (dễ dàng tìm kiếm) trên StackOverflow có thể là nguồn giúp đỡ tuyệt vời dành cho bạn. Ngoài ra, nếu bạn gặp phải vấn đề hóc búa trong lập trình thì cộng đồng trên StackOverflow sẽ hỗ trợ rất tốt để tìm ra giải pháp cho vấn đề đó.
Coder Dojo là nơi những bạn trẻ có thể học lập trình cùng nhau, vì vậy các bậc phụ huynh nên cho con em mình tham gia học ở đây. Trang web này cũng có một nguồn tài liệu được đăng tải bởi các instructor/ volunteer, nhưng còn tương đối hạn chế.
Ngoài  rất nhiều sách mà O'Reilly xuất bản, công ty này cũng cung cấp các khóa học trực tuyến (trả tiền) trên nhiều ngôn ngữ lập trình khác nhau.
Một lần nữa, nếu bạn là một phụ huynh, thì Scratch là một chương trình miễn phí có thể tải về, được phát triển bởi MIT Media Lab, chương trình này giúp trẻ em xây dựng những câu chuyện tương tác rất có ích trong phát triển trí tuệ.
Nếu bạn quan tâm đến việc phát triển ứng dụng trên các sản phẩm của Apple, thì bạn nên tìm hiểu trang web phát triển chính thức của Apple, xem nó với tất cả sự hăng say và học hỏi từ nguồn tài nguyên có sẵn trực tuyến này.
Trang web dành cho các nhà phát triển Android của Google, bao gồm các video từ Google I/O cũng như phần best practices cho việc thiết kế các ứng dụng.
Mobiletuts + có các bài viết blog miễn phí hướng dẫn về phát triển Android và iOS cũng như các công nghệ di động khác, nó còn có nhiều dịch vụ cao cấp khác mà bạn phải trả tiền thì mới có thể truy cập.
Udemy cung cấp các khóa học (một số miễn phí, một số trả tiền) trên một phạm vi rộng của nhiều đối tượng, và họ tự hào là có những giáo viên hướng dẫn nổi tiếng như Mark Zuckerberg và Marissa Mayer.
Code School cung cấp các khóa học và video theo kiểu thuê bao tháng, và cũng có một vài khóa học miễn phí chất lượng rất tốt.
Bloc hứa hẹn sẽ dạy cho bạn "trở thành một nhà phát triển web trong 12 tuần." Với một mức phí hơi cao, nhưng Bloc sẽ ghép bạn với một lập trình viên mentor giúp đỡ bạn trong suốt khóa học. 
Treehouse đã có hơn 600 video mà bạn có thể xem với một khoản phí hàng tháng, nếu đăng ký là thuê bao cao cấp thì sẽ được cung cấp nhiều tính năng hơn.
Programr có một cách dạy lập trình hoàn toàn khác: bạn xây dựng các sản phẩm cho đến khi nó hoạt động tốt mới thôi. Hãy đọc bài phỏng vấn của chúng tôi với nhà sáng lập của Programr là Rajesh Moorjani để biết thêm chi tiết nhé!
Processing là một nơi tuyệt vời khác để bạn có thể học lập trình, với rất nhiều sách và video miễn phí. Bạn hãy tự khám phá trang web này nhé!

 edx.org (tương đương Coursera) 
 Packtpub.com (free 1 cuốn sách lập trình / mỗi ngày)

From: techmaster.vn

Thứ Ba, 8 tháng 12, 2015

How to Become a Computer Scientist

Being a Computer Scientist is not about programming; it is about the study of algorithms (a series of steps, understood by someone or something, in order to complete a task in a given number of steps). Many Computer Scientists don't program at all. Indeed, Edsger Dijkstra once said “Computer science is no more about computers than astronomy is about telescopes.”

Part 1 of 4: Starting out


  1. 1
    Become a lifelong learner. Being a computer scientist is all about learning to be a student, not just during training, but for all time throughout your career. Technology changes, new languages develop, new algorithms are devised: you need to be able to learn new things to stay current.

  2. 2
    Understand your future role. As a computer scientist, it is your job to solve problems. It is also about solving problems in a way which can leave everyone happy in the end. This means learning good communication skills as well as coding skills because you are more likely to match the needs of your client with the apt solution if you listen well and relay back your understandings clearly, as well as keep the client informed during the project.

Part 2 of 4: Writing pseudocode


  1. 1
    Start with pseudocode. Pseudocode isn't really a programming language, but it is a way to represent a program in a very English-like way. The most familiar algorithm to you is probably on your shampoo bottle: Lather, rinse, repeat. This is an algorithm. It is understandable by you (the "Computing Agent") and has a finite number of steps. Or does it ...

  2. 2
    Tweak the pseudocode. The shampoo example isn't a very good algorithm for two reasons: it doesn't have a condition to end on, and it doesn't really tell you what to repeat. Repeat lathering? Or just the rinsing. A better example would be "Step 1 - Lather. Step 2 - Rinse. Step 3 - Repeat steps 1 and 2(2 or 3 times for better results) and then finish(exit)." This is understandable by you, has an end condition (a finite number of steps), and is very explicit.

Part 3 of 4: Writing algorithms


  1. 1
    Try writing algorithms for all sorts of things. For example, how to get from one building to another on campus, or how to make a casserole. Soon, you'll be seeing algorithms all over the place!

  2. 2
    After you've learned how to write algorithms, programming should come naturally to you. Buy a book, and read it entirely to learn the language. Avoid online tutorials as they're often written by hobbyists, not professionals.
    • However, feel free to look for help on the internet. Object-oriented languages like Java and C++ are "in" right now, but Procedural languages like C are easier to start with because they deal solely in algorithms.

  3. 3
    Programming is only the translation of pseudocode into a programming language. The more time before programming you spend planning in pseudocode, the less time you'll spend typing and scratching your head.

Part 4 of 4: Algorithm analysis


  1. 1
    Read up on RAM (the random access machine). One of the best places to start is by reading Steven Skiena's book The algorithm design manual.

  2. 2
    Learn about the limiting behavior of functions. Read up on Big O notation.

  3. 3
    Read about how worst case inputs can break your algorithm or cost you heavily in CPU processing time. It is important to learn what ways can efficiently counteract them.
  4. http://www.wikihow.com/