https://cs.indstate.edu/wiki/index.php?title=CS_202_Computer_Science_II&feed=atom&action=historyCS 202 Computer Science II - Revision history2024-03-29T12:38:25ZRevision history for this page on the wikiMediaWiki 1.31.0https://cs.indstate.edu/wiki/index.php?title=CS_202_Computer_Science_II&diff=2266&oldid=prevZnoble1: /* CS 202 Computer Science II */2021-05-17T19:47:32Z<p><span dir="auto"><span class="autocomment">CS 202 Computer Science II</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 19:47, 17 May 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">= CS 202 Computer Science II =</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Catalog Description ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Catalog Description ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>Znoble1https://cs.indstate.edu/wiki/index.php?title=CS_202_Computer_Science_II&diff=2265&oldid=prevZnoble1: Created page with "= CS 202 Computer Science II = == Catalog Description == This course is a continuation of CS 201. It involves a deeper study of programming languages, but emphasizes programm..."2021-05-17T19:47:25Z<p>Created page with "= CS 202 Computer Science II = == Catalog Description == This course is a continuation of CS 201. It involves a deeper study of programming languages, but emphasizes programm..."</p>
<p><b>New page</b></p><div>= CS 202 Computer Science II =<br />
== Catalog Description ==<br />
<br />
This course is a continuation of CS 201. It involves a deeper study of programming languages, but emphasizes programming in a particular language. Topics include algorithm design and analysis, data structures, recursion, threads, network programming, graphics, security, and ethics. Prerequisites - C or better in CS 201.<br />
<br />
== Prerequisites ==<br />
* basic programming concepts <br />
* ability to use unix<br />
<br />
== Standard Content ==<br />
===Course Outline ===<br />
* Review (2 weeks)<br />
** C Programming - all keywords and operations, libraries and header files<br />
** Data formats and number systems (binary, decimal, octal, hex), signed/unsigned, two’s complement, floating point, long, int, short char, C strings<br />
** I/O with different data formats and number systems<br />
** Basic data structures - unsorted array, sorted array, linked list, heap, stack, queue - code for all in class and as assignments<br />
** Search and sorting - linear and binary search, selection and insertion sort, mergesort, heapsort, quicksort - code for all in class and as assignments<br />
* Asymptotic analysis and running time (1 week) - big O/Omega/Theta, little o/omega, definitions, basic proofs, polynomials / exponentials / logarithms, recursion trees<br />
* Memory organization (1 week) - text, data, heap, stack, malloc, free, pointer arithmetic<br />
* Unix and debugging (1 week) - gdb, grep, sed, awk, find, compiler options, makefiles, unix regular expressions, reading manual and manual organization, pipes, I/O redirection<br />
* Disk organization (1 week) - inodes, superblocks, etc.<br />
* New data structures (4 weeks) - binary search tree (including balanced), hash table, skip list, trie, B tree - code for some in class and as assignments<br />
* Graphs (1 week) - terminology, adjacency matrix, adjacency list, basic algorithms (BFS, DFS, shortest path, minimum spanning tree) - do all algorithms on the board, code for some in class, running time for all<br />
* Classes and objects in C++ (2 weeks) - data abstraction and encapsulation, defining classes, creating objects, inheritance, protection, virtual functions and polymorphism<br />
* The Standard Template Library (1 week)<br />
* Comparison of C++ and other OO Languages (Java, Python, etc.) (1 week)<br />
<br />
===Learning Outcomes===<br />
* C programming and debugging, <br />
* data structures understanding (can explain lookup/insert/delete for each DS, work small examples on paper, know running times) and <br />
* coding (can finish partially complete DS code, write new functions to traverse DS)<br />
<br />
<br />
===Important Assignments and/or Exam Questions===<br />
* Programming assessment - must pass with 3 and 2 halves to get a C or better<br />
* Data structures programming, exam/homework question - given prototype for insert/lookup/delete, can give correct code<br />
* Data structures programming, exam/homework question - given prototype for function that should use data structure functions, can give correct code<br />
* C programming play computer, exam question - given any short C program (a few dozen lines, say) and sample input, can trace execution and final output<br />
* Some large project that is interesting - game, etc.<br />
<br />
=== Standard resources ===<br />
* Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein<br />
* The C Programming Language by Kernighan and Ritchie<br />
* Online courses/tutorials - MIT course - Practical Programming in C , How to Think Like a Computer Scientist, C++ Version - an online textbook, CS 50: Intro to CS I at Harvard - has videos, lecture notes, Reference on C and C++, The C Programming Language, C Programming Tutorial, Fresh2fresh C Tutorial</div>Znoble1