Beginning Programming

From Computer Science
Revision as of 14:42, 11 January 2019 by Jkinne (talk | contribs) (Created page with "== Computing majors == If you are interested in computing, at ISU your options are Computer Science, Information Technology, or Management Information Systems. There is a fair...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Computing majors

If you are interested in computing, at ISU your options are Computer Science, Information Technology, or Management Information Systems. There is a fair amount of overlap, but roughly - (a) CS is mostly about making software and making it efficient, (b) IT is about managing computer systems and networks, (c) MIS is about managing both computer systems and personnel. The most common job titles for those graduating from CS are - programmer/developer/software engineer of various kinds (web, database, network, systems, ...). If you do not want to be a programmer, consider whether CS, IT, or MIS would best suit you.


Most programs that are called "Computer Science" have a common core in common so that you should get a similar experience at most universities that offer CS. After finishing any CS program (including at ISU), you should be a decent programmer in a few different programming languages, can use the right data structures and algorithms for different problems, understand precisely how modern software systems (e.g., operating systems, web servers, 3d graphics) work and are programmed, and have completed a few nicely sized software projects.

But each CS department has its own personality. CS at ISU is more unix-oriented than Windows-oriented, and starts with lower-level programming before higher-level programming. After finishing at ISU you should be very familiar with unix/linux, and be a decent programmer in C, C++, javascript, php, and sql. You should be familiar with a number of other programming languages (Python, Java, a few others).

Getting Ready

If you have done some work in computing before and want to do something extra to get ready for CS at ISU, here are a few things you can do.

  • - go do some of their tutorials. These are mostly aimed at middle-school aged students, but is great experience and fun.
  • - create an account and start doing basic programming problems. This site is great because your answer won't be accepted until it is 100% correct.
  • CS 151 - check out Jeff Kinne's video lectures from CS 151, the first course in our major.
  • AI - video playlist from high school summer honors course at ISU from 2017.
  • Get a copy of Introduction to Algorithms (any edition) and start perusing it.
  • - make apps for Android.
  • See our Getting Started page (including links at bottom of that page).
  • Be a nerd or geek, and watch youtube videos about science and technology. For example, It's Okay to be Smart or Physics Girl
  • Install linux on one of your home computers (Ubuntu and Mint are pretty easy to use). Note - do it on a computer that doesn't have any important data on it... You can also do this by first installing * VirtualBox in your current operating system and then install linux inside of that.
  • Some key ideas in CS and examples -
    • Algorithm - linear search vs. binary search, selection sort vs. merge sort, euclid's algorithm vs. trial division
    • Proof - there are infinitely many primes, the halting problem is uncomputable, the square root of 2 is irrational, the sum of an arithmetic series [1 + 2 + ... + n = n*(n+1)/2]
    • Data speeds - tape vs. hard disk drive vs. RAM vs. CPU cache vs. CPU registers
    • Abstraction - operating system virtual memory, RAID, object-oriented programming, file system, any API, any programming language
    • Assembly language - little man computer (simulator)
  • Some classic beginning programming projects -
    • Encryption - Caesar cipher, substitution cipher, Vigenere, RSA, and others
    • Letter and word frequency - used in breaking substitution cipher, used in AI
    • Chatbot - responds in a reasonable way to many text, see Eliza ("the doctor")
    • Choose your adventure game
    • 2d maze/dungeon crawler
    • Arithmetic quiz and tables - for kids learning their math facts
    • Paint
    • Drawing shapes - regular polygons, stars, fractals
    • Board game - tic tac toe, connect 4, chess, you name it
    • Calculator - with usual operations but also with your own cutsom ones