From cb59cbd0ddeceec52d82779e29cc13f8a4cf0236 Mon Sep 17 00:00:00 2001 From: Peter Thaleikis Date: Wed, 19 Oct 2022 08:26:50 +0200 Subject: [PATCH] Add missing spaces --- README.md | 84 +++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index e9f76cc..7fb107e 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Courses ### Systems -- [CS 61C](http://www-inst.eecs.berkeley.edu/~cs61c/sp15/) **Great Ideas in Computer Architecture (Machine Structures)** *UC Berkeley* Lecture VideosLecture Notes Assignments Readings +- [CS 61C](http://www-inst.eecs.berkeley.edu/~cs61c/sp15/) **Great Ideas in Computer Architecture (Machine Structures)** *UC Berkeley* Lecture Videos Lecture Notes Assignments Readings - The subjects covered in this course include: C and assembly language programming, translation of high-level programs into machine language, computer organization, caches, performance measurement, parallelism, CPU design, warehouse-scale computing, and related topics. - [Lecture Videos](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_?sort=titleSorter) - [Lecture Notes](http://www-inst.eecs.berkeley.edu/~cs61c/sp15/#Calendar) @@ -85,16 +85,16 @@ Courses - Write a real-time OS microkernel in C, and application code to operate a model train set in response to real-time sensor information. The communication with the train set runs at 2400 baud so it takes about 61 milliseconds to ask all of the sensors for data about the train's possible location. This makes it particularly challenging because a train can move about 3 centimeters in that time. One of the most challenging and time-consuming courses at the University of Waterloo. - [Assignments](http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/assignments/index.html) - [Lecture notes](http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/notes/index.html) -- [CS 2043](http://www.cs.cornell.edu/courses/CS2043/2014sp/) **Unix Tools & Scripting** *Cornell University* Assignments Lecture NotesReadings +- [CS 2043](http://www.cs.cornell.edu/courses/CS2043/2014sp/) **Unix Tools & Scripting** *Cornell University* Assignments Lecture Notes Readings - UNIX-like systems are increasingly being used on personal computers, mobile phones, web servers, and many other systems. They represent a wonderful family of programming environments useful both to computer scientists and to people in many other fields, such as computational biology and computational linguistics, in which data is naturally represented by strings. This course provides an intensive training to develop skills in Unix command line tools and scripting that enable the accomplishment and automation of large and challenging computing tasks. The syllabus takes students from shell basics and piping, to regular-expression processing tools, to shell scripting and Python. - [Syllabus](http://www.cs.cornell.edu/courses/CS2043/2014sp/) - [Lectures](http://www.cs.cornell.edu/courses/CS2043/2014sp/) - [Assignments](http://www.cs.cornell.edu/courses/CS2043/2014sp/) -- [CS 3410](http://www.cs.cornell.edu/courses/cs3410/2016fa/) **Computer System Organization and Programming** *Cornell University* Assignments Lecture NotesReadings +- [CS 3410](http://www.cs.cornell.edu/courses/cs3410/2016fa/) **Computer System Organization and Programming** *Cornell University* Assignments Lecture Notes Readings - CS3410 provides an introduction to computer organization, systems programming and the hardware/software interface. Topics include instruction sets, computer arithmetic, datapath design, data formats, addressing modes, memory hierarchies including caches and virtual memory, I/O devices, bus-based I/O systems, and multicore architectures. Students learn assembly language programming and design a pipelined RISC processor. - [Lectures](http://www.cs.cornell.edu/courses/CS3410/2014sp/schedule.html) - [Assignments](http://www.cs.cornell.edu/courses/CS3410/2014sp/schedule.html) -- [CS 4410](http://www.cs.cornell.edu/courses/CS4410/2014fa/) **Operating Systems** *Cornell University* Lecture NotesReadings +- [CS 4410](http://www.cs.cornell.edu/courses/CS4410/2014fa/) **Operating Systems** *Cornell University* Lecture Notes Readings - CS 4410 covers systems programming and introductory operating system design and implementation. We will cover the basics of operating systems, namely structure, concurrency, scheduling, synchronization, memory management, filesystems, security and networking. The course is open to any undergraduate who has mastered the material in CS3410/ECE3140. - [Syllabus](http://www.cs.cornell.edu/courses/CS4410/2014fa/slides/01-intro.pptx) - [Lectures](http://www.cs.cornell.edu/courses/CS4410/2014fa/lectures.php) @@ -105,7 +105,7 @@ Courses - [CS 5412](http://www.cs.cornell.edu/Courses/CS5412/2014sp/) **Cloud Computing** *Cornell University* Lecture Notes Readings - Taught by one of the stalwarts of this field, Prof Ken Birman, this course has a fantastic set of slides that one can go through. The Prof's [book](http://www.amazon.com/Guide-Reliable-Distributed-Systems-High-Assurance/dp/1447124154) is also a gem and recommended as a must read in Google's tutorial on [Distributed System Design](http://www.hpcs.cs.tsukuba.ac.jp/~tatebe/lecture/h23/dsys/dsd-tutorial.html) - [Slides](http://www.cs.cornell.edu/Courses/CS5412/2014sp/Syllabus.htm) -- [CSCE 3613](http://comp.uark.edu/~wingning/csce3613/csce3613.html) **Operating Systems** *University of Arkansas (Fayetteville)* Assignments Lecture NotesReadings - An introduction to operating systems including topics in system structures, process management, storage management, files, distributed systems, and case studies. +- [CSCE 3613](http://comp.uark.edu/~wingning/csce3613/csce3613.html) **Operating Systems** *University of Arkansas (Fayetteville)* Assignments Lecture Notes Readings - An introduction to operating systems including topics in system structures, process management, storage management, files, distributed systems, and case studies. - [Syllabus](http://comp.uark.edu/~wingning/csce3613/CSCE3613.pdf) - [Assignments](http://comp.uark.edu/~wingning/csce3613/Homework3613.html) - [Lecture Notes](http://comp.uark.edu/~wingning/csce3613/CourseNote3613.html) @@ -222,7 +222,7 @@ Courses - Covers functional programming concepts like closures, tail-call recursion & parallelism using the OCaml programming language - [Lectures](http://www.cs.princeton.edu/~dpw/courses/cos326-12/lectures.php) - [Assignments](http://www.cs.princeton.edu/~dpw/courses/cos326-12/assignments.php) -- [CS 143](https://web.stanford.edu/class/cs143/) **Compiler construction** *Stanford University* Lecture NotesAssignments +- [CS 143](https://web.stanford.edu/class/cs143/) **Compiler construction** *Stanford University* Lecture Notes Assignments - CS143 is a Stanford's course in the practical and theoretical aspects of compiler construction. - [Home](https://web.stanford.edu/class/cs143/) - [Syllabus](https://web.stanford.edu/class/cs143/syllabus.html) @@ -255,7 +255,7 @@ Courses - Another course that uses OCaml to teach alternative programming paradigms, especially functional and concurrent programming. - [Lecture Slides](http://www.cs.cornell.edu/Courses/cs3110/2014fa/lecture_notes.php) - [Assignments](http://www.cs.cornell.edu/Courses/cs3110/2014fa/) -- [CS 4120](http://www.cs.cornell.edu/courses/CS4120/2013fa/) **Introduction to Compilers** *Cornell University* Assignments Lecture NotesReadings +- [CS 4120](http://www.cs.cornell.edu/courses/CS4120/2013fa/) **Introduction to Compilers** *Cornell University* Assignments Lecture Notes Readings - An introduction to the specification and implementation of modern compilers. Topics covered include lexical scanning, parsing, type checking, code generation and translation, an introduction to optimization, and compile-time and run-time support for modern programming languages. As part of the course, students build a working compiler for an object-oriented language. - [Syllabus](http://www.cs.cornell.edu/courses/CS4120/2013fa/overview.html) - [Lectures](http://www.cs.cornell.edu/courses/CS4120/2013fa/schedule.html) @@ -269,11 +269,11 @@ Courses - Course that uses OCaml to teach functional programming and programming language design. Each assignment is a part of an interpreter and compiler for an object-oriented language similar to Java, and you are required to use a different language for each assignment (i.e., choose 4 from Python, JS, OCaml, Haskell, Ruby). - [Lecture Notes](http://www.cs.virginia.edu/~weimer/4610/lectures.html) - [Assignments](http://www.cs.virginia.edu/~weimer/4610/pa.html) -- [CS 5114](http://www.cs.cornell.edu/courses/CS5114/2013sp/index.php) **Network Programming Languages** *Cornell University* Lecture NotesReadings +- [CS 5114](http://www.cs.cornell.edu/courses/CS5114/2013sp/index.php) **Network Programming Languages** *Cornell University* Lecture Notes Readings - This course provides an introduction to the languages used to program computer networks. It will examine recent proposals based on logic, functional, and distributed languages, as well as tools for establishing correctness using automatic solvers, model checkers, and proof assistants. - [Syllabus](http://www.cs.cornell.edu/courses/CS5114/2013sp/syllabus.php) - [Lectures](http://www.cs.cornell.edu/courses/CS5114/2013sp/syllabus.php) -- [CS 5142](http://www.cs.cornell.edu/courses/CS5142/2013fa/) **Scripting Languages** *Cornell University* Lecture NotesAssignments +- [CS 5142](http://www.cs.cornell.edu/courses/CS5142/2013fa/) **Scripting Languages** *Cornell University* Lecture Notes Assignments - Perl, PHP, JavaScript, VisualBasic -- they are often-requested skills for employment, but most of us do not have the time to find out what they are all about. In this course, you learn how to use scripting languages for rapid prototyping, web programming, data processing, and application extension. Besides covering traditional programming languages concepts as they apply to scripting (e.g., dynamic typing and scoping), this course looks at new concepts rarely found in traditional languages (e.g., string interpolation, hashes, and polylingual code). Through a series of small projects, you use different languages to achieve programming tasks that highlight the strengths and weaknesses of scripting. As a side effect, you practice teaching yourself new languages. - [Syllabus](http://www.cs.cornell.edu/courses/CS5142/2013fa/) - [Lectures](http://www.cs.cornell.edu/courses/CS5142/2013fa/#schedule) @@ -282,11 +282,11 @@ Courses - If you're a fan of Prof Matt's writing on his [fantastic blog](http://matt.might.net/articles/) you ought to give this a shot. The course covers the design and implementation of compilers, and it explores related topics such as interpreters, virtual machines and runtime systems. Aside from the Prof's witty take on [cheating](http://matt.might.net/teaching/compilers/spring-2015/#collaboration) the page has tons of interesting links on programming languages, parsing and compilers. - [Lecture Notes](https://www.dropbox.com/sh/zanwtoflw4pcfu8/5pdT6axS3y) - [Projects](http://matt.might.net/teaching/compilers/spring-2015/#projects) -- [CS 6118](http://www.cs.cornell.edu/courses/CS6118/2012fa/) **Types and Semantics** *Cornell University* Lecture NotesReadings +- [CS 6118](http://www.cs.cornell.edu/courses/CS6118/2012fa/) **Types and Semantics** *Cornell University* Lecture Notes Readings - Types and Semantics is about designing and understand programming languages, whether they be domain specific or general purpose. The goal of this class is to provide a variety of tools for designing custom (programming) languages for whatever task is at hand. Part of that will be a variety of insights on how languages work along with experiences from working with academics and industry on creating new languages such as Ceylon and Kotlin. The class focuses on types and semantics and the interplay between them. This means category theory and constructive type theory (e.g. Coq and richer variations) are ancillary topics of the class. The class also covers unconventional semantic domains such as classical linear type theory in order to both break students from conventional thinking and to provide powerful targets capable of formalizing thinks like networking protocols, resource-sensitive computation, and concurrency constructs. The class project is to design and formalize a (programming) language for a purpose of the student's choosing, and assignments are designed to ensure students have had a chance to practice applying the techniques learned in class before culminating these skills in the class project. - [Syllabus](http://www.cs.cornell.edu/courses/CS6118/2012fa/) - [Lectures](http://www.cs.cornell.edu/courses/CS6118/2012fa/) -- [CSC 253](http://pgbovine.net/cpython-internals.htm) **CPython internals: A ten-hour codewalk through the Python interpreter source code** *University of Rochester* Lecture VideosReadings +- [CSC 253](http://pgbovine.net/cpython-internals.htm) **CPython internals: A ten-hour codewalk through the Python interpreter source code** *University of Rochester* Lecture Videos Readings - Nine lectures walking through the internals of CPython, the canonical Python interpreter implemented in C. They were from the *Dynamic Languages and Software Development* course taught in Fall 2014 at the University of Rochester. - [CSE 341](http://courses.cs.washington.edu/courses/cse341/16sp/) **Programming Languages** *University of Washington* Lecture Videos Assignments Lecture Notes - Covers non-imperative paradigms and languages such as Ruby, Racket, and ML and the fundamentals of programming languages. @@ -300,21 +300,21 @@ Courses - A course that teaches discrete maths concepts with functional programming - [Lecture Videos](http://cs.wheaton.edu/~tvandrun/dmfp/) - [Assignments](http://cs.wheaton.edu/~tvandrun/dmfp/source.html) -- [PCPP](http://www.itu.dk/people/sestoft/itu/PCPP/E2015/) **Practical Concurrent and Parallel Programming** *IT University of Copenhagen* Lecture NotesAssignmentsReadings +- [PCPP](http://www.itu.dk/people/sestoft/itu/PCPP/E2015/) **Practical Concurrent and Parallel Programming** *IT University of Copenhagen* Lecture Notes Assignments Readings - In this MSc course you learn how to write correct and efficient concurrent and parallel software, primarily using Java, on standard shared-memory multicore hardware. - The course covers basic mechanisms such as threads, locks and shared memory as well as more advanced mechanisms such as parallel streams for bulk data, transactional memory, message passing, and lock-free data structures with compare-and-swap. - It covers concepts such as atomicity, safety, liveness and deadlock. - It covers how to measure and understand performance and scalability of parallel programs. - It covers tools and methods to find bugs in concurrent programs. -- [6.945](https://groups.csail.mit.edu/mac/users/gjs/6.945/index.html) **Adventures in Advanced Symbolic Programming** *MIT* Lecture NotesAssignmentsReadings +- [6.945](https://groups.csail.mit.edu/mac/users/gjs/6.945/index.html) **Adventures in Advanced Symbolic Programming** *MIT* Lecture Notes Assignments Readings - Taught by Gerald Sussman of SICP fame, this class deals with concepts and techniques for the design an implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. - [Assignments](https://groups.csail.mit.edu/mac/users/gjs/6.945/assignments.html): Extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or other "functional" language. - [Readings](https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/) -- [CS 696](http://www.eli.sdsu.edu/courses/fall15/cs696/index.html) **Functional Design and Programming** *San Diego State University* Lecture NotesAssignmentsReadings +- [CS 696](http://www.eli.sdsu.edu/courses/fall15/cs696/index.html) **Functional Design and Programming** *San Diego State University* Lecture Notes Assignments Readings - Covers functional programming basis using Clojure. - Topics include testing, functional programming, immutable collections and concurrency. - Also includes assignments covering Clojurescript, [Reagent](Reagent Github) etc. -- [L28](https://www.cl.cam.ac.uk/teaching/1516/L28/) **Advanced Functional Programming** *University of Cambridge* Lecture NotesAssignmentsReadings +- [L28](https://www.cl.cam.ac.uk/teaching/1516/L28/) **Advanced Functional Programming** *University of Cambridge* Lecture Notes Assignments Readings - This module aims to teach students how to use the features of modern typed functional programming languages (e.g. OCaml, Haskell) to design and implement libraries and DSLs. It aims to demonstrate how such techniques can improve both correctness and efficiency. Students wishing to take the module should have some experience of a typed functional programming language and an understanding of type inference. - This particular session was taught by a prominent OCaml programmer, open Source contributor & author of real world OCaml - Dr Anil Madhavapeddy. @@ -385,14 +385,14 @@ Courses - This course taught in the MIT Independent Activities Period in 2009 goes over common solution to common interview questions for software engineer interviews at highly selective companies like Apple, Google, and Facebook. They cover time complexity, hash tables, binary search trees, and other common algorithm topics you should have already covered in a different course, but goes more in depth on things you wouldn't otherwise learn in class- like bitwise logic and problem solving tricks. - [Handouts](https://courses.csail.mit.edu/iap/interview/materials.php) - [Topics Covered](https://courses.csail.mit.edu/iap/interview/calendar.php) -- [6.006](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/index.htm) **Introduction to Algorithms** *MIT* Lecture VideosAssignments Readings +- [6.006](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/index.htm) **Introduction to Algorithms** *MIT* Lecture Videos Assignments Readings - This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems. - [Lecture Videos](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/) - [Assignments](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/assignments/) - [Readings](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/readings/) - [Resources](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/download-course-materials/) - [Old Exams](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/exams/) -- [6.046J/18.410J](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/index.htm) **Design and Analysis of Algorithms** *MIT* Lecture VideosLecture Notes Assignments Readings +- [6.046J/18.410J](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/index.htm) **Design and Analysis of Algorithms** *MIT* Lecture Videos Lecture Notes Assignments Readings - This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography. This course assumes that students know how to analyze simple algorithms and data structures from having taken [6.006](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/). It introduces students to the design of computer algorithms, as well as analysis of sophisticated algorithms. - [Lecture Videos](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-videos/) - [Lecture Notes](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-notes/) @@ -406,7 +406,7 @@ Courses - [6.854/18.415J](https://courses.csail.mit.edu/6.854/current/) **Advanced Algorithms** *MIT* Lecture Videos Assignments Lecture Notes - Advanced course in algorithms by Dr. David Karger covering topics such as amortization, randomization, fingerprinting, word-level parallelism, bit scaling, dynamic programming, network flow, linear programming, fixed-parameter algorithms, and approximation algorithms. - **Register** on [NB](http://nb.mit.edu/subscribe?key=D3a8CYpoO2VcR1ZcfaxmR5KbyjCGXd3INNXvL3mxEakYJ7qGJw) to access the [problem set and lectures](http://nb.mit.edu/). -- [6.854J/18.415J](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/index.htm) **Advanced Algorithms** *MIT* Lecture NotesAssignments Readings +- [6.854J/18.415J](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/index.htm) **Advanced Algorithms** *MIT* Lecture Notes Assignments Readings - This course is a first-year graduate course in algorithms. Emphasis is placed on fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Techniques to be covered include amortization, randomization, fingerprinting, word-level parallelism, bit scaling, dynamic programming, network flow, linear programming, fixed-parameter algorithms, and approximation algorithms. Domains include string algorithms, network optimization, parallel algorithms, computational geometry, online algorithms, external memory, cache, and streaming algorithms, and data structures. The need for efficient algorithms arises in nearly every area of computer science. But the type of problem to be solved, the notion of what algorithms are "efficient,'' and even the model of computation can vary widely from area to area. In this second class in algorithms, we will survey many of the techniques that apply broadly in the design of efficient algorithms, and study their application in a wide range of application domains and computational models. The goal is for the class to be broad rather than deep. Our plan is to touch upon the following areas. This is a tentative list of topics that might be covered in the class; we will select material adaptively based on the background, interests, and rate of progress of the students. - [Lecture Videos - Spring 2016](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c) - [Lecture Notes](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/lecture-notes/) @@ -443,17 +443,17 @@ Courses - [Assignments/Exams](https://courses.engr.illinois.edu/cs498374/fa2014/work.html) - [Lecture Notes/Labs](https://courses.engr.illinois.edu/cs498374/fa2014/lectures.html) - [Lecture videos](http://recordings.engineering.illinois.edu/ess/portal/section/115f3def-7371-4e98-b72f-6efe53771b2a) -- [CS 3110](http://www.cs.cornell.edu/courses/CS3110/2014fa/) **Data Structures and Functional Programming** *Cornell University* Assignments Lecture NotesReadings +- [CS 3110](http://www.cs.cornell.edu/courses/CS3110/2014fa/) **Data Structures and Functional Programming** *Cornell University* Assignments Lecture Notes Readings - CS 3110 (formerly CS 312) is the third programming course in the Computer Science curriculum, following CS 1110/1112 and CS 2110. The goal of the course is to help students become excellent programmers and software designers who can design and implement software that is elegant, efficient, and correct, and whose code can be maintained and reused. - [Syllabus](http://www.cs.cornell.edu/courses/CS3110/2014fa/course_info.php) - [Lectures](http://www.cs.cornell.edu/courses/CS3110/2014fa/lecture_notes.php) - [Assignments](http://www.cs.cornell.edu/courses/CS3110/2014fa/index.php) -- [CS 3220](http://www.cs.cornell.edu/~bindel/class/cs3220-s12/) **Introduction to Scientific Computing** *Cornell University* Assignments Lecture NotesReadings +- [CS 3220](http://www.cs.cornell.edu/~bindel/class/cs3220-s12/) **Introduction to Scientific Computing** *Cornell University* Assignments Lecture Notes Readings - In this one-semester survey course, we introduce numerical methods for solving linear and nonlinear equations, interpolating data, computing integrals, and solving differential equations, and we describe how to use these tools wisely (we hope!) when solving scientific problems. - [Syllabus](http://www.cs.cornell.edu/~bindel/class/cs3220-s12/syllabus.html) - [Lectures](http://www.cs.cornell.edu/~bindel/class/cs3220-s12/lectures.html) - [Assignments](http://www.cs.cornell.edu/~bindel/class/cs3220-s12/assignments.html) -- [CS 4300](http://www.cs.cornell.edu/courses/CS4300/2013fa/) **Information Retrieval** *Cornell University* Assignments Lecture NotesReadings +- [CS 4300](http://www.cs.cornell.edu/courses/CS4300/2013fa/) **Information Retrieval** *Cornell University* Assignments Lecture Notes Readings - Studies the methods used to search for and discover information in large-scale systems. The emphasis is on information retrieval applied to textual materials, but there is some discussion of other formats.The course includes techniques for searching, browsing, and filtering information and the use of classification systems and thesauruses. The techniques are illustrated with examples from web searching and digital libraries. - [Syllabus](http://www.cs.cornell.edu/courses/CS4300/2013fa/lectures/introduction.pdf) - [Lectures](http://www.cs.cornell.edu/courses/CS4300/2013fa/lectures.htm) @@ -538,28 +538,28 @@ Courses - [Syllabus](http://www.cs.cornell.edu/courses/CS1109/2013su/syllabus.html) - [Lectures](http://www.cs.cornell.edu/courses/CS1109/2013su/calendar.html) - [Assignments](http://www.cs.cornell.edu/courses/CS1109/2013su/calendar.html) -- [CS 1110](http://www.cs.cornell.edu/courses/CS1110/2014fa/) **Introduction to Computing Using Python** *Cornell University* Assignments Lecture NotesReadings +- [CS 1110](http://www.cs.cornell.edu/courses/CS1110/2014fa/) **Introduction to Computing Using Python** *Cornell University* Assignments Lecture Notes Readings - Programming and problem solving using Python. Emphasizes principles of software development, style, and testing. Topics include procedures and functions, iteration, recursion, arrays and vectors, strings, an operational model of procedure and function calls, algorithms, exceptions, object-oriented programming, and GUIs (graphical user interfaces). Weekly labs provide guided practice on the computer, with staff present to help. Assignments use graphics and GUIs to help develop fluency and understanding. - [Syllabus](http://www.cs.cornell.edu/courses/CS1110/2014fa/about/grading.php) - [Lectures](http://www.cs.cornell.edu/courses/CS1110/2014fa/lectures/index.php) - [Assignments](http://www.cs.cornell.edu/courses/CS1110/2014fa/assignments/index.php) -- [CS 1112](http://www.cs.cornell.edu/courses/CS1112/2014fa/) **Introduction to Computing Using Matlab** *Cornell University* Assignments Lecture NotesReadings +- [CS 1112](http://www.cs.cornell.edu/courses/CS1112/2014fa/) **Introduction to Computing Using Matlab** *Cornell University* Assignments Lecture Notes Readings - Programming and problem solving using MATLAB. Emphasizes the systematic development of algorithms and programs. Topics include iteration, functions, arrays and vectors, strings, recursion, algorithms, object-oriented programming, and MATLAB graphics. Assignments are designed to build an appreciation for complexity, dimension, fuzzy data, inexact arithmetic, randomness, simulation, and the role of approximation. NO programming experience is necessary; some knowledge of Calculus is required. - [Syllabus](http://www.cs.cornell.edu/courses/CS1112/2014fa/syllabus.html) - [Lectures](http://www.cs.cornell.edu/courses/CS1112/2014fa/syllabus.html#schedule) - [Assignments](http://www.cs.cornell.edu/courses/CS1112/2014fa/Exercises/exercises.html) - [Projects](http://www.cs.cornell.edu/courses/CS1112/2014fa/Projects/projects.html) -- [CS 1115](http://www.cs.cornell.edu/courses/CS1115/2013fa/) **Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces** *Cornell University* Assignments Lecture NotesReadings +- [CS 1115](http://www.cs.cornell.edu/courses/CS1115/2013fa/) **Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces** *Cornell University* Assignments Lecture Notes Readings - Programming and problem solving using MATLAB. Emphasizes the systematic development of algorithms and programs. Topics include iteration, functions, arrays and vectors, strings, recursion, algorithms, object-oriented programming, and MATLAB graphics. Assignments are designed to build an appreciation for complexity, dimension, fuzzy data, inexact arithmetic, randomness, simulation, and the role of approximation. NO programming experience is necessary; some knowledge of Calculus is required. - [Syllabus](http://www.cs.cornell.edu/courses/CS1115/2013fa/syllabus.htm) - [Lectures](http://www.cs.cornell.edu/courses/CS1115/2013fa/lecture_slides.htm) - [Projects](http://www.cs.cornell.edu/courses/CS1115/2013fa/projects_and_exams.htm) -- [CS 1130](http://www.cs.cornell.edu/courses/CS1130/2014sp/) **Transition to OO Programming** *Cornell University* Assignments Lecture NotesReadings +- [CS 1130](http://www.cs.cornell.edu/courses/CS1130/2014sp/) **Transition to OO Programming** *Cornell University* Assignments Lecture Notes Readings - Introduction to object-oriented concepts using Java. Assumes programming knowledge in a language like MATLAB, C, C++, or Fortran. Students who have learned Java but were not exposed heavily to OO programming are welcome. - [Syllabus](http://www.cs.cornell.edu/courses/CS1130/2014sp/about/overview.php) - [Lectures](http://www.cs.cornell.edu/courses/CS1130/2014sp/web-lectures/index.php) - [Assignments](http://www.cs.cornell.edu/courses/CS1130/2014sp/assignments/index.php) -- [CS 1133](http://www.cs.cornell.edu/courses/CS1133/2013fa/) **Transition to Python** *Cornell University* Assignments Lecture NotesReadings +- [CS 1133](http://www.cs.cornell.edu/courses/CS1133/2013fa/) **Transition to Python** *Cornell University* Assignments Lecture Notes Readings - Introduction to the Python programming language. Covers the basic programming constructs of Python, including assignment, conditionals, iteration, functions, object-oriented design, arrays, and vectorized computation. Assumes programming knowledge in a language like Java, Matlab, C, C++, or Fortran. - [Syllabus](http://www.cs.cornell.edu/courses/CS1133/2013fa/about/overview.php) - [Lectures](http://www.cs.cornell.edu/courses/CS1133/2013fa/lectures/index.php) @@ -570,24 +570,24 @@ Courses - [Lectures and Assignments 2](http://www.eng.utah.edu/~cs2420-20/schedule.html) - [Textbook](http://htdp.org/2003-09-26/Book/curriculum.html) - [Racket Language](http://racket-lang.org/) -- [CS 2110](http://www.cs.cornell.edu/courses/CS2110/2014fa/index.html) **Object-Oriented Programming and Data Structures** *Cornell University* Assignments Lecture NotesReadings +- [CS 2110](http://www.cs.cornell.edu/courses/CS2110/2014fa/index.html) **Object-Oriented Programming and Data Structures** *Cornell University* Assignments Lecture Notes Readings - CS 2110 is an intermediate-level programming course and an introduction to computer science. Topics include program design and development, debugging and testing, object-oriented programming, proofs of correctness, complexity analysis, recursion, commonly used data structures, graph algorithms, and abstract data types. Java is the principal programming language. The course syllabus can easily be extracted by looking at the link to [lectures](http://www.cs.cornell.edu/courses/CS2110/2014fa/lecturenotes.html). - [Syllabus](http://www.cs.cornell.edu/courses/CS2110/2014fa/lecturenotes.html) - [Lectures](http://www.cs.cornell.edu/courses/CS2110/2014fa/lecturenotes.html) - [Assignments](http://www.cs.cornell.edu/courses/CS2110/2014fa/assignments.html) -- [CS 4302](http://courses2.cit.cornell.edu/info4302_2012fa/) **Web Information Systems** *Cornell University* Assignments Lecture NotesReadings +- [CS 4302](http://courses2.cit.cornell.edu/info4302_2012fa/) **Web Information Systems** *Cornell University* Assignments Lecture Notes Readings - This course will introduce you to technologies for building data-centric information systems on the World Wide Web, show the practical applications of such systems, and discuss their design and their social and policy context by examining cross-cutting issues such as citizen science, data journalism and open government. Course work involves lectures and readings as well as weekly homework assignments, and a semester-long project in which the students demonstrate their expertise in building data-centric Web information systems. - [Syllabus](http://courses2.cit.cornell.edu/info4302_2012fa/course_information.php) - [Lectures](http://courses2.cit.cornell.edu/info4302_2012fa/lectures.php) - [Assignments](http://courses2.cit.cornell.edu/info4302_2012fa/homeworks.php) -- [CSCE 2004](http://www.csce.uark.edu/~sgauch/2004/S14/index.html) **Programming Foundations I** *University of Arkansas (Fayetteville)* Assignments Lecture NotesReadings +- [CSCE 2004](http://www.csce.uark.edu/~sgauch/2004/S14/index.html) **Programming Foundations I** *University of Arkansas (Fayetteville)* Assignments Lecture Notes Readings - Introductory course for students majoring in computer science or computer engineering. Software development process: problem specification, program design, implementation, testing and documentation. Programming topics: data representation, conditional and iterative statements, functions, arrays, strings, file I/O, and classes. Using C++ in a UNIX environment. - [Syllabus](http://www.csce.uark.edu/~sgauch/2004/S14/syllabus.html) - [Notes](http://www.csce.uark.edu/~sgauch/2004/S14/notes/index.html) - [Assignments](http://www.csce.uark.edu/~sgauch/2004/S14/hw/index.html) - [Practice Exams](http://www.csce.uark.edu/~sgauch/2004/S14/index.html) - [CSCI E-1](http://cse1.net/lectures) **Understanding Computers and the Internet** *Harvard University Extension College* -Lecture VideosAssignments Lecture Notes +Lecture Videos Assignments Lecture Notes - This course is all about understanding: understanding what's going on inside your computer when you flip on the switch, why tech support has you constantly rebooting your computer, how everything you do on the Internet can be watched by others, and how your computer can become infected with a worm just by being turned on. Designed for students who use computers and the Internet every day but don't fully understand how it all works, this course fills in the gaps. Through lectures on hardware, software, the Internet, multimedia, security, privacy, website development, programming, and more, this course "takes the hood off" of computers and the Internet so that students understand how it all works and why. Through discussions of current events, students are exposed also to the latest technologies. - [Lecture Videos](http://cse1.net/lectures) - [Syllabus](http://cse1.net/syllabus) @@ -627,7 +627,7 @@ Courses - [Labs and Assignments](http://cs109.github.io/2014/pages/homework.html) - [2014 Lectures](http://cs109.github.io/2014/) - [2013 Lectures](http://cm.dce.harvard.edu/2014/01/14328/publicationListing.shtml) *(slightly better)* -- [CS 156](https://work.caltech.edu/telecourse.html) **Learning from Data** *Caltech* Lecture Videos Assignments Lecture NotesReadings +- [CS 156](https://work.caltech.edu/telecourse.html) **Learning from Data** *Caltech* Lecture Videos Assignments Lecture Notes Readings - This is an introductory course in machine learning (ML) that covers the basic theory, algorithms, and applications. ML is a key technology in Big Data, and in many financial, medical, commercial, and scientific applications. It enables computational systems to adaptively improve their performance with experience accumulated from the observed data. ML has become one of the hottest fields of study today, taken up by undergraduate and graduate students from 15 different majors at Caltech. This course balances theory and practice, and covers the mathematical as well as the heuristic aspects. - [Lectures](https://work.caltech.edu/lectures.html) - [Homework](https://work.caltech.edu/homeworks.html) @@ -657,7 +657,7 @@ Courses - Practical course in applying modern statistical techniques to real data, particularly bioinformatic data and large data sets. The emphasis is on efficient computation and concise coding, mostly in MATLAB and C++. Topics covered include probability theory and Bayesian inference; univariate distributions; Central Limit Theorem; generation of random deviates; tail (p-value) tests; multiple hypothesis correction; empirical distributions; model fitting; error estimation; contingency tables; multivariate normal distributions; phylogenetic clustering; Gaussian mixture models; EM methods; maximum likelihood estimation; Markov Chain Monte Carlo; principal component analysis; dynamic programming; hidden Markov models; performance measures for classifiers; support vector machines; Wiener filtering; wavelets; multidimensional interpolation; information theory. - [Lectures and Assignments](http://wpressutexas.net/forum/) -- [CS 4780](http://www.cs.cornell.edu/courses/CS4780/2014fa/) **Machine Learning** *Cornell University* Lecture NotesReadings +- [CS 4780](http://www.cs.cornell.edu/courses/CS4780/2014fa/) **Machine Learning** *Cornell University* Lecture Notes Readings - This course will introduce you to technologies for building data-centric information systems on the World Wide Web, show the practical applications of such systems, and discuss their design and their social and policy context by examining cross-cutting issues such as citizen science, data journalism and open government. Course work involves lectures and readings as well as weekly homework assignments, and a semester-long project in which the students demonstrate their expertise in building data-centric Web information systems. - [Syllabus](http://www.cs.cornell.edu/courses/CS4780/2014fa/) - [Lectures](http://www.cs.cornell.edu/courses/CS4780/2014fa/) @@ -761,7 +761,7 @@ Topics covered include probability theory and Bayesian inference; univariate dis - [Syllabus](http://www.cs.cornell.edu/courses/CS5430/2013sp/01.intro.html) - [Lectures](http://www.cs.cornell.edu/courses/CS5430/2013sp/02.outline.html) - [Assignments](http://www.cs.cornell.edu/courses/CS5430/2013sp/) -- [CSCI 4968](https://github.com/RPISEC/MBE) **Modern Binary Exploitation** *Rensselaer Polytechnic Institute* Lecture NotesAssignments +- [CSCI 4968](https://github.com/RPISEC/MBE) **Modern Binary Exploitation** *Rensselaer Polytechnic Institute* Lecture Notes Assignments - This repository contains the materials as developed and used by [RPISEC](http://rpis.ec) to teach Modern Binary Exploitation at [Rensselaer Polytechnic Institute](http://rpi.edu) in Spring 2015. This was a university course developed and run solely by students to teach @@ -769,7 +769,7 @@ skills in vulnerability research, reverse engineering, and binary exploitation. - [Lectures Notes](http://security.cs.rpi.edu/courses/binexp-spring2015/lectures/) - [Labs](https://github.com/RPISEC/MBE/tree/master/src) - [Projects](https://github.com/RPISEC/MBE/tree/master/src) -- [CSCI 4976](https://github.com/RPISEC/Malware) **Malware Analysis** *Rensselaer Polytechnic Institute* Lecture NotesAssignments +- [CSCI 4976](https://github.com/RPISEC/Malware) **Malware Analysis** *Rensselaer Polytechnic Institute* Lecture Notes Assignments - This repository contains the materials as developed and used by [RPISEC](http://rpis.ec) to teach Malware Analysis at [Rensselaer Polytechnic Institute](http://rpi.edu) in Fall 2015. This was a university course developed and run solely by students, primarily using the @@ -871,7 +871,7 @@ and anti-analysis techniques. - [Text Lectures](http://ocw.tufts.edu/Course/75/Learningunits) - [Assignments](http://ocw.tufts.edu/Course/75/Assignments) - [Labs](http://ocw.tufts.edu/Course/75/Labs) -- [CS 50](https://cs50.github.io/games/) **Intro to Game Developement** *Harvard University* Lecture VideosAssignments Lecture Notes +- [CS 50](https://cs50.github.io/games/) **Intro to Game Developement** *Harvard University* Lecture Videos Assignments Lecture Notes - This course picks up where Harvard College’s [CS50](https://cs50.harvard.edu/) leaves off, focusing on the development of 2D and 3D interactive games. Students explore the design of such childhood games as Super Mario Bros., Legend of Zelda, and Portal in a quest to understand how video games themselves are implemented. Via lectures and hands-on projects, the course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and [LÖVE 2D](https://love2d.org/), as well as languages like Lua and C#. By class’s end, students will have programmed several of their own games and gained a thorough understanding of the basics of game design and development. - [Assignments](https://cs50.github.io/games/assignments) - [Lecture Videos](https://cs50.github.io/games/lectures) @@ -884,13 +884,13 @@ and anti-analysis techniques. - [CS 168](https://inst.eecs.berkeley.edu/~cs168/fa15/) **Computer Networks** *UC Berkeley*Assignments Readings Lecture Notes - This is an undergraduate level course covering the fundamental concepts of networking as embodied in the Internet. The course will cover a wide range of topics; see the lecture schedule for more details. While the class has a textbook, we will not follow its order of presentation but will instead use the text as a reference when covering each individual topic. The course will also have several projects that involve programming (in Python). - You should know programming, data structures, and software engineering. In terms of mathematics, your algebra should be very solid, you need to know basic probability, and you should be comfortable with thinking abstractly. The TAs will spend very little time reviewing material that is not specific to networking. We assume that you either know the material covered in those courses, or are willing to learn the material as necessary. We won't cover any of this material in lecture. -- [CS 193a](http://web.stanford.edu/class/cs193a/lectures.shtml) **Android App Development, Spring 2016** *Stanford University* Lecture VideosAssignments Lecture Notes +- [CS 193a](http://web.stanford.edu/class/cs193a/lectures.shtml) **Android App Development, Spring 2016** *Stanford University* Lecture Videos Assignments Lecture Notes - Course Description: This course provides an introduction to developing applications for the Android mobile platform. - Prerequisite: CS 106B or equivalent. Java experience highly recommended. OOP highly recommmended. - Devices: Access to an Android phone and/or tablet recommended but not required. - Videos: Videos list can be found [here](http://web.stanford.edu/class/cs193a/videos.shtml) - Other materials: Some codes, handsout, homework ..... and lecture notes are not downloadable on the site due to login requirement. Please head to my Github repo [here](https://github.com/VoLuong/Materials-CS193A-Android-App-Development-Standford) to download them. -- [CS 193p](https://itunes.apple.com/us/course/developing-ios-7-apps-for/id733644550) **Developing Applications for iOS** *Stanford University* Lecture VideosAssignments Lecture Notes +- [CS 193p](https://itunes.apple.com/us/course/developing-ios-7-apps-for/id733644550) **Developing Applications for iOS** *Stanford University* Lecture Videos Assignments Lecture Notes - Updated for iOS 7. Tools and APIs required to build applications for the iPhone and iPad platform using the iOS SDK. User interface designs for mobile devices and unique user interactions using multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management, Objective-C programming language. Other topics include: object-oriented database API, animation, multi-threading and performance considerations. - Prerequisites: C language and object-oriented programming experience - Recommended: [Programming Abstractions](https://itunes.apple.com/us/course/programming-abstractions/id495054099) @@ -907,17 +907,17 @@ and anti-analysis techniques. - Want to learn what makes future web technologies tick? Join us for the class where we will dive into the internals of many of the newest web technologies, analyze and dissect them. We will conduct survey lectures to provide the background and overview of the area as well as invite guest lecturers from various leading projects to present their technologies. - [CS 411](http://video.bilkent.edu.tr/course_videos.php?courseid=10) **Software Architecture Design** *Bilkent University* Lecture Videos - This course teaches the basic concepts, methods and techniques for designing software architectures. The topics include: rationale for software architecture design, modeling software architecture design, architectural styles/patterns, architectural requirements analysis, comparison and evaluation of architecture design methods, synthesis-based software architecture design, software product-line architectures, domain modeling, domain engineering and application engineering, software architecture implementation, evaluating software architecture designs. -- [CS 3152](http://www.cs.cornell.edu/courses/CS3152/2014sp/) **Introduction to Computer Game Development** *Cornell University* Assignments Lecture NotesReadings +- [CS 3152](http://www.cs.cornell.edu/courses/CS3152/2014sp/) **Introduction to Computer Game Development** *Cornell University* Assignments Lecture Notes Readings - A project-based course in which programmers and designers collaborate to make a computer game. This course investigates the theory and practice of developing computer games from a blend of technical, aesthetic, and cultural perspectives. Technical aspects of game architecture include software engineering, artificial intelligence, game physics, computer graphics, and networking. Aesthetic and cultural include art and modeling, sound and music, game balance, and player experience. - [Syllabus](http://www.cs.cornell.edu/courses/CS3152/2014sp/about/faq.php) - [Lectures](http://www.cs.cornell.edu/courses/CS3152/2014sp/lectures/index.php) - [Assignments](http://www.cs.cornell.edu/courses/CS3152/2014sp/assignments/index.php) -- [CS 4152](http://www.cs.cornell.edu/courses/CS4152/2014sp/) **Advanced Topics in Computer Game Development** *Cornell University* Assignments Lecture NotesReadings +- [CS 4152](http://www.cs.cornell.edu/courses/CS4152/2014sp/) **Advanced Topics in Computer Game Development** *Cornell University* Assignments Lecture Notes Readings - Project-based follow-up course to CS/INFO 3152. Students work in a multidisciplinary team to develop a game that incorporates innovative game technology. Advanced topics include 3D game development, mobile platforms, multiplayer gaming, and nontraditional input devices. There is a special emphasis on developing games that can be submitted to festivals and competitions, or that can be commercialized. - [Syllabus](http://www.cs.cornell.edu/courses/CS4152/2014sp/about/faq.php) - [Lectures](http://www.cs.cornell.edu/courses/CS4152/2014sp/sessions/index.php) - [Assignments](http://www.cs.cornell.edu/courses/CS4152/2014sp/assignments/index.php) -- [CS 4154](http://www.cs.cornell.edu/courses/CS4154/2014fa/) **Analytics-driven Game Design** *Cornell University* Assignments Lecture NotesReadings +- [CS 4154](http://www.cs.cornell.edu/courses/CS4154/2014fa/) **Analytics-driven Game Design** *Cornell University* Assignments Lecture Notes Readings - A project-based course in which programmers and designers collaborate to design, implement, and release a video game online through popular game portals. In this course, students will use the internet to gather data anonymously from players. Students will analyze this data in order to improve their game over multiple iterations. Technical aspects of this course include programming, database architecture, and statistical analysis. - [Syllabus](http://www.cs.cornell.edu/courses/CS4154/2014fa/about/faq.php) - [Lectures](http://www.cs.cornell.edu/courses/CS4154/2014fa/lectures/index.php) @@ -946,7 +946,7 @@ and anti-analysis techniques. - Applications from science and engineering - [Lectures](http://www.cs.cornell.edu/~bindel/class/cs5220-f11/lectures.html) - [Assignments](http://www.cs.cornell.edu/~bindel/class/cs5220-f11/assignments.html) -- [CS 5540](https://sites.google.com/site/cs5540sp2013/) **Computational Techniques for Analyzing Clinical Data** *Cornell University* Assignments Lecture NotesReadings +- [CS 5540](https://sites.google.com/site/cs5540sp2013/) **Computational Techniques for Analyzing Clinical Data** *Cornell University* Assignments Lecture Notes Readings - CS5540 is a masters-level course that covers a wide range of clinical problems and their associated computational challenges. The practice of medicine is filled with digitally accessible information about patients, ranging from EKG readings to MRI images to electronic health records. This poses a huge opportunity for computer tools that make sense out of this data. Computation tools can be used to answer seemingly straightforward questions about a single patient's test results (“Does this patient have a normal heart rhythm?”), or to address vital questions about large populations (“Is there any clinical condition that affects the risks of Alzheimer”). In CS5540 we will look at many of the most important sources of clinical data and discuss the basic computational techniques used for their analysis, ranging in sophistication from current clinical practice to state-of-the-art research projects. - [Syllabus](https://sites.google.com/site/cs5540sp2013/home/course-description) - [Lectures](https://sites.google.com/site/cs5540sp2013/lectures) @@ -998,7 +998,7 @@ and anti-analysis techniques. - Course taught by [Luis Rocha](http://www.informatics.indiana.edu/rocha/lr_form.html) about the multi-disciplinary field algorithms inspired by naturally occurring phenomenon. This course provides introduces the following areas: L-systems, Cellular Automata, Emergence, Genetic Algorithms, Swarm Intelligence and Artificial Immune Systems. It's aim is to cover the fundamentals and enable readers to build up a proficiency in applying various algorithms to real-world problems. - [Lectures](http://www.informatics.indiana.edu/rocha/i-bic/#materials) - [Assignments](http://www.informatics.indiana.edu/rocha/i-bic/#labs) -- [Open Sourced Elective: Database and Rails](http://www.schneems.com/ut-rails/) **Intro to Ruby on Rails** *University of Texas* Lecture VideosAssignments Lecture Notes +- [Open Sourced Elective: Database and Rails](http://www.schneems.com/ut-rails/) **Intro to Ruby on Rails** *University of Texas* Lecture Videos Assignments Lecture Notes - An introductory course in Ruby on Rails open sourced by University of Texas' CS Adjunct Professor, Richard Schneeman. - [Lectures](http://www.schneems.com/ut-rails/) - [Assignments](http://www.schneems.com/ut-rails/)