Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
328 changes: 328 additions & 0 deletions courses.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,328 @@
{
"courses": [
{
"subj": "CMSC",
"num": "150",
"title": "Introduction to Discrete Structures",
"credits": 3,
"classNum": 81294,
"section": 6380,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Therese",
"facultyLast": "Smith",
"description": "A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.",
"prereq": "MATH 140"
},
{
"subj": "CMSC",
"num": "150",
"title": "Introduction to Discrete Structures",
"credits": 3,
"classNum": 82559,
"section": 6980,
"startDate": "10 Sep 2018",
"endDate": "04 Nov 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "None",
"facultyLast": "None",
"description": "A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.",
"prereq": "MATH 140"
},
{
"subj": "CMSC",
"num": "150",
"title": "Introduction to Discrete Structures",
"credits": 3,
"classNum": 83447,
"section": 7980,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "None",
"facultyLast": "None",
"description": "A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.",
"prereq": "MATH 140"
},
{
"subj": "CMSC",
"num": "325",
"title": "Game Design and Development",
"credits": 3,
"classNum": 83660,
"section": 7980,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Zachary",
"facultyLast": "Fair",
"description": "A project-driven study of the theory and practice of game design and development. The aim is to build realistic graphical 3-D worlds, animate characters, and add special effects to games. Discussion covers critical mathematical concepts and real-time game physics. Projects include collaborative development of interactive games.",
"prereq": "CMSC 230 or CMIS 242"
},
{
"subj": "CMSC",
"num": "330",
"title": "Advanced Programming Languages",
"credits": 3,
"classNum": 81931,
"section": 6381,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Soumajit",
"facultyLast": "Ghosh",
"description": "A comparative study of programming languages. The aim is to write safe and secure computer programs. Topics include the syntax and semantics of programming languages and run-time support required for various programming languages. Programming projects using selected languages are required.",
"prereq": "CMSC 230 or CMSC 350"
},
{
"subj": "CMSC",
"num": "335",
"title": "Object-Oriented and Concurrent Programming",
"credits": 3,
"classNum": 81461,
"section": 6380,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Closed",
"location": "Online",
"facultyFirst": "Mihaela",
"facultyLast": "Dinsoreanu",
"description": "A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.",
"prereq": "CMSC 230 or CMSC 350"
},
{
"subj": "CMSC",
"num": "335",
"title": "Object-Oriented and Concurrent Programming",
"credits": 3,
"classNum": 83526,
"section": 7980,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Soumajit",
"facultyLast": "Ghosh",
"description": "A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.",
"prereq": "CMSC 230 or CMSC 350"
},
{
"subj": "CMSC",
"num": "335",
"title": "Object-Oriented and Concurrent Programming",
"credits": 3,
"classNum": 84907,
"section": 6215,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "T",
"time": " 6:30P-9:30P ",
"status": "Open",
"location": "Largo",
"facultyFirst": "Nicholas",
"facultyLast": "Duchon",
"description": "A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.",
"prereq": "CMSC 230 or CMSC 350"
},
{
"subj": "CMSC",
"num": "350",
"title": "Data Structures and Analysis",
"credits": 3,
"classNum": 81773,
"section": 6381,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Richard",
"facultyLast": "Specioso",
"description": "A study of user-defined data structures and object-oriented design in computer science. The aim is to develop secure Java programs. Topics include linked lists, stacks, queues, arrays, maps, vectors, and trees. Algorithms that perform sorting, searching, and recursion are discussed and analyzed.",
"prereq": "CMIS 242"
},
{
"subj": "CMSC",
"num": "350",
"title": "Data Structures and Analysis",
"credits": 3,
"classNum": 83817,
"section": 7981,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Dennis",
"facultyLast": "Didulo",
"description": "A study of user-defined data structures and object-oriented design in computer science. The aim is to develop secure Java programs. Topics include linked lists, stacks, queues, arrays, maps, vectors, and trees. Algorithms that perform sorting, searching, and recursion are discussed and analyzed.",
"prereq": "CMIS 242"
},
{
"subj": "CMSC",
"num": "405",
"title": "Computer Graphics",
"credits": 3,
"classNum": 82180,
"section": 6381,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Florin",
"facultyLast": "Tudose",
"description": "A hands-on, project-based introduction to computer graphics. The goal is to develop projects that render graphic images and animate three-dimensional objects. Topics include programming in OpenGL and transforming, viewing, and modeling 2-D and 3-D objects.",
"prereq": "CMSC 325 or CMSC 350"
},
{
"subj": "CMSC",
"num": "405",
"title": "Computer Graphics",
"credits": 3,
"classNum": 84015,
"section": 7981,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Greig",
"facultyLast": "Richmond",
"description": "A hands-on, project-based introduction to computer graphics. The goal is to develop projects that render graphic images and animate three-dimensional objects. Topics include programming in OpenGL and transforming, viewing, and modeling 2-D and 3-D objects.",
"prereq": "CMSC 325 or CMSC 350"
},
{
"subj": "CMSC",
"num": "412",
"title": "Operating Systems",
"credits": 3,
"classNum": 84340,
"section": 7980,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "None",
"facultyLast": "None",
"description": "A study of the fundamental principles underlying modern operating systems. The objective is to design and implement a small-scale operating system and design a virtual memory management system. Discussion covers the essential components of a typical operating system and the interactions among them. Topics also include methods of managing processes and resources in computer systems. A programming project that implements part of an operating system is required.",
"prereq": "CMIS 310 or CMSC 311"
},
{
"subj": "CMSC",
"num": "451",
"title": "Design and Analysis of Computer Algorithms",
"credits": 3,
"classNum": 81465,
"section": 6380,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Alemberhan",
"facultyLast": "Getahun",
"description": "A presentation of fundamental techniques for designing and analyzing computer algorithms. The aim is to apply Big-O estimates of algorithms and proof-of-correctness techniques and to design algorithms. Basic methods include divide-and-conquer techniques, search and traversal techniques, dynamic programming, greedy methods, and induction. Programming projects are included.",
"prereq": "CMSC 150 and 350 (or 230)"
},
{
"subj": "CMSC",
"num": "451",
"title": "Design and Analysis of Computer Algorithms",
"credits": 3,
"classNum": 82374,
"section": 6382,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Susan",
"facultyLast": "Furtney",
"description": "A presentation of fundamental techniques for designing and analyzing computer algorithms. The aim is to apply Big-O estimates of algorithms and proof-of-correctness techniques and to design algorithms. Basic methods include divide-and-conquer techniques, search and traversal techniques, dynamic programming, greedy methods, and induction. Programming projects are included.",
"prereq": "CMSC 150 and 350 (or 230)"
},
{
"subj": "CMSC",
"num": "495",
"title": "Current Trends and Projects in Computer Science",
"credits": 3,
"classNum": 81474,
"section": 6380,
"startDate": "20 Aug 2018",
"endDate": "14 Oct 2018",
"day": "None",
"time": "None",
"status": "Closed",
"location": "Online",
"facultyFirst": "Hung",
"facultyLast": "Dao",
"description": "(Intended as a final, capstone course to be taken in a student's last 9 credits.) An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.",
"prereq": "Either CMSC 330 and 335, CMIS 320 and 330, or SDEV 425"
},
{
"subj": "CMSC",
"num": "495",
"title": "Current Trends and Projects in Computer Science",
"credits": 3,
"classNum": 83527,
"section": 7980,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Closed",
"location": "Online",
"facultyFirst": "Jeff",
"facultyLast": "Sanford",
"description": "(Intended as a final, capstone course to be taken in a student's last 9 credits.) An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.",
"prereq": "Either CMSC 330 and 335, CMIS 320 and 330, or SDEV 425"
},
{
"subj": "CMSC",
"num": "495",
"title": "Current Trends and Projects in Computer Science",
"credits": 3,
"classNum": 84547,
"section": 7982,
"startDate": "22 Oct 2018",
"endDate": "16 Dec 2018",
"day": "None",
"time": "None",
"status": "Open",
"location": "Online",
"facultyFirst": "Janell",
"facultyLast": "Robinson",
"description": "(Intended as a final, capstone course to be taken in a student's last 9 credits.) An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.",
"prereq": "Either CMSC 330 and 335, CMIS 320 and 330, or SDEV 425"
}
]
}
53 changes: 53 additions & 0 deletions databaseImporter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import boto3
import json

# Get the service resource.
dynamodb = boto3.resource('dynamodb')
client = boto3.client('dynamodb')

tableName = 'info'

def createTable():
print('Creating table...')
table = dynamodb.create_table(
TableName=tableName,
KeySchema=[
{
'AttributeName': 'classNum',
'KeyType': 'HASH'
}
],
AttributeDefinitions=[
{
'AttributeName': 'classNum',
'AttributeType': 'N'
}
],
ProvisionedThroughput={
'ReadCapacityUnits': 1,
'WriteCapacityUnits': 1
}
)
table.meta.client.get_waiter('table_exists').wait(TableName=tableName)
print('Table %s created!' % tableName)


def updateTable():
print('Updating table %s' % tableName)
table = dynamodb.Table(tableName)

# Open JSON file to get course info data
with open('courses.json', 'r') as file:
data = json.load(file)

# Write courses to DynamoDB
with table.batch_writer() as batch:
for course in data['courses']:
print('Adding %s %s' % (course['subj'], course['num']))
batch.put_item(Item=course)

# If the table does not exist, create it
if tableName not in client.list_tables()['TableNames']:
createTable()

updateTable()