CSCI 136

Fundamentals of Computer Science II

3 Cr. (Hrs.:2 Lec., 3 Lab)

A continuation of CSCI 135, this class explores the finer and more subtle elements of programming. Students will implement an industrial size project. Programming techniques and structures will include recursion, arrays, records, sets and linked lists. Prerequisite: CSCI 135 (2nd)

Course generally offered spring (2nd) semester.


E1. Students should have basic problem solving skills and be able to apply those skills to create an algorithmic solution for a given programming problem. (CSCI 135)

E2. Students should be able to create programs using assignments, control constructs, and routines and be able to find and correct any syntax errors to produce a running executable. (CSCI 135)

E3. Students should be able to test their programs, find any logic errors, and correct these flaws to produce a working program.(CSCI 135)

Course Outcomes:

R1. Students are proficient in a programming language and know basic error-handling, testing and debugging techniques. (CAC-c, i, j, k; EAC-k)

R2. Students use advanced programming techniques, including recursion, file I/O, abstraction, multi-file programs, and programming language libraries. (CAC-c, i, j, k; EAC-k)

R3. Students use and implement simple data structures, including stacks, queues and linked lists. (CAC-c, i, j, k; EAC-k)

R4. Students use basic object-oriented programming methodologies including object-oriented problem decomposition, class design/implementation, and object creation/usage. (CAC-b, c, i, j, k; EAC-c, k)

R5. Students write defensive programs with an emphasis on the responsibilities that computer professionals have for ensuring software quality. (CAC-b, c, i, j, k; EAC-c, k)

R6. Students understand and implement multi-threaded solutions to achieve provably correct synchronization among threads operating on shared resources. (CAC-c, i, j; EAC-k)

R7. Students integrate third party applications into their projects through socket connection/communications protocol, method API's, and command line interfaces. (CAC-c, i, j; EAC-k)

R8. Students implement client-server architectures which communicate over the Web using TCP and the sockets interface. (CAC-c, i, j; EAC-k)

R9. Students use an additional programming language and operating system to implement components of the previous concepts. (CAC-c, i, j; EAC-k)