Train your mind, create your career.
The idea of the Computer Science minor—and note that we do not offer a major in the subject—is to supplement your major course of study with some ways of thinking and some practical skills that will serve you well, both in that major and in your future career. We don't aim to turn you into a professional software developer, but rather to get you comfortable enough with coding that you can be the "data" person in your team or organization, and to be able to design, customize and maintain websites— for your organization, your colleagues, groups you volunteer with, and for yourself.
You can think of the minor as having three focal points:
Data Analysis is the art of collecting and organizing data, investigating the data to discover patterns that support decision-making in practical situations, and communicating the results on one's analysis to the people who need to make decisions based upon it. It's closely related to the field of statistics, but involves much less in the way of mathematics and emphasizes the use of the computer to process and manage data that is too large or to messy to be analyzed "by hand." If the data is espcially large then it may be stored in a database, so in the course of our study of Data Analysis we'll learn basic concepts of database design and we'll acquire proficiency in interacting with databases.
The various skills and techniques involved in the production and maintenance of websites make up the discipline of Web Design. We'll focus mostly on "front-end" design", which is concerned with what the user experiences in his or her web browser, but we'll also touch on "back-end" web development&mdashthe complex computations that are done on the remote server to process information that the user provides.
Data Analysis is increasingly communicated on the Internet, so several courses in the minor integrate both Data Analysis and Web Design.
More detailed information about all of our courses may be found below.
Developing algorithms to solve problems and using the computer as a means to implement algorithms and to automate tasks. The course includes the study of a modern computer language along with the programming paradigms that it represents. Topics include variables, control structures, data structures, objects and reuse of code.
Fall and Spring.
This is your introduction ot the Compute Science minor. You will learn the basics of R, the world's most popular language for statistics and data science. We will emphasize the basic principles of computer programming, but we will also begin to look at some of what the tools R provides in the way of data analysis.
All of our work will be done through an online server that can be accessed on any computer than has a modern web browser and that is connected to the Internet. This means that you don't have to have your own computer in order to succeed in this course: you can simply use one of the many computers on campus. Nevertheless, it is recommended that you have a computer, and a good working laptop will be required for all subsequent Computer science courses.
This course includes the study of the computer language and programming topics begun in CSC 115. It also covers tools and resources available in the larger “eco-system” of the language under study, and introduces students to development tools, including version control systems.
We'll use R to continue the study begun in CSC 115 study of basic progrmming concepts, and we'll look at some more data anlysis applications.
We'll also get a serious introduction to version control, a practice that helps software developers keep track of changes to complex applications and that allows programmers to collaborate with each other more effectively. We'll learn the version-control language known as git, and we'll put up our first remote software repositories on GitHub.
We will even make our first forays into web design. The present-day R programming environment includes a number of tools that make it easy to build R-based websites and blogs, and to have them hosted for free by great developer services like Netlify. You'll design your first sites in this course, and begin using your personal blog to write about problems in programming or to expound on ideas from courses in your own major.
We'll continue to work on the online server, but you are going to have to learn how to install some software on other computers, so starting with CSC 215 a laptop in good working order will be required for every class in the Computer Science program, except maybe for CSC 303.
This course focuses on data analysis in settings where the data is so large, dispersed or messy that machine-processing is required to gather, clean and transform it into forms suitable for analysis. We also study computer-based techniques for the analysis of such data, including machine data-visualization and machine-learning. Finally we consider how the practice of reproducible research and the development of interactive web-based applications can enhance communication of the results of data analysis.
MAT111 or CSC115 or PSY211 or permission of the instructor.
This course continues the Data Analysis thread of the minor. The language of instruction is R, which you studied in CSC 115, but since the course may be taken by students who have not has CSC 115 we'll start from scratch with the elements of R that we need for this course. You can think of this as a gentle review.
What will be new to you are the special contributed R-packages, such as
that facilitate manipulation of data sets, and
ggplot2, an elegant system of computer
graphics for producing graphical summaries of data.
You'll also become acquainted with the new field known as machine learning, in which we use the computer to build models that make predictions—sometimes astonishly accurate ones—in practical situations. The models we study, including classification an regression trees, as we as random forests, bring us to the door-step of the influential new discipline of data science.
Since Data Analysis encompasses the effective communication of what one has learned from data, we take a closer look at R Markdown—first studied in CSC 115—as a tool for writing data analysis reports quickly and easily. We also learn to write simple Shiny applications that permit non-technical users to do simple data analysis interactively over the web.
Students majoring in Biology or one of the social sciences may find that this course prepares them well for projects in their major that require statistics and analysis of data.
CSC 115 or permission of the instructor.
ART 323 Web Design is quite similar to CSC 323, and is offered both Spring and Fall semester by the Art Department. CSC 323 will be offered only when ART 323 is not, and even then only if there is sufficient demand.
ART 323 automatically substitutes for CSC 323 to fulfill requirements for the Computer Science minor. It also serves as an alternative prerequisite for CSC 324 Web Programming
The study of one or more web programming languages, and the application of these languages in front-end and back-end web development.
CSC 323. However, as ART 323 is similar to CSC 323 and is the web design course that is usually offered at Georgetown, ART 323 will be accepted in place of CSC 323.
This course introduces database concepts necessary to inform the choice of a
database system for applications, and to construct and use a database.
At least one type of database system is studied, and is used in both data analysis and web-app development settings.
CSC 215 and CSC 324
CSC 405 functions much like a "capstone" course in a major, drawing upon your the programming, web-design and data analysis skills you have developed in earlier courses.
At the beginning of the course we learn about the basic principles of relational databases and study MySQL, a common language used to interface with relational databases.
We then apply databases in the setting of data analysis, writing R programs that pull data from a database and create numerical and graphical summaries of that data. We also learn to write simple Shiny applications that permit non-technical users to perform data analysis on the Internet.
In the final portion of the course we study PostgreSQL, an object-relational database system, and do a bit more with the Node.js environment that was introduced in CSC 324. We apply Node and PostgreSQL to the construction of simple web apps such as online games. These are the baby steps toward becoming a "full-stack" web developer!
Students may receive graduation credit for internships with appropriate disciplinary content that meet the faculty-approved criteria for academic internships. Such experiences include a significant reflective component and must be supervised by a full-time member of the Georgetown College faculty. 1-3 credits.
CSC115 and consent of the supervising instructor.
This course is especially useful for someone who is interested in web design and who can find an organization in the community that needs a website. If you plan to design a website then of course you should have done well in CSC 323 and CSC 324.
With the consent of the Computer Science Program Coordinator, the three-credit version of CSC 460 can substitute in the major for a required course such as CSC 303 or CSC 405.
This is our special-topics course. We don't expect it to be offered very often, though, unless there happen to be an exceptionally large number of minors who get interested in the same subject.
It can count for 1, 2 or 3 credits. In special circumstances the three-credit version could subsitute for a required course in the minor, but don't expect that to happen.
CSC 115 is the cornerstone of the program. For someone taking it in the Fall semester, a good sequence to complete the minor is as follows:
|Year One||CSC 115||CSC 215|
|Year Two||CSC 303||CSC 323 (or ART 323)|
|Year Three||CSC 324||CSC 405|
If you do CSC 115 in the Spring, then your sequence could look like this:
|Year One||CSC 115|
|Year Two||CSC 303||CSC 215,
CSC 323 (or ART 323)
|Year Three||CSC 324||CSC 405|
It's possible to squeeze everythig into just two years:
|Year One||CSC 115||CSC 215,
CSC 323 (or ART 323)
|Year Two||CSC 303,
CSC 405 (or ART 323)
Computer science is no more about computers than astronomy is about telescopes.