<p>Hello! </p>
<p>This is my first post, so I'll introduce myself. I'm an undergraduate student attending Gallaudet University. Recently changed my major to Computer Science. I'm thinking about becoming a software engineer / database designer. I'm a former Rochester Institute of Technology student and was an IT major, but didn't get too far before leaving school. I wasn't ready for college back then. But one thing I know for sure: I was likely born for computers! Even in my computer programming class where some students were bored to death, I was having the time of my life.</p>
<p>Now, I would like help with choosing from specific CS electives at Gallaudet. The list of courses required for a BS in Computer Science at that university is shown here: Math</a> and Computer Science - B.S. in Computer Science - Gallaudet University</p>
<p>The electives shown on that page are:</p>
<p>Choose two courses:
CSC 202 Assembly Language Programming (3)
CSC 305 Introduction to File Processing (3)
CSC 352 Computer Graphics (3)
CSC 401 Analysis of Algorithms (3)
CSC 402 Artificial Intelligence (3)
CSC 409 Parallel Processing (3)
CSC 495 Special Topics (3)</p>
<p>Keeping in mind only two courses are needed, my questions are:
- Which electives are in high demand/low supply? Do any of them teach skillsets that most employers are looking for that are in low supply?
- CSC 202 and CSC 305 are recommended prerequisites for some required courses. But would any of the others be better alternatives?</p>
<p>I'm providing the course descriptions so you can help me out with this. Your help is greatly appreciated.</p>
<p>COURSE DESCRIPTIONS</p>
<p>CSC 202 Assembly Language Programming (3)
This course will provide basic concepts of programming
systems, introduce computer architecture, and introduce an
assembly language.</p>
<p>CSC 305 Introduction to File Processing (3)
This course will introduce concepts and techniques of
structuring data on bulk storage devices, provide experience
in the use of bulk storage devices, and provide the foundation
for applications of data structures and file processing
techniques.</p>
<p>CSC 352 Computer Graphics (3)
Windowing environments and graphical user interfaces will
be discussed. Experience will be provided with programming
graphical interfaces. Transformations including windowing,
clipping, geometrics, and perspectives. Computer
graphics applications.</p>
<p>CSC 401 Analysis of Algorithms (3)
Fundamental data structures and algorithms are reviewed:
arrays, pointers, trees, and recursion. Sorting techniques
such as quicksort, radix sort, heapsort, and mergesort are
analyzed in relation to their computational complexity
and memory requirements. Searching methods, including
binary, balanced trees, hashing, radix, and external are analyzed
for computational complexity and memory requirements.
String processing, pattern matching, cryptology,
simple closed path, convex, hall, depth-first and breadth-first
searches, connectivity, polynomial, Gaussian, and curve fitting
algorithms will be applied to basic data sets.</p>
<p>CSC 402 Artificial Intelligence (3)
Artificial intelligence studies ways of making computers do
intelligent tasks. These tasks include playing games, expertly
solving problems, understanding natural language, and
proving theorems. The theoretical background of artificial
intelligence, artificial intelligence programming paradigms,
and some applications of artificial intelligence are introduced.</p>
<p>CSC 409 Parallel Processing (3)
Parallel processing systems and supercomputers. A combination
of theory and practice using supercomputers and
parallel processors available on the Internet. Emphasis on
parallel algorithms, parallel language constructs, message
passing libraries, and high-level tools for creating parallel
programs from serial programs.</p>
<p>CSC 495 Special Topics (1-3)
Advanced topics in computer science depending on the
needs and interests of the student.</p>