Courses What upper division undergrad courses for CS?

AI Thread Summary
The discussion centers around selecting five elective courses to enhance marketability upon graduation. The individual is nearing the completion of their degree and seeks practical, industry-relevant courses, particularly in Software Engineering, Aerospace, AI, and Gaming. They have connections at major companies like Riot Games, Google, NASA, and Boeing, which could influence their course choices.Recommended courses include Software Engineering Project, Recommender Systems, Compiler Construction, Parallel Programming, and Software Testing. Emphasis is placed on the importance of Software Testing and Operating Systems for any career path. Human Factors of Computer Systems is noted as valuable for usability design, while Data Mining is highlighted for its utility in data extraction and analysis. The relevance of Computer Networks and Embedded Systems is also discussed, with suggestions to balance core courses with those aligned with personal interests to create a specialized skill set.
Of Mike and Men
Messages
53
Reaction score
3
Hey everyone,

The Short Story:
I need to choose 5 classes from the below list that will make me marketable after graduation aside from an internship.

The Long Story:
I'll be entering my final semesters this coming year. I, mostly, have only electives left. I have to take at least 5 courses.

There are courses I am interested in from a theoretical standpoint, but because I am an little bit of an older student (I will be 30 at graduation, almost 31) I'd like to do something that makes me marketable at graduation. I plan on going to grad school eventually, but I want to pay off my loans first and get experience in the industry. I'm interested in Software Engineering, Aerospace, AI, and Gaming. However, my primary concern is employment at graduation. While I'm mostly interested in those careers, it doesn't mean that I will be discouraged if I do not end up there.

I have close (family and long-term good friends) contacts at Riot Gaming, Google, NASA, Boeing, the FAA, TSA, and a cyber security firm (can't remember the name off the top of my head). I mention that in case that influences your recommendations since I will likely use these people as future references.

I've constructed a list of available courses at my University:

I must take at least one from the following:
Compiler Construction
Description: This course investigates theoretical and practical issues in the design and construction of modern compilers. Topics covered include lexical and syntactic analysis, syntax-directed translation, type checking, intermediate representation, code generation, and runtime systems. A major portion of the course involves implementing a compiler from scratch for a C-like programming language.Human Factors of Computer Systems
Principles and methods in human factors and ergonomics applied to the design and use of computer systems.Parallel Programming
This course teaches practical aspects of parallel programming. The covered topics include multi-core processors and shared-memory programming, hardware accelerator programming, and distributed-memory machines and message-passing programming. The students will gain the knowledge and skills needed for developing parallel software by writing programs for a variety of parallel computers.Software Engineering Project
Students undertake a software development project. They work in teams, developing requirements and designs which they will implement and test.Computer System Security
Course covers practical aspects of computer system security including managing and producing code for secure systems. Theory, such as cryptography, is introduced as needed.
I must take 4 from the following:
Practical Gaming Design

Course teaches practical aspects of computer game design and implementation. Topics include graphics game engines, game physics, AI methods applied to games, and software architectures for computer games. Students will gain knowledge and skills needed for game development via team projects.Introduction to Artificial Intelligence
An introduction to the basic concepts of artificial intelligence; search techniques, knowledge representation, problem solving.

Embedded Computer Systems
Description: This course studies the architecture of embedded systems, micro-controllers, their peripherals, languages, and operating systems and the special techniques required to use them.Internet Software Development
Description: A course providing foundations for the construction and design of static and dynamic Web pages with database applications. This will include server-side and client-side software development.Theory of Automata
Description: An introduction to automata theory, computability, and formal languages.Computer Networks
Description: A survey of network architectures and their components. Emphasis will be on media access, network and transport layer protocols.Introduction to Data Mining
Description: This course covers fundamental concepts and techniques in data mining and information retrieval. Data mining topics include classification, cluster analysis and pattern mining. Information retrieval topics include Boolean retrieval, vector space model, and Web search.Introduction to Database Systems
Introduction to database concepts, data models, file structures, query languages, database management systems.Unix Systems Programming
Fundamentals of Unix operating systems, Unix file system and environment, C memory allocation, development tools, processes and signals, threads, device drivers, and programming for securitySoftware Testing
The concepts used in a formal testing of safety critical and high-quality software applications are investigated. Topics include, but are not limited to, test design, static and dynamic testing tools, and formal testing documentationIntroduction to Graphical User Interfaces
This course covers abstract and practical foundations of graphical user interface design, evaluation, and implementation. It discusses the fundamentals of computer graphics and interactive computer/human interfaces. The course includes a survey of usability measures, the major GUI standards, and GUI toolsIntroduction to Recommender Systems
This course covers the basic concepts of recommender systems, including personalization algorithms, evaluation tools, and user experiences. We will discuss how recommender systems are deployed in e-commerce sites, social networks, and many other online systems. Additionally, we will review current research in the field.Introduction to Green Computing
Reducing energy consumption of mobile devices, cloud computing platforms, and supercomputers is a paramount but daunting problem. This course covers fundamental concepts and techniques in green computing, including a hardware energy efficiency roadmap; energy efficient software design, resource management, and storage solutions; and green data centers and mobile computing.

-------

The ones recommended to me so far are Software Engineering Project, Recommender Systems, Compilers, Parallel Programming, and Software Testing.

I appreciate any advice.
 
Last edited:
Physics news on Phys.org
Compilers, Operating Systems, GUIs, Security...
 
  • Like
Likes Of Mike and Men
berkeman said:
Compilers, Operating Systems, GUIs, Security...

Thanks, I appreciate it.

Also, I modified the post. Operating systems was already a required course -- not an elective. My bad. :)
 
