- General
- Project Ideas
- Project Euler
- Algorithms
- Mazes
- Cellular automata
- Compilers/interpreters
- Esoteric programming languages
- Game AI
- Games
- Puzzles
- Fractals and L-systems
- Visual/animation
- Tiling and packing
- Physics simulations
- Regex
- Operating Systems
- Computer Science
- Machine learning
- AI
- Cryptography
- Data science
- C
- C++
- JS
- Web development
- Python
- PHP
- Java
- Ruby
- Perl
- MIPS
- ARM
- Raspberry Pi
- Unix
- Prolog
- Code golf
- Scratch/Snap
- Course sites
- Algorithmic challenge sites
- Competitive coding
- Books
- Education
- OMSCS
- CCSF
- Jobs
- Interview prep
- Stack Overflow
- Fun
- Inspiration!
- Bit twiddling hacks
- Interesting programming languages
- Christopher Alexander's Design Patterns
- https://en.wikipedia.org/wiki/One-instruction_set_computer
- script that calls pd noise patch, generates artwork and posts to bandcamp or another file sharing service via selenium
- write some RTS demo sketches
- write a time clock web app and keep exact totals for freelance work
- write a stack machine
- stack overflow comments sentiment analyzer
- make an IR->spim runner in node/mips compiler + host on heroku
- https://en.wikipedia.org/wiki/Tic-tac-toe_variants
- write an app that scrapes recent posts by favorite SO users
- Challenge/project idea lists:
- Look for projects at Rosetta Code
- "Programming by Doing" simple projects for students
- Organize mp3s: beets.io and https://www.discogs.com/developers/
- The Logo Foundation
- NetLogo
- write a non-acct twitter (or SO) client that can fav and show imgs like birdfeed without having an account.
- write a sandboxed compiler+code runner
- write a winamp plugin that broadcasts now playing to node API on glitch
- Make a simple DIY label CMS or bandcamp clone; host on Heroku
- Langs/frameworks/libs to learn: COBOL, LISP, Go
- Listening journal or similar using blogger API
- make a music player app based on mpg123
- https://stackoverflow.com/questions/35781991/run-a-command-that-needs-input-without-hanging-but-still-allow-input
- https://sourceforge.net/p/mpg123/mailman/mpg123-users/thread/CAN5OgQWuYFt4mbbjDZcxMMdTQLZoNiF8AgH5S8Z8rwraN%2B65uA%40mail.gmail.com/
- https://arstechnica.com/civis/viewtopic.php?f=20&t=850451
- Voice/video chat or stream with WebRTC
- Tiger to JS transpiler
- Google Docs but all vim/markdown. Could add multiplayer multicolor text editor/highlighter. Could be a good edutech project.
- Next to solve: 189, 244
- #93 Sudoku can also be solved using Integer Linear Programming
- #84 Monopoly is one of the best. Worth solving using both simulation (I used first-class functions) and stochastic matrix (I used numpy). Working out the initial probabilities for the stochastic matrix requires only basic probability, but it's tricky.
- Euler's totient function
- Princeton Algorithms
- Stanford CS Education Library
- Berkeley CS61B lectures
- Yale CPSC 223
- Algorithm archive
- Skip list
- Splay tree
- Word ladder
- Disjoint set/ union find
- Segment trees
- Self-avoiding walk
- Bellman-Ford
- Princeton algorithm assignments
- Boyer-Moore majority vote algorithm
- Sieve of Eratosthenes
- Fermat's factorization method
- Euclid's algorithm
- Karatsuba algorithm
- Simplify a fraction
- Basil & Fabian
- Car talk puzzlers
- Sliding puzzle solving with hill climbing
- Dancing Links
- Coin change
- Maximum subarray problem (Kadane's algorithm)
- Box stacking problem (and other DP problems)
- DP text justify
- DP coin change
- MIT open courseware DP lecture
- Algs/DP
- The "correct change" problem looks like it's equivalent to the "subset sum" problem, which is a special case of the knapsack problem. Wikipedia says these are all NP, but efficiency can be improved by dynamic programming. That's why I'm thinking a transposition table may help.
- Sum numbers in a list
- Knapsack problem
- PE #136, #173, and #174
- Pathfinding algorithm comparison
- Shortest path algorithms
- MST
- Floyd Warshall algorithm
- Dijkstra's algorithm
- Balanced search trees
- Tree traversal construction
- Determine if a tree is a BST
- https://en.wikipedia.org/wiki/Left-child_right-sibling_binary_tree
- https://en.wikipedia.org/wiki/AVL_tree
- Cellular automaton
- Elementary cellular automaton
- Rule 30
- Conway's game of life
- Turmite
- Wolfram cellular automata
- Nature of Code by Shiffman, chapter 7
- Wireworld
- Brian's Brain
- Von Neumann
- Langton's loops
- CoDi
- Life-like cellular automata (incl. Seeds)
- Interactive CA and other sundry JS animations
- Write a Forth interpreter:
- Stanford compilers courses:
- Udacity programming languages course
- Let's build a simple interpreter
- JS interpreter in JS (good for sandboxing)
- Incremental approach to compiler construction
- Write a compiler
- Crafting Interpreters
- Python interpreter in Python
- nearley/moo js
- Compiler books
- Create a simple tokenizer in C#
- Writing your own toy compiler
- Lexical analysis
- Simple tutorial and useful references
- Simple top-down parsing
- My first language front-end:
- Mega compilers resource
- CS143
- Concatenative Languages
- IDDFS/single agent search
- IDA*
- A* n puzzle
- A* Jump-point search optimization
- Navmesh
- Breakthrough AI tutorial
- SSS*
- Monte Carlo Tree Search:
- Principal variation search
- MTD-f
- Iterative deepening DFS
- Iterative deepening A*
- Alpha-beta pruning
- Tic tac toe AI
- Minimax:
- Negamax
- Othello basic
- 4 grid games from Al Sweigart
- Game of the Amazons:
- List of puzzle video games
- Tile-matching video games
- Microsoft Entertainment Pack
- Mahjong solitaire
- 2d visibility:
- 3d Wolfenstein raycasting tutorial in JS
- Minichess
- Minesweeper with hex grid (try tri grid as well)
- Dots and boxes
- Breakthru
- Beast
- Program arcade games
- BASIC games
- Nim
- Emily's pegs game
- Fire & Ice
- Filler/Qualio
- Tower defense
- Hexapawn
- Octopawn
- Pipe Dream
- Quarto
- Mancala
- Jezzball
- Freerice clone
- Patience
- Hex
- Lines of action
- Boulder Dash
- Ultimate tic tac toe or other variants
- Marble Madness
- Loco-Motion
- Digger
- Nine Men's Morris
- Rummikub
- Hnefatafl
- Hive
- Go
- 2048
- Boggle
- Lemmings
- Snake: 2 player versions, add obstacles, snake tetris, ai
- Solved games list
- Mastermind
- Open souce game clones
- List of abstract strategy games
- Reversi
- Checkers, misere checkers and variants:
- ASCII games:
- Interactive fiction:
- Tile-based game tutorial
- Puzzlescript:
- Logic puzzles list (KenKen, Sudoku, Sokoban, etc)
- Simon Tatham
- Do chess packing puzzles
- Erich Friendman's Puzzle Palace
- Slitherlink
- Mindsports (links resource)
- Zendoku puzzle generation
- Sudoku solving algorithms
- Generating sudoku boards
- Mondrian puzzle
- Various puzzles from the Sudoku inventors
- Peter Norvig on Sudoku and other constraint problems (such as the skyscraper puzzle)
- More constraint puzzles
- Nonogram
- Ricochet Robots
- Slothouber-Graatsma puzzle
- Packing
- Triomino packing
- Irregular hexagon packing
- Mathematical puzzle
- Soma cube
- Assorted logic games
- Lights Out
- A bunch of puzzle games
- Dissection puzzle
- Tangram
- Klotski gone insane (Bricks game)
- TopSpin and other puzzles:
- Algorithmic Botany
- Space colonization
- Paul Bourke
- Book on JS fractals
- L-systems user notes/manual
- L-system examples
- 2d L-systems
- Harriss spiral
- Full-featured L-systems app
- Hausdorff fractals list
- Abelian sandpiles
- Koch snowflake
- Sierpinski carpet
- Haferman Carpet
- Rose
- Chaos game
- Barnsley Fern
- Inspiring zreference projects
- Also inspiring, bit101 dailies
- Handbook of Graph Drawing and Visualization
- Convex hull:
- Delaunay triangulation:
- Graph drawing
- Isometric:
- goto80 ASCII art
- Fibonacci spiral
- Architecture: look for triangle perspective designs, Escher
- Do a visual plotting the orthocenter, medicenter, and circumcenter of a triangle
- Write a script that turns text into blocky ASCII text or renders images in ASCII
- JSXGraph
- Bezier Curves:
- A Primer on Bezier Curves
- Bezier curve tool
- Chaining Bezier curves:
- http://html5tutorial.com/how-to-join-two-bezier-curves-with-the-canvas-api/
- http://www.algosome.com/articles/continuous-bezier-curve-line.html
- https://stackoverflow.com/questions/12295773/joining-two-b%C3%A9zier-curves-smoothly-c2-continuous
- https://www.cl.cam.ac.uk/teaching/2000/AGraphHCI/SMEG/node3.html
- https://en.wikipedia.org/wiki/Composite_B%C3%A9zier_curve
- https://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/bezier-der.html
- Splines intro
- Canvas stack
- Create gif from a canvas animation
- Animate the Collatz Conjecture
- ReCode Project (computer art repository)
- CompArt
- The Algorists
- Sol LeWitt
- 3d sombrero and other algorithms
- Necessary Disorder
- ThreeJS fundamentals
- Mr. Doob three.js collection
- The book of shaders
- WebGL tutorial
- Try out regl
- https://github.com/regl-project/regl
- https://github.com/regl-project/awesome-regl
- http://regl.party/api
- Erkaman
- An Intro to regl for Data Visualization
- Lubachevsky packing algorithm
- Rhombile tiling
- Tangrams
- Tiling puzzle
- L-systems in inkscape
- Girih tiles
- Wallpaper group
- Morphing Tiling
- Transcendent Code
- Penrose tiling:
- Substitution tiling
- "Isometic" JS example
- Triaki's
- Litema
- Kuba textiles
- Jason Davies
- Circle packing flickr
- Falling sand game
- Cloth physics
- Verlet integration
- Ragdoll physics
- Coding math tutorial
- Khan Academy natural simulations course
- Double pendulum:
- Game physics cookbook
- Jansen's linkage
- Nature in Code book
- Sin & cos:
- Circles bouncing off lines tutorial
- Mary Rose Cook
- Flocking behaviors
- Math for game developers
- Variety of pathfinding tutorials
- Blobs
- Various tutorials for 2d graphics (isometric, polygon, collision, platformers, networking, etc)
- Simple 2d physics engine
- 2d physics engine 3 part tutorial
- Pool hall physics
- Collision detection:
- http://www.dyn4j.org/2010/01/sat/
- https://gamedevelopment.tutsplus.com/tutorials/collision-detection-using-the-separating-axis-theorem--gamedev-169
- https://wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/
- https://www.codeproject.com/Articles/15573/2D-Polygon-Collision-Detection
- https://stackoverflow.com/questions/10962379/how-to-check-intersection-between-2-rotated-rectangles/12414951#12414951
- https://github.com/antishow/collision-demo/tree/master/library/js/src
- http://paulbourke.net/fractals/randomtile/
- https://maryrosecook.com/blog/post/how-to-do-2d-collision-detection
- http://www.metanetsoftware.com/technique/tutorialA.html
- http://www.migapro.com/circle-and-rotated-rectangle-collision-detection/
- https://gist.github.com/eliasdaler/502b54fcf1b515bcc50360ce874e81bc
- https://gist.github.com/cwleonard/e124d63238bda7a3cbfa
- https://gist.github.com/LindseyB/394536
- https://gist.github.com/enghqii/5af2512ced10849016e635fcf2d15d29
- https://github.com/tetoblivion/Collision_response_with_rotation/blob/master/respondToCollision.cpp
- https://gamedev.stackexchange.com/questions/32611/what-is-the-best-way-to-handle-simultaneous-collisions-in-a-physics-engine
- Quadtrees:
- Advanced regex features ref sheet
- Regex Static Analysis
- Catastrophic Backtracking
- Implementing Regular Expressions
- Write a regex engine
- Mini regex
- Replace with conditional
- True power of regex
- CS4210 archive
- Operating Systems notes
- OS @ NYU
- Berkeley CS162
- What every programmer should know about memory
- The Little Book of Semaphores
- Computer Systems: A Programmer's Perspective
- APIs/Datasets
- https://github.com/toddmotto/public-apis
- https://github.com/public-apis/public-apis/blob/master/README.md
- https://apilist.fun/
- https://www.quora.com/What-are-some-cool-fun-random-APIs-such-as-BreweryDB
- https://botwiki.org/resources/datasets/
- https://botwiki.org/resources/apis/
- https://randomuser.me/api/?results=100
- unsplash photo API
- makeup
- diatoms
- https://github.com/awesomedata/awesome-public-datasets
- https://github.com/mwaskom/seaborn-data
- R datasets
- data.gov
- CIA world factbook:
- https://github.com/erikgahner/PolData/blob/master/PolData.csv
- https://github.com/jldbc/gunsandcrime
- https://gist.github.com/klmr/23ed79f973c75b11b0b5
- https://www.washingtonpost.com/wp-srv/health/interactives/guns/ownership.html
- https://restcountries.eu/
- https://rel.ink/
- https://pipedream.com/
- https://example-data.draftbit.com/
- https://github.com/vera-institute/incarceration_trends
- Inspirational projects:
- C++ SFML for games and graphics
- Async C++ tutorial
- Dwitter (140 chars or less JS code)
- 30 day vanilla JS challenge
- JS todo list
- https://codeburst.io/getting-started-with-react-router-5c978f70df91
- https://react-redux.js.org/introduction/quick-start
- https://www.leighhalliday.com/async-axios-react-testing-library
- https://github.com/testing-library/react-testing-library#hooks
- https://levelup.gitconnected.com/testing-asynchronous-and-synchronous-react-components-with-jest-and-enzyme-a979ab425aa1
- Jekyll blog:
- Bitballoon for hosting web apps
- Do a Mondrian generator with a CSS grid or JS
- Grid
- Rachel Andrew (CSS grid examples)
- CSS cube
- Write a Lisp interpreter in Python
- Host a free Python web app
- Natural language processing with Python
- Pygame
- Automate the boring stuff
- Simple Python graphics library
- Flask:
- Python data structures & algorithms
- Computer vision with python
- Effective Python
- How to think like a computer scientist
- Python Challenge
- Tkinterbook
- Sessions/logins:
- http://culttt.com/2013/02/04/how-to-save-php-sessions-to-a-database/
- http://shiflett.org/articles/storing-sessions-in-a-database
- http://php.net/manual/en/function.session-set-save-handler.php
- https://www.sitepoint.com/writing-custom-session-handlers/
- https://github.com/sprain/PHP-MySQL-Session-Handler/blob/master/MySqlSessionHandler.php
- https://github.com/JamieCressey/PHP-MySQL-Session-Handler
- https://github.com/kahwee/php-db-session-handler
- https://www.allphptricks.com/simple-user-registration-login-script-in-php-and-mysqli/
- https://phpeasystep.com/workshopview.php?id=6
- http://www.eggslab.net/php-login-script/
- http://codewithawa.com/posts/admin-and-user-login-in-php-and-mysql-database
- https://www.formget.com/login-form-in-php/
- PHP game scripts
- Websocket chat
- PHP Sadness
- Google style guide
- Good Java web framework for learning generics
- Java sorting algorithms
- Java send HTTP request
- Java send email
- MIPS system calls
- Learning MIPS and SPIM
- recursion
- https://courses.cs.washington.edu/courses/cse378/09wi/lectures/lec05.pdf
- https://en.wikibooks.org/wiki/MIPS_Assembly/Control_Flow_Instructions
- https://www.coursehero.com/file/45823007/cs311-03-isa-Ipdf/
- https://github.com/kyungyunlee/CS311-Computer-Organization/tree/master/project2/Project2
- https://github.com/mightydeveloper/MIPS-Assembler
- https://www.youtube.com/watch?v=z3ltaJ5UU5I
- https://learnxinyminutes.com/docs/mips/
- https://chortle.ccsu.edu/AssemblyTutorial/index.html
- http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch05s03.html
- http://homepage.divms.uiowa.edu/~ghosh/1-28-10.pdf
- http://cgi.cse.unsw.edu.au/~cs1521/17s2/docs/spim.php
- https://www.dsi.unive.it/~gasparetto/materials/MIPS_Instruction_Set.pdf
- https://www.doc.ic.ac.uk/lab/secondyear/spim/node9.html
- https://www.doc.ic.ac.uk/lab/secondyear/spim/node20.html
- https://www.math.unipd.it/~sperduti/ARCH09/mips_assembler.pdf
- http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
- Thinkingeek Raspberry Pi Asssembler:
- ARM Assembly Using Raspberry PI
- Smith College ARM Tutorial
- Hello ARM
- Tutorials:
- Extending the life of the SD card:
- Sulfurous
- Useful Scratch reference topics:
- Snap instead of Scratch
- Multiwingspan projects
- Nand2Tetris
- Coding the Matrix (linear algebra through CS)
- Advanced Web Developer Bootcamp
- Lynda SFPL
- Coursera algorithms classes (pts 1 & 2)
- Egghead
- Udacity intro to theoretical CS
- Jeff Erickson's algorithms
- UW Data Structures & Algorithms
- Math:
- Google Code Jam
- Go-Hero has archive all the past Google Code Jam problems w/ solutions
- Daily Programmer
- Math problems
- Learneroo
- Topcoder
- Hacker Earth
- Code chef
- SPOJ
- Exercism
- Kattis
- Coding Bat
- Timus
- Code kata
- Root me
- CSES
- Competitive Programmer's Handbook
- Introduction to programming contests
- Codeforces
- Topcoder
- Tons of tips & links
- Hacking competition for kids
- SWERC past problem sets
- Definitive C++ book list
- Tons of free CS books
- Think Bayes/DSP/Complexity/OS/etc
- Fuzzing book (software testing)
- "Book of Proof" Hammack
- Discrete Math
- Craft of Text Editors
- SFSU
- http://bulletin.sfsu.edu/colleges/science-engineering/computer-science/ms-computer-science/
- Prospective students are welcome to send any questions to the graduate advising assistant at (csgrad@sfsu.edu)
- VT
- Bootcamps
- Internships:
- Mills
- CSU Fullerton
- Adv. certif. in web/mobile via SDSU
- Northeastern Silicon Valley
- College choice CS
- Recurse non-bootcamp
- Fall 20:
- ISYE 6501 Intro to Analytics Modeling
- Spring 21:
- Summer 21:
- CS 6265 Information Security Lab
- CS 6250 Computer Networks
- CS 6460 Educational Technology
- CS 6260 Applied Cryptography
- ISYE 6644 Simulation
- CS 6601 Artificial Intelligence
- interesting 6310 textbooks worth looking into
- Fall 18: CS 6200 Intro to Operating Systems
- Spring 19: CS 6210 Advanced Operating Systems
- Summer 19: CS 6340 Software Analysis and Test
- Fall 19: CS 6290 High Performance Computer Architecture
- Spring 20: CS 8803-O08 Compilers
- Spring 20: CS 6291 Embedded Systems Optimization
- Summer 20: CS 7638 AI for Robotics
- CS 177 Software Engineering
- CS 231 Advanced Python Programming
- CS 211D Android Programming
- CS 211E Advanced Java: Enterprise Edition
- CS 270 Comp Architecture w/ Assembly (advise discrete math)
- CS 150P SQL Server T-SQL Programming
- CS 155B MySQL Database Administration
- CS 260A Linux System Administration
- CS 260P Linux Administration Projects
- CS 197P Technical Interview Prep
- CS 197V Version Control & Code Repos
- CS 199 Independent Study
- CS 256 Data Visualization
- CNIT 141 Cryptography For Computer Networks
- CNIT 123 Ethical Hacking
- CNIT 124 Adv. Ethical Hacking
- CNIT 127 Exploit Development
- MATH 80 Probability and Statistics
- MATH 95 Trigonometry
- MATH 110A Calculus I
- MATH 115 Discrete Mathematics
- MATH 120 Linear Algebra
- Java
- Web application programming
- Computing skills for scientists
- JS specialist
- Web site development techniques
- Mobile web app development
- Freelancing contracts:
- Freelancing tips/guides/tutorials:
- Remote/freelancing:
- https://github.com/engineerapart/TheRemoteFreelancer
- Indeed/indeed prime
- Upwork/Fiverr
- Weworkremotely programming jobs
- Repsonding to freelancing gig offers
- Codementor
- Juni
- General Assembly teaching
- Thinkful web dev instructor
- Code for America
- Slack internship
- CCSF professor
- SF student intern
- Interview questions
- Interview algorithms and tips
- Assorted interview tips
- Women Who Code Interview Prep
- Gayle McDowell:
- Users I like:
- https://stackoverflow.com/users/224132/
- https://stackoverflow.com/users/895245/
- https://stackoverflow.com/users/5459839/
- https://stackoverflow.com/users/3000206/
- https://stackoverflow.com/users/168657/
- https://stackoverflow.com/users/559737/
- https://stackoverflow.com/users/385378/
- https://stackoverflow.com/users/1204143/
- https://stackoverflow.com/users/128511/
- https://stackoverflow.com/users/501557/
- https://stackoverflow.com/users/1566221/