Advanced Programming with Data

Time: Mon-Thu 9:50-11:30 ET/Boston

Location: Online (See Canvas for connection info.)

John Rachlin

Associate Teaching Professor, Northeastern University


E-mail j.rachlin@northeastern.edu
Web https://www.khoury.northeastern.edu/people/john-rachlin/
Office Hours Mon-Thu immediately after class.

To arrange one-on-one office hours, please email me your availability.
I will respond with a confirmed time.
One-on-one office hours will be held in my personal Zoom room.

Teaching Assistants

Please check Piazza for the latest office hours schedule.
No appointment is necessary.
No OH on University holidays


Aarushi Attray
        
Sasha DiVall
        
Eddie Lowney
        
Raunaksingh Khalsa
 
 
 

Nathan Parker
        
Hariharasudan
Savithri Anbarasu
        
Bhakti Vipul Pasnani
        
Jake Rocque


About the course

Catalog Description

Offers a deep dive into the design and implementation of enterprise-grade software systems with an emphasis on software architectures for more complex data-driven applications. Covers extensible architectures that support testing, data provenance, reuse, maintainability, scalability, and robustness and building software APIs and libraries for wide-scale adoption and ease of use. Students design, implement, and test complex loosely coupled service-oriented architectures using distributed processing, stream-based data processing, and interprocess communication via message passing. Explores the features, capabilities, and underlying design of popular data analysis and visualization frameworks.

4.000 Credit Hours
Prerequisites: DS2500: Intermediate Programming with Data

Classroom Environment

This is an online course with live lectures. The lectures will usually be recorded for your convenience. Recorded lectures will be available through Canvas: Zoom Meetings...Cloud Recordings. Attendance will not be taken and does not factor into your grade, but I strongly recommend you attend every live class. Live attendance will make the material more interesting, give you the opportunity to ask questions, and make the entire course experience much more fun and engaging. I will be using git to distribute handouts and code examples we develop together in class. I recommend you use a second monitor in case you want to code along with me. I would greatly appreciate it if you would turn your cameras on. It is much more interactive when we are all present and seeing your faces will help me to get to know you. Feel free to ask questions by unmuting your microphone, or by posting a question in chat.

Recommended Readings

There is no single text book for the course. Readings will be assigned on a topic by topic basis. They are intended to give you a deeper understanding of the material beyond the examples and concepts presented in class. All readings will be from chapters in texts that are freely available O'Reilly E-Books. (As Northeastern students, you have free access to this terrific resource!) This partial list will be updated as the semester proceeds. As an added convenience, I will compile all referenced books into a convenient playlist.
DD19 Deitel and Deitel (2019): Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and the Cloud, 1ed. (Pearson)
PG20 Percival and Gregory (2020): Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices (O'Reilly)
LP21 Lott and Phillips (2021): Python Object Oriented Programming, 4ed. (Packt Publishing)
GD20 Gift and Deza (2020): Testing in Python: Robust Automation for Professionals. (Pragmatic AI Solutions)
CS14 Chacon and Straub (2014) Pro Git: Everything you need to know about Git. (APress).
Website version: https://git-scm.com/book/en/v2.