I didn't see a course in heavy duty number crunching (often taught by the math dept as numerical analysis), but when I worked at Cisco Systems, this was the most valuable course in my arsenal.
 
Dr. Courtney said:
I didn't see a course in heavy duty number crunching (often taught by the math dept as numerical analysis), but when I worked at Cisco Systems, this was the most valuable course in my arsenal.

They have Numerical Analysis in our math department. I’m a math minor (completed this part of my degree) and took other courses (mathematical proofs, linear algebra, derministic operations research, and probability). I don’t have enough finances to take more math courses or I would (I’d really like to double major.
 
  • Like
Likes Dr. Courtney
What are you interested in doing?

If you want to pursue riot games, please make sure you take the practical gaming design course, but that will not be as useful if you want to work for nasa.

For almost any route take software testing! Operating systems will be important for all.

If you're going to take the GUI course human factors will be useful as well. Human factors is one of the new big things, even in the defense industry. Human factor covers things like usability, which is important even when designing test systems for other engineers to use. But if you want to be a low level (compiler level) programmer, human factors won't be as important.

Data mining will help give you tools to use in the future. Every engineer needs to learn how to extract data from a data-set. Often it is only remove 20 bad data-points out of 500 in an excel document, but data mining will give you methods to deal with larger problems. As an electrical engineer I use data mining methods a lot, even for hardware design.

embedded system could be valuable, depending on what you are working on.

computer networks will be very valuable anywhere.

Things like security, internet software, AI, and database systems depend on what you are interested in.

So if you want a list...

Software Testing
Operating systems
computer networks

Then pick two in subjects that you're interested into "specialize"
 
Last edited:
Bit Britain-specific but I was wondering, what's the best path to take for A-Levels out of the following (I know Y10 seems a bit early to be thinking about A-levels, but my choice will impact what I do this year/ in y11) I (almost) definitely want to do physics at University - so keep that in mind... The subjects that I'm almost definitely going to take are Maths, Further Maths and Physics, and I'm taking a fast track programme which means that I'll be taking AS computer science at the end...
After a year of thought, I decided to adjust my ratio for applying the US/EU(+UK) schools. I mostly focused on the US schools before, but things are getting complex and I found out that Europe is also a good place to study. I found some institutes that have professors with similar interests. But gaining the information is much harder than US schools (like you have to contact professors in advance etc). For your information, I have B.S. in engineering (low GPA: 3.2/4.0) in Asia - one SCI...
I'm going to make this one quick since I have little time. Background: Throughout my life I have always done good in Math. I almost always received 90%+, and received easily upwards of 95% when I took normal-level HS Math courses. When I took Grade 9 "De-Streamed" Math (All students must take "De-Streamed" in Canada), I initially had 98% until I got very sick and my mark had dropped to 95%. The Physics teachers and Math teachers talked about me as if I were some sort of genius. Then, an...

Similar threads

Back
Top