Options
Computer Science for a (wannabe) infosec pro
Bl8ckr0uter
Inactive Imported Users Posts: 5,031 ■■■■■■■■□□
in Off-Topic
Hello:
So I have decided I want to do a CS degree at some point (probably right after my AAS is done). Do any of you have a suggested reading list (of books you have read personally) for an introduction to computer science topics?
So I have decided I want to do a CS degree at some point (probably right after my AAS is done). Do any of you have a suggested reading list (of books you have read personally) for an introduction to computer science topics?
Comments
-
OptionsBl8ckr0uter Inactive Imported Users Posts: 5,031 ■■■■■■■■□□*bump*
I found a few good reading list (but they were mostly for grad students). I could just look at the courses and find good books on each subject. -
OptionsSlowhand Mod Posts: 5,161 ModWhat's your current programming background? What languages you do you know, and what is your current AA degree program in? Also, what's your math and sciences (physics) background like, what courses have you taken in those areas?
Free Microsoft Training: Microsoft Learn
Free PowerShell Resources: Top PowerShell Blogs
Free DevOps/Azure Resources: Visual Studio Dev Essentials
Let it never be said that I didn't do the very least I could do. -
OptionsBl8ckr0uter Inactive Imported Users Posts: 5,031 ■■■■■■■■□□What's your current programming background? What languages you do you know, and what is your current AA degree program in? Also, what's your math and sciences (physics) background like, what courses have you taken in those areas?
Basic Sql, asp (classic), html, vb and css. My AA is in Network Engineering. My math and sciences are slightly above HS level. I have taken college algebra and stats. For CS I will at least need to go to Cal IV so its quite a jump. -
OptionsMet44 Member Posts: 194Try looking up MIT's Open Courseware program on mit.edu or youtube. There are (complete, 16 session) video recordings of undergraduate CS/CE class lectures. Probably math too.
-
OptionsBl8ckr0uter Inactive Imported Users Posts: 5,031 ■■■■■■■■□□Try looking up MIT's Open Courseware program on mit.edu or youtube. There are (complete, 16 session) video recordings of undergraduate CS/CE class lectures. Probably math too.
Free Online Course Materials | MIT OpenCourseWare
Thanks for the tip.
Also these look promising:
http://code.google.com/appengine/docs/java/gettingstarted/
http://code.google.com/appengine/docs/python/gettingstarted/ -
Optionserpadmin Member Posts: 4,165 ■■■■■■■■■■Bl8ckr0uter wrote: »Free Online Course Materials | MIT OpenCourseWare
Thanks for the tip.
Also these look promising:
Getting Started: Java - Google App Engine - Google Code
Getting Started: Python - Google App Engine - Google Code
I looked into MIT Opencourseware and I like the Calculus videoes.
Probably a good idea for you would be to use MIT OpenCourseware (there are MANY other schools, btw, that offer the same type of thing for free...I believe UC-Berkeley does as well). Then CLEP the courses after you are done "studying".
I might personally want to do this for Calculus. One of the school's I'm looking at for my Masters wants an undergraduate Calculus class in a prospective student's background. Having just gone through some topics like Logarithms and Exponents, I might just sit through a free MIT class and CLEP Calculus out when I'm done WGUing.
CLEP is definitely something you should look into as well. You will save time and a ton of money.
Plus EVERY real school in the country recognizes CLEP exams...but you are only allowed a certain amount.
Just something to think about it. -
OptionsBl8ckr0uter Inactive Imported Users Posts: 5,031 ■■■■■■■■□□I didn't think about CLEP. I wish they had CLEP for JAVA courses. That would help a ton. I'll have to look into it since I want my BS before I turn 26.
-
OptionsChris:/* Member Posts: 658 ■■■■■■■■□□Since Computer Science is a lot more than just programming here are some starter books. Also the demystifying series is very good for clearing up topics in math you may get stuck on. I did not include any network or network security books because you should be good to go there.
Amazon.com: Understanding Operating Systems (9781439079201): Ann (Ann McHoes) McHoes, Ida M. Flynn: Books
Amazon.com: Newton's Telecom Dictionary, 25th Edition: Telecommunications, Networking, Information Technologies, The Internet, Wired, Wireless, Satellites and Fiber (9780979387333): Harry Newton: Books
Amazon.com: Wiley Electrical and Electronics Engineering Dictionary (9780471402244): Steven M. Kaplan: Books
Amazon.com: Dictionary of Computer Science, Engineering and Technology (9780849326912): Philip A. Laplante: Books
Amazon.com: Schaum's Outline of Logic (9780070466494): John Nolt, Dennis Rohatyn, Achille Varzi: Books
Amazon.com: Schaum's Outline of Digital Principles (0639785300564): Roger Tokheim: Books
Amazon.com: Schaum's Outline of Theory and Problems of Differential and Integral Calculus (Schaums Outline Series) (9780070026629): Frank Ayres, Elliott Mendelson: Books
Amazon.com: Schaum's Outline of Operating Systems (9780071364355): J. Archer Harris: Books
Amazon.com: Schaum's Outline of Data Structures with C++ (978007135345: John R. Hubbard: Books
Amazon.com: Schaum's Outline of Essential Computer Mathematics (9780070379909): Seymour Lipschutz: Books
Amazon.com: Computer Architecture: A Quantitative Approach, 4th Edition (9780123704900): John L. Hennessy, David A. Patterson: Books
Amazon.com: Introduction to the Theory of Computation (9780534950972): Michael (Michael Sipser) Sipser: Books
Amazon.com: Algorithms and Data Structures: The Basic Toolbox (9783540779773): Kurt Mehlhorn, Peter Sanders: Books
Amazon.com: Fundamentals of Digital Logic and Microcomputer Design, 5th Edition (9780471727842): M. Rafiquzzaman: Books
Amazon.com: Introduction to 80x86 Assembly Language and Computer Architecture (9780763772239): Richard Detmer: Books
Amazon.com: Assembly Language Step-by-Step: Programming with Linux (9780470497029): Jeff Duntemann: Books
Amazon.com: C++ Primer Plus (5th Edition) (075206332697: Stephen Prata: Books
Amazon.com: C++ Primer (4th Edition) (9780201721485): Stanley B. Lippman, Josée Lajoie, Barbara E. Moo: Books
Amazon.com: Core Java(TM), Volume I--Fundamentals (8th Edition) (9780132354769): Cay S. Horstmann, Gary Cornell: Books
Amazon.com: Core Java, Vol. 2: Advanced Features, 8th Edition (9780132354790): Cay S. Horstmann, Gary Cornell: Books
Amazon.com: Dynamic HTML: The Definitive Reference (9780596527402): Danny Goodman: Books
Amazon.com: Learning Python: Powerful Object-Oriented Programming (9780596158064): Mark Lutz: Books
Amazon.com: Programming Python (9780596158101): Mark Lutz: BooksDegrees:
M.S. Information Security and Assurance
B.S. Computer Science - Summa Cum Laude
A.A.S. Electronic Systems Technology -
OptionsChris:/* Member Posts: 658 ■■■■■■■■□□Every school does recognize CLEPS but many schools do not accept CLEP exams for core courses. They will usually let you CLEP/Excelsior general classes but in CS if you go to a good school they will not accept them for the degree specific classes.Degrees:
M.S. Information Security and Assurance
B.S. Computer Science - Summa Cum Laude
A.A.S. Electronic Systems Technology -
OptionsSlowhand Mod Posts: 5,161 ModAny computer science degree is going to start you with the same basic path in the lower-division classes:
- Intro to Programming
- Intermediate Programming in C++ or Java
- Data Structures and Algorithms
- Assembler and probably some LISP, as well as C
What I would recommend for you is to learn C, first and foremost. Pick up a good book on the subject, start playing around with it, and learn to love it. Chances are, you'll probably run into Objective-C more than once in your career. After you feel comfortable writing code in C and you feel like you've really gotten your bearings with it, move on to either C++ or Java. If you can, while you're still working towards your current degree, pick up a book on data structures & algorithms as well and get started looking at things like queues, stacks, hash tables, etc.
You'll also need to bone up on your math skills, as well as your writing and sciences. I'd recommend MIT's OpenCourseWare for pretty much all the subjects in question, as well as The Khan Academy. (I'm also a big fan of the Schaum's Outlines series of books, like Chris:/* listed, as supplementary study material for pretty much all my classes.) The basic building-blocks for a lower-division CS undergrad degree, aside from the programming courses, look something like this:- Calculus I, II, and III
- Differential Equations
- Linear Algebra
- Discrete Math
- Calc-Based Physics (Classical Mechanics, Thermodynamics, and Electricity & Magnetism)
- English 1A and 1B
One last piece of advice I can give you is to make sure you have a rock-solid foundation in both algebra and trigonometry, going into this path. It'll serve you well in the calc classes, in the physics classes, and also in the coding curriculum. Don't underestimate the value of knowing your right triangles, your trig identities, and your polynomials.
Free Microsoft Training: Microsoft Learn
Free PowerShell Resources: Top PowerShell Blogs
Free DevOps/Azure Resources: Visual Studio Dev Essentials
Let it never be said that I didn't do the very least I could do. -
OptionsMet44 Member Posts: 194Pick up a good book on the subject
Totally agree with that recommendation. Previous employment had a first edition copy -- published 1984. Hands down the best beginner's book I have read on any subject. Great lead-in to K&R. -
OptionsBl8ckr0uter Inactive Imported Users Posts: 5,031 ■■■■■■■■□□Excellent input from all. +rep. Thanks.
-
Optionserpadmin Member Posts: 4,165 ■■■■■■■■■■Every school does recognize CLEPS but many schools do not accept CLEP exams for core courses. They will usually let you CLEP/Excelsior general classes but in CS if you go to a good school they will not accept them for the degree specific classes.
Very true. CLEPs are pretty much going to be for general education requiremenents (your histories, sciences, math, etc., etc.)
There are a BUNCH of stuff on the Internet that can help you prep for CLEPs. Though I would be brave enough to sit through the MIT course for Calculus and then CLEP. Having just boned up on all of the stuff Slowhand mentioned, it might not be a bad idea to do this as a side project.
At 39 videos at 2 videos a week (as if I was actually going to a class), I'd be done in 5 months. You really can't beat that...the price of admission is 4-5 months and whatever the price of the Calculus exam is. Now that's what I call value. -
OptionsChris:/* Member Posts: 658 ■■■■■■■■□□Fantastic list!
Prior to Computer Architecture, and possibly as a substitute for, Fundamentals of Digital Logic, I'd recommend Inside the Machine. I'm making my way through it now and am thoroughly enjoying it.
I'll have to check out some of the Schaum's books. Those look interesting.
Those are the two books I recommend for assembly as well.
Looks like a good book! I will have to pick it up and see if I gleen any additional knowledge.Degrees:
M.S. Information Security and Assurance
B.S. Computer Science - Summa Cum Laude
A.A.S. Electronic Systems Technology -
OptionseMeS Member Posts: 1,875 ■■■■■■■■■□Anything by Tanenbaum. His textbooks would be something you'd encounter in any worthwhile CS program.
Amazon.com: Andrew S. Tanenbaum: Books, Biography, Blog, Audiobooks, Kindle
MS -
Optionsbrad- Member Posts: 1,218I finished my BS 5 years ago, and here's what I can offer FWIW:
Get ready for all the non-IT classes. You mentioned math, yep. You might even have to take Differential Equations...I havent needed the first lick of it since.
Public speaking, English, biologies...etc. You'll probably have to pick a 2-4 course series in something, chemistry, biology, geology..etc. Just remember that your CS classes will probably gobble up a considerable amount of your time, so choose your non-IT courses based on knowing that. Out of my 128 hours, I want to say only 45 or so were even in my major.
When it comes to the IT - you may not need much, if any, of your networking background unless your curriculum has a focus track or something like that. Be ready for programming, and database. We started with Java and moved to .NET. I havent used Java since. .NET is all over the place tho. All of our programming was built on a SQL database.
Get ready for theory out the wazoo. Most of it is just is aggrivating trivia IMHO, but you just have to grind it out.
Assuming you're not working while you do this, you have to look at your coursework as if it were a job in itself. Spend that kind of time on it, sometimes more...particularly when you have a program or exam coming up.
Its a long haul, but fun. The best advice I can give though, is dont shelter yourself. Be social, talk to people. That was how I landed my first real job, buddies I met at school.
Oh, and dont buy books at the bookstore unless you cant find them on ebay or amazon. Lab books you'll probably have to buy at the bookstore, but the others...its a sham. They'll sell you the 3rd edition of your chemistry book, you'll use it for 2 semesters, and when it comes buy back time - guess what - your $200 book is now worth $10 because the 4th edition is now the requirement. -
OptionsMentholMoose Member Posts: 1,525 ■■■■■■■■□□Good point on the bookstore (i.e. never shop there), however the cheapest option is often the library, believe it or not. Even if your university has a lousy library (mine did), they likely have one or more interlibrary loan programs (ILL), so you have access to dozens of libraries. After I figured this out, I could usually get half my textbooks for free. Further, if a book isn't even available via ILL, you can submit a request for your library to purchase it! Just don't mention that you need it for a class and don't want to buy it yourself.MentholMoose
MCSA 2003, LFCS, LFCE (expired), VCP6-DCV