CS1 Language & Structure Bits: Difference between revisions

From Earlham CS Department
Jump to navigation Jump to search
Created page with "=== Current Thinking: === * CS1 and CS2 in Python (objects in both) ** CS128 command line, with some exposure to iPython ** Use 2.7 with import from future for division, prin..."
 
Blanked the page
 
Line 1: Line 1:
=== Current Thinking: ===


* CS1 and CS2 in Python (objects in both)
** CS128 command line, with some exposure to iPython
** Use 2.7 with import from future for division, print, input? > (textbook support?) Why not just use 3?
* C for 310 and beyond
* How to learn Java? January Bootcamp or May Term (pre-req for > some courses)
** Mobile App Development
** Field Science
** Software Engineering?
=== CS128 books ===
* Oberlin > [https://www.cs.oberlin.edu/~ctaylor/150/ ''https://www.cs.oberlin.edu/~ctaylor/150/''] > Python Programming: An Introduction to Computer Science
* [http://home.wlu.edu/~lambertk/python/cs12python/index.html ''http://home.wlu.edu/~lambertk/python/cs12python/index.html''] - > Fundamentals of Python: From Programs through Data Structures
* Harvey Mudd > College:[https://www.cs.hmc.edu/twiki/bin/view/CS5/ ''https://www.cs.hmc.edu/twiki/bin/view/CS5/''] > Intro to Computer Science
* The Quick Python Book (UC Berkeley: Introduction to Python 3) > [http://www.amazon.com/Quick-Python-Book-Second-Edition/dp/193518220X ''http://www.amazon.com/Quick-Python-Book-Second-Edition/dp/193518220X'']
* Python Programming: An Introduction to Computer Science > (2nd Edition) (Python 3.x)
[http://mcsp.wartburg.edu/zelle/python/ppics2/index.html ''http://mcsp.wartburg.edu/zelle/python/ppics2/index.html'']
Comments:
* $20 for hard copy, or free. Sample programs and solutions.
<!-- -->
<ul>
<li>= Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) =
</li></ul>
<blockquote>[http://www.amazon.com/Practical-Programming-Introduction-Pragmatic-Programmers/dp/1937785459/ref=sr_1_11?ie=UTF8&qid=1429969707&sr=8-11&keywords=introduction+to+computer+science ''http://www.amazon.com/Practical-Programming-Introduction-Pragmatic-Programmers/dp/1937785459/ref=sr_1_11?ie=UTF8&amp;qid=1429969707&amp;sr=8-11&amp;keywords=introduction+to+computer+science'']
</blockquote>
* How to Think Like a Computer Scientist: &gt; [http://www.greenteapress.com/thinkpython/ ''http://www.greenteapress.com/thinkpython/''] ()
256 / 310 books
# [http://www.amazon.com/Data-Structure-Algorithmic-Thinking-Python/dp/8192107590/ref=sr_1_1?ie=UTF8&qid=1429970525&sr=8-1&keywords=data+structures+in+python ''Data Structures and Algorithmic Thinking with &gt; Python''] -
#* More like a CS256/CS310 book, for interview purpose
#* no exam copy
#* http://www.careermonk.com/
<!-- -->
<ol style="list-style-type: decimal;">
<li>= [http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP002510.html ''Data Structures and Algorithms in Python''] =
<ul>
<li>= Have requested for examination copy =
</li>
<li>= Very '''good comments''', but $171.53 for hardcover, $62.5 for E-book on official website =
</li>
<li><p>one from James Madison University use both (2) and (3) and &gt; recommend (2)</p></li>
<li><p>Topics are fully covered (AVL tree), and some could be used in &gt; CS320</p></li>
<li><p>My main complaint with the Goodrich book is that the coverage of &gt; each data structure is accompanied by a complete Python &gt; implementation, which eliminates many possible &gt; programming assignments. I would have found the code examples &gt; more helpful if there was less emphasis on good OO design and &gt; more emphasis on algorithmic clarity.</p></li></ul>
</li>
<li>= [http://www.amazon.com/Data-Structures-Algorithms-Using-Python/dp/0470618299 ''Data Structures and Algorithms Using Python''] =
<ul>
<li><p>used: $36.94 new:$88.20</p></li>
<li><p>The Necaise book is clear and accessible, but includes quite a &gt; few distracting errors, particularly in the code examples. &gt; It's also a bit light on mathematical rigor.</p></li></ul>
</li>
<li><p>[http://www.amazon.com/Structures-Algorithms-Undergraduate-Computer-Science/dp/3319130714/ref=pd_sim_b_5?ie=UTF8&refRID=1V7BQJD9WZMNN6AD8X7Q ''Data Structures and Algorithms with &gt; Python''] &gt; (Undergraduate Topics in Computer Science)</p></li>
<li><p>[http://interactivepython.org/runestone/static/pythonds/index.html ''Problem Solving with Algorithms and Data Structures Using Python &gt; '']</p>
<ul>
<li><p>'''free online book '''</p></li>
<li><p>has programming exercise</p></li>
<li><p>'''three faculties recommend this book (include GA Tech)''', and &gt; one in University of Northern Iowa designed his own lab &gt; assignments (http://www.cs.uni.edu/~fienup/cs1520s15/)</p></li></ul>
</li>
<li><p>[http://www.amazon.com/Fundamentals-Python-Structures-Kenneth-Lambert/dp/1285752007/ref=pd_cp_b_3?ie=UTF8&refRID=13WZBCB4WJ1837B27E4X ''Fundamentals of Python: Data &gt; Structures'']</p>
<ul>
<li><p>'''Have requested for an online review copy'''</p></li>
<li><p>Comments: low price ($30 or less)</p>
<ul>
<li>Assumes the reader has had one semester of an OOP language, &gt; in this case Python.</li></ul>
</li>
<li><p>topics as the design of collection classes with '''polymorphism &gt; and inheritance''', multiple implementations of collection &gt; interfaces, and the analysis of the space/time tradeoffs of &gt; different collection implementations</p></li>
<li><p>Collections covered include '''sets, lists, stacks, queues, &gt; trees, dictionaries, and graphs'''.</p></li></ul>
</li>
<li><p>[http://algs4.cs.princeton.edu/home/ ''Algorithms'']</p>
<ul>
<li><p>Robert Sedgewick and Kevin Wayne</p></li>
<li><p>$59.12 on Amazon</p></li>
<li><p>More like a CS3 textbook</p></li></ul>
</li>
<li><p>[http://www.amazon.com/Object-Oriented-Programming-Python-Michael-Goldwasser/dp/0136150314 '''''Object-Oriented Programming in &gt; PYTHON''''']</p>
<ul>
<li><p>Data types, objects, control structures, I/O, user-defined &gt; classes, inheritance, and good software development practices. &gt; Recursion to data structures, event-driven and network &gt; programming with Python.</p></li>
<li><p>But not many data structures are covered in this book. Only &gt; sets, arrays, BST, and sorting algorithms.</p></li></ul>
</li>
<li>= [http://www.amazon.com/Data-Structures-Algorithms-Using-Python/dp/1590282337 '''''Data Structures and Algorithms Using Python and C++'''''] =
<ul>
<li><p>[http://www.amazon.com/review/RDUFHGY5L0LI8/ref=cm_cr_dp_title?ie=UTF8&ASIN=1590282337&channel=detail-glance&nodeID=283155&store=books A great second course text in Computer &gt; Science] &gt; $88 for new book, $50 for used, $30 for eBook</p></li>
<li><p>recommended by a faculty from Lakeland Community College</p></li>
<li><p>1. Abstraction and Analysis</p></li>
<li><p>2. Data Abstraction</p></li>
<li><p>3. Container Classes</p></li>
<li><p>4. Linked Structures and Iterators</p></li>
<li><p>5. Stacks and Queues</p></li>
<li><p>6. Recursion</p></li>
<li><p>7. Trees</p></li>
<li><p>8. C++ Introduction of Python Programmers</p></li>
<li><p>9. C++ Classes</p></li>
<li><p>10. C++ Dynamic Memory</p></li>
<li><p>11. C++ Linked Structures</p></li>
<li><p>12. C++ Templates</p></li>
<li><p>13. Heaps, Balanced Trees, and Hash Tables</p></li>
<li><p>14. Graphs</p></li>
<li><p>15. Algorithm Techniques</p></li></ul>
</li>
<li><p>[http://opendatastructures.org/ ''http://opendatastructures.org/''] &gt; Wikipedia book</p></li></ol>
Consider a way to take CS128 and just learn Python, fewer credits, less work (auditing might work for this).
[http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-us-universities/fulltext ''http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-us-universities/fulltext'']
CS for All: [http://www.cs.hmc.edu/csforall/ ''http://www.cs.hmc.edu/csforall/'']

Latest revision as of 16:08, 7 November 2